11

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

所以问题是,异常消息应该全球化还是应该留在 InvariantCulture 或作者所在的国家?在我的情况下,美国。

4

4 回答 4

36

异常消息应该很少直接显示给用户。您需要考虑每个字符串的消费者。显然,用户界面中的文本片段需要国际化,但是如果异常消息只会被支持人员看到(或者对用户可见,然后在他们单击按钮时通过电子邮件发送给支持人员),那么这样做的好处在哪里?翻译它?

如果你走得太远,你不仅会浪费时间和精力(而 i18n 可能会花费很多精力),而且还会让你的支持生活变得更加艰难。您真的不想阅读用外语编写的日志文件并将它们翻译回您的母语。

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

于 2009-01-23T20:52:05.393 回答
10

通常,我不会。

将用户可能看到的字符串全球化,并且您不会让异常消息渗透到 UI 中,对吗?

对?:)

于 2009-01-23T20:50:15.710 回答
0

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

于 2009-01-23T20:50:13.197 回答
0

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

于 2009-01-23T20:55:27.273 回答