Должны ли сообщения об исключениях быть глобальными - PullRequest
10 голосов
/ 23 января 2009

Я работаю над проектом и только начинаю выполнять всю работу, необходимую для глобализации приложения. Часто возникает вопрос, следует ли глобализировать сообщения об исключениях, но при этом необходимо, чтобы string.Format использовал CultureInfo.CurrentCulture вместо CultureInfo.InvariantCulture. Кроме того, это будет означать, что сообщения об исключениях будут храниться в файлах ресурсов, которые можно пометить как специфичные для культуры.

Таким образом, вопрос в том, должны ли сообщения об исключениях быть глобальными или их следует оставить либо в InvariantCulture, либо в стране автора; в моем случае en-US.

Ответы [ 4 ]

34 голосов
/ 23 января 2009

Сообщения об исключениях редко должны отображаться непосредственно пользователю. Вы должны думать о потребителе для каждой строки. Очевидно, что фрагменты текста в пользовательском интерфейсе нуждаются в интернационализации, но если сообщение об исключении будет только , оно будет увидено службой поддержки (или будет видимым для пользователя, а затем отправлено по электронной почте для поддержки при нажатии кнопки ) тогда какая польза от его перевода?

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

Microsoft имеет смысл интернационализировать их сообщений об исключениях, потому что они будут прочитаны разработчиками со всего мира - но если вы не являетесь многонациональным с разработчиками в разных странах если у меня нет общего языка, я бы не стал переводить сообщения, которые действительно предназначены для dev / support.

10 голосов
/ 23 января 2009

обычно нет.

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

Правильно? :)

0 голосов
/ 23 января 2009

Я предполагаю, что под глобализацией вы подразумеваете совместимость i18n , которая обычно называется интернационализацией. Да, интернационализируйте все видимые части графического интерфейса, включая диагностические сообщения. Файл журнала, куда разработчики должны обращаться за реальной информацией, такой как трассировка стека, не должен быть интернационализирован.

0 голосов
/ 23 января 2009

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

...