...
1 package fosite
2
3 import (
4 "github.com/ory/fosite/i18n"
5 "github.com/ory/x/errorsx"
6 "github.com/pkg/errors"
7 "golang.org/x/text/language"
8 )
9
10
11
12
13
14
15
16 func AddLocalizerToErr(catalog i18n.MessageCatalog, err error, requester Requester) error {
17 return AddLocalizerToErrWithLang(catalog, getLangFromRequester(requester), err)
18 }
19
20
21
22
23
24
25
26 func AddLocalizerToErrWithLang(catalog i18n.MessageCatalog, lang language.Tag, err error) error {
27 var e RFC6749Error
28 if errors.As(err, &e) {
29 return e.WithLocalizer(catalog, lang)
30 } else if errors.As(errorsx.Cause(err), &e) {
31 return e.WithLocalizer(catalog, lang)
32 }
33 return err
34 }
35
36 func getLangFromRequester(requester Requester) language.Tag {
37 lang := language.English
38 g11nContext, ok := requester.(G11NContext)
39 if ok {
40 lang = g11nContext.GetLang()
41 }
42
43 return lang
44 }
45
View as plain text