mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 08:57:35 +00:00
feat: translate error messages (#254)
* feat: translate error messages in error interceptor * fix: add statik import * feat: user error msgs * feat: add translations * feat: add translations * feat: add translations * feat: add translations * feat: add translations * feat: add translations * some fixes and improved error messages Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package i18n
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/grpc-ecosystem/go-grpc-middleware/util/metautils"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
@@ -89,6 +91,18 @@ func (t *Translator) LocalizeFromRequest(r *http.Request, id string, args map[st
|
||||
return s
|
||||
}
|
||||
|
||||
func (t *Translator) LocalizeFromCtx(ctx context.Context, id string, args map[string]interface{}) string {
|
||||
s, err := t.localizerFromCtx(ctx).Localize(&i18n.LocalizeConfig{
|
||||
MessageID: id,
|
||||
TemplateData: args,
|
||||
})
|
||||
if err != nil {
|
||||
logging.Log("I18N-MsF5sx").WithError(err).Warnf("missing translation")
|
||||
return id
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func (t *Translator) Localize(id string, args map[string]interface{}, langs ...string) string {
|
||||
s, _ := t.localizer(langs...).Localize(&i18n.LocalizeConfig{
|
||||
MessageID: id,
|
||||
@@ -111,6 +125,10 @@ func (t *Translator) localizerFromRequest(r *http.Request) *i18n.Localizer {
|
||||
return t.localizer(t.langsFromRequest(r)...)
|
||||
}
|
||||
|
||||
func (t *Translator) localizerFromCtx(ctx context.Context) *i18n.Localizer {
|
||||
return t.localizer(t.langsFromCtx(ctx)...)
|
||||
}
|
||||
|
||||
func (t *Translator) localizer(langs ...string) *i18n.Localizer {
|
||||
return i18n.NewLocalizer(t.bundle, langs...)
|
||||
}
|
||||
@@ -126,3 +144,15 @@ func (t *Translator) langsFromRequest(r *http.Request) []string {
|
||||
}
|
||||
return langs
|
||||
}
|
||||
|
||||
func (t *Translator) langsFromCtx(ctx context.Context) []string {
|
||||
langs := make([]string, 0)
|
||||
if ctx != nil {
|
||||
langs = append(langs, getAcceptLanguageHeader(ctx))
|
||||
}
|
||||
return langs
|
||||
}
|
||||
|
||||
func getAcceptLanguageHeader(ctx context.Context) string {
|
||||
return metautils.ExtractIncoming(ctx).Get("grpcgateway-accept-language")
|
||||
}
|
||||
|
Reference in New Issue
Block a user