mirror of
https://github.com/flipped-aurora/gin-vue-admin.git
synced 2026-10-01 16:21:17 +00:00
+ Add a default language option so this language will be used as a fallback in case of no current language transaction exist for any string.
+ Add translation to "auto_code_package.go" in server module. + Add translation to "auto_code_plugin.go" in server module. + Add translation to "request.js" in web module. + Add translation to "sysDictionary.vue" in web module. + Rearrange translations file for web module.
This commit is contained in:
@@ -10,9 +10,10 @@ import (
|
||||
)
|
||||
|
||||
type Translator struct {
|
||||
IsInit bool // check if translator initialized or not
|
||||
bundle *i18n.Bundle
|
||||
localizer *i18n.Localizer
|
||||
IsInit bool // check if translator initialized or not
|
||||
bundle *i18n.Bundle
|
||||
localizer *i18n.Localizer
|
||||
defaultLocalizer *i18n.Localizer
|
||||
}
|
||||
|
||||
// func (t *Translator) InitTranslator(initLang string) {
|
||||
@@ -51,14 +52,51 @@ func (t *Translator) InitTranslator(initLang string, langPath string) {
|
||||
// end of adding
|
||||
}
|
||||
|
||||
func (t *Translator) InitTranslatorEx(initLang string, defaultLang string, langPath string) {
|
||||
|
||||
langFiles, err := ioutil.ReadDir(langPath)
|
||||
if err != nil {
|
||||
fmt.Printf("InitTranslator() Error: %v", err)
|
||||
}
|
||||
|
||||
t.bundle = i18n.NewBundle(language.English)
|
||||
t.bundle.RegisterUnmarshalFunc("json", json.Unmarshal)
|
||||
|
||||
for _, langFile := range langFiles {
|
||||
if !langFile.IsDir() {
|
||||
langFilePath := langPath + langFile.Name()
|
||||
fmt.Printf("Language file: %s loaded.\r\n", langFilePath)
|
||||
t.bundle.MustLoadMessageFile(langFilePath)
|
||||
}
|
||||
}
|
||||
|
||||
t.localizer = i18n.NewLocalizer(t.bundle, initLang) // should add additionl check here
|
||||
|
||||
if defaultLang != "" {
|
||||
t.defaultLocalizer = i18n.NewLocalizer(t.bundle, defaultLang) // should add additionl check here
|
||||
} else {
|
||||
t.defaultLocalizer = i18n.NewLocalizer(t.bundle, "zh") // set default langauge as chinese in case of there is no transalation found
|
||||
}
|
||||
|
||||
t.IsInit = true
|
||||
// end of adding
|
||||
}
|
||||
|
||||
func (t *Translator) SetTranslatorLanguage(lang string) {
|
||||
t.localizer = i18n.NewLocalizer(t.bundle, lang)
|
||||
}
|
||||
|
||||
func (t *Translator) SetTranslatorDefaultLanguage(lang string) {
|
||||
t.defaultLocalizer = i18n.NewLocalizer(t.bundle, lang)
|
||||
}
|
||||
|
||||
func (t *Translator) TranslateMessage(messageID string) string {
|
||||
translatedMsg, err := t.localizer.LocalizeMessage(&i18n.Message{ID: messageID})
|
||||
if err != nil {
|
||||
return messageID
|
||||
if err != nil || translatedMsg == "" { // if translation fail use default language transalator
|
||||
translatedMsg, err = t.defaultLocalizer.LocalizeMessage(&i18n.Message{ID: messageID})
|
||||
if err != nil {
|
||||
return messageID
|
||||
}
|
||||
}
|
||||
//return t.localizer.MustLocalize(&i18n.LocalizeConfig{MessageID: messageID})
|
||||
return translatedMsg
|
||||
|
||||
Reference in New Issue
Block a user