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 {