Files
gf/util/gvalid/gvalid_validator_message.go

50 lines
1.6 KiB
Go
Raw Permalink Normal View History

2021-01-12 10:46:39 +08:00
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
package gvalid
2022-09-26 22:11:13 +08:00
import (
"context"
"github.com/gogf/gf/v2/util/gvalid/internal/builtin"
)
2020-05-10 22:32:10 +08:00
// getErrorMessageByRule retrieves and returns the error message for specified rule.
// It firstly retrieves the message from custom message map, and then checks i18n manager,
// it returns the default error message if it's not found in neither custom message map nor i18n manager.
func (v *Validator) getErrorMessageByRule(ctx context.Context, ruleKey string, customMsgMap map[string]string) string {
2020-05-10 22:32:10 +08:00
content := customMsgMap[ruleKey]
if content != "" {
// I18n translation.
i18nContent := v.i18nManager.GetContent(ctx, content)
if i18nContent != "" {
return i18nContent
}
2020-05-10 22:32:10 +08:00
return content
}
2022-09-26 22:11:13 +08:00
// Retrieve default message according to certain rule.
content = v.i18nManager.GetContent(ctx, ruleMessagePrefixForI18n+ruleKey)
2020-05-10 10:56:11 +08:00
if content == "" {
2022-09-26 22:11:13 +08:00
content = defaultErrorMessages[ruleKey]
}
// Builtin rule message.
if content == "" {
if builtinRule := builtin.GetRule(ruleKey); builtinRule != nil {
content = builtinRule.Message()
}
2020-05-10 10:56:11 +08:00
}
2020-09-21 23:51:30 +08:00
// If there's no configured rule message, it uses default one.
if content == "" {
content = v.i18nManager.GetContent(ctx, ruleMessagePrefixForI18n+internalDefaultRuleName)
2022-09-26 22:11:13 +08:00
}
// If there's no configured rule message, it uses default one.
if content == "" {
content = defaultErrorMessages[internalDefaultRuleName]
2020-09-21 23:51:30 +08:00
}
2020-05-10 10:56:11 +08:00
return content
2019-06-19 09:06:52 +08:00
}