diff --git a/auth/handlers/handler.go b/auth/handlers/handler.go index def920680..cba64ff07 100644 --- a/auth/handlers/handler.go +++ b/auth/handlers/handler.go @@ -154,13 +154,6 @@ func (h *AuthHandlers) handle(fn handlerFn) http.HandlerFunc { zap.String("method", r.Method), ) - if h.Opt.DevelopmentMode { - if err := loc.Reload(); err != nil { - // when in development mode, refresh languages for every request - h.Log.Error("failed to load locales", zap.Error(err)) - } - } - err := func() (err error) { if err = r.ParseForm(); err != nil { return diff --git a/automation/service/session_actions.gen.go b/automation/service/session_actions.gen.go index 5d8f4bbf8..4658a2dc4 100644 --- a/automation/service/session_actions.gen.go +++ b/automation/service/session_actions.gen.go @@ -11,13 +11,12 @@ package service import ( "context" "fmt" - "strings" - "time" - "github.com/cortezaproject/corteza-server/automation/types" "github.com/cortezaproject/corteza-server/pkg/actionlog" "github.com/cortezaproject/corteza-server/pkg/errors" "github.com/cortezaproject/corteza-server/pkg/locale" + "strings" + "time" ) type ( diff --git a/pkg/locale/http.go b/pkg/locale/http.go index 783276464..0830df2ae 100644 --- a/pkg/locale/http.go +++ b/pkg/locale/http.go @@ -12,13 +12,20 @@ const AcceptLanguageHeader = "Accept-Language" func DetectLanguage(ll *Languages) func(next http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if ll.opt.DevelopmentMode { + if err := ll.Reload(); err != nil { + // when in development mode, refresh languages for every request + ll.log.Error("failed to load locales", zap.Error(err)) + } + } + var ( rawLanguageTag string ) // try to detect the language from the request's query string: - if ll.Options().QueryStringParam != "" { - rawLanguageTag = r.URL.Query().Get(ll.Options().QueryStringParam) + if ll.opt.QueryStringParam != "" { + rawLanguageTag = r.URL.Query().Get(ll.opt.QueryStringParam) } // try to detect the language from the request's headers: @@ -56,11 +63,13 @@ func DetectLanguage(ll *Languages) func(next http.Handler) http.Handler { // new request with new context r = r.WithContext(SetLanguageToContext(r.Context(), preferred)) - ll.log.Debug( - "language detected", - zap.String("preferred", preferred.String()), - zap.String("raw", rawLanguageTag), - ) + if ll.opt.DevelopmentMode { + ll.log.Debug( + "language detected", + zap.String("preferred", preferred.String()), + zap.String("raw", rawLanguageTag), + ) + } } next.ServeHTTP(w, r) diff --git a/pkg/locale/locale.go b/pkg/locale/locale.go index c24fccd50..1e6b0207c 100644 --- a/pkg/locale/locale.go +++ b/pkg/locale/locale.go @@ -72,10 +72,6 @@ func (set *Languages) Default() language.Tag { return set.def } -func (set *Languages) Options() options.LocaleOpt { - return set.opt -} - func (set *Languages) Tags() (tt []language.Tag) { tt = make([]language.Tag, 0, len(set.ll)) for t := range set.ll { diff --git a/pkg/options/locale.gen.go b/pkg/options/locale.gen.go index 60053855a..350cfa848 100644 --- a/pkg/options/locale.gen.go +++ b/pkg/options/locale.gen.go @@ -13,6 +13,7 @@ type ( Path string `env:"LOCALE_PATH"` QueryStringParam string `env:"LOCALE_QUERY_STRING_PARAM"` Log bool `env:"LOCALE_LOG"` + DevelopmentMode bool `env:"LOCALE_DEVELOPMENT_MODE"` } ) diff --git a/pkg/options/locale.yaml b/pkg/options/locale.yaml index 2084de167..1aad055b0 100644 --- a/pkg/options/locale.yaml +++ b/pkg/options/locale.yaml @@ -12,3 +12,9 @@ props: - name: log type: bool description: Log locale related events and actions + + - name: developmentMode + type: bool + description: |- + When enabled, Corteza reloads language files on every request + Enable this for debugging or developing diff --git a/system/rest/locales.go b/system/rest/locales.go index 9ec2e9ace..73d5c7a82 100644 --- a/system/rest/locales.go +++ b/system/rest/locales.go @@ -27,8 +27,6 @@ func (Locale) New() *Locale { } func (ctrl Locale) List(ctx context.Context, r *request.LocaleList) (interface{}, error) { - locale.Global().Reload() // @todo debug only; remove later - var ( rval = make([]*localeResponse, 0, 16) currentLang = locale.GetLanguageFromContext(ctx) @@ -46,8 +44,6 @@ func (ctrl Locale) List(ctx context.Context, r *request.LocaleList) (interface{} } func (ctrl Locale) Get(ctx context.Context, r *request.LocaleGet) (interface{}, error) { - locale.Global().Reload() // @todo debug only; remove later - return func(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json;charset=UTF-8") err := locale.Global().EncodeExternal(w, language.Make(r.Lang), r.Application) diff --git a/system/service/user_actions.gen.go b/system/service/user_actions.gen.go index e4ddb264d..46b081ce3 100644 --- a/system/service/user_actions.gen.go +++ b/system/service/user_actions.gen.go @@ -11,13 +11,12 @@ package service import ( "context" "fmt" - "strings" - "time" - "github.com/cortezaproject/corteza-server/pkg/actionlog" "github.com/cortezaproject/corteza-server/pkg/errors" "github.com/cortezaproject/corteza-server/pkg/locale" "github.com/cortezaproject/corteza-server/system/types" + "strings" + "time" ) type (