From e7bbae8d181e4a099f5e276aa28a3c832c8eb362 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 2 Apr 2026 11:34:08 +0000 Subject: [PATCH] fix(i18n): avoid duplicate lang miss dispatch Co-Authored-By: Virgil --- i18n.go | 2 +- i18n_test.go | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/i18n.go b/i18n.go index 0e755b7..4d6e8b9 100644 --- a/i18n.go +++ b/i18n.go @@ -259,7 +259,7 @@ func Lang(key string) string { } } } - return T("lang." + key) + return "lang." + key } func normalizeLookupKey(key string) string { diff --git a/i18n_test.go b/i18n_test.go index 8d5ea02..3ac547a 100644 --- a/i18n_test.go +++ b/i18n_test.go @@ -365,6 +365,28 @@ func TestLang_Good(t *testing.T) { } } +func TestLang_MissingKeyHandler_FiresOnce(t *testing.T) { + svc, err := New() + require.NoError(t, err) + prev := Default() + SetDefault(svc) + t.Cleanup(func() { + SetMissingKeyHandlers() + SetMode(ModeNormal) + SetDefault(prev) + }) + + SetMode(ModeCollect) + calls := 0 + SetMissingKeyHandlers(func(MissingKey) { + calls++ + }) + + got := Lang("zz") + assert.Equal(t, "[lang.zz]", got) + assert.Equal(t, 1, calls) +} + // --- AddHandler / PrependHandler --- func TestAddHandler_Good(t *testing.T) {