From d2017eb6e3fa46bb37dfc588cb8abf2803eed1bb Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 2 Apr 2026 07:23:49 +0000 Subject: [PATCH] fix(i18n): honour word map in action failures Co-Authored-By: Virgil --- grammar.go | 1 + grammar_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/grammar.go b/grammar.go index 15ae392..c7d0647 100644 --- a/grammar.go +++ b/grammar.go @@ -915,6 +915,7 @@ func ActionFailed(verb, subject string) string { if verb == "" { return "" } + verb = renderWord(currentLangForGrammar(), verb) if subject == "" { return "Failed to " + verb } diff --git a/grammar_test.go b/grammar_test.go index 1d995f6..4a2a60a 100644 --- a/grammar_test.go +++ b/grammar_test.go @@ -811,6 +811,36 @@ func TestActionFailed(t *testing.T) { } } +func TestActionFailed_RespectsWordMap(t *testing.T) { + prev := Default() + svc, err := New() + if err != nil { + t.Fatalf("New() failed: %v", err) + } + SetDefault(svc) + t.Cleanup(func() { + SetDefault(prev) + }) + + data := GetGrammarData("en") + if data == nil { + t.Fatal("GetGrammarData(\"en\") returned nil") + } + original, existed := data.Words["push"] + data.Words["push"] = "submit" + t.Cleanup(func() { + if existed { + data.Words["push"] = original + return + } + delete(data.Words, "push") + }) + + if got, want := ActionFailed("push", "commits"), "Failed to submit commits"; got != want { + t.Fatalf("ActionFailed(%q, %q) = %q, want %q", "push", "commits", got, want) + } +} + func TestGrammarData_Signals(t *testing.T) { svc, err := New() if err != nil {