西西河

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

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

一眼没瞅着,谷歌拼音又更新了,现在的版本是“1.1.24.45”。另外,谷歌也有快照了……想必也是内地专用和谐特别版。什么时候开始的?还真没注意。

试用了几天,没发现功能上有什么太多变化。主页上记载着主要变化就是更新辞典、改进选词算法以及修正英文模式的那个大Bug。

还有一点,几个拼音输入法都算上,几乎每次更新都包括了“修正了在部分游戏和应用程序中的兼容性问题”。这说明什么?一方面,可能是微软拼音做得比较规矩;另一方面,更大的可能是“部分游戏和应用程序”根本就没考虑过本地化问题,而即便考虑到的那些也仅仅使用钦定微软拼音进行测试。

不奇怪,即便是ATOK也在许多日语程序中出现问题,而开发者也基本上使用微软日语输入法测试通过了。甚至还见过一些声明,说只保证和微软输入法兼容。作为独立供应商,这个问题只能自己努力解决了。

解决的意思,应该是规规矩矩的使用输入法API接口,不搞歪门邪道。毕竟微软输入法也是用API写的,虽然可能会在内部有点无伤大雅的地下工作。做不到一样兼容,至少可以做到一样不兼容。连微软输入法都用不了的情况下,想必软件供应商会干点什么使得其能用。而其他输入法顺便就沾光了。

顺便还有个发现,就是微软自己的输入法热衷于扩展语言选项带增加按钮,而第三方则习惯于采用单独的状态栏。ATOK也是如此。其实语言选项带是从Windows XP开始的高级文字服务功能的一部分,可以关闭这个服务,恢复到传统的显示浮动状态栏的输入法指示器方式。只不过,高级文字服务可未必仅仅用来控制输入法,关了之后也许其它什么地方用着不爽。

本人的意见,还是自定义状态栏的方式看着顺眼。因为一般人都是把语言选项带最小化到系统状态栏上的,上面按钮太多了要么占地方,要么被通知区图标挡住显示不出来。比如,ATOK的状态栏按钮极多,要是采用扩展选项带的方式,会在系统状态栏上占据半个屏幕宽的地方。况且,浮动状态栏的好处在于,能输入的情况下显示,其他时候隐藏。比起永远漂着的语言选项带,哪怕是半透明的,感觉也要清爽许多。

输入法这头倒是搞定了,但是咱对于键盘又不满意了。

虽然绝大部分时间都在使用日语系统,但是身边还必须得有一个中文机器。因为许多“国产软件”只能运行在“簡体字中国語版Windows”之上,比如QQ。(关于各个即时通讯软件的感想,咱们下一次再说)出门在外的时候,带着中日两个笔记本。叶落归根之后,就又配了一个台式机,装了个中文系统。(MSDN订阅者还真是方便甚多)

在键盘的选择上没打算凑活,可能是被日语键盘惯坏的原因,普通的美式键盘咋用咋别扭。于是乎找了个“微软多媒体键盘专业版”,对,就是带五个“微软拼音快捷键”的那一款。

主页上那小幅照片看着不清楚,等拿到手了就发现——这不是更了名改了姓的日语版“微软多媒体”键盘吗!那五个键比起来,位置大小都一模一样,看来除了刻键帽之外,别的工序完全相同。

先装上试试,感觉确实方便了一丁点儿。

左上角的那个【微软拼音】,也就是日语键盘上的【半角/全角】,确实可以从任何状态下呼出微软拼音输入法,哪怕是在别的中文输入或日语输入下,仍然切换到了微软拼音——微软好样的。

从以往的经验中得出结论,这个键的处理,是固定在微软的驱动程序中。因为目前的所有中文输入法都不处理“美式键盘”之上没有的VK_AUTO,而日语输入法由于当前环境是美式键盘,也不处理该键。

继续,【中英】对应日语键盘下的【無変換】,相当于微软拼音下的Shift;【中英标点】对应于日语键盘下的【ひらがな/カタカナ】,相当于微软拼音下的Ctrl+Period。在其他中文输入法状态下,没有反映。

