简析Etoys的多语言支持 之 操作系统交互

由于Etoys是跑在虚拟机上的,所以有些数据需要从操作系统中获取,比如键盘输入、剪贴板复制粘贴及文件系统访问等。下面就对这几方面中涉及的多语言问题作一说明。

键盘输入

这里的键盘输入是指当我们用输入法输入中文时,Etoys是如何处理的。

在Etoys中,不同的语言环境可以定义不同的键盘事件处理类。比如在选择中文之后,键盘的处理类可以通过SimplifiedChineseEnvironment class>>inputInterpreterClass获得。该消息会根据不同的操作系统环境来选择不同的键盘事件处理类。键盘事件处理类都继承自KeyboardInputInterpreter,一般会重载nextCharFrom: firstEvt:,像在Windows下,从evtBuf中获得的输入已经是中文Unicode编码,无需任何编码转化。

剪贴板

基于剪贴板的复制粘贴与键盘事件的处理类似,处理类通过SimplifiedChineseEnvironment class>>clipboardInterpreterClass获得。外理类继承自ClipboardInterpreter,一般需要重载fromSystemClipboard:及toSystemClipboard,分别表示从系统剪贴板复制及复制到系统剪贴板时需要进行的编码转换。

文件系统

关于文件系统的文件名编码处理,同样是在SimplifiedChineseEnvironment中定义,这回是fileNameConverterClass,它返回的是一个编码转化类,在Windows中,只需要返回UTF8TextConverter即可。

Advertisements
此条目发表在Uncategorized分类目录。将固定链接加入收藏夹。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s