Если сообщения об исключении должны быть глобализованы
Я работаю над проектом, и я только начинаю делать всю работу, необходимую для глобализации приложения. Очень часто возникает вопрос о том, следует ли глобализовать сообщения об исключениях, но при условии, что string.Format использует CultureInfo.CurrentCulture вместо CultureInfo.InvariantCulture. Кроме того, это означало бы, что сообщения об исключениях будут храниться в файлах ресурсов, которые могут быть помечены как относящиеся к культуре.
Итак, вопрос в том, должны ли сообщения об исключениях быть глобализованы или должны быть оставлены либо в InvariantCulture, либо в стране-авторе; в моем случае en-US.
Ответы
Ответ 1
Сообщения об исключении редко отображаются непосредственно пользователю. Вы должны думать о потребителе для каждой строки. Очевидно, что фрагменты текста в пользовательском интерфейсе нуждаются в интернационализации, но если сообщение об исключении будет видно только по поддержке (или оно будет видимым для пользователя, а затем отправлено по электронной почте для поддержки при нажатии кнопки), тогда, когда преимущество перевод?
Если вы заходите слишком далеко, вы можете не только тратить время и силы (и я могу приложить немало усилий), но вы также сделаете вашу жизнь поддержки более сложной. Вы действительно не хотите читать файлы журналов, написанные на иностранном языке, и переводить их на свой родной язык.
Для Microsoft имеет смысл интернационализировать свои сообщения об исключениях, поскольку они будут прочитаны разработчиками со всего мира, но если вы не являетесь многонациональным разработчиком в разных странах, которые не имеют общего языка, t переводят сообщение, которое действительно предназначено для dev/support.
Ответ 2
обычно, я этого не делаю.
Локализуйте строки, которые могут видеть пользователи, и вы не позволяете своим сообщениям об исключениях перколить до пользовательского интерфейса, правильно?
Правильно?:)
Ответ 3
Если вы собираетесь справиться с исключениями, либо оставите их на языке, который вы можете понять, либо дайте им коды, чтобы вы могли посмотреть их на своем родном языке.
Ответ 4
Я предполагаю, что глобализация означает i18n, который обычно называется интернационализацией. Да, интернационализировать все видимые части графического интерфейса, включая диагностические сообщения. Файл журнала, в который разработчики должны пойти, чтобы получить реальную информацию, такую как трассировка стека, не должен быть интернационализирован.