Перевести ошибки валидации при связывании

Вопрос в том, как я могу перевести ошибки проверки / привязки системы на другие языки? Подробности следующие: я получил это приложение wpf, которое будет многоязычным и, например, имеет привязку сетки к коллекции элементов и один из столбцов, DataLancamentoEdicao в приведенном ниже примере это привязка к DateTime:

<DataGridTextColumn Header="Data" Binding="{Binding SomeDateTime, ValidatesOnDataErrors=True, Mode=TwoWay, StringFormat=d}" />

И класс

public class SomeClass: INotifyPropertyChanged 
{ 
   public DateTime SomeDateTime {get {/*...*/}; set {/*...*/}}
}

Если пользователь вводит правильную дату, все в порядке, но если пользователь вводит, по ошибке какой-то мусор, такой как "blablabla", wpf сообщает, как и ожидалось, "Значение" blablabla "не может быть преобразовано", в некоторых случаях он сообщает, что строка была не распознается как действительный DateTime. Этот DateTime является примером, поскольку существуют другие привязки с десятичными числами, целыми числами, которые также страдают от той же проблемы.

Текстовое сообщение

Это, очевидно, хорошо для английского человека, но мне нужно, чтобы они были переведены на португальский, а также на другие языки, доступные пользователю на экране входа в систему.

Я уже установил культуру потока и язык wpf следующим образом

        Thread.CurrentThread.CurrentCulture = UserChoosenCulture;
        Thread.CurrentThread.CurrentUICulture = UserChoosenCulture;
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(UserChoosenCulture.IetfLanguageTag)));

Как я могу перевести эти строки? Есть ли какие-то ресурсы, которые я могу переопределить для достижения этой цели?

Спасибо.

1 ответ

Решение

<OPINION>Foremost, you should not rely on exceptions as error reports to the end-user. Exceptions are for yourself as a programmer.</OPINION>

Гарантированным методом будет написать свой собственный конвертер или validationRule (какой бы большой контроль вы не хотели иметь), самостоятельно перехватывать исключения и выводить свои собственные переведенные сообщения.

Валидация не должна вызывать исключение. Я не уверен, как вы достигли этого пользователя. Я просто получаю красную границу, когда я реализую проверку.

РЕДАКТИРОВАТЬ: Из того, что я прочитал, кажется, что они могут быть переведены. Меня беспокоит, установлен ли у вас этот языковой пакет. и т.п.

Другие вопросы по тегам