2009-05-30 3 views
8

Я имею в виду сообщения об исключениях, которые показывают, что разработчик неправильно использует API. Например, неверно передать метод null. Таким образом, тип исключения, который разработчик получит при первом запуске своего неправильного кода. Тип сообщения об исключении, которое никогда не должно отображаться пользователю системы.Следует ли локализовать сообщения об исключениях, предназначенные для разработчика?

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

http://www.codinghorror.com/blog/archives/001248.html (пожалуйста, не обсуждение этой теории здесь)

И да, я не знаю, что рамки .net следует «локализовать все» подход.

+0

Я уверен, что сообщения для англичан и американцев должны быть локализованы: ь –

ответ

19

Ваш вопрос может быть перефразирован как «должны ли все разработчики получать одинаковое сообщение об ошибке, чтобы они могли его использовать?» ;)

И ответ на этот вопрос - да.

Перевод означает, что

  • сообщение больше не такой же, как тот, кто написал API предназначен. Это может иметь то же значение, иначе оно могло бы потерять что-то в переводе. Это может быть плохо переведено, и в некоторых случаях оно может быть совершенно нечитаемым.
  • Тот, кто его читает, не может просто ввести ошибку в Google и посмотреть, что сделали все остальные, кто получил эту ошибку. Потому что все остальные получили ту же ошибку на другом языке.

О методе «локализовать все» в .NET. Это ужасно. Я был опрокинут ею бесчисленное количество раз, особенно потому, что, если он не может найти локализованный ресурс, он делает не. Вместо этого он дает вам ошибку «Не удалось найти ресурс», эффективно отбрасывая фактическую информацию об ошибках.

+0

Фактически, это не то, что я просил. Я думал исключительно о том, чтобы заставить разработчика понять, что они сделали неправильно. Но это очень хороший момент, который я не рассматривал. +1 – Simon

+1

@ jalf, я думаю, поэтому каждый продукт IBM имеет номера сообщений (например, DRL0122I), хотя сам текст ошибки может быть локализован. Вы всегда можете найти номер сообщения независимо от языка. – paxdiablo

+1

@Pax: Верно, и хорошая точка. Это решает половину проблемы (позволяя людям использовать это в Google), но не часть того, что действительно понимает ошибку в первую очередь. Если исходный разработчик не говорит на целевом языке, ваш перевод вряд ли будет идеальным. – jalf

0

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

Кроме того, я не уверен, что .NET Framework выдает свои сообщения об ошибках локализованным способом. Я всегда думал, что эти сообщения об ошибках всегда находятся на английском языке, поэтому было бы целесообразно сохранять ваши внутренние сообщения об ошибках на английском языке.

+2

из конструктора NullReferenceException общественного NullReferenceException(): основание (Environment.GetResourceString («Arg_NullReferenceException»)) и вот кто-то спрашивает, как включить выключения локализации для исключений http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon

4

Нет, я не думаю, что они должны быть (или, по крайней мере, мы этого не делаем, и мы довольно большие :-). Там достаточно усилий, чтобы локализовать все вещи, которые пользователи видят, не беспокоясь о разработчиках.

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

Конечно, если разработчики разрабатывают свои собственные библиотеки (или язык), они вполне могут локализовать или выбрать неанглийский язык.

2

В нашей фирме мы разрешаем переводы исключений/ошибок для нашего компилятора/IDE и поставляем фреймворк для перевода этих исключений/сообщений об ошибках, однако мы сами не делаем перевод. Тогда клиент может перевести, если захочет.Есть ряд стран, где английский язык не так популярен и где продвигается собственный язык. Поэтому имеет смысл разрешить преобразованные сообщения об ошибках.

+3

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

+0

Почти всегда сообщения об ошибках являются ex.Message, поэтому они - одно и то же. –

0

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

+1

Пользователи не хотят искать сообщения об исключениях. Пользователи не могут ожидать, что они поймут, что «Ссылка на объект не установлена ​​на экземпляр объекта». означает даже на их родном языке. На самом деле это кажется немного глупым, если смотреть с точки зрения не-программирования. –

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