@@ -3,10 +3,11 @@ package translate
33import (
44 "encoding/json"
55 "fmt"
6- "github.com/nicksnyder/go-i18n/v2/i18n"
7- "golang.org/x/text/language"
86 "io/ioutil"
97 "sync"
8+
9+ "github.com/nicksnyder/go-i18n/v2/i18n"
10+ "golang.org/x/text/language"
1011)
1112
1213type Translator struct {
@@ -35,7 +36,8 @@ func (t *Translator) InitTranslator(initLang string, langPath string) {
3536
3637 langFiles , err := ioutil .ReadDir (langPath )
3738 if err != nil {
38- fmt .Printf ("InitTranslator() Error: %v" , err )
39+ fmt .Printf ("InitTranslator() Error reading language directory '%s': %v\n " , langPath , err )
40+ return
3941 }
4042
4143 t .bundle = i18n .NewBundle (language .English )
@@ -51,14 +53,16 @@ func (t *Translator) InitTranslator(initLang string, langPath string) {
5153
5254 t .localizer = i18n .NewLocalizer (t .bundle , initLang ) // should add additionl check here
5355 t .IsInit = true
56+ fmt .Printf ("Translator initialized successfully with language: %s\n " , initLang )
5457 // end of adding
5558}
5659
5760func (t * Translator ) InitTranslatorEx (initLang string , defaultLang string , langPath string ) {
5861
5962 langFiles , err := ioutil .ReadDir (langPath )
6063 if err != nil {
61- fmt .Printf ("InitTranslator() Error: %v" , err )
64+ fmt .Printf ("InitTranslatorEx() Error reading language directory '%s': %v\n " , langPath , err )
65+ return
6266 }
6367
6468 t .bundle = i18n .NewBundle (language .English )
@@ -81,6 +85,7 @@ func (t *Translator) InitTranslatorEx(initLang string, defaultLang string, langP
8185 }
8286
8387 t .IsInit = true
88+ fmt .Printf ("Translator initialized successfully with language: %s, default: %s\n " , initLang , defaultLang )
8489 // end of adding
8590}
8691
@@ -102,11 +107,27 @@ func (t *Translator) TranslateMessage(messageID string) string {
102107 defaultLocalizer := t .defaultLocalizer
103108 t .mu .RUnlock ()
104109
110+ // 检查localizer是否已初始化
111+ if localizer == nil {
112+ fmt .Printf ("Warning: localizer is not initialized, returning original message: %s\n " , messageID )
113+ return messageID
114+ }
115+
105116 translatedMsg , err := localizer .LocalizeMessage (& i18n.Message {ID : messageID })
106117 if err != nil || translatedMsg == "" { // if translation fail use default language transalator
107- fmt .Println (err .Error ())
118+ if err != nil {
119+ fmt .Printf ("Translation error for message '%s': %v\n " , messageID , err )
120+ }
121+
122+ // 检查defaultLocalizer是否已初始化
123+ if defaultLocalizer == nil {
124+ fmt .Printf ("Warning: defaultLocalizer is not initialized, returning original message: %s\n " , messageID )
125+ return messageID
126+ }
127+
108128 translatedMsg , err = defaultLocalizer .LocalizeMessage (& i18n.Message {ID : messageID })
109129 if err != nil {
130+ fmt .Printf ("Default translation error for message '%s': %v\n " , messageID , err )
110131 return messageID
111132 }
112133 }
0 commit comments