Skip to content
hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features, Mac only.
Objective-C++ Objective-C
Branch: master
Clone or download
Latest commit 6816a54 Aug 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Base.lproj convert nib to xib; fix potential crash caused by AnnotationWinContro… Jul 9, 2019
Pods fix test: disable code-signing for Tests target Jul 11, 2019
Tests fix bug when input has upper case text; add test cases Jul 16, 2019
dictionary build dmg Jul 10, 2019
en.lproj install/activate/select hallelujah IME Jul 2, 2019
hallelujah.xcodeproj delete legacy test material Jul 16, 2019
hallelujah.xcworkspace add dev.sh to speedup dev workflow Oct 17, 2018
hallelujah/Images.xcassets/AppIcon.appiconset move code to this standalone project Jun 25, 2014
include using marisa-trie to reduce memory, and to reduce the time needed to … Aug 19, 2017
lib using marisa-trie to reduce memory, and to reduce the time needed to … Aug 19, 2017
package refactor package script Jul 11, 2019
snapshots show web preference options Jul 10, 2019
src fix wrong comments Aug 14, 2019
util use prepared ipa phonetic symbol May 9, 2019
web
.clang-format 避免不同clang版本差异导致的不兼容format Jul 1, 2019
.gitattributes Update and rename . gitattributes to .gitattributes Nov 5, 2018
.gitignore 制作全自动安装包pkg文件 Jul 11, 2019
.travis.yml
COPYING.md Change license, add copyright info of libmarisa Sep 3, 2017
Hallelujiah_Prefix.pch move code to this standalone project Jun 25, 2014
Info.plist install/activate/select hallelujah IME Jul 2, 2019
LICENSE use GPL 3.0 license Jun 15, 2019
Podfile fix test: disable code-signing for Tests target Jul 11, 2019
Podfile.lock fix test: disable code-signing for Tests target Jul 11, 2019
PreferencesMenu.xib rename MainMenu.nib to AnnotationWindow.nib; add `About` menu item li… Jul 1, 2019
README-En.md
README.md Update README.md Jul 11, 2019
appdmg.json build dmg Jul 10, 2019
build-dmg.sh build dmg Jul 10, 2019
build.sh refactor for better testability; add more unit tests to cover the bas… Jul 16, 2019
ci-build-and-tests.sh setup unit tests on ci Jul 12, 2019
dev.sh 制作全自动安装包pkg文件 Jul 11, 2019
format-code.sh install clang-format automatically Jul 10, 2019
him.icns update app icon Jul 18, 2014
him.png update app icon Jul 18, 2014
unit-tests.sh setup unit tests on ci Jul 12, 2019

README.md

Build Status License: GPL v3 English Readme

哈利路亚英文输入法

哈利路亚英文输入法 是 Mac(10.9+ OSX)平台上一款智能英语输入法。其特性如下:

  1. 离线词库较大较全,词频精准。参见 Google's 1/3 million most frequent English words.
  2. 内置拼写校正功能。不用担心拼写错误,能记住大概字形、发音,本输入法就会自动显示最可能的候选词。
  3. 具备 Text-Expander 功能。 本输入法会自动读取定义在用户目录下的~/.you_expand_me.json 文件,你可以定义自己常用的词组,比如 {"yem":"you expand me"},那么当输入 yem 时会显示 you expand me
  4. 即时翻译功能(显示音标,及英文单词的中文释义)。不喜欢的话也可以通过配置窗口关闭此功能。
  5. 支持按拼音来输出对应英文。如输入suanfa,输入法会候选词中会显示 algorithm
  6. 支持按英文单词的模糊音来输入。 如输入 cerrage 或者 kerrage 可以得到 courage 候选词,也可以输入 aosome 或者 ausome 来得到 awesome 候选词。
  7. shift 键可以在智能英语输入模式与传统英语输入模式间切换。
  8. 选词方式:数字键 1~9 及 Enter 回车键和 Space 空格键均可选词提交。默认会自动附加一个空格在单词后面,可以在配置页面关闭自动附加空格功能。

