zoukankan      html  css  js  c++  java
  • 定制个性化码表技术 ibus

    在不同用户的工作环境中,都会根据各自使用的字符集的不同,而需要定制优化各自的输入法码表,例如,在GB18030中的大量汉字,或许因为输入法码表的老旧,而难于利用自己熟悉的“五笔”方法快速录入,同样,需要面对简繁体操作的用户也是如此。

        在SCIM中,如需定制或添加用户自定义码表,就需要了解一些相关知识和技术。首先,SCIM的码表目录是在“/usr/share/scim/tables/”中,里边已经存放了很多扩展名为“.bin”的码表文件,同以往其他系统一样,这些都是经过处理后的文件。之前介绍过如何得到一个码表文件的文本格式这就是说,只要将自己熟悉喜欢的码表文件转换为明码文件,就可以丰富定制自己的码表了。

    利用SCIM提供的工具将已有码表转换为明码,就可看到SCIM下的码表文件结构。

    # scim-make-table Wubi.bin -o NWubi.txt

    从转换为明码的SCIM码表中可以看到基本结构如下:

    SCIM_Generic_Table_Phrase_Library_TEXT

    VERSION_1_0

    ### Begin Table definition.

    BEGIN_DEFINITION

    UUID = 98e4ca3b-8321-4903-a59d-84abce 22f95a

    SERIAL_NUMBER = 20040227

    ICON = /usr/share/scim/icons/Wubi.png

    NAME = Wubi

    NAME.zh_CN = 五笔字型

    NAME.zh_HK = 五筆字型

    NAME.zh_TW = 五筆字型

    LANGUAGES = zh_CN,zh_SG,zh_TW,zh_HK

    ### AUTHOR =

    STATUS_PROMPT =

    KEYBOARD_LAYOUT = US_Default

    VALID_INPUT_CHARS = abcdefghijklmnopqrstuvwxy

    ### KEY_END_CHARS =

    SINGLE_WILDCARD_CHAR = z

    MULTI_WILDCARD_CHAR = *

    SPLIT_KEYS = apostrophe

    COMMIT_KEYS = space

    FORWARD_KEYS = Return

    SELECT_KEYS = 1,2,3,4,5,6,7,8,9

    PAGE_UP_KEYS = Page_Up,comma,minus

    PAGE_DOWN_KEYS = Page_Down,period,equal

    MODE_SWITCH_KEYS = Shift+KeyRelease+Shift_L,Shift+KeyRelease+Shift_R

    FULL_WIDTH_PUNCT_KEYS = Control+period

    FULL_WIDTH_LETTER_KEYS = Shift+space

    MAX_KEY_LENGTH = 4

    SHOW_KEY_PROMPT = FALSE

    AUTO_SELECT = TRUE

    AUTO_WILDCARD = TRUE

    AUTO_COMMIT = TRUE

    AUTO_SPLIT = FALSE

    AUTO_FILL = FALSE

    DISCARD_INVALID_KEY = TRUE

    DYNAMIC_ADJUST = FALSE

    ALWAYS_SHOW_LOOKUP = TRUE

    USE_FULL_WIDTH_PUNCT = TRUE

    DEF_FULL_WIDTH_PUNCT = TRUE

    USE_FULL_WIDTH_LETTER = TRUE

    DEF_FULL_WIDTH_LETTER = FALSE

    BEGIN_CHAR_PROMPTS_DEFINITION

    a

    b

    c

    d

    e

    f

    g

    h

    i

    j

    k

    l

    m

    n

    o

    p

    q

    r

    s

    t

    u

    v

    w

    x

    y

    END_CHAR_PROMPTS_DEFINITION

    END_DEFINITION

     

    ### Begin Table data.

    BEGIN_TABLE

    a    52175

    b    65535

    c    65535

    ……

    yyyy    文言 63

    yyyy    言谈话语 2

    END_TABLE

        SCIM的码表文件主要是由描述部分(BEGIN_DEFINITION……END_DEFINITION)和码表部分(BEGIN_TABLE……END_TABLE)两大块组成的。描述部分主要是输入法的一些基本的设置,如输入法的名字、输入法的图标等;码表部分就是各字、词对应的输入码。

        如果将一些自己工作需要的码表文件中的对应此表部分,以相同的结构关系,添加到其中,这样就可制成自定义的SCIM码表文件了。其中码表文件的名字、说明等可以根据需要修改,如自设计了独特的图标文件(48x48大小png图片),也要复制到/usr/share/scim/icons中,并校正第七行的“ICON=”语句。在第五行是这个码表的UUID号码,这是该码表的唯一标识号,如果保留原来的码表,而将新的码表定制后重新命名,则需要给出新的UUID号,如:

    [root@localhost tables]# uuidgen

    38f7c0ff-a324-4848-a385-969d9c8507dc

    [root@localhost tables]#

        定制好的码表文件,还需要转换为“.bin”文件,使用同样命令逆向完成。

    # scim-make-table NWubi.txt -b -o XWubi.bin

        可以通过SCIM设置菜单中的“通用码表”组中的“码表管理”来添加,或手工将新的码表文件复制到如下目录即可。

    cp XWubi.bin /usr/share/scim/tables

    cp XWubi.png usr/share/scim/icons

        重新启动X后,即可体验新的定制输入法功效

    参考 

    http://wiki.ubuntu.org.cn/IBus

  • 相关阅读:
    [转载]C#流,字节数组,字符串
    [C#错误]未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)
    批处理删除带空格的长目录或文件夹
    注释换行 引号内的字符串没有正确结束
    oracle sqlplus运行sql文件
    Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
    Tomcat:Caused by: java.lang.OutOfMemoryError: PermGen space
    虚拟机vmware启动太快无法进入bios的解决方法
    MySQL Error 1130 Host 'localhost' is not allowed to connect to this MySQL server
    如何远程判断服务器的操作系统?
  • 原文地址:https://www.cnblogs.com/key-ok/p/4134599.html
Copyright © 2011-2022 走看看