2009-01-23 69 views
10

我正在開發一個項目,並且我剛開始完成全球化應用程序所需的所有工作。經常出現的一個問題是是否全球化異常消息,但確保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。此外,這意味着異常消息將被存儲在可以標記爲特定於文化的資源文件中。應該將異常消息全球化

所以問題是,如果異常信息是全球化的,或者應該留在InvariantCulture或作者的國家;在我的情況下,美國。

回答

32

異常消息應該很少直接顯示給用戶。你需要爲每個字符串考慮消費者。顯然,用戶界面中的文本需要國際化,但是如果有異常消息是,那麼只有纔會被支持人員看到(或者在用戶看來可以看到,然後通過電子郵件發送到他們點擊按鈕時支持),那麼翻譯它的好處?

如果你走得太遠,你不僅會浪費時間和精力(而且國際化可能會花費很多努力),但你也會讓你的支持生活更加艱難。你真的不想讀取用外語書寫的日誌文件並將它們翻譯回你的母語。

這是有道理的,微軟以國際化他們異常消息,因爲他們將開發商來自世界各地的讀取 - 但除非你是跨國公司與開發商在多個國家誰不都有一個共同的語言,我不會翻譯真正用於開發/支持的消息。

+0

+1我認爲更實用的方法。 – 2009-01-23 20:57:21

+0

+1,但我從前僱主那裏聽說的一個原因是,類似的例外可以通過多種方法拋出。如果他們想改變異常的措辭,他們只需要在一個地方編輯資源包。我認爲這是愚蠢的... – 2009-01-23 21:07:42

0

如果您打算處理例外情況,那麼請將它們留在您能夠理解的語言中,或者給他們提供代碼,以便您可以用母語查找它們。

10

通常,我不知道。

全球化可能會被用戶看到的字符串,並且您不會讓您的異常消息滲透到UI,對嗎?

對不對? :)

+0

+1表示與Jon S相同,但是簡短 – MarkJ 2009-03-13 16:00:40

0

我假定通過全球化,你的意思是i18n兼容,通常被稱爲國際化。是的,國際化GUI的所有可見部分,包括診斷消息。日誌文件是開發人員獲取真實信息(如堆棧跟蹤)的地方,不應國際化。