作者:在海那边A-P | 来源:互联网 | 2017-10-27 03:51
其实这个帖子早在两周前就该写了,那个时候我刚刚在 slackware 上搞定了中文处理。
Linux 中文处理的核心部分不过是中文显示,中文输入和字典工具。
和我三年前刚接触 Linux 时相比,Linux 国际化有了相当的提高。这主要体现在 Linux 对多语言文字的机制的加强上面。随着 X window 的 xft 字体显示服务程序和 fontconfig 字体设置机制已经广泛应用,Linux 中文显示问题变得简单了;而 XIM(X Input Method) 则是被广泛采用的多语言输入机制。
顺便插一句,目前 CLF 上面关于“机制”与“策略”(mechanism & policy) 上的讨论相当热烈,应用到本帖中就是:Linux 对于多语言的支持是一种“机制”,而具体怎么用则是“策略”问题。
除了 Linux 本身对中文显示的支持,中文字体也是一个很重要的问题。以前我一直在感慨:堂堂简体中文世界,竟没有一种可以遵循 GPL 或类似开源协议的字体,导致我不得不借用 Windows 标准的 Simsun 字体来获得尚可忍受的显示效果。现在不同了,随着文泉驿计划的推出,简体中文自由字体的随之解决。
Linux 中文显示的第二个重点就是中文输入。Linux 中文输入法很多,现在比较主流的就是 fcitx 和 scim。在这次重装之前我一直使用小巧快速的 fcitx ,不过这次我试了一下 scim。改变的原因主要是 fcitx 和 rxvt 都依赖 LC_CTYPE 这个环境变量来确定语言环境,同时使用 rxvt 和 fcitx 就无法实现在英文环境下输入中文了。而 scim 作为一种输入法平台,支持包括 CJK 在内的各种输入法,而且 fcitx 也被 port 到了 scim 这个平台,可以二者兼得。KDE 版本的 scim 叫 SKIM,刚一看到的时候我还颇迷惑了一阵。
不过,作为一款输入法,scim 显得相当复杂,几近臃肿,比 fcitx 占用了更多的系统资源。
现在我的中文输入还有一个问题就是 Input Method 默认的是 “default” ,而不是应该的 “X Input Method”。曾经在 Linuxsir.org 的 slackware 版看到需要设置一个变量,但是再找的时候却怎么也找不到了。不过还好,rxvt 中可以单独设置,Opera 更是默认就是 XIM,可以应付 80% 的中文输入了。人生就是这样,当你想找一件东西的时候却怎么找也找不到……
其实 SCIM 和 fcitx 都很依赖 locale 的设置,看看 KXN 的《终于把SCIM又搞定了》就知道了。
中文处理的第三个重点就是一个好用的字典了。Windows 下的金山词霸大概都不会陌生,Linux 有什么好用的字典吗?当然有,而且相当好用,这就是星际译王 StarDict。StarDict 其实是一个字典引擎,提供了一种字典查询机制。利用这个机制,你可以安装不同的字典文件,进行任意的翻译,可以是中英,可以是英中,也可以是中日,更可以是日韩,甚至可以是各种魔鬼字典。前段时间,StarDict 就新提供几部佛学词典。