2010-08-13 2 views
1

Я работаю на импорт данных функций для библиотеки в последнее время, и я нашел себя делать это:Должен ли я локализовать сообщения об ошибках в моих исключениях?

throw new InvalidDataException(string.Format("Line number {0} is {1} characters instead of {2}", lineNumber, line.Length, ValidLineLength)) 

Это полезно отладочной информацию на английском язык. Если он появляется в Журнале событий Windows где-то или отображается пользователю, у него будет гораздо больше информации, чем тот, кто не понимает язык.

Что делать, если автор кода не использует английский (по какой-либо причине), и они создают сообщение об ошибке вроде этого?

throw new InvalidDataException("悲しい機能は悲しいです") 

Для всех, кто использует код и говорит на одном и том же языке, это здорово. Для остальных из нас ... что это значит, когда мы регистрируем его?

Каковы ваши причины для локализации сообщений об ошибках?

+1

Ну, если они используют библиотеку классов .NET, они уже должны хорошо разбираться на английском языке, чтобы распознавать имена классов и т. Д. И, конечно же, пользователи должны * никогда не видеть текст ваших исключений. –

+1

Я недавно задал аналогичный вопрос, вы можете найти его полезным - http://stackoverflow.com/questions/3308132/should-logging-be-affected-by-internationalisation – fletcher

+0

@Kirk Woll Почему они никогда не видят текст? исключений? Конечно, они никогда не должны видеть, как они появляются в интерфейсе, но что не так с ними в файлах журналов? Предполагая, что вы недостаточно глупы, чтобы помещать защищенную информацию в текст исключения. –

ответ

0

В вашем заявлении исключения, throw, new, InvalidDataException, string и Format все на английском языке. Любой программист, использующий вашу библиотеку (или, если на то пошло, кодирование на любом распространенном языке программирования), должен будет говорить по-английски.

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