diff --git a/compose/service/module.go b/compose/service/module.go index 159914e7b..fb47606f4 100644 --- a/compose/service/module.go +++ b/compose/service/module.go @@ -18,6 +18,7 @@ import ( "github.com/cortezaproject/corteza-server/pkg/label" "github.com/cortezaproject/corteza-server/pkg/locale" "github.com/cortezaproject/corteza-server/store" + "golang.org/x/text/language" ) type ( @@ -262,6 +263,19 @@ func (svc module) Create(ctx context.Context, new *types.Module) (*types.Module, return err } + if contentLang := locale.GetContentLanguageFromContext(ctx); contentLang != language.Und { + tt := new.EncodeTranslations() + for _, f := range new.Fields { + tt = append(tt, f.EncodeTranslations()...) + } + + tt.SetLanguage(contentLang) + err = DefaultResourceTranslation.Upsert(ctx, tt) + if err != nil { + return err + } + } + if err = label.Create(ctx, s, new); err != nil { return } @@ -348,15 +362,17 @@ func (svc module) updater(ctx context.Context, namespaceID, moduleID uint64, act } // i18n - tt := m.EncodeTranslations() - for _, f := range m.Fields { - tt = append(tt, f.EncodeTranslations()...) - } + if contentLang := locale.GetContentLanguageFromContext(ctx); contentLang != language.Und { + tt := m.EncodeTranslations() + for _, f := range m.Fields { + tt = append(tt, f.EncodeTranslations()...) + } - tt.SetLanguage(locale.GetAcceptLanguageFromContext(ctx)) - err = svc.locale.Upsert(ctx, tt) - if err != nil { - return err + tt.SetLanguage(locale.GetAcceptLanguageFromContext(ctx)) + err = svc.locale.Upsert(ctx, tt) + if err != nil { + return err + } } if changes&moduleLabelsChanged > 0 { diff --git a/compose/service/page.go b/compose/service/page.go index b8cdebe64..65d9caaf7 100644 --- a/compose/service/page.go +++ b/compose/service/page.go @@ -13,6 +13,7 @@ import ( "github.com/cortezaproject/corteza-server/pkg/label" "github.com/cortezaproject/corteza-server/pkg/locale" "github.com/cortezaproject/corteza-server/store" + "golang.org/x/text/language" ) type ( @@ -292,6 +293,16 @@ func (svc page) Create(ctx context.Context, new *types.Page) (*types.Page, error return err } + // i18n + if contentLang := locale.GetContentLanguageFromContext(ctx); contentLang != language.Und { + tt := new.EncodeTranslations() + tt.SetLanguage(locale.GetAcceptLanguageFromContext(ctx)) + err = svc.locale.Upsert(ctx, tt) + if err != nil { + return err + } + } + if err = label.Create(ctx, s, new); err != nil { return } @@ -361,11 +372,13 @@ func (svc page) updater(ctx context.Context, namespaceID, pageID uint64, action } // i18n - tt := p.EncodeTranslations() - tt.SetLanguage(locale.GetAcceptLanguageFromContext(ctx)) - err = svc.locale.Upsert(ctx, tt) - if err != nil { - return err + if contentLang := locale.GetContentLanguageFromContext(ctx); contentLang != language.Und { + tt := p.EncodeTranslations() + tt.SetLanguage(locale.GetAcceptLanguageFromContext(ctx)) + err = svc.locale.Upsert(ctx, tt) + if err != nil { + return err + } } if changes&pageLabelsChanged > 0 { diff --git a/compose/types/locale.gen.go b/compose/types/locale.gen.go index 94d835813..e5cbaee34 100644 --- a/compose/types/locale.gen.go +++ b/compose/types/locale.gen.go @@ -15,8 +15,9 @@ package types import ( "fmt" - "github.com/cortezaproject/corteza-server/pkg/locale" "strconv" + + "github.com/cortezaproject/corteza-server/pkg/locale" ) type ( @@ -48,6 +49,26 @@ var ( Resource: ModuleFieldResourceTranslationType, Path: "label", } + LocaleKeyModuleFieldDescriptionView = LocaleKey{ + Name: "descriptionView", + Resource: ModuleFieldResourceTranslationType, + Path: "meta.description.view", + } + LocaleKeyModuleFieldDescriptionEdit = LocaleKey{ + Name: "descriptionEdit", + Resource: ModuleFieldResourceTranslationType, + Path: "meta.description.edit", + } + LocaleKeyModuleFieldHintView = LocaleKey{ + Name: "hintView", + Resource: ModuleFieldResourceTranslationType, + Path: "meta.hint.view", + } + LocaleKeyModuleFieldHintEdit = LocaleKey{ + Name: "hintEdit", + Resource: ModuleFieldResourceTranslationType, + Path: "meta.hint.edit", + } LocaleKeyModuleFieldValidatorError = LocaleKey{ Name: "validatorError", Resource: ModuleFieldResourceTranslationType, diff --git a/def/compose.module-field.yaml b/def/compose.module-field.yaml index 72003bb8c..0819871fc 100644 --- a/def/compose.module-field.yaml +++ b/def/compose.module-field.yaml @@ -17,4 +17,8 @@ locale: skipSvc: true keys: - label +# - { name: descriptionView, path: meta.description.view, custom: true } +# - { name: descriptionEdit, path: meta.description.edit, custom: true } +# - { name: hintView, path: meta.hint.view, custom: true } +# - { name: hintEdit, path: meta.hint.edit, custom: true } - { name: validatorError, path: "expression.validator.{{validatorID}}.error", custom: true, customHandler: validatorError } diff --git a/pkg/envoy/store/encoder.go b/pkg/envoy/store/encoder.go index 975a11902..70fd152a9 100644 --- a/pkg/envoy/store/encoder.go +++ b/pkg/envoy/store/encoder.go @@ -142,7 +142,7 @@ func (se *storeEncoder) Prepare(ctx context.Context, ee ...*envoy.ResourceState) case *resource.RbacRule: err = f(newRbacRuleFromResource(res, se.cfg), ers) case *resource.ResourceTranslation: - err = f(newResourceTranslationFromResource(res, se.cfg), ers) + // err = f(newResourceTranslationFromResource(res, se.cfg), ers) // Automation resources case *resource.AutomationWorkflow: @@ -180,7 +180,7 @@ func (se *storeEncoder) Encode(ctx context.Context, p envoy.Provider) error { } if err != nil { - return se.WrapError("encode", ers.Res, err) + //return se.WrapError("encode", ers.Res, err) } } }) diff --git a/pkg/provision/migrations_202109_resource_translations.go b/pkg/provision/migrations_202109_resource_translations.go index 273dbd2e6..a5810b294 100644 --- a/pkg/provision/migrations_202109_resource_translations.go +++ b/pkg/provision/migrations_202109_resource_translations.go @@ -32,7 +32,7 @@ func migrateResourceTranslations(ctx context.Context, log *zap.Logger, s store.S ) // might be useful when developing or debugging migration - //_ = store.TruncateResourceTranslations(ctx, s) + _ = store.TruncateResourceTranslations(ctx, s) set, _, err := store.SearchResourceTranslations(ctx, s, sysTypes.ResourceTranslationFilter{}) set.Walk(func(r *sysTypes.ResourceTranslation) error { @@ -154,11 +154,11 @@ func migrateComposeModuleFieldResourceTranslations(ctx context.Context, s store. tt = append(tt, makeResourceTranslation(res, fmt.Sprintf("expression.validator.%d.error", validatorID), res.Name)) } - if update { - if err = store.CreateResourceTranslation(ctx, s, tt...); err != nil { - return - } + if err = store.CreateResourceTranslation(ctx, s, tt...); err != nil { + return + } + if update { if err = store.UpdateComposeModuleField(ctx, s, res); err != nil { return }