1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-08-08 22:36:41 +02:00

web-app: use universal-translator files to externalize translatable texts

This commit is contained in:
jsign
2019-08-20 21:25:09 -03:00
parent 1229cf0404
commit 0658ab1ad3
2 changed files with 27 additions and 23 deletions

View File

@ -17,6 +17,7 @@ import (
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/webcontext"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/weberror"
"github.com/pkg/errors"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext"
@ -372,6 +373,8 @@ func (r *TemplateRenderer) Render(ctx context.Context, w http.ResponseWriter, re
data["error"] = terr
}
data["trans"] = webcontext.ContextTranslator(ctx)
// Append request data map to render data last so any previous value can be overwritten.
if data != nil {
for k, v := range data {

View File

@ -2,6 +2,7 @@ package webcontext
import (
"context"
"log"
"reflect"
"strings"
@ -63,6 +64,16 @@ func init() {
// Provide one or more arguments for additional supported locales.
uniTrans = ut.New(en, en, fr, id, ja, nl, zh)
err := uniTrans.Import(ut.FormatJSON, "templates/content/translations")
if err != nil {
log.Fatal(err)
}
err = uniTrans.VerifyTranslations()
if err != nil {
log.Fatal(err)
}
// this is usually know or extracted from http 'Accept-Language' header
// also see uni.FindTranslator(...)
transEn, _ := uniTrans.GetTranslator(en.Locale())
@ -72,15 +83,6 @@ func init() {
transNl, _ := uniTrans.GetTranslator(nl.Locale())
transZh, _ := uniTrans.GetTranslator(zh.Locale())
transEn.Add("{{name}}", "Name", false)
transFr.Add("{{name}}", "Nom", false)
transEn.Add("{{first_name}}", "First Name", false)
transFr.Add("{{first_name}}", "Prénom", false)
transEn.Add("{{last_name}}", "Last Name", false)
transFr.Add("{{last_name}}", "Nom de famille", false)
validate = newValidator()
en_translations.RegisterDefaultTranslations(validate, transEn)
@ -90,9 +92,8 @@ func init() {
nl_translations.RegisterDefaultTranslations(validate, transNl)
zh_translations.RegisterDefaultTranslations(validate, transZh)
/*
validate.RegisterTranslation("unique", transEn, func(ut ut.Translator) error {
return ut.Add("unique", "{0} must be unique", true) // see universal-translator for details
return nil
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("unique", fe.Field())
@ -100,13 +101,13 @@ func init() {
})
validate.RegisterTranslation("unique", transFr, func(ut ut.Translator) error {
return ut.Add("unique", "{0} must be unique", true) // see universal-translator for details
return nil
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("unique", fe.Field())
return t
})
*/
}
// ctxKeyTagUnique represents the type of unique value for the context key used by the validation function.