真正让我感兴趣的是【汉字候选】这个对应日语布局下【変換】的键。

用过日语系统的朋友,尤其是咱这样日语二把刀的家伙,很容易就碰上认识但念不出来的词,念不出来自然就打不出来。咋办?

很简单,打开“メモ帳”也就是中文系统下的“记事本”,把这个字复制进去,选中(也可以不选中,保持光标在词头或词中),然后按【変換】键。于是乎,进入了输入状态(别忘了日语系统的输入法是默认打开的),就像是正在打字时一样,自然可以看见假名了。不光记事本,Word、Excel都有这个功能,这就是我看不顺眼语言选项带也坚持不关“高级文字服务”的主要原因。

这个功能是输入法提供,由系统调用的,即便是中文环境下也是如此。各位可以试验一下,打开记事本,切换到微软拼音,贴点汉字,然后选中并按右键。看到了么?弹出菜单最下面是个“重新转换”。按一下,微软拼音打字状态出现了。必须是微软拼音才可以,目前搜狗、谷歌或其他拼音输入法都不行,选项是灰的。

开发输入法的时候,有个查询功能的函数,代码所实现的功能都要列出来。系统正是使用该接口询问当前输入法之后,才决定禁止哪些操作。

历史上,微软几乎所有为东亚本地化开发的功能,最初都来源于日本用户的要求。许多开发技术书籍谈到东亚环境的处理时,都毫无例外的拿日语做例子,这一点相信同行们早有体会。比如这个对应【变换】键的处理,已经成为系统的一部分,所以即便习惯于抱着美式键盘而找不到【变换】键的同胞们,也可以使用。

结论,微软拼音为了和微软日语输入法保持一致,提供了从文字变回拼音的功能;而众多第三方中文拼音输入法的开发商还没有意识到这一点。另外,作为输入法应该实现的功能还有很多,这个还是让开发人员看文档吧,这里不再唠叨了。

还有一个键,在美式布局的右SHIFT左边,问号右边,硬是多出来一个。这个键在微软拼音下是打开用户辞典设置的功能。看到这里咱没惊讶,因为早体验过了,以前在日语系统下使用微软拼音的时候,不小心按到了许多次。

这个键虚拟键值为“VK_OEM102”,许多欧洲布局键盘上都有——谁让人家字母多呢。而在日语键盘上的出现,有点历史小故事。

许多朋友都知道,通常用来区分路径的那个反斜杠,在日语系统下显示为日元符号。只是由于字体原因显示不一样而已,编码一模一样。这是因为ASCII码只有美元符号,没有英镑或日元符号。为了显示日元符号,日本人规定了改变字体使用当时环境下(U*ix)普通用户用不上的这个字符表示。

但是,这个反斜杠还是在许多场合下有用的,比如写代码。而日本人认死理,看原版资料当中明明白白的反斜杠,在键盘上却死活找不到。这时候IBM(=_=蓝色巨人啊)为了少接几个这类弱智问题的电话,就在自己机器的终端键盘上主动增加了这个键:反斜杠。自然这个标准也被其他供应商(包括NEC、富士通等)采用,后来不知什么时候又把下划线挪到了这个键的上档位。

前文所说,为了能够让中文输入法使用日语布局,改了注册表。大致上一切都好,唯一的麻烦是波折号的输入。因为几乎所有拼音输入法中打波折号偏偏就是敲下划线这个键。既然输入法的开发人员死盯美式键盘,自然对这个第102号键不做处理。那么自然波折号无论如何也打不出来。这也就是一段时间内我在龙空上发言都用省略号代替波折号的缘故。

咋办?老人家教导我们说,自己动手丰衣足食。

作为MSDN订阅者,有个好处就是能获得“Windows Device Development Kit”。曾几何时,作为Windows开发的终极道具DDK再也不能免费下载喽~~~


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


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

Copyright © cchere 西西河