找回密碼
 入住家園
查看: 747|回復: 0

【分享】制作自己的输入法

[複製鏈接]
發表於 2005-8-12 09:22:05 | 顯示全部樓層 |閱讀模式
自己制作 Windows 的中文输入法,非常简单,使用 Windows 的输入法生成器就好。在安装 Windows 2000的时候,其附件里就有这个东西,不过默认好像是不安装的,所以如果你没有,请使用控件面版->安装删除程序->Windows 组件->附件->输入法生成器。下面来说说各个细节。

一.码表源文件

  在 Windows 中制作自己的输入法是非常容易的事情,首先要准备一个码表源文件,该文件以纯文本(.txt) 格式保存,包括了输入法的名称、最大编码长度、码元集、查询键、构词规则等,以边城五笔为例。

源文件格式如下:(注:以 “//” 表示注释)

[Description]   //描述区段
Name=边城五笔   //输入法名称
MaxCodes=4      //输入法最大码长,五笔输入法是均为 4,即最多只能输入 4 码
MaxElement=2    //输入法的信息元。1 为单符,2 为多符
UsedCodes=abcdefghijklmnopqrstuvwxy     //输入法的码元集,即可能用于输入法的符号
WildChar=z      //查询键,五笔输入法中是 z
NumRules=3      //输入法构词规则数,需与 [Rule] 区段中的实际规则数一致

[Rule]          //规则区段,以下是三个构词规则,稍后详细说明
ca4=p11+p21+p31+n11     //大于等四个字的词由前三字第一码和最后一字第一码构成
ce2=p11+p12+p21+p22     //等于二个字的词由每个字的第一码和第二码构成
ce3=p11+p21+p31+p32     //等于三个字的词由前两个字的第一码和第三个字的前两码构成
[Text]          //编码区段,前面为汉字或词组,后面仅跟编码
工a aaaa        //一字(词)多码的,编码可以空格分隔写在后面,只填最少的码和最多的码

工aaaa          //如工,也可以是 aaa 输入,但只写 a 和 aaaa。也可以另起一行
工式aaaa
边城客栈lfps
边城狂人lfqw  

构词规则如下:

c[逻辑符][词语长度]=[序号标识][汉字序号][取码序号]+……
c 是构词标识,不可省略
逻辑符:e 表示等于;a 表示大于等于
词语长度:用 1 - f 表示,范围 1 - 15
序号标识:p 正序;n 反序
汉字序号:用 1 - f 分别表示第 1 - 15 个字
取码序号:取值范围 0 - MaxCodes,0 表示取该字所有编码

  码表源文件需要自己制作,也可适当转换某些输入法的码表,如我的边城五笔最初就是
转换的 UCDOS 码表,其源程序(PASCAL)提供如下:

  program mbutow;
var f,tf:text;
    fromfile,tofile:string[12];
    i:integer;
    a:array [1..12] of char;
    b:char;
begin
    write('From filename:');
    readln(fromfile);
    write('To filename:');
    readln(tofile);
    assign(f,fromfile);
    assign(tf,tofile);
    reset(f);
    rewrite(tf);
    while not eof(f) do

    begin
        for i:=1 to 12 do read(f,a);
        while not eoln(f) do
        begin read(f,b);
        if b<>' '
            then begin write (tf,b);
                write(b);
            end
        else begin i:=1;
            while a<>' ' do
            begin write(tf,a);
                write(a);
                i:=i+1;
            end;
            writeln(tf);
            writeln;
        end;
    end;
    i:=1;
    while a<>' ' do

    begin write(tf,a);
        write(a);
        i:=i+1;
        end;
        writeln(tf);
        writeln;
        readln(f);
    end;
    close(f);
    close(tf);
end.

注:该程序对 UCDOS 的其它输入并不适用!

二.生成输入法

  上述码表源文件完成之后,便可以开始编译码表文件和生成输入法文件了。这一步需要用到输入法生成器,一个 Windows 提供的输入法生成工具,安装在附件中。
  打开输入法生成器后,在“创建输入法”选项卡中,使用“浏览”按钮选择读入你的码表源文件,如果源文件格式无误,该选项卡中各项将会根据 [Description] 和 [Rule] 两个区段自动填充。

  确定无误后,选择“转换”按钮,将生成码表文件(.MB)。此时如果编码无误,转换完成后便合作“创建”按钮生成输入法文件(.IME),创建自己的输入法了。
  创建输入法时需要输入一些信息,通常只需要改变版本号、机构名称和用户定义输入法资源。输入法资源主要是图标和位图两资源,我将在下面细述。暂时使用默认选项,单击确定。
  输入法创建好后生成器将询问是否安装,由于还没加上图标和位图资源,先暂不安装。如果您不需要加上图标和位置,选择安装也可。

三.图标和位图资源

  图标和位图通俗点说就是输入法的门面、标志!图标是显示在输入法列表中的,而位图则在输入法窗口条上显示。它们的规格和标准如下:
   图标:16*16,16色
   位图:20*20,16色
  图标的制作推荐使用 Microangle 98,该软件在各下载站占均有下载,其教程可以边城客栈(http://outinn.myrice.com/)的“书籍教程”栏中找到。
  位图就用画笔制作都行,但要注意一点,如果你希望显示出立体效果,请把该位图的左上两边用白色线条,右下两边用黑色或深灰色线条。

  图标和位图准备好后,生成输入法的一步中,选择用户定义,并通过“浏览”按钮将图标和位图逐一选入即可。这次输入法完成,可以安装了。
  顺便说一下,选择资源时,帮助文件可以不选,如需使用将同名的 WinHelp 文件(.hlp)放在 Windows\System 目录下即可。

四.输入法的安装

  在完成输入法后,输入法生成器会提示是否安装。若选择是,则将输入法安装到计算机了。使用这个办法是最方便快速的,但如果要发行您的输入法,显然不能使用这个办法进行安装。所以,狂人专门制作的通用输入法安装程序,你只需要到边城客栈去下载就可以用了,软件包中有详细使用说明。

  现在,您学会制作自己的输入法了吗?
您需要登錄後才可以回帖 登錄 | 入住家園

本版積分規則

手機版|小黑屋|吳語書院

GMT+8, 2026-9-4 19:56 , Processed in 0.022756 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表