Skip to content

Commit ad28c68

Browse files
authored
Add LocalizeWithTag (#139)
1 parent 849c441 commit ad28c68

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

.codecov.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
coverage:
22
status:
3+
patch:
4+
default:
5+
threshold: 50%
36
project:
47
default: false
58
v1:

v2/i18n/localizer.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,16 @@ func (e *messageIDMismatchErr) Error() string {
103103

104104
// Localize returns a localized message.
105105
func (l *Localizer) Localize(lc *LocalizeConfig) (string, error) {
106+
msg, _, err := l.LocalizeWithTag(lc)
107+
return msg, err
108+
}
109+
110+
// LocalizeWithTag returns a localized message and the language tag.
111+
func (l *Localizer) LocalizeWithTag(lc *LocalizeConfig) (string, language.Tag, error) {
106112
messageID := lc.MessageID
107113
if lc.DefaultMessage != nil {
108114
if messageID != "" && messageID != lc.DefaultMessage.ID {
109-
return "", &messageIDMismatchErr{messageID: messageID, defaultMessageID: lc.DefaultMessage.ID}
115+
return "", language.Und, &messageIDMismatchErr{messageID: messageID, defaultMessageID: lc.DefaultMessage.ID}
110116
}
111117
messageID = lc.DefaultMessage.ID
112118
}
@@ -117,7 +123,7 @@ func (l *Localizer) Localize(lc *LocalizeConfig) (string, error) {
117123
var err error
118124
operands, err = plural.NewOperands(lc.PluralCount)
119125
if err != nil {
120-
return "", &invalidPluralCountErr{messageID: messageID, pluralCount: lc.PluralCount, err: err}
126+
return "", language.Und, &invalidPluralCountErr{messageID: messageID, pluralCount: lc.PluralCount, err: err}
121127
}
122128
if templateData == nil {
123129
templateData = map[string]interface{}{
@@ -127,13 +133,17 @@ func (l *Localizer) Localize(lc *LocalizeConfig) (string, error) {
127133
}
128134
tag, template := l.getTemplate(messageID, lc.DefaultMessage)
129135
if template == nil {
130-
return "", &MessageNotFoundErr{messageID: messageID}
136+
return "", language.Und, &MessageNotFoundErr{messageID: messageID}
131137
}
132138
pluralForm := l.pluralForm(tag, operands)
133139
if pluralForm == plural.Invalid {
134-
return "", &pluralizeErr{messageID: messageID, tag: tag}
140+
return "", language.Und, &pluralizeErr{messageID: messageID, tag: tag}
141+
}
142+
msg, err := template.Execute(pluralForm, templateData, lc.Funcs)
143+
if err != nil {
144+
return "", language.Und, err
135145
}
136-
return template.Execute(pluralForm, templateData, lc.Funcs)
146+
return msg, tag, nil
137147
}
138148

139149
func (l *Localizer) getTemplate(id string, defaultMessage *Message) (language.Tag, *internal.MessageTemplate) {

0 commit comments

Comments
 (0)