2013-07-10 1 views
0

Вопрос в том, как я могу перевести ошибки проверки системы/привязки на другие языки? Ниже приведены следующие сведения: я получил это приложение 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 »не может быть преобразовано», в некоторых случаях он сообщает Строка не была признана действительной DateTime. Этот DateTime является примером, поскольку есть другие привязки с десятичными знаками, целыми числами, которые также страдают от одной и той же проблемы.

Text Message

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

Я уже установить культуру нити и языка МОФ, как следует

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

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

Спасибо.

ответ

0

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

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

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

EDIT: Из того, что я прочитал, кажется, что они могут быть переведены. Мои проблемы в том, установлен ли этот языковой пакет. и т. д.

+0

Это похоже на убийство и склонность к ошибкам. Переписав то, что Microsoft сделала только ради перевода сообщений. Разумеется, у Microsoft нет конкретных версий конвертера для каждого языка, и я считаю, что у него должны быть какие-то спутниковые сборки или управление цепочками ресурсов, просто невозможно найти правильное решение. – saamorim

+0

@saamorim Вы пропустили мою мысль. Исключения для диагностики. Они не предназначены для ошибок отображения конечного пользователя. Кроме того, насколько полезен «Невозможно преобразовать значение», а не «Недействительная дата». Кроме того, что, если вы хотите иметь допустимый диапазон дат? Вы выполняете свою собственную проверку. Если вам просто нужно красное кольцо без указания пользователю, почему вы используете проверку по умолчанию. Не говоря уже о том, что я понятия не имею, как ваши проверки исключений пузырятся до пользователя. Они не отображаются для меня (кроме окна вывода при отладке). –

+0

@saamorim Кроме того, у вас нет конкретных версий конвертера/валидатора для каждого языка. Вы «передаете» ваш перевод на внешние ресурсы. Существует несколько способов обработки динамического перевода с использованием XML, ресурсных словарей и т. Д. –

 Смежные вопросы

  • Нет связанных вопросов^_^