下载与安装

  1. 下载编译好的输入法应用(注意:不要点击 "Clone or download",要从下面的链接下载 pkg 文件或者 zip 压缩包)
  1. 打开下载后的 hallelujah .pkg 文件,会自动安装、注册、激活哈利路亚输入法。
  2. 如果输入法不能正常使用,建议退出当前用户重新登录或者重启系统,毕竟输入法是比较特殊的程序。

注意:因为本程序不是通过 App store 发布的,Macos 会有下面的安全警告。选中 hallelujah pkg 安装程序,右键点击 Open 来打开,即可开始安装输入法。

unidentified

升级或重新安装

  1. Input Sources 中删除 hallelujah 输入法。
  2. 杀死旧的 hallelujah 进程 (启动 Terminal.app,执行 pkill -9 hallelujah 命令,一次杀不死可以多杀几次,因为操作系统会试图重启输入法进程 )
  3. 替换 /Library/Input Methods/ 目录中的 hallelujah.app
  4. 重新添加 hallelujah 到 Input Sources 中。

为什么叫 hallelujah 这个名字?

主要是受这篇文章启发: hallelujah_autocompletion.

偏好设置

点击输入法的 Preferences 或者直接访问本地 HTTP 服务: http://localhost:62718/index.html preference

一些截图:
auto suggestion from local dictionary:
auto-suggestion auto-suggestion auto-suggestion

Text Expander:
Text Expander Text Expander

translation(inspired by MacUIM):
translation

spell check:
spell-check spell-check spell-check spell-check spell-check

pinyin in, English out:
pinyin pinyin pinyin pinyin pinyin pinyin

编译本输入法

  1. open hallelujah.xcworkspace 使用 Xcode 打开 hallelujah.xcworkspace 工程,注意不是打开 hallelujah.xcodeproj
  2. command + b 构建.
  3. 构建编译后的输入法可以拷贝到 /Library/Input\ Methods/ 目录内测试。

如何调试输入法?

  1. 使用 NSLog() 在关键或可疑处打 log 日志。
  2. 没有 log 输出时,可以查看崩溃日志,位置可通过 ls -l ~/Library/Logs/DiagnosticReports/ | grep hallelujah 命令来查找。
  3. 深思熟虑。
  4. 使用 debug 版 build,在 Xcode 中 Debug -> Attach to Process By PID or Name... 。这个流程可以 work,但 Xcode 反应会较慢,需要在合适的地方加断点。大杀器,不得已而用之。
  5. 自动化测试(后续重构目标就是可测试性要加强)。

格式化代码

  • 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

  1. the static libmarisa.a lib was built from marisa-trie @59e410597981475bae94d9d9eb252c1d9790dc2f
  2. to build the libmarisa.a lib, run:
git clone git://github.com/s-yata/marisa-trie.git
cd marisa-trie
autoreconf -i
./configure --enable-static
make

感谢以下开源项目:

  1. marisa-trie,输入时前缀匹配的数据结构及算法实现,特点是高性能、节省空间,可以预先构建好 trie 树再反序列化到内存中。
  2. dictionary/cedict.json is transformed from cc-cedict,拼音-英语词库。
  3. cmudict and https://github.com/mphilli/English-to-IPA, 国际音标。
  4. GCDWebServer,用于用户使用偏好配置。
  5. talisman,使用其中的 phonex 算法,实现模糊近似音输入。
  6. MDCDamerauLevenshtein,配合 talisman 的 phonex 算法,在音似词中按 Damerau Levenshtein 编辑距离筛选最接近的候选词。
  7. 鼠鬚管 squirrel 输入法 哈利路亚输入法安装包 pkg 的制作 copy/参考了 squirrel 的实现。

问题反馈,意见和建议

请提交问题单到 https://github.com/dongyuwei/hallelujahIM/issues

付费咨询服务

提供输入法功能定制开发。联系方式:

  • 微信: dongyuwei
  • gmail: newdongyuwei
You can’t perform that action at this time.