21 个版本 (4 个破坏性更新)
0.9.0 | 2024 年 8 月 10 日 |
---|---|
0.9.0-rc.3 | 2024 年 7 月 27 日 |
0.8.5 | 2024 年 7 月 8 日 |
0.7.0-beta.2 | 2024 年 3 月 31 日 |
0.5.1-alpha.1 | 2022 年 5 月 7 日 |
89 在 文本处理 中
每月 458 次下载
用于 2 crates
2MB
10K SLoC
_ _
___| |__ _____ _(_)_ __ __ _
/ __| '_ \ / _ \ \ /\ / / | '_ \ / _` |
| (__| | | | __/\ V V /| | | | | (_| |
\___|_| |_|\___| \_/\_/ |_|_| |_|\__, |
|___/
https://chewing.im/
libchewing - 智能音标输入法库
Chewing(酷音)是一种智能音标输入法(注音/拼音),是传统中文用户最受欢迎的选择之一。Chewing 受到微软 Windows 上其他专有智能注音输入法的启发,如 Eten 的王新、微软新注音和自然注音(又称行)。Chewing 开发者将项目作为一个完全开源的努力来维护,将其定位为主要操作系统中的领先自由智能音标解决方案。
- 网站: https://chewing.im/
- 问题追踪器: https://github.com/chewing/libchewing/issues
- 邮件列表
- Matrix
- 构建状态
libchewing 发布可以使用以下 minisign 公钥验证
RWRzJFnXiLZleAyCIv1talBjyRewelcy9gzYQq9pd3SKSFBPoy57sf5s
状态
1. 系统桥接集成
Chewing 已集成到各种类 Unix 系统的输入框架中,甚至在微软 Windows 和 Android 上。在这些系统中,Chewing 软件包通常分为两部分:libchewing,负责管理实际的字符选择逻辑,以及用于显示和首选项设置的输入框架接口。
- 活跃的集成
- 不活跃的一个:SCIM,独立的微软Windows 32/64位(windows-chewing),mozc,uim,ucimf,JMCCE,xcin,IIIMF,独立的MacOS X(SpaceChewing),Sun的Java桌面系统输入法框架,OpenVanilla输入法框架(版本1.0之前),和OXIM。
2. 支持音节键盘布局
- 大陈(默认)
- 许氏
- IBM
- 金宜杰
- 亿泰
- 亿泰26键
- Dvorak
- Dvorak 许氏
- 汉宇拼音
- 台湾华语罗马拼音
- MPS2 拼音
- Colemak-DH ANSI
- Colemak-DH 直线型
3. 外部和未合并的项目
libchewing提供了一个简单的API和设计,使第三方项目能够部署创新功能。以下是一些示例
- FreeArray:利用libchewing为Array输入法选择短语。
- CitC(Chewing in the Cloud):扩展基于Chewing输入法的云服务,用于实时训练和短语选择。
- KindleChewing:Kindle DX设备上的Chewing输入法
- NTNU-Master 输入法:基于windows-chewing的更快的中国输入法
构建和安装
先决条件
以下工具用于构建libchewing。并非所有工具在构建过程中都是必需的。例如,如果您使用的编译器是clang,则不需要gcc & Visual Studio。这里列出的版本是构建libchewing所需的最小版本。如果您使用的工具版本低于此版本,则libchewing可能无法构建。
- 构建工具
- cmake >= 3.21.0
- 工具链 / 集成开发环境
- clang >= 3.2 OR gcc >= 4.6.3
- Rust >= 1.77
- Visual Studio 2022的MSVC构建工具
- 文档工具
- texinfo >= 4.8
通过CMake构建
使用默认预设置
cmake --preset default --install-prefix /usr
cmake --build build
cmake --build build -t test
cmake --build build -t install
构建rust实现
cmake --preset rust-release --install-prefix /usr
cmake --build build
cmake --build build -t test
cmake --build build -t install
检查其他支持的预设置
cmake --list-presets
交叉构建
定义一个cmake-toolchains文件以进行交叉编译。
示例交叉构建说明
cmake --preset default --toolchain arm-none-linux-gnueabi.cmake
cmake --build build
使用Visual Studio 2022构建工具在Windows上构建
要在Windows上构建libchewing并将其链接到由MSVC构建的其他程序,您需要使用MSVC工具链。要安装构建环境
打开管理员命令提示符 cmd.exe
winget install Microsoft.VisualStudio.2022.BuildTools
winget install Ninja-build.Ninja
winget install Kitware.CMake
winget install Rustlang.Rustup
可选的开发工具
winget install Git.Git
winget install VSCodium.VSCodium
重启,然后打开 Visual Studio Installer
并安装C/C++组件。
打开 x64 Native Tools Command Prompt for VS 2022
rustup default stable
cmake -G Ninja --preset rust
现在您已经有了libchewing的构建环境。您可以按照安装步骤使用cmake进行构建。
在macOS上构建
要在macOS上构建libchewing,您将需要列在要求中的工具。由于macOS没有附带这些工具,从源代码构建它们可能是一项棘手的任务。
安装这些工具的一个简单方法是使用Homebrew,它是macOS的软件包管理器。一旦安装了Homebrew,运行以下命令以安装所需的工具
brew install cmake
brew install rustup
rustup default stable
最低支持的Rust版本
为确保libchewing可以构建在各种Linux发行版上,我们使用主要发行版下一个发布分支中可用的最低rust版本。数据来源:https://repology.org/project/rust/versions
- 当前MSRV:1.77.0(Debian不稳定版)
用法
Chewing 允许用户通过发音输入中文,可以使用注音/注音符号或汉语拼音。它还支持中文标点符号,以及普通和全角数字以及英文字母。
以下部分基于假设您正在使用默认配置。这包括在 en_US 键盘上默认/大陈注音键盘布局以及默认按键绑定。
术语表
预编辑缓冲区:这是在将输入发送到您正在使用的应用程序(如 Firefox)之前存储输入的地方。
模式:这决定了 Chewing 如何响应键盘输入。
编辑模式
此模式便于输入普通中文字符和标点,通常是默认的工作模式。
在此模式中,字母数字字符和标点符号被解释为注音符号或标点符号。当这些符号形成中文字符时,系统将根据预编辑缓冲区中的上下文选择最合适的字符。
输入完整的中文句子是有优势的,因为它允许系统执行自动更正。要确认输出,请按 Enter 键将预编辑缓冲区中的字符提交。
如果发生错误,可以通过使用 {Left} 或 {Right} 移动光标来选择字符,然后按 {Down} 键进入候选选择模式以选择单词。
可以通过在句尾按 {Tab} 键来覆盖特定短语的自动更正。
可以通过在短语的末尾按 {Ctrl-2}、{Ctrl-3} 或 {Ctrl-4} 来记忆 2、3 或 4 个单词的短语。
在此模式中,Shift 键的行为会改变。使用 Shift 键与字母数字键结合,如果启用了“简易符号输入”,则输出相应的全角中文符号,如果没有启用“简易符号输入”,则输出相应的半角英文字母。
除了启用“简易符号输入”模式外,按 {Ctrl-1} 或 {}` 可以打开符号选择对话框。选择类别后,可以使用 {Down} 键选择符号,就像选择字符一样。
Key binding API name Functionality
----------- -------- -------------
Caps Lock chewing_handle_Capslock Toggle Temporary English sub-mode
Down chewing_handle_Down Enter Candidate Selection mode
Shift-Space chewing_handle_ShiftSpace Toggle Half/Full Shape sub-mode
Enter chewing_handle_Enter Commit the content in preedit buffer
to active application window
Tab chewing_handle_Tab Break the auto-correction.
Ctrl-1 chewing_handle_CtrlNum Open symbol selection dialog
Ctrl-2 chewing_handle_CtrlNum Remember 2-word phrase.
Ctrl-3 chewing_handle_CtrlNum Remember 3-word phrase.
Ctrl-4 chewing_handle_CtrlNum Remember 4-word phrase.
半角/全角子模式
此子模式用于输入半角和全角字符。半角字符实际上是正常的英文字符,而全角字符是类似于英文字符的较大、更突出的符号。
Key binding API name Functionality
----------- -------- -------------
Shift-Space chewing_handle_ShiftSpace Toggle Half/Full Shape sub-mode
临时英文子模式
此子模式用于临时输入英文。
Key binding API name Functionality
----------- -------- -------------
Caps Lock chewing_handle_Capslock Toggle Temporary English sub-mode
候选选择模式
此模式用于选择候选。它首先显示与发音匹配的最长短语,然后是越来越短的短语,直至单个字符。按 {Down} 键循环回到最长短语。
例如,输入 "w91o3g4" 并按 {Down} 键后,Chewing 显示 3 个单词候选 "台北市"。再次按 {Down} 键显示 2 个单词候选 "北市"。再次按 {Down} 键显示 1 个单词候选 "市" 和 "是"。再次按 {Down} 键将循环回到 3 个单词候选 "台北市"。
Key binding API name Functionality
----------- -------- -------------
Down chewing_handle_Down Next bunch of candidates in
different length
Left chewing_handle_Left Previous page of candidates
Right chewing_handle_Right Next page of candidates
1, 2, ...0 chewing_handle_Default Select 1st, 2nd, ... 10th candidate
绕过模式
当预编辑缓冲区为空时,此模式处于活动状态。它允许使用移动键(如光标键和页面上下键)和常用键绑定(如 Ctrl-A、Ctrl-S)。
有关使用 libchewing API 的简要概述,请参阅文件 contrib/simple-select.c
中的简化示例。
历史
Libchewing 是从原始的 Chewing 输入法派生而来,这是 XCIN 中的一个模块,专注于智能音韵(注音/注音符号)处理,最初旨在与 X Window System 一起使用。此输入法模块由 Lu-chuan Kung(lckung)和 Kang-pen Chen(kpchen)开发,1999 年至 2001 年期间由 Academia Sinica 的 Tsan-sheng Hsu 赞助。
然而,原始作者最终停止了Chewing的开发,并且它与XCIN的紧密耦合限制了其在更广泛环境中的应用。此外,还有一个类似的输入法,bimsphone,它包含在XCIN服务器中。与Chewing类似,bimsphone也缺少方便的API以供进一步开发。2002年,Jim Huang与其他人一起组成了Chewing核心团队,并扩展了Kung和Chen的工作。Chewing核心团队将项目重命名为“新Chewing”,以区分他们的工作与原始版本。尽管如此,英语名称仍然是“Chewing”,它被各种输入法框架所认可。
许可证
除了以下源代码外,所有其他源代码都受GNU LGPL v2.1(较小的通用公共许可证v2.1)或(根据您的选择)任何后续版本的许可。有关详细信息,请参阅“COPYING”。
- 目录“thirdparty/sqlite-amalgamation”包含SQLite3源代码,属于公共领域。有关更多信息,请参阅https://www.sqlite.org/copyright.html。
- 文件“cmake/FindCurses.cmake”是从CMake源代码修改而来,并受BSD 3-Clause许可证的许可。
作者及联系方式
有关详细信息,请参阅“AUTHORS”。
依赖项
~0.5–14MB
~121K SLoC