现在正在为许多国家的用户开发应用程序,本地化非常重要。我在firefox的网站上看到它有70种语言版本。这极大地增加了他们的潜在市场。
在我最近的项目用户验收测试会话期间,发现了一个错误。例外是:
“字符串未被识别为有效 布尔“
就bug而言,我们试图用空字符串做一个bool.Parse()。附上一个有趣的说明,“识别”拼写错误。为了给出一些背景信息,用户在澳大利亚,“识别”是正确的拼写。不幸的是,我们没有生成此异常,因此更改它需要重新映射异常!
有没有人有类似情况的经验? 有没有办法本地化.net例外?
我接受过Microsoft认证考试,很多内容都与本地化和文化的重要性有关,所以我认为期待.NET框架也考虑这一点是合理的。
答案 0 :(得分:4)
我将跟进@Russell,因为没有错误消息本身应该被本地化,并且应该给出一个数字。但是,这是因为某个数字不会向试图侵入您的软件以利用它的人提供任何信息。您可能希望本地化消息以联系支持人员,而不是错误代码/堆栈跟踪。
如果您输入错误类型13251附加信息abc234,请联系支持人员,希望利用缓冲区溢出或SQL注入的人不会获得他们可以利用的反馈。
答案 1 :(得分:2)
嗯,异常消息通常不应该被提供给最终用户,尽管可能有一些例外(双关语不是:P)。
答案 2 :(得分:1)
好吧,我会开始的。
我发现这个article给出了为什么异常可能不想被本地化的原因。 对于公共API或库,具有完全相同的异常允许用户谷歌异常并找到结果并希望是一个解决方案。翻译会使这更加困难 我相信如果一个API可以给出一个数字错误值,这将解决问题,并允许抛出一个理解的异常。
答案 3 :(得分:1)
包含来自.NET Framework的异常消息的字符串是本地化的,前提是您已安装了相应的语言包 - 这些语言包可以是downloaded here。
但是我不认为有英语或澳大利亚英语的语言包,所以我们必须忍受美国英语。