From bfb7df13f30794cf926edfaa18777044dc94d789 Mon Sep 17 00:00:00 2001 From: Wall-js <307606056@qq.com> Date: Wed, 22 Oct 2025 13:47:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(translate):=20=E4=BF=AE=E5=A4=8D=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/utils/translate/translator.go | 31 +++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/server/utils/translate/translator.go b/server/utils/translate/translator.go index f50158e256..4f1eed748a 100644 --- a/server/utils/translate/translator.go +++ b/server/utils/translate/translator.go @@ -3,10 +3,11 @@ package translate import ( "encoding/json" "fmt" - "github.com/nicksnyder/go-i18n/v2/i18n" - "golang.org/x/text/language" "io/ioutil" "sync" + + "github.com/nicksnyder/go-i18n/v2/i18n" + "golang.org/x/text/language" ) type Translator struct { @@ -35,7 +36,8 @@ func (t *Translator) InitTranslator(initLang string, langPath string) { langFiles, err := ioutil.ReadDir(langPath) if err != nil { - fmt.Printf("InitTranslator() Error: %v", err) + fmt.Printf("InitTranslator() Error reading language directory '%s': %v\n", langPath, err) + return } t.bundle = i18n.NewBundle(language.English) @@ -51,6 +53,7 @@ func (t *Translator) InitTranslator(initLang string, langPath string) { t.localizer = i18n.NewLocalizer(t.bundle, initLang) // should add additionl check here t.IsInit = true + fmt.Printf("Translator initialized successfully with language: %s\n", initLang) // end of adding } @@ -58,7 +61,8 @@ func (t *Translator) InitTranslatorEx(initLang string, defaultLang string, langP langFiles, err := ioutil.ReadDir(langPath) if err != nil { - fmt.Printf("InitTranslator() Error: %v", err) + fmt.Printf("InitTranslatorEx() Error reading language directory '%s': %v\n", langPath, err) + return } t.bundle = i18n.NewBundle(language.English) @@ -81,6 +85,7 @@ func (t *Translator) InitTranslatorEx(initLang string, defaultLang string, langP } t.IsInit = true + fmt.Printf("Translator initialized successfully with language: %s, default: %s\n", initLang, defaultLang) // end of adding } @@ -102,11 +107,27 @@ func (t *Translator) TranslateMessage(messageID string) string { defaultLocalizer := t.defaultLocalizer t.mu.RUnlock() + // 检查localizer是否已初始化 + if localizer == nil { + fmt.Printf("Warning: localizer is not initialized, returning original message: %s\n", messageID) + return messageID + } + translatedMsg, err := localizer.LocalizeMessage(&i18n.Message{ID: messageID}) if err != nil || translatedMsg == "" { // if translation fail use default language transalator - fmt.Println(err.Error()) + if err != nil { + fmt.Printf("Translation error for message '%s': %v\n", messageID, err) + } + + // 检查defaultLocalizer是否已初始化 + if defaultLocalizer == nil { + fmt.Printf("Warning: defaultLocalizer is not initialized, returning original message: %s\n", messageID) + return messageID + } + translatedMsg, err = defaultLocalizer.LocalizeMessage(&i18n.Message{ID: messageID}) if err != nil { + fmt.Printf("Default translation error for message '%s': %v\n", messageID, err) return messageID } }