代码改变世界

.NET开发系列工具之NDoc:让NDoc支持简体中文!(含修改了的源代码)

2005-06-21 13:32  灵感之源  阅读(5819)  评论(13编辑  收藏  举报
关于NDoc,无论是在博客园还是其它技术网站,都有大量的介绍,这里不介绍其功能(除非有大量网友要求我这样做),只给大家实现其对简体中文的支持。

NDoc缺省不支持简体中文,编译出来的chm文档(MSDN类型)显示的中文以“?”代替了。用google搜索了整个互联网,只有percyboy(破宝)弄了一个广泛流传的1.2简体中文安装版本,没有源代码,现在NDoc官方都出到1.31了,提供了一些新功能,改进了原来很多bugs。

在1.31中,用户可以直接选择LangID。

我很是着急,所以把NDoc的1.3 nightly-dev-build(最新开发版本,不稳定)拉了下来,最简单的方法是跟踪,一跟踪就发现了关键:原来每个documenter(姑且称之为“文档器”)都有一个config(配置),里面有一个LangID(语言ID),初始化和缺省都为1033(英文),只需要把这2个地方改为2052便可,如下:

        short _LangID = 2052;

        
/// <summary>Gets or sets the LangID property</summary>
        
/// <remarks>The language ID of the locale used by the compiled helpfile</remarks>

        [Category("HTML Help Options")]
        [Description(
"The ID of the language the help file is in.")]
        [DefaultValue((
short)2052)]
        [Editor(
typeof(LangIdEditor), typeof(UITypeEditor))]
        
public short LangID
        
{
            
get return _LangID; }

            
set
            
{
                _LangID 
= value;
                SetDirty();
            }

        }
    

文件分别为Msdn工程中的MsdnDocumenterConfig.cs和Msdn2工程中的Msdn2DocumenterConfig.cs

修改后实现了简体中文的显示。破宝汉化的版本还把一些关键字汉化了。要进行彻底汉化,还需要对大量的xslt文件进行汉化。

为了方便大家,我再进一步,把这些xslt都进行汉化,当然还有对应的documentor里面的代码了。

这里只给大家一个思路,具体应用,请根据自己的实际情况做选择。

需要自行编译的网友,必须先下载VSHIKhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwmscextendingnethelp.asp并安装之。

我修改的版本,只汉化了MSDN类型,点击这里下载。