バリデーションメッセージのラベル部を国際化
OValのようなアノテーションベースのバリデーションを採用する場合、ラベル部(「○○の入力は必須です」の○○の部分)の国際化をどうするかという話の続き。
gettext風に、プロパティファイルを自動生成(または差分マージ)するツールを作る方法が現実的かなあ。例えば以下のクラスを読み込んで、
package foo.dto; public class EmployeeDto { private String name; private String address; @NotNull public String getName() { return name; } @NotNull public String getAddress() { return address; } ... }
プロパティファイルを次のように書き出す。
foo.dto.EmployeeDto.name= foo.dto.EmployeeDto.address= ...
これを以下のように修正すれば、ローカライズ完了。
foo.dto.EmployeeDto.name=氏名 foo.dto.EmployeeDto.address=住所 ...