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