Skip to content

テンプレート

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 呼び出しが無いことを保証して ください。

MIT ライセンスのもとで公開されています。