diff --git a/pkg/schema/localizer/localizer.go b/pkg/schema/localizer/localizer.go index 86e43ed47c2304806bd16404ae61b8cb6c0973e4..4cc99d6075447c3eefe249f0b2963dca436c6e4f 100644 --- a/pkg/schema/localizer/localizer.go +++ b/pkg/schema/localizer/localizer.go @@ -11,6 +11,11 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/schema/walk" ) +var ( + ErrLocaleDisabled = errors.New("cannot translate to disabled locale") + ErrLocaleNoPublish = errors.New("cannot translate to locale with disabled publication") +) + type Localizer struct { schema *schema.Schema localesKV map[string]*locales.Locale @@ -132,11 +137,11 @@ func (l *Localizer) locale(localeID string) (loc *locales.Locale, err error) { } if !l.allowDisabled && loc.Disabled { - return nil, errors.New("locale is disabled") + return nil, ErrLocaleDisabled } if !l.allowNoPublished && localeID == l.localeID && loc.NoPublish { // can use non-publishing locale for fallback - return nil, errors.New("localizer not configured for non-publishing locales") + return nil, ErrLocaleNoPublish } return @@ -156,12 +161,12 @@ func (l *Localizer) LocaleID() string { func (l *Localizer) getTargetAndFallBackLocales() (target, fallback *locales.Locale, err error) { if target, err = l.locale(l.localeID); err != nil { - return nil, nil, errors.Wrap(err, "target locale not found or disabled") + return nil, nil, err } if fallback, err = l.locale(target.Fallback); err != nil { if fallback, err = l.locale(locales.DefaultID); err != nil { - return nil, nil, errors.Wrap(err, "fallback locale not found or disabled") + return nil, nil, errors.Wrap(err, "get default locale") } } return