From 2305b2597f3658329479645820b985db78da103f Mon Sep 17 00:00:00 2001 From: enahum Date: Mon, 4 Jul 2016 09:30:57 -0400 Subject: PLT-3456 Fix Errors while starting the server (#3445) * PLT-3456 AppErrors that are triggered before translations are loaded crash server or produce bad error messages. * Fixing tests --- api/apitestlib.go | 2 ++ mattermost.go | 2 +- store/sql_store_test.go | 1 + utils/config_test.go | 1 + utils/i18n.go | 11 ++++++++--- utils/mail.go | 4 ++-- web/web_test.go | 1 + 7 files changed, 16 insertions(+), 6 deletions(-) diff --git a/api/apitestlib.go b/api/apitestlib.go index a685528d1..c6796a56c 100644 --- a/api/apitestlib.go +++ b/api/apitestlib.go @@ -29,6 +29,7 @@ type TestHelper struct { func SetupEnterprise() *TestHelper { if Srv == nil { + utils.TranslationsPreInit() utils.LoadConfig("config.json") utils.InitTranslations(utils.Cfg.LocalizationSettings) utils.Cfg.TeamSettings.MaxUsersPerTeam = 50 @@ -49,6 +50,7 @@ func SetupEnterprise() *TestHelper { func Setup() *TestHelper { if Srv == nil { + utils.TranslationsPreInit() utils.LoadConfig("config.json") utils.InitTranslations(utils.Cfg.LocalizationSettings) utils.Cfg.TeamSettings.MaxUsersPerTeam = 50 diff --git a/mattermost.go b/mattermost.go index 4cca4c200..bc90d1139 100644 --- a/mattermost.go +++ b/mattermost.go @@ -74,12 +74,12 @@ func doLoadConfig(filename string) (err string) { err = fmt.Sprintf("%v", r) } }() + utils.TranslationsPreInit() utils.LoadConfig(filename) return "" } func main() { - parseCmds() if errstr := doLoadConfig(flagConfigFile); errstr != "" { diff --git a/store/sql_store_test.go b/store/sql_store_test.go index 19ae2caae..721e708b5 100644 --- a/store/sql_store_test.go +++ b/store/sql_store_test.go @@ -15,6 +15,7 @@ var store Store func Setup() { if store == nil { + utils.TranslationsPreInit() utils.LoadConfig("config.json") utils.InitTranslations(utils.Cfg.LocalizationSettings) store = NewSqlStore() diff --git a/utils/config_test.go b/utils/config_test.go index 96ef49696..d42f99a69 100644 --- a/utils/config_test.go +++ b/utils/config_test.go @@ -8,6 +8,7 @@ import ( ) func TestConfig(t *testing.T) { + TranslationsPreInit() LoadConfig("config.json") InitTranslations(Cfg.LocalizationSettings) } diff --git a/utils/i18n.go b/utils/i18n.go index b3e10a831..8366ae75d 100644 --- a/utils/i18n.go +++ b/utils/i18n.go @@ -15,9 +15,16 @@ var T i18n.TranslateFunc var locales map[string]string = make(map[string]string) var settings model.LocalizationSettings +// this functions loads translations from filesystem +// and assign english while loading server config +func TranslationsPreInit() { + InitTranslationsWithDir("i18n") + T = TfuncWithFallback("en") +} + func InitTranslations(localizationSettings model.LocalizationSettings) { settings = localizationSettings - InitTranslationsWithDir("i18n") + T = GetTranslationsBySystemLocale() } func InitTranslationsWithDir(dir string) { @@ -30,8 +37,6 @@ func InitTranslationsWithDir(dir string) { i18n.MustLoadTranslationFile(i18nDirectory + filename) } } - - T = GetTranslationsBySystemLocale() } func GetTranslationsBySystemLocale() i18n.TranslateFunc { diff --git a/utils/mail.go b/utils/mail.go index 4a0b987e6..c4532f7b4 100644 --- a/utils/mail.go +++ b/utils/mail.go @@ -79,14 +79,14 @@ func TestConnection(config *model.Config) { conn, err1 := connectToSMTPServer(config) if err1 != nil { - l4g.Error(T("utils.mail.test.configured.error"), err1.Message, err1.DetailedError) + l4g.Error(T("utils.mail.test.configured.error"), T(err1.Message), err1.DetailedError) return } defer conn.Close() c, err2 := newSMTPClient(conn, config) if err2 != nil { - l4g.Error(T("utils.mail.test.configured.error"), err2.Message, err2.DetailedError) + l4g.Error(T("utils.mail.test.configured.error"), T(err2.Message), err2.DetailedError) return } defer c.Quit() diff --git a/web/web_test.go b/web/web_test.go index 0a9869e40..27912ea42 100644 --- a/web/web_test.go +++ b/web/web_test.go @@ -20,6 +20,7 @@ var URL string func Setup() { if api.Srv == nil { + utils.TranslationsPreInit() utils.LoadConfig("config.json") utils.InitTranslations(utils.Cfg.LocalizationSettings) api.NewServer() -- cgit v1.2.3-1-g7c22