バリデーションメッセージのラベル部を国際化

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=住所
...