我正在开展一个项目,我刚开始做全球化应用程序所需的所有工作。经常出现的一件事是是否全局化异常消息,但确保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。此外,这意味着异常消息将存储在可以标记为特定于文化的资源文件中。
所以问题是,异常消息应该全球化还是应该留在InvariantCulture或作者的国家;在我的案例中,en-US。
答案 0 :(得分:34)
异常消息很少直接显示给用户。您需要考虑每个字符串的使用者。显然,用户界面中的文本片段需要国际化,但如果支持人员看到异常消息 ,那么用户可以看到该消息,然后在用户点击时通过电子邮件发送给支持人员按钮)然后翻译它的好处在哪里?
如果你走得太远,你不仅会浪费时间和精力(而且我们可以花费很多时间),但你也会让你的支持生活更加艰难。你真的不想阅读用外语编写的日志文件,并将它们翻译成你的母语。
微软将他们的异常消息国际化是有道理的,因为它们将被来自世界各地的开发人员读取 - 但除非你是开发人员的跨国公司多个不共享共同语言的国家,我不会翻译真正意味着开发/支持的信息。
答案 1 :(得分:10)
通常,我没有。
全局化用户可能看到的字符串,并且不要让异常消息渗透到UI,对吧?
右? :)
答案 2 :(得分:0)
如果您将成为处理异常的人,那么要么将它们留在您能理解的语言中,要么给它们代码,以便您可以用母语查找它们。
答案 3 :(得分:0)
我假设通过globalize,你的意思是i18n兼容,通常称为国际化。是的,国际化GUI的所有可见部分,包括诊断消息。开发人员应该去获取堆栈跟踪等真实信息的日志文件不应该被国际化。