西西河

主题:【原创】【囧斋随笔】关于输入法 -- 范含

共:💬32 🌺47 新:
全看分页树展 · 主题 跟帖
家园 【囧斋随笔】20071118,关于输入法(三)

后来,去了日本待了两年,这时候系统已经进化成了日文Windows XP,并且终于用上了日语键盘,体会到了这种键盘是个什么样。不得不说一句废话,日语键盘确实适合输入日语。

现在明白了为啥启动时候就是输入法状态了,因为所有的按键都将由输入法处理,通过【全角/半角】一个键就可以方便的切换。半角英数状态下,所有按键无障碍的跳过输入法处理而上交系统,和关闭输入法的时候没有区别。

实际上高级文字服务的设置中,选择语言只能筛选可添加的“输入法”;在下拉列表中,所有“键盘布局”还是都挂着的。可以找到一个日文键盘布局,试一试就会发现,那些额外的变换键不起任何作用。归根到底,“键盘布局”只是一个硬件扫描码到虚拟键值的映射方式。Windows系统本身没有响应各个文化所需要的功能键的设定,日本人想要方便,就得在输入法里面加点料。于是乎,输入法总是打开的,想方便就关不得。

另外一点感受就是,理解了为啥切换状态键要命名为【全角/半角】。和中文不一样,日文由于有了半角片假名,是可以和半角英数字混合使用的。传统的全角假名状态下,就连字母和数字都是全角。作为对照,中文处理中,标点有中英文和全半角两个选项四种组合。这一点从2.13时代就固定下来。

说实话,直到现在咱还是认为中文处理的方式更合理一些,毕竟本来字母数字就是半角,使用它们用以较长内容的情况多半是引用原文。而原文自然是半角,硬要增肥难看的很。但是,用了几年日语Widows环境之后,感觉有些动摇。

所谓“全角”、“半角”,本来就是字符界面下,使用等宽字体时处理的术语。终端环境下的字体都是等宽字体,适合系统处理和屏幕显示,但是看上去不爽。这里的“不爽”估计咱们可能没啥感觉,因为中文字体都是等宽的。即便是这次微软花大钱专为屏幕显示而弄的雅黑和正黑,其中的方块字也都是等宽。

西方文字用的是宽度不等的拉丁字母,而日文除了方块字之外还有尺寸往往撑不起一个方块的假名。即便是中文系统,只要装了Office,估计也能找到“MS Gothic/PGothic”和“MS Mincho/PMincho”这两套日文字体。有没有P的区别,就是在于对字母与假名的处理上:没有P的是等宽字体,半角宽度严格的是全角的一半。系统界面和通常的应用程序(代表是Excel),使用的是有P的那一套。(严格说,界面字体是MS UI Gothic,其中的假名和英数字比PGothic还要窄)

在不等宽字体下,全角英数字的模样看上去并不像增肥那样难看。也许这就是日本人事实上把全角和半角分别默认为“和文”与“西文”输入环境的原因吧。

当然,这时候的中文输入还是老一套:微软拼音。并且随着升级到了2003版,用着更顺手了。很多时候,比如写文档,在中英文混合内容的输入上,往往第一遍就没有错别字,不需要改。后来甚至懒到不去看输入的内容,等到最后检查的时候再修改。

遗憾也是有的,比如“很遗憾没把以前积累的个人词库保留下来”等等。

郁闷也是有的,就是键盘布局不对付。

对比日文和美国英语键盘,字母和数字的位置一模一样,差别只在符号的安排上。由于微软拼音用的仍然是美国英语的布局,开始的时候总是按着Shift把字母以外的键按一遍,挑个正确的留下。后来……慢慢的就把美国英语键盘布局背下来了。

这样下去总不是个事儿,还是争取一劳永逸比较好。

现在是Windows XP时代,再装一遍是需要激活的。为了不给微软工作人员打电话解释原因,修改系统需要一个时间短且比较稳妥的方案。不能再像当年那样,动不动就一个“注入”,还经常使用SoftIce等“道具”,美其名曰“就着亮儿研究一下你的结构”(王小波)。

搜了一下相关开发资料,发现输入法在开发当中并没有任何绑定某种键盘布局的迹象,自然最终做成的那个“.IME”文件肯定和键盘布局是分离的,通过某种联系挂上而已。这使得修改配置达到目的的方式变得可能。

在注册表的“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\”下,放着当前用户所(能)使用的键盘布局的列表。编号都是八位十六进制数字,用0000开头的是一种文化的“基本”(微软定义的基本)键盘布局。

微软教导我们说,键盘布局可以扩展。比如希腊语,基本键盘布局编号“0000408”,除此之外足足有六个扩展。即便是美国英语,除了作为“00000409”的Qwerty布局之外,还有国际键盘、Dvorak、右撇子Dvorak、左撇子Dvorak四种扩展。

微软还教导我们说,输入法也算作是键盘布局的扩展,列表最下面用“E”开头的那些,都是各种(东亚)语言的输入法。具体编号在每台机器上未必一样,因为输入法是可以随便安装卸载的,反正编号会自动增长。

找到“微软拼音”,发现“Layout File”一项里面明明白白的填着“kbdus.dll”,看来就是这儿了。改成日语输入法用的那个“kdbjpn.dll”,重新启动。

发现,成功了……一半。

在有些地方,比如MSN窗口里面,确实改过来了,输入的符号键和键帽上画的一样。但是有些地方,比如Word里面,仍然是顽强的美式布局。

索性把“00000804”也给改了,“Layout File”变成“kbdjpn.dll”,“Layout Text”变成“中文(简体)- 日式键盘”,再次重启。

这次好了,在所有的场合,微软拼音都使用日语键盘布局了。这意味着可以直接按下画着“^”的那个键输入省略号了。

这意味着什么?微软拼音内部在有些场合会使用相对应的基本布局?

在XP时代实在没有兴趣和胆量玩什么“注入”了,就这么用下去,很久都没有再操心过输入法的事。


本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河