2011-08-30 71 views

回答

4

如果可能的話,我會試着避開它。 CHM是一種專有格式,雖然它已被反向設計,但我認爲通過製作真正的便攜式解決方案(如磁盤上的HTML),您將獲得更多好處。當我們還在使用CHM文件

後退,我們沒有發現任何簡單的方法來嵌入多語言功能集成到一個單一的文件,我們不得不在獨立 CHM文件提供翻譯,導致東西像圖表,圖片大量複製等等(這是很多年前,所以你應該檢查自那時以來的情況是否有所改善,如果你真的想要使用CHM)。

對Unicode的支持是我們應該說的不夠充分,並且有許多安全問題導致許多客戶不允許使用CHM文件 - 嚴重的是,誰的頭腦允許任意代碼由幫助系統?

使用磁盤上的HTML,不僅這個重複消失(因爲每種語言版本都包含常見圖像),我們還獲得了更好的Unicode支持,並且具有默認首頁(英文版)其他語言環境的前臺頁面。

而且我們在可移植性方面獲得了很大的提升,因爲它是一個開放標準。這意味着我們幾乎可以在任何平臺上的任何瀏覽器上運行它。


而且,最重要的是,它似乎微軟不再支持它。從the Wikipedia CHM article

在2002年,微軟宣佈補丁與.CHM格式相關的安全風險,以及安全公告和。此後他們宣佈他們打算不進一步開發.CHM格式。

+0

而不是Vista的WinHelp棄用? –

+0

@paxdiablo:如果無法制作多語言chm文件,那就沒問題。但是我們可以用意大利語製作.chm文件,其中所有選項(隱藏,返回,打印,選項....)也必須在意大利語中。 –

+1

由於Sandcastle生成的HTML格式API文檔中沒有搜索/索引功能,我仍然喜歡API文檔的CHM - 雖然我希望現在會有更好的HTML解決方案。對於面向用戶的幫助,我當然不會選擇CHM。 –

0

如前面的應答狀態的意見,CHM格式是微軟既是非常舊格式,以及作爲專有。使用您的應用程序分發HTML文件將完成與單個CHM文件相同的功能。擔心用戶將看到的用戶界面的語言更不是問題;如果用戶正在閱讀意大利幫助,他或她將使用(1)意大利語本地化版本的Windows和(2)意大利語本地化網絡瀏覽器。

話雖這麼說,是因爲CHM是一個格式,貌似不支持的一部分,現在,你可以基於反向工程specification的CHM文件遵循相同的文件。此外,由於CHM僅僅是一種包含HTML文件的二進制文件格式,因此使用UTF-8對HTML文件進行編碼將以您想要的任何語言完成自己的幫助文檔。

沒有Microsoft支持的CHM .NET API,因此您必須使用Streams/BinaryWriter自己輸出Binary。

相關問題