hallelujahIM
hallelujahIM copied to clipboard
hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features.
中文版 | English Version
哈利路亚英文输入法
哈利路亚英文输入法 是 Mac(10.9+ OSX)平台上一款智能英语输入法。其特性如下:
- 离线词库较大较全,词频精准。参见 Google's 1/3 million most frequent English words.
- 内置拼写校正功能。不用担心拼写错误,能记住大概字形、发音,本输入法就会自动显示最可能的候选词。
- 具备 Text-Expander 功能。 本输入法会自动读取定义在用户目录下的
~/.you_expand_me.json
文件,你可以定义自己常用的词组,比如{"yem":"you expand me"}
,那么当输入yem
时会显示you expand me
。 - 即时翻译功能(显示音标,及英文单词的中文释义)。
- 支持按拼音来输出对应英文。如输入
suanfa
,输入法会候选词中会显示algorithm
。 - 支持按英文单词的模糊音来输入。 如输入
cerrage
或者kerrage
可以得到courage
候选词,也可以输入aosome
或者ausome
来得到awesome
候选词。 - 按键盘右侧
shift
键可以在智能英语输入模式与传统英语输入模式间切换。 - 选词方式:数字键 1~9 及
Enter
回车键和Space
空格键均可选词提交。默认会自动附加一个空格在单词后面,可以在配置页面关闭自动附加空格功能。
下载与安装
- 下载编译好的输入法应用(注意:不要点击 "Clone or download",要从下面的链接下载 pkg 文件或者 zip 压缩包)
- macOS 10.12 ~ 10.15 下载 最新版 : https://github.com/dongyuwei/hallelujahIM/releases/latest
- macOS 10.9 ~ 10.11 老版本: https://github.com/dongyuwei/hallelujahIM/releases/tag/v1.1.1
- 打开下载后的 hallelujah .pkg 文件,会自动安装、注册、激活哈利路亚输入法。
- 如果输入法不能正常使用,建议退出当前用户重新登录或者重启系统,毕竟输入法是比较特殊的程序。
注意:因为本程序不是通过 App store 发布的,Macos 会有下面的安全警告。选中 hallelujah pkg 安装程序,右键点击 Open
来打开,即可开始安装输入法。
为什么叫 hallelujah 这个名字?
主要是受这篇文章启发: hallelujah_autocompletion.
少数派网友(@北堂岚舞)测评
英文拼写心里「没底」?这个输入法能把拼音补全为英文:哈利路亚输入法
偏好设置
点击输入法的 Preferences
或者直接访问本地 HTTP 服务: http://localhost:62718/index.html
编译本输入法
-
open hallelujah.xcworkspace
使用 Xcode 打开hallelujah.xcworkspace
工程,注意不是打开hallelujah.xcodeproj
。 -
command + b
构建. - 构建编译后的输入法可以拷贝到
/Library/Input\ Methods/
目录内测试。
如何调试输入法?
- 使用
NSLog()
在关键或可疑处打 log 日志。 - 没有 log 输出时,可以查看崩溃日志,位置可通过
ls -l ~/Library/Logs/DiagnosticReports/ | grep hallelujah
命令来查找。 - 深思熟虑。
- 使用 debug 版 build,在 Xcode 中
Debug
->Attach to Process By PID or Name...
。这个流程可以 work,但 Xcode 反应会较慢,需要在合适的地方加断点。大杀器,不得已而用之。 - 自动化测试(后续重构目标就是可测试性要加强)。
格式化代码
-
sh format-code.sh
CI build
sh build.sh
local dev script
sh dev.sh
构建安装包 pkg
bash package/build-package.bash
开源协议
GPL3(GNU GENERAL PUBLIC LICENSE Version 3)
构建 libmarisa.a
- The static
libmarisa.a
lib was built from marisa-trie @006020c1df76d0d7dc6118dacc22da64da2e35c4
. - To build the
libmarisa.a
lib, run:
git clone git://github.com/s-yata/marisa-trie.git
cd marisa-trie
brew install autoconf automake libtool -verbose ## proxychains4 -f /usr/local/etc/proxychains.conf brew install autoconf automake libtool -verbose
autoreconf -i
./configure --enable-static
make
## ls -alh lib/marisa/.libs/libmarisa.a
make install ## we can use marisa-build marisa-lookup marisa-reverse-lookup marisa-common-prefix-search marisa-predictive-search marisa-dump marisa-benchmark cli commands to do some tests and pre-build the trie data.
感谢以下开源项目:
- marisa-trie,输入时前缀匹配的数据结构及算法实现,特点是高性能、节省空间,可以预先构建好 trie 树再反序列化到内存中。
- dictionary/cedict.json is transformed from cc-cedict,拼音-英语词库。
- cmudict and https://github.com/mphilli/English-to-IPA, 国际音标。
- GCDWebServer,用于用户使用偏好配置。
- talisman,使用其中的 phonex 算法,实现模糊近似音输入。
- MDCDamerauLevenshtein,配合 talisman 的 phonex 算法,在音似词中按 Damerau Levenshtein 编辑距离筛选最接近的候选词。
- 鼠鬚管 squirrel 输入法 哈利路亚输入法安装包 pkg 的制作 copy/参考了 squirrel 的实现。
问题反馈,意见和建议
请提交问题单到 https://github.com/dongyuwei/hallelujahIM/issues
咨询服务
提供输入法功能定制开发。联系方式:
- 微信: dongyuwei
- gmail: newdongyuwei
一些截图
auto suggestion from local dictionary:
Text Expander:
translation(inspired by MacUIM):
spell check:
pinyin in, English out: