常用输入法框架简介

简介: 常用输入法框架简介

前言

之前使用的一直都是ibus-sunpinyin中文输入法,但在使用的过程中发现很多的词组都找不到,比较麻烦,所以打算换一下ibus-googlepinyin输入法,还没用,也不知道具体的效果怎么样?不过之前windows系统中用的都是google-pinyin,一直以来都还是比较相信google的服务。本文将从一次安装ibus-googlepinyin拼音输入法的实践入手,探讨常用的输入法框架有哪些,并做一简单的介绍。


ibus-googlepinyin安装

我们先介绍如何安装基于ibus输入法框架的googlepinyin输入法。


由于google官方未提供直接的rpm或其他的直接安装方式,所以我们只能自己编译源码然后安装。由于源码使用的是cmake进行项目管理的,所以我们需要先确定系统是否已经安装cmake。

[gschen@gschen ~]$ cmake -version
cmake version 2.8.10.2

如果未安装cmake,可通过下述命令进行安装:

[gschen@gschen ~]$ sudo yum install -y cmake

接着将介绍一下具体的google拼音安装步骤:

1.安装libgooglepinyin,先获得libgooglepinyin源码,

https://code.google.com/p/libgooglepinyin/downloads/list从下载列表中,下载libgooglepinyin-0.1.*.tar.bz2,接着

tar -jxvf libgooglepinyin-0.1.*.tar.bz2
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

2. 安装ibus-googlepinyin,同样也是从步骤1中的下载列表中下载ibus-googlepinyin-0.1.*.tar.bz2,接着

tar -jxvf ibus-googlepinyin-0.1.*.tar.bz2
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

3. 重启ibus,并在ibus preferences中添加google拼音,至此安装完成,接下来就可以使用googlepinyin了。

输入法框架

首先我们来了解一下常用的输入法框架有哪些?

scim

scim全称是Smart Common Input Method

wikipedia对它的解释是:

The Smart Common Input Method platform (SCIM) is an input method (IM) platform containing support for more than thirty languages (CJK and many European languages) for POSIX-style operating systems including Linux and BSD. It uses a clear architecture and provides a simple and powerful programming interface, which is meant to reduce the time required for developing individual IMs.

scmi是一个输入法平台,在类posix的操作系统如linux和bsd中,它支持至少30种语言。它有一个非常清晰的架构,使用了一个简单但非常强大的编程接口,该接口为我们开发自己的输入法

fcitx

首先我们来看一下官方是如何描述fcitx的:


Fcitx [ˈfaɪtɪks] is an input method framework with extension support. Currently it supports Linux and Unix systems like freebsd. It has three built-in Input Method Engine, Pinyin, QuWei and Table-based input methods.

fcitx一个支持扩展的输入法框架。目前它支持linux和unix系统如freebsd。它有三个内置的输入法引擎,分别是拼音输入法, 区位输入法和table-based输入法。


ibus

ibus的全称是intelligent input bus


同样我们也首先来看一下wikipedia是如何描述的:


The Intelligent Input Bus (IBus, pronounced as I-Bus) is an input method (IM) framework for multilingual input in Unix-like operating systems. It's called "Bus" because it has a bus-like architecture.

ibus是在类unix操作系统中是一个为了多语言输入的输入法框架,之所以叫做"bus”原因在于它是一个总线型的架构。


ibus架构

image.png

<上图引用自http://2008.gnome.asia/static/upload/event_file/ibus-GNOME.pdf>

ibus是基于c/s的架构:

  • 他有一个ibus-daemon的后台进程,管理所有的客户端;
  • 所有的engines,panel,config modules和IM(Input Method) clients都是ibus-daemon的客户端;
  • ibus是基于dbus ipc协议的。

image.png


<上图引用自http://2008.gnome.asia/static/upload/event_file/ibus-GNOME.pdf>

ibus的优势在于:

  • ibus使用dbus rpc进行通信,客户端可以使用任何一种语言去呵ibus交互;

ibus-daemon, engines, clients&UI这些所有的都运行在独立的进程中。

结论

本文主要介绍了在linux系统中如何安装ibus-googlepinyin中文输入法,在成功安装google拼音输入法之后,并对目前常用的输入法框架做了简单的介绍。

后记

后面如果时间充裕,将会对上述提到的每一个输入法框架展开详细的介绍。

references

[1] http://en.wikipedia.org/wiki/Smart_Common_Input_Method


[2] https://wiki.archlinux.org/index.php/IBus


[3] http://2008.gnome.asia/static/upload/event_file/ibus-GNOME.pdf


目录
相关文章
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第十篇-纯文本QPlainTextEdit
475 0
Pyside6-第十篇-纯文本QPlainTextEdit
|
前端开发 Ubuntu Linux
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
随着跨平台越来越流行,.net core支持跨平台至今也有好几年的光景了。但是目前基于.net的跨平台,大多数还是在使用B/S架构的跨平台上;至于C/S架构,大部分人可能会选择QT进行开发,或者很早之前还有一款Mono可以支持.NET开发者进行开发跨平台应用。
1078 0
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
|
3月前
|
Docker 容器
多功能秒达工具箱全开源源码,可自部署且完全开源的中文工具箱
多功能秒达开源工具箱源码,,可自部署且完全开源的中文工具箱,永远的自由软件,轻量级运行,全平台支持(包括ARMv8),完全类似 GPT 的支持,与高效的 UI 高度集成,可用的 Docker 映像和便携式版本,桌面版支持,开源插件库。
86 5
多功能秒达工具箱全开源源码,可自部署且完全开源的中文工具箱
|
3月前
|
运维 图形学 Python
从零开始的PICO教程(2)--实时预览应用场景
这篇文章是关于如何使用PICO Unity Live Preview Plugin在PICO设备上进行实时预览应用场景的教程,包括准备工作、操作步骤和故障排查方法。
|
3月前
|
JavaScript UED 前端开发
JSF 富文本编辑器横空出世,如魔法神器开启震撼富文本输入之旅!
【8月更文挑战第31天】在现代Web应用中,用户常需输入带样式、颜色及图片等功能的富文本。为此,JSF可集成如CKEditor等富文本编辑器,提供强大输入体验。首先选择合适编辑器并下载引入库文件,使用`&lt;textarea&gt;`与JavaScript实例化编辑器。后台通过`value`属性获取内容。此外,还需配置编辑器选项、处理特殊字符和进行充分测试以确保稳定性和安全性,提升用户体验。
37 0
|
6月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
Linux C# iOS开发
C#之十八 GUI用户界面编程
C#之十八 GUI用户界面编程
288 0
Unity3D原生编辑器的界面太丑?那就试试这款插件吧
是否已经看厌了Unity一成不变的白灰色了?现在给大家带来一个可以更换Unity的主题颜色的插件,下面就让我们来看看怎么使用吧
|
安全 Java 机器人
JavaSwing 图形界面GUI王者级开发(大纲)
JavaSwing 图形界面GUI王者级开发(大纲)
171 0
Qt中文翻译(官方文档,界面,工具等)集锦
Qt中文翻译(官方文档,界面,工具等)集锦
716 0