From 50dcc47836d6b814aa7decc0ae42692fd3255f12 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 2 Apr 2026 06:39:39 +0000 Subject: [PATCH] fix(i18n): preserve translate ok in debug mode Co-Authored-By: Virgil --- debug_test.go | 17 +++++++++++++++++ service.go | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/debug_test.go b/debug_test.go index 7dce60f..2906963 100644 --- a/debug_test.go +++ b/debug_test.go @@ -83,3 +83,20 @@ func TestDebugMode_Good_Integration(t *testing.T) { got = svc.Raw("prompt.yes") assert.Equal(t, "[prompt.yes] y", got) } + +func TestTranslate_DebugMode_PreservesOK(t *testing.T) { + svc, err := New() + require.NoError(t, err) + SetDefault(svc) + + svc.SetDebug(true) + defer svc.SetDebug(false) + + translated := svc.Translate("prompt.yes") + assert.True(t, translated.OK) + assert.Equal(t, "[prompt.yes] y", translated.Value) + + missing := svc.Translate("missing.translation.key") + assert.False(t, missing.OK) + assert.Equal(t, "[missing.translation.key] missing.translation.key", missing.Value) +} diff --git a/service.go b/service.go index ec25ac8..c228757 100644 --- a/service.go +++ b/service.go @@ -905,6 +905,14 @@ func (s *Service) markLocaleProviderLoaded(id int) { } func translateOK(messageID, value string) bool { + if value == "" { + return false + } + if strings.HasPrefix(value, "["+messageID+"] ") { + value = strings.TrimPrefix(value, "["+messageID+"] ") + } else if value == "["+messageID+"]" { + value = "" + } if value == "" { return false }