Если вы используете такой же Resource-Bundle, как в https://stackoverflow.com/a/3646601/5072526,, вы можете сделать это:
Измените ResourceBundle из этого ответа, чтобы у вас был дополнительный конструктор, который принимает локаль:
public I18NUtf8RessourceBundle(Locale locale) {
setParent(ResourceBundle.getBundle(BUNDLE_NAME,
locale, UTF8_CONTROL));
}
Затем создайте класс ValidationMessages
в пакете по умолчанию:
public class ValidationMessages extends I18NUtf8RessourceBundle{
public ValidationMessages() {
super(null);
}
}
Затем создайте тот же класс с определенной локалью (_en, _de и т. Д.):
public class ValidationMessages_en extends I18NUtf8RessourceBundle{
public ValidationMessages_en() {
super(Locale.ENGLISH);
}
}
Сделайте то же самое для всех ваших языков и каждый раз передавайте разные локали:
При этом все работает, вы даже можете иметь тот же файл для сообщений проверки, что и для обычных переводов!