11package i18n
22
33import (
4- "bytes"
54 "fmt"
65
76 "text/template"
@@ -19,12 +18,12 @@ type MessageTemplate struct {
1918// NewMessageTemplate returns a new message template.
2019func NewMessageTemplate (m * Message ) * MessageTemplate {
2120 pluralTemplates := map [plural.Form ]* internal.Template {}
22- setPluralTemplate (pluralTemplates , plural .Zero , m .Zero )
23- setPluralTemplate (pluralTemplates , plural .One , m .One )
24- setPluralTemplate (pluralTemplates , plural .Two , m .Two )
25- setPluralTemplate (pluralTemplates , plural .Few , m .Few )
26- setPluralTemplate (pluralTemplates , plural .Many , m .Many )
27- setPluralTemplate (pluralTemplates , plural .Other , m .Other )
21+ setPluralTemplate (pluralTemplates , plural .Zero , m .Zero , m . LeftDelim , m . RightDelim )
22+ setPluralTemplate (pluralTemplates , plural .One , m .One , m . LeftDelim , m . RightDelim )
23+ setPluralTemplate (pluralTemplates , plural .Two , m .Two , m . LeftDelim , m . RightDelim )
24+ setPluralTemplate (pluralTemplates , plural .Few , m .Few , m . LeftDelim , m . RightDelim )
25+ setPluralTemplate (pluralTemplates , plural .Many , m .Many , m . LeftDelim , m . RightDelim )
26+ setPluralTemplate (pluralTemplates , plural .Other , m .Other , m . LeftDelim , m . RightDelim )
2827 if len (pluralTemplates ) == 0 {
2928 return nil
3029 }
@@ -34,9 +33,13 @@ func NewMessageTemplate(m *Message) *MessageTemplate {
3433 }
3534}
3635
37- func setPluralTemplate (pluralTemplates map [plural.Form ]* internal.Template , pluralForm plural.Form , src string ) {
36+ func setPluralTemplate (pluralTemplates map [plural.Form ]* internal.Template , pluralForm plural.Form , src , leftDelim , rightDelim string ) {
3837 if src != "" {
39- pluralTemplates [pluralForm ] = & internal.Template {Src : src }
38+ pluralTemplates [pluralForm ] = & internal.Template {
39+ Src : src ,
40+ LeftDelim : leftDelim ,
41+ RightDelim : rightDelim ,
42+ }
4043 }
4144}
4245
@@ -58,15 +61,5 @@ func (mt *MessageTemplate) Execute(pluralForm plural.Form, data interface{}, fun
5861 messageID : mt .Message .ID ,
5962 }
6063 }
61- if err := t .Parse (mt .LeftDelim , mt .RightDelim , funcs ); err != nil {
62- return "" , err
63- }
64- if t .Template == nil {
65- return t .Src , nil
66- }
67- var buf bytes.Buffer
68- if err := t .Template .Execute (& buf , data ); err != nil {
69- return "" , err
70- }
71- return buf .String (), nil
64+ return t .Execute (funcs , data )
7265}
0 commit comments