Можно ли создать многоязычный файл справки (.chm)? - PullRequest
3 голосов
/ 30 августа 2011

Мне нужно создать многоязычный файл справки (.chm) для моего приложения WPF. Пожалуйста, предложите лучший способ создать его.

Ответы [ 2 ]

4 голосов
/ 30 августа 2011

Я бы постарался избежать этого, если это возможно.CHM является проприетарным форматом, и, хотя он был реверс-инжиниринг, я думаю, вы получите гораздо больше пользы от создания действительно портативного решения, такого как HTML на диске.

Назад, когда мы все еще использовали файлы CHM, мыне нашли простого способа встроить многоязычные возможности в один файл, и нам пришлось предоставлять переводы в независимых файлах CHM, что приводило к массовому дублированию таких вещей, как диаграммы, рисунки и т. д. (это было много лет назадпоэтому вам следует проверить, улучшилась ли ситуация с тех пор, если вы действительно хотите использовать CHM).

Поддержка Unicode была, скажем так, менее чем адекватной, и быломногочисленные проблемы с безопасностью, которые заставили многих клиентов запретить использование файлов CHM - если серьезно, кто в здравом уме разрешает запускать произвольный код с помощью справочной системы?

С HTML на диске не только исчезло это дублирование(поскольку каждая языковая версия включала в себя общие изображения), мы также получили гораздо лучшую поддержку Unicode иВозможность иметь титульную страницу по умолчанию (на английском языке) со ссылками на альтернативные титульные страницы для других локалей.

И мы значительно повысили мобильность, поскольку это открытый стандарт.Это означает, что мы можем запустить его в любом браузере на любой платформе.


И, кроме того, похоже, что Microsoft больше не поддерживает его.Из статьи Wikipedia CHM :

В 2002 году Microsoft объявила об угрозах безопасности, связанных с форматом .CHM, а также бюллетенях по безопасности и исправлениях.С тех пор они объявили о своих намерениях не развивать далее формат .CHM.

0 голосов
/ 30 августа 2011

Как и комментарии в предыдущем состоянии ответа, формат CHM является как очень старым форматом Microsoft, так и проприетарным. Распространение файлов HTML с вашим приложением будет выполнять те же функции, что и один файл CHM. Беспокойство о языке пользовательского интерфейса, который увидит пользователь, больше не проблема; Скорее всего, если пользователь читает справку на итальянском языке, он или она будет использовать (1) локализованную на итальянском языке версию Windows и (2) локализованный на итальянском языке веб-браузер.

При этом, поскольку CHM является старым форматом и, по-видимому, в настоящее время частично не поддерживается, вы можете сгенерировать тот же файл, основываясь на обратной спецификации , которой следуют файлы CHM. Кроме того, поскольку CHM - это просто двоичный формат файла, включающий файлы HTML, кодирование файлов HTML с использованием UTF-8 позволит получить сами справочные документы на любом языке, который вы пожелаете.

API-интерфейс CHM .NET, поддерживаемый Microsoft, отсутствует, поэтому вам придется выводить двоичный файл самостоятельно с помощью Streams / BinaryWriter.

...