Based on Microsoft TSF IME Demo。
Mainly to develop a Chinese Input Method Editor without ads and likely some other disturbing things we users hate really.
The roadmap is as follows.
Before we start, make sure you have already installed boost,
scoop install boost
Then, replace boost version in ./CMakeLists.txt
,
And thne, run the following command,
./lcompile.ps1
We also need to build one 32-bit version,
./lcompile.ps1 32
Besides, we also need to build dictionary for our IME using this repositoy below,
https://github.com/fanlumaster/FanyDictForIME.git
You need to build this this repo to generate IME Dictionary first, what you need to do is running the commands besides using pwsh7,
cd $env:LOCALAPPDATA
mkdir DeerWritingBrush
cd DeerWritingBrush
git clone https://github.com/fanlumaster/FanyDictForIME.git
cd ./FanyDictForIME/makecikudb/xnheulpb/makedb/separated_jp_version
python ./create_db_and_table.py
python ./insert_data.py
python ./create_index_for_db.py
Copy-Item -Path ./out/cutted_flyciku_with_jp.db -Destination $env:LOCALAPPDATA/DeerWritingBrush
Moreover, we also need to copy another Dictionary file contained in our main project repo(FanIME) to $env:LOCALAPPDATA/DeerWritingBrush
,run the command below,
Copy-Item -Path ./Dictionary/SampleIMESimplifiedQuanPin.txt -Destination $env:LOCALAPPDATA/DeerWritingBrush
Last, copy following files to $env:LOCALAPPDATA/DeerWritingBrush
,
Copy-Item -Path ./assets/* -Destination $env:LOCALAPPDATA/DeerWritingBrush
Run the following command as administrator,
./linstall.ps1
./luninstall.ps1
- Quanpin
- Xiaohe Shuangpin
- Help codes in use of Hanzi Components
- Direct2D to draw candidate windows
- DirectWrite to render candidate windows fonts
- Ciku that can be customized
- Customized IME engine
- Customized skins
- Toggle between Simplified Chinese and Traditional Chinese
- English autocomplete
- Open-Soured Cloud IME api
- Toggle candidate window UI between vertical mode and horizontal mode
- Feature switches: most features should be freely toggled or customized by users
Maybe another project.