Validationの文字列を日本語にしたい
ASP.NET Core v1.1で数値型の場合、自動で付加されるValidationの文字列がありますが、これを日本語に変更する方法はありますか?
[例]
■ビューモデル(抜粋)
public class SampleViewModel
{
[DisplayName("値")]
[RegularExpression("^[-.0-9]*$", ErrorMessage = "値は数値を入力してください。")]
public float? Value { get; set; }
}
■ビュー(抜粋)
<td>
@Html.DisplayFor(model.Value)
</td>
■表示結果のHTMLコード
<div class="form-group">
<label class="col-md-2 control-label" for="Value">値</label>
<div class="col-md-10">
<input class="form-control" type="text" data-val="true" data-val-number="The field 値 must be a number." data-val-regex="値は数値を入力してください。" data-val-regex-pattern="^[-.0-9]*$" id="Value" name="Value" value="">
<span class="text-danger field-validation-valid" data-valmsg-for="Value" data-valmsg-replace="true"></span>
</div>
</div>
上記表示結果に
data-val-number="The field 値 must be a number."
といった具合に、英語表記された箇所があります。これが画面に出力されてしまうのです。。。
また、例のビューモデルのようにRegularExpressionを使えばある程度は防げるのですが、あまりスマートな方法ではなく(不要なValidationを付加させてますし、ビューモデルに必ず定義する手間もありますし)、「data-val-number」のエラーメッセージそのものを自動で上書きしたいと思っております。
色々調べてみましたが、ASP.NETのバージョンも多岐に渡っており、またバージョンごとに非互換も多く、最新のCoreで実現可能かつ”スマートな方法”が見つかりませんでした。
(.NET CoreのResources.resxをオーバーライドできればスマートな方法だと考えています…)