У меня есть приложение, которое переведено на иврит, кроме английского и немецкого..net локализация - исключение исключения на иврите на операционной системе englisch
Чтобы проверить ввод пользователя, я создал правило проверки, которое выдает ArgumentOutOfRangeException
, если значение превышает его пределы.
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
double validationValue = 0;
validationValue = double.Parse(value.ToString());
if(validationValue < Min)
{
ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
return new ValidationResult(false, ex.Message);
}
else if(validationValue > Max)
{
ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
return new ValidationResult(false, ex.Message);
}
return new ValidationResult(true, null);
}
Валидация работает.
Однако, если я установил язык приложения на иврит, используя CultureInfo.DefaultThreadCurrentCulture
и CultureInfo.DefaultThreadCurrentUICulture
, я получаю исключение на английском языке. Установка языка на немецкий или английский язык, я получаю правильное сообщение об исключении. Операционная система - Windows 7 english.
- Является ли текст исключения зависящим от установленных языков ОС?
- Могу ли я решить проблему, установив языковой пакет на иврите (только для Win 7 Enterprise/Ultimate Edition)?
Я попытался установить регион в Израиль, но я не могу установить иврит в моей текущей тестовой среде.
Я нашел темы, где люди говорили, что исключения не должны быть переведены. Я мог бы использовать мою внутреннюю службу локализации, чтобы бросить свое конкретное исключение с переведенным текстом. Но если есть шанс, я бы хотел этого избежать.
Почему имеет значение, на каком языке находится текст исключения, поскольку тип всегда один и тот же? Если вы не показываете сообщение об ошибке непосредственно пользователю? – stuartd
Вы пытались установить .Net Framework Language Pack? – Pikoh
Вы не должны возвращать сообщение об ошибке клиенту, исключения не переводится на все языки. Вы должны использовать какой-то механизм перевода, например, здесь -http: //stackoverflow.com/questions/26469667/custom-validation-message-language-specific –