Skip to content

akaza-im/akaza-ime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Akaza for Windows

Windows 用の日本語かな漢字変換 IME。

akaza の変換エンジン(Rust)を利用し、Windows フロントエンドを Rust (TSF: Text Services Framework) で実装する。

動作環境

  • Windows 10 以上
  • x86_64

アーキテクチャ

概要

単一の COM DLL として実装。TSF の ITfTextInputProcessorEx / ITfKeyEventSink を実装し、libakaza を直接リンクして変換を行う。

┌──────────────────────────────────────────────────────────┐
│                   akaza_ime.dll (COM DLL)                │
│                                                          │
│  ┌────────────────────┐    ┌──────────────────────────┐  │
│  │  TSF Frontend      │    │     libakaza             │  │
│  │                    │    │                          │  │
│  │ • ITfTextInput-    │    │ • かな漢字変換           │  │
│  │   ProcessorEx      │    │ • k-best 変換            │  │
│  │ • ITfKeyEventSink  │    │ • ユーザー学習           │  │
│  │ • ITfComposition-  │    │ • モデル/辞書ロード      │  │
│  │   Sink             │    │                          │  │
│  │ • ローマ字=>かな   │    │                          │  │
│  │ • キー入力処理     │    │                          │  │
│  └────────────────────┘    └──────────────────────────┘  │
│                                                          │
│  %APPDATA%/akaza/                                        │
│  ├── model/default/                                      │
│  │   ├── unigram.model      (MARISA Trie)                │
│  │   ├── bigram.model       (MARISA Trie)                │
│  │   └── SKK-JISYO.akaza    (MARISA Trie)                │
│  └── romkan/                                             │
│      └── default.yml                                     │
└──────────────────────────────────────────────────────────┘

開発

前提条件

  • Rust (stable, msvc または mingw ターゲット)
  • 管理者権限 (regsvr32 による登録)

ビルド

cargo build --release

DLL 登録

regsvr32 target\release\akaza_ime.dll

DLL 登録解除

regsvr32 /u target\release\akaza_ime.dll

コード変更後の反映

IME の DLL はプロセスにロードされるため、ビルド前にロックを解除する必要がある。

regsvr32 /u target\release\akaza_ime.dll
taskkill /F /IM explorer.exe
cargo build --release
start explorer.exe
regsvr32 target\release\akaza_ime.dll

モデルデータの配置

akaza-default-model からダウンロードし、%APPDATA%\akaza\model\default\ に手動で配置する。

キーバインド

キー 動作
全角/半角 IME on/off トグル
Space 変換 / 次の候補
Enter 確定
Escape キャンセル
Backspace 削除 / 変換取り消し
↑ / ↓ 候補選択

句読点・記号

入力 出力
.
,
/
-

TODO

  • 候補ウィンドウ(候補一覧の UI 表示)
  • 文節区切りの移動・伸縮(Shift+←/→)
  • カタカナ変換(F7)
  • 半角カタカナ変換(F8)
  • 英数変換(F10)
  • ひらがなそのまま確定(F6)
  • 数字キー入力(全角数字 / 候補番号選択)
  • 記号の全角入力(! ? ( ) 等)
  • ユーザー辞書の登録・編集 UI
  • 変換履歴の永続化
  • IME のオン/オフ状態をタスクバーに表示(言語バーアイコン)
  • 入力モード表示(ひらがな/カタカナ/英数の切り替え表示)
  • 設定画面
  • Shift キーでの大文字英字入力
  • Tab キーでの予測変換
  • 再変換(確定済みテキストの再変換)
  • 前後の文脈を使った変換精度向上

関連プロジェクト

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages