应该将exception消息全球化

我正在开展一个项目,我刚开始做全球化应用程序所需的所有工作。 经常出现的一件事是是否全局化exception消息,但确保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。 此外,这意味着exception消息将存储在可以标记为特定于文化的资源文件中。

所以问题是,exception消息应该全球化还是应该留在InvariantCulture或作者的国家; 在我的情况下en-US。

exception消息很少直接显示给用户。 您需要考虑每个字符串的消费者。 显然,用户界面中的文本片段需要国际化,但如果只有支持人员会看到exception消息(或者用户可见,然后在点击按钮时通过电子邮件发送给支持人员),那么翻译它?

如果你走得太远,你不仅会浪费时间和精力(而且我们可能需要付出很多努力),但你也会让你的支持生活更加艰难。 你真的不想阅读用外语编写的日志文件并将它们翻译成你的母语。

微软将exception消息国际化是有道理的,因为它们将被来自世界各地的开发人员阅读 – 但除非你是跨国公司与多个国家的开发人员不共享共同语言,否则我不会翻译消息这真的意味着开发/支持。

通常,我没有。

全局化用户可能看到的字符串,并且您不会让exception消息渗透到UI,对吧?

对? 🙂

如果您将成为处理exception的人,那么要么将它们留在您能理解的语言中,要么给它们代码,以便您可以用母语查找它们。

我假设通过globalize,你的意思是i18n兼容,通常称为国际化。 是的,国际化GUI的所有可见部分,包括诊断消息。 开发人员应该去获取堆栈跟踪等真实信息的日志文件不应该国际化。