Перевести ошибки валидации при связывании
Вопрос в том, как я могу перевести ошибки проверки / привязки системы на другие языки? Подробности следующие: я получил это приложение 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 (какой бы большой контроль вы не хотели иметь), самостоятельно перехватывать исключения и выводить свои собственные переведенные сообщения.
Валидация не должна вызывать исключение. Я не уверен, как вы достигли этого пользователя. Я просто получаю красную границу, когда я реализую проверку.
РЕДАКТИРОВАТЬ: Из того, что я прочитал, кажется, что они могут быть переведены. Меня беспокоит, установлен ли у вас этот языковой пакет. и т.п.