diff --git a/app/server.go b/app/server.go index 9e0a5cb412..36d876efa8 100644 --- a/app/server.go +++ b/app/server.go @@ -169,10 +169,8 @@ func NewServer(options ...Option) (*Server, error) { s.ImageProxy = imageproxy.MakeImageProxy(s, s.HTTPService) - if utils.T == nil { - if err := utils.TranslationsPreInit(); err != nil { - return nil, errors.Wrapf(err, "unable to load Mattermost translation files") - } + if err := utils.TranslationsPreInit(); err != nil { + return nil, errors.Wrapf(err, "unable to load Mattermost translation files") } err := s.RunOldAppInitalization() diff --git a/cmd/mattermost/commands/server.go b/cmd/mattermost/commands/server.go index 21bbe4d1e1..2a3832e861 100644 --- a/cmd/mattermost/commands/server.go +++ b/cmd/mattermost/commands/server.go @@ -14,8 +14,10 @@ import ( "github.com/mattermost/mattermost-server/config" "github.com/mattermost/mattermost-server/manualtesting" "github.com/mattermost/mattermost-server/mlog" + "github.com/mattermost/mattermost-server/utils" "github.com/mattermost/mattermost-server/web" "github.com/mattermost/mattermost-server/wsapi" + "github.com/pkg/errors" "github.com/spf13/cobra" ) @@ -42,6 +44,9 @@ func serverCmdF(command *cobra.Command, args []string) error { interruptChan := make(chan os.Signal, 1) + if err = utils.TranslationsPreInit(); err != nil { + return errors.Wrapf(err, "unable to load Mattermost translation files") + } configStore, err := config.NewStore(configDSN, !disableConfigWatch) if err != nil { return err diff --git a/utils/i18n.go b/utils/i18n.go index 76da62d05d..3a7cbf85c0 100644 --- a/utils/i18n.go +++ b/utils/i18n.go @@ -21,9 +21,13 @@ var TDefault 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 +// this functions loads translations from filesystem if they are not +// loaded already and assigns english while loading server config func TranslationsPreInit() error { + if T != nil { + return nil + } + // Set T even if we fail to load the translations. Lots of shutdown handling code will // segfault trying to handle the error, and the untranslated IDs are strictly better. T = TfuncWithFallback("en")