テンプレート
go
func SetMessageTemplates(templates map[string]string, lang ...language.Tag)templates を指定ロケールのテンプレートセットへマージし、既存の エントリを上書きします。ロケール省略時はパッケージデフォルト (language.Chinese)。
例
デフォルトロケール(中国語)
go
govalid.SetMessageTemplates(map[string]string{
"required": "不能留空",
"min": "应当不小于",
})特定のロケール
go
govalid.SetMessageTemplates(map[string]string{
"required": "must not be empty",
}, language.English)新しいロケールを追加する
ロケールは最初の呼び出し時に作成されます:
go
govalid.SetMessageTemplates(map[string]string{
"required": " は必須です",
}, language.Japanese)診断テンプレート
go
govalid.SetMessageTemplates(map[string]string{
"_checkerNotFound": "未知的校验规则",
"_paramError": "校验规则参数错误",
"_valueTypeError": "字段类型不支持该规则",
"_fieldNotFound": "引用的字段不存在",
"_unknownErrorTemplate": "校验失败",
})テンプレート文法
| パターン | 効果 |
|---|---|
プレーン文字列("不能为空") | フィールドラベルが前置、制限値が設定されていれば末尾に追加 |
{field} / {limit} を含む | プレースホルダーがそのまま置換される |
{{ … }} で包まれる | ラベル前置と制限値末尾追加を完全にスキップ |
例とエッジケースは エラーメッセージ を参照。
ロケールフォールバック
| 状況 | 結果 |
|---|---|
| ロケール登録済み、キー登録済み | そのエントリを使用 |
| ロケール登録済み、キー欠落 | そのロケールの _unknownErrorTemplate にフォールバック |
| ロケール未登録 | デフォルトロケールのテーブルにフォールバック |
並行性
SetMessageTemplates は 同期されていません。テンプレートは起動 時に変更してください。実行時に変更が必要な場合、自前のミューテック スで包み、その間飛んでいる Check 呼び出しが無いことを保証して ください。