mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 08:57:35 +00:00
feat: Custom text login (#1925)
* feat: default custom message text * feat: org custom message text * feat: org custom message text * feat: custom messages query side * feat: default messages * feat: message text user fields * feat: check for inactive user * feat: fix send password reset * feat: fix custom org text * feat: add variables to docs * feat: custom text tests * feat: fix notifications * feat: add custom text feature * feat: add custom text feature * feat: feature in custom message texts * feat: add custom text feature in frontend * feat: merge main * feat: feature tests * feat: change phone message in setup * fix: remove unused code, add event translation * fix: merge main and fix problems * fix: english translation file * fix: migration versions * fix: setup * fix: custom login text * feat: add all possible custom texts for login * feat: iam login texts * feat: org login texts * feat: protos * fix: custom text in admin api * fix: add success login text * fix: docs * fix: add custom login texts to management api * fix: add sub messages to custom login texts * fix: setup custom texts * feat: get org login texts * feat: get org login texts * feat: handler in adminapi * feat: handlers in auth and admin * feat: render login texts * feat: custom login text * feat: add all login text keys * feat: handle correct login texts * feat: custom login texts in command side * feat: custom login texts in command side * feat: fix yaml file * feat: merge master and add confirmation text * feat: fix html * feat: read default login texts * feat: get default text files * feat: get custom texts org * feat: tests * feat: change translator handling * fix translator from authReq * feat: change h1 on login screens * feat: add custom login text for remove * feat: add custom login text for remove * feat: cache translation files * feat: cache translation files * feat: zitadel user in env var * feat: add registration user description * feat: better func naming * feat: tests * feat: add mutex to read file * feat: add mutex to read file * fix mutex for accessing translation map * fix: translation key Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
@@ -3,20 +3,20 @@ package i18n
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"github.com/BurntSushi/toml"
|
||||
"github.com/caos/zitadel/internal/api/authz"
|
||||
"github.com/grpc-ecosystem/go-grpc-middleware/util/metautils"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
http_util "github.com/caos/zitadel/internal/api/http"
|
||||
"github.com/caos/zitadel/internal/errors"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
"github.com/caos/logging"
|
||||
"github.com/ghodss/yaml"
|
||||
"github.com/grpc-ecosystem/go-grpc-middleware/util/metautils"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"github.com/caos/zitadel/internal/api/authz"
|
||||
http_util "github.com/caos/zitadel/internal/api/http"
|
||||
"github.com/caos/zitadel/internal/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -34,6 +34,11 @@ type TranslatorConfig struct {
|
||||
CookieName string
|
||||
}
|
||||
|
||||
type Message struct {
|
||||
ID string
|
||||
Text string
|
||||
}
|
||||
|
||||
func NewTranslator(dir http.FileSystem, config TranslatorConfig) (*Translator, error) {
|
||||
t := new(Translator)
|
||||
var err error
|
||||
@@ -61,14 +66,14 @@ func newBundle(dir http.FileSystem, defaultLanguage language.Tag) (*i18n.Bundle,
|
||||
return nil, errors.ThrowNotFound(err, "I18N-Gew23", "cannot read dir")
|
||||
}
|
||||
for _, file := range files {
|
||||
if err := addFileToBundle(dir, bundle, file); err != nil {
|
||||
return nil, errors.ThrowNotFound(err, "I18N-ZS2AW", "cannot append file to bundle")
|
||||
if err := addFileFromFileSystemToBundle(dir, bundle, file); err != nil {
|
||||
return nil, errors.ThrowNotFound(err, "I18N-ZS2AW", "cannot append file to Bundle")
|
||||
}
|
||||
}
|
||||
return bundle, nil
|
||||
}
|
||||
|
||||
func addFileToBundle(dir http.FileSystem, bundle *i18n.Bundle, file os.FileInfo) error {
|
||||
func addFileFromFileSystemToBundle(dir http.FileSystem, bundle *i18n.Bundle, file os.FileInfo) error {
|
||||
f, err := dir.Open("/i18n/" + file.Name())
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -82,6 +87,20 @@ func addFileToBundle(dir http.FileSystem, bundle *i18n.Bundle, file os.FileInfo)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *Translator) AddMessages(tag language.Tag, messages ...Message) error {
|
||||
if len(messages) == 0 {
|
||||
return nil
|
||||
}
|
||||
i18nMessages := make([]*i18n.Message, len(messages))
|
||||
for i, message := range messages {
|
||||
i18nMessages[i] = &i18n.Message{
|
||||
ID: message.ID,
|
||||
Other: message.Text,
|
||||
}
|
||||
}
|
||||
return t.bundle.AddMessages(tag, i18nMessages...)
|
||||
}
|
||||
|
||||
func (t *Translator) LocalizeFromRequest(r *http.Request, id string, args map[string]interface{}) string {
|
||||
return localize(t.localizerFromRequest(r), id, args)
|
||||
}
|
||||
|
Reference in New Issue
Block a user