From 514bc6bd83501deb88488c445b7244501211148c Mon Sep 17 00:00:00 2001 From: Virgil Date: Wed, 1 Apr 2026 08:54:27 +0000 Subject: [PATCH] feat(i18n): allow grammar funcs in message templates Co-Authored-By: Virgil --- i18n.go | 2 +- service_test.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/i18n.go b/i18n.go index 3b41175..f7c4780 100644 --- a/i18n.go +++ b/i18n.go @@ -120,7 +120,7 @@ func applyTemplate(text string, data any) string { } return buf.String() } - tmpl, err := template.New("").Parse(text) + tmpl, err := template.New("").Funcs(TemplateFuncs()).Parse(text) if err != nil { return text } diff --git a/service_test.go b/service_test.go index 3dc5f71..d564573 100644 --- a/service_test.go +++ b/service_test.go @@ -267,6 +267,22 @@ func TestServiceTranslationContextExtrasInTemplates(t *testing.T) { } } +func TestServiceTemplatesSupportGrammarFuncs(t *testing.T) { + svc, err := New() + if err != nil { + t.Fatalf("New() failed: %v", err) + } + + svc.AddMessages("en", map[string]string{ + "build.status": "{{past .Verb}} complete", + }) + + got := svc.T("build.status", map[string]any{"Verb": "build"}) + if got != "built complete" { + t.Errorf("T(build.status) = %q, want %q", got, "built complete") + } +} + func TestServiceDirection(t *testing.T) { svc, err := New() if err != nil { -- 2.45.3