Что я сделал на данный момент:
[*]Я создал ресурсы/i18n/validation_az.properties для всех моих сообщений проверки, включая сообщения для стандартных ограничений Джакарты:
Код: Выделить всё
validation.unique=artıq mövcuddur
jakarta.validation.constraints.NotEmpty.message=boş olmamalıdır
Код: Выделить всё
@ApplicationScoped
public class LocaleBasedMessageInterpolator implements MessageInterpolator
{
private final MessageInterpolator defaultInterpolator;
@Inject
public LocaleBasedMessageInterpolator()
{
this.defaultInterpolator = new ResourceBundleMessageInterpolator();
}
@Override
public String interpolate(String messageTemplate, Context context)
{
return interpolate(messageTemplate, context, Locale.getDefault());
}
@Override
public String interpolate(String messageTemplate, Context context, Locale locale)
{
Locale effectiveLocale = locale != null ? locale : Locale.getDefault();
ResourceBundle bundle = ResourceBundle.getBundle("i18n.validation", effectiveLocale);
String localizedMessage = bundle.containsKey(messageTemplate) ? bundle.getString(messageTemplate) : messageTemplate;
return defaultInterpolator.interpolate(localizedMessage, context, effectiveLocale);
}
}
Странно то, что мои пользовательские сообщения об ограничениях отображаются на азербайджанском языке нормально, но В Джакарте застряли на английском языке.
Например, я получаю такие ответы:
Код: Выделить всё
[
{
"path": "password",
"message": "must not be empty"
},
{
"path": "email",
"message": "artıq mövcuddur"
}
]
Заранее благодарю за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/790 ... -languages
Мобильная версия