https://github.com/dongyuwei/hallelujahim
hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features.
https://github.com/dongyuwei/hallelujahim
autocomplete english input-method inputmethod inputmethodkit keyboard macos pinyin spell-check textexpander windows
Last synced: 23 days ago
JSON representation
hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features.
- Host: GitHub
- URL: https://github.com/dongyuwei/hallelujahim
- Owner: dongyuwei
- License: gpl-3.0
- Created: 2014-06-25T12:46:37.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2025-01-31T13:06:57.000Z (3 months ago)
- Last Synced: 2025-04-03T16:04:36.469Z (about 1 month ago)
- Topics: autocomplete, english, input-method, inputmethod, inputmethodkit, keyboard, macos, pinyin, spell-check, textexpander, windows
- Language: Objective-C++
- Homepage:
- Size: 119 MB
- Stars: 2,319
- Watchers: 30
- Forks: 124
- Open Issues: 39
-
Metadata Files:
- Readme: README-En.md
- License: COPYING.md
Awesome Lists containing this project
README




[](http://www.gnu.org/licenses/gpl-3.0)# hallelujahIM
hallelujahIM is an english input method with auto-suggestions and spell check features.
1. The auto-suggestion words are derived from Google's [1/3 million most frequent English words](http://norvig.com/ngrams/count_1w.txt). I have refined this list to 140,402 words, removing nearly all misspelled ones. Candidate words are sorted by frequency.
2. HallelujahIM also functions as a Spell-Checker: when you input an incorrect word, it will suggest the right alternatives.
3. HallelujahIM also serves as a Text Expander: it loads the file `~/.you_expand_me.json` from your Home directory. Here, you can define your favorite substitutions, such as `{"te":"text expander", "yem":"you expand me"}`. Note: need to restart IME if you changed the content of `~/.you_expand_me.json`.
4. Instant translation is available as you type words (currently, it only supports English-to-Chinese, but the translation dictionary can be configured later on).
5. Pinyin to English: you can input Hanyu Pinyin and receive the matching English word.
6. Fuzzy phonetic match is another feature. For example, you can input `cerrage` or `kerrage` to get `courage`, and `aosome` or `ausome` to get `awesome`.
7. You can switch to the default English input mode (the normal, quiet, or silent mode) by pressing the **right shift** key. Pressing shift again will switch back to the auto-suggestion mode.# download and install
1. download releases
- for **macOS 10.12 ~ 14.2**: https://github.com/dongyuwei/hallelujahIM/releases/latest, download the .pkg installer.
- for macOS 10.9 ~ 10.11(Deprecated version): https://github.com/dongyuwei/hallelujahIM/releases/tag/v1.1.1, deprecated version, need to install the .app manually.
- **Windows**: ported to Windows based on PIME,https://github.com/dongyuwei/Hallelujah-Windows, download the .exe installer.
- Linux:https://github.com/fcitx-contrib/fcitx5-hallelujah, thanks [Qijia Liu](https://github.com/eagleoflqj)!
- Android: https://github.com/dongyuwei/Hallelujah-Android2. unzip the app, copy it to `/Library/Input\ Methods/` or `~/Library/Input\ Methods/`
3. go to `System Preferences` --> `Input Sources` --> click the + --> select English --> select hallelujah

4. switch to hallelujah input method# update/reinstall
1. delete the hallelujah from `Input Sources`
2. kill the old hallelujah Process (kill it by `pkill -9 hallelujah`, check it been killed via `ps ax|grep hallelujah` )
3. replace the hallelujah app in `/Library/Input Methods/`.
4. add the hallelujah to `Input Sources`
5. switch to hallelujah, use it.# Why it's named hallelujahIM?
Inspired by [hallelujah_autocompletion](https://daringfireball.net/2006/10/hallelujah_autocompletion).
# preferences setting
click `Preferences...` or visit web ui: http://localhost:62718/index.html
setup:

## Build project
1. `open hallelujah.xcworkspace`
2. build the project.## License
GPL3(GNU GENERAL PUBLIC LICENSE Version 3)
## About libmarisa / marisa-trie
1. The static `libmarisa.a` lib was built from [marisa-trie](https://github.com/s-yata/marisa-trie) @`006020c1df76d0d7dc6118dacc22da64da2e35c4`.
2. To build the `libmarisa.a` lib, run:```bash
git clone git://github.com/s-yata/marisa-trie.git
cd marisa-trie
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.
```### Thanks to the following projects:
1. [marisa-trie](https://github.com/s-yata/marisa-trie)
2. dictionary/cedict.json is transformed from [cc-cedict](https://cc-cedict.org/wiki/)
3. [cmudict](http://www.speech.cs.cmu.edu/cgi-bin/cmudict) and https://github.com/mphilli/English-to-IPA
4. [GCDWebServer](https://github.com/swisspol/GCDWebServer)
5. [talisman](https://github.com/Yomguithereal/talisman), using its phonex algorithm to implement fuzzy phonics match.
6. [MDCDamerauLevenshtein](https://github.com/modocache/MDCDamerauLevenshtein), using it to calculate the edit distance.
7. [squirrel](https://github.com/rime/squirrel), I shamelessly copied the script to install and build pkg App for Mac.### snapshots
auto suggestion from local dictionary:


Text Expander:

translation(inspired by [MacUIM](https://github.com/uim/uim/wiki/What%27s-uim%3F)):
spell check:




pinyin in, English out:





## Paid Support
If functional you need is missing but you're ready to pay for it, feel free to contact me. If not, create an issue anyway, I'll take a look as soon as I can.
### Contact me
- wechat: dongyuwei
- gmail: newdongyuwei