From ce58d1f0d7987ee6798fe2850ba7d27a95d70152 Mon Sep 17 00:00:00 2001
From: Alena Petraki <a.petraki@perx.ru>
Date: Mon, 22 Jul 2024 14:55:03 +0000
Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=20=D0=B2=D0=BE?=
 =?UTF-8?q?=D0=B7=D0=B2=D1=80=D0=B0=D1=82=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1?=
 =?UTF-8?q?=D0=BE=D0=BA=20=D0=BF=D1=80=D0=B8=20=D0=BB=D0=BE=D0=BA=D0=B0?=
 =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/schema/localizer/localizer.go | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/pkg/schema/localizer/localizer.go b/pkg/schema/localizer/localizer.go
index 86e43ed4..4cc99d60 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
-- 
GitLab