2009-05-30 44 views
8

我指的是顯示開發人員錯誤地使用API​​的異常消息。例如錯誤地將null傳遞給方法。因此,開發人員在第一次運行錯誤代碼時會遇到的異常類型。應該永遠不會顯示給系統用戶的異常消息的類型。應該針對開發者的異常消息進行本地化嗎?

這與理論有關,因爲編程語言是英文的,所以程序員已經對英文有了解。或者至少足以破譯一個異常消息。

http://www.codinghorror.com/blog/archives/001248.html(請沒有這種理論在這裏討論)

是的,我知道,在.NET Framework遵循「本地化一切」的做法。

+0

我相信,對於英國人和美國人的消息應該本地化:Ь – 2014-10-02 12:23:46

回答

19

您的問題可以改爲「應該所有的開發者都得到相同的錯誤信息,以便他們可以谷歌嗎?」 ;)

答案是肯定的。

翻譯意味着

  • 的消息不再相同誰寫預期API。它可能具有相同的含義,或者它可能在翻譯中丟失了某些東西。它可能翻譯不好,在某些情況下,它可能是完全不可讀的。
  • 閱讀它的人不能簡單地將錯誤輸入到Google中,並查看其他所有發生此錯誤的人。因爲其他人都以不同的語言出現同樣的錯誤。

關於.NET的「本地化一切」方法,這是非常可怕的。我被無數次絆倒了,尤其是因爲如果它無法找到本地化的資源,它不會而不是給你簡單的英文版本。它會給你一個「無法找到資源」的錯誤,而不是有效地丟棄實際的錯誤信息。

+0

其實jal不是我所問的。我純粹是從讓開發人員瞭解他們做錯了什麼的角度思考問題。但這是我沒有考慮過的一個很好的觀點。 +1 – Simon 2009-05-30 12:29:38

+1

@jalf,我認爲這就是爲什麼每個IBM產品都有消息編號(例如DRL0122I)的原因,儘管錯誤文本本身可能是本地化的。無論語言如何,您始終可以搜索消息編號。 – paxdiablo 2009-05-30 12:58:22

+1

@Pax:真的,很好。這解決了一半的問題(讓人們可以谷歌),但不是關於實際理解錯誤的部分。除非原始開發者能夠流利地使用目標語言,否則您的翻譯不太可能是完美的。 – jalf 2009-05-30 13:11:43

0

這一切都取決於誰將維護代碼。如果開發者永遠是英語的話,那麼把所有的英語都保存下來是有道理的。此外,我不確定.NET Framework是否以本地方式拋出其錯誤消息。我一直認爲這些錯誤信息總是以英文顯示,因此將內部錯誤信息保留爲英文也是有意義的。

+2

從NullReferenceException異常的構造 公衆的NullReferenceException():基地(Environment.GetResourceString(「Arg_NullReferenceException」)) 和這裏有人詢問如何轉關閉異常本地化 http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon 2009-05-30 11:57:54

4

不,我不認爲他們應該(或者至少我們不這樣做,而且我們很大:-)。有足夠的精力將用戶所看到的所有內容本地化,而不必擔心開發人員。

沒有支持外文關鍵字和標準庫的主流語言,所以對於英語的基本命令已經是開發者的先決條件。

當然,如果開發人員開發自己的庫(或語言),他們可以自由地本地化或選擇非英語語言。

2

在我們公司,我們允許爲我們的編譯器/ IDE翻譯異常/錯誤消息,並提供翻譯這些異常/錯誤消息的框架,但我們不會自己做翻譯。然後,如果他願意,則由客戶來翻譯。有一些國家的英語不太流行,並且推廣了自己的語言。因此允許翻譯錯誤消息是有意義的。

0

如果您翻譯您的異常消息,則還應翻譯發生異常消息的所有文本。這包括您擁有的任何知識庫或錯誤跟蹤系統,因爲用戶和程序員需要搜索他們在屏幕上看到的異常消息。

相關問題