我需要爲我的WPF應用程序創建多語言幫助(.chm)文件。請建議最佳方式來創建它。是否可以創建多語言幫助(.chm)文件?
回答
如果可能的話,我會試着避開它。 CHM是一種專有格式,雖然它已被反向設計,但我認爲通過製作真正的便攜式解決方案(如磁盤上的HTML),您將獲得更多好處。當我們還在使用CHM文件
後退,我們沒有發現任何簡單的方法來嵌入多語言功能集成到一個單一的文件,我們不得不在獨立 CHM文件提供翻譯,導致東西像圖表,圖片大量複製等等(這是很多年前,所以你應該檢查自那時以來的情況是否有所改善,如果你真的想要使用CHM)。
對Unicode的支持是我們應該說的不夠充分,並且有許多安全問題導致許多客戶不允許使用CHM文件 - 嚴重的是,誰的頭腦允許任意代碼由幫助系統?
使用磁盤上的HTML,不僅這個重複消失(因爲每種語言版本都包含常見圖像),我們還獲得了更好的Unicode支持,並且具有默認首頁(英文版)其他語言環境的前臺頁面。
而且我們在可移植性方面獲得了很大的提升,因爲它是一個開放標準。這意味着我們幾乎可以在任何平臺上的任何瀏覽器上運行它。
而且,最重要的是,它似乎微軟不再支持它。從the Wikipedia CHM article:
在2002年,微軟宣佈補丁與.CHM格式相關的安全風險,以及安全公告和。此後他們宣佈他們打算不進一步開發.CHM格式。
如前面的應答狀態的意見,CHM格式是微軟既是非常舊格式,以及作爲專有。使用您的應用程序分發HTML文件將完成與單個CHM文件相同的功能。擔心用戶將看到的用戶界面的語言更不是問題;如果用戶正在閱讀意大利幫助,他或她將使用(1)意大利語本地化版本的Windows和(2)意大利語本地化網絡瀏覽器。
話雖這麼說,是因爲CHM是一個老格式,貌似不支持的一部分,現在,你可以基於反向工程specification的CHM文件遵循相同的文件。此外,由於CHM僅僅是一種包含HTML文件的二進制文件格式,因此使用UTF-8對HTML文件進行編碼將以您想要的任何語言完成自己的幫助文檔。
沒有Microsoft支持的CHM .NET API,因此您必須使用Streams/BinaryWriter自己輸出Binary。
- 1. 如何從另一個CHM幫助文件中打開CHM幫助文件
- 2. 是否可以使用WIX創建多語言安裝程序?
- 3. 如何在CHM幫助文件中創建內部鏈接
- 4. WordPress的多語言幫助
- 5. SharpDevelop:您是否可以爲非.NET語言創建語言插件
- 6. Qt和chm幫助文件格式
- 7. C++ Builder和CHM幫助文件
- 8. 創建SOAP文件幫助
- 9. iPhone幫助文件創建
- 10. 是否可以創建輔助存儲?
- 11. SonarQube - 幫助創建新的語言插件
- 12. 是否可以在表達式語言中創建日期值?
- 13. 是否有任何XCode插件可以幫助自動創建代表?
- 14. 在django中需要多語言幫助
- 15. 是否可以在CHM(編譯的HTML幫助)文件中啓用視覺樣式?
- 16. 是否可以將多語言文本庫嵌入到iPhone
- 17. Sitecore導入語言文件功能 - 是否創建語言版本?
- 18. F#語言參考文檔是否以離線格式提供(PDF,CHM)?
- 19. 可以爲CHM文件創建索引嗎?
- 20. c語言:printf的幫助
- 21. 配置VS2013幫助語言
- 22. 是否可以使用JCL創建多個日誌文件?
- 23. 是否可以從XML文件創建多個對象?
- 24. 我發現SwfDotNet可以幫助我用C#創建swf flash文件,但是
- 25. 是否可以在JavaScript文件(.js)中使用web2py語言?
- 26. Java建模語言是否可執行?
- 27. 是否可以「隱藏」語言擴展?
- 28. 如何根據源文檔註釋生成CHM幫助文件?
- 29. 是否可以爲多種語言使用單個資源文件?
- 30. 腳本語言是否可以翻譯成其他語言?
而不是Vista的WinHelp棄用? –
@paxdiablo:如果無法制作多語言chm文件,那就沒問題。但是我們可以用意大利語製作.chm文件,其中所有選項(隱藏,返回,打印,選項....)也必須在意大利語中。 –
由於Sandcastle生成的HTML格式API文檔中沒有搜索/索引功能,我仍然喜歡API文檔的CHM - 雖然我希望現在會有更好的HTML解決方案。對於面向用戶的幫助,我當然不會選擇CHM。 –