hechimaは、日本語入力の部品(論理配列・かな漢字変換・学習・ユーザー辞書)をブラウザのページの中に置くためのソフトウェア群で、 「へちま言語ラボ」はその実験場です。各ページが、OS組み込みのIMEではできない(あるいはやりにくい)日本語入力のデモになっています。
入力
→打鍵
キーマップ
→かな
変換
→文節と候補
表示
日本語入力は、だいたいこの4つの箱でできています。hechima はこれをページの中に持ってきているので、どの箱でも差し替えられます。 下の一覧の「差し替えた層」は、そのページがどの箱を差し替えたかです。
- 標準IME(ローマ字入力) : ローマ字で打ってスペースで変換。OSのIMEを使わずに、ふだんどおり日本語が打てます 差し替えた層:なし(素の hechima)
- フリック入力 : スマホのフリック入力キーボードをブラウザ上に再現しました 差し替えた層:入力・キーマップ・表示
- 新配列サンプル(薙刀式) : 薙刀式を設定なしで体験できます。iPad+物理キーボードでも動きます 差し替えた層:キーマップ
- ひたき配列といすか配列(仮称) : 五十音図とフリック入力の並びをそのままキーボードに広げた、覚えることの少ないかな配列です 差し替えた層:キーマップ
- 配列JSONを読み込んで試す : 配列の定義JSONを読ませると、その場で打てるようになります 差し替えた層:キーマップ
- 縦書きエディタ&縦書きIME : 縦書きの本文に、縦組で横並びに出る変換候補 差し替えた層:表示
- テーマ連動 : テーマを切り替えると、変換候補の窓も本文と一緒に着替えます 差し替えた層:表示
- 候補の二層化 : ふだん見える変換候補は5件だけ。残りはTabで開く一覧に送ります 差し替えた層:表示
- ゲームパッド日本語入力 : コントローラーで日本語を入力します。左手で子音、右手で母音 差し替えた層:入力・キーマップ
- 入力のリプレイ : 打っていく過程を記録して再生します。押したキーと指の動きも重ねて見られます 差し替えた層:なし(全部の層を記録)
- Obsidian で使う : メモアプリのプラグインにして、そのエディタで日本語を打てるようにしました 差し替えた層:宿主(4つの箱ごと置き場所を変えた)
かな漢字変換・学習・テキスト・ユーザー辞書はすべてブラウザ内で完結し、一切外部へ送信されません。 学習・テキスト・ユーザー辞書は各実験ページ間で共有されます。
OSの日本語入力と、どこが違うのか
部品そのものは、どれも前からあったものです。新しいのは継ぎ目のほうで、 全部が同じ土俵に、同じ形の継ぎ目で並んでいます。なので違いは「できる/できない」よりも、 試したり差し替えたりするのがどれだけ容易かに出ます。
| 日本語入力の部品 | OSの日本語入力 | hechima(へちま言語ラボ) |
|---|---|---|
| 入力デバイス | できない キーボードと画面キーボードから。ゲームパッドやカメラを入力源にはできない | コードで ブラウザが受け取れるものなら入力源にできる(ゲームパッド) |
| キーマップ(配列) | 一部できる ローマ字の綴りを変えたり、かな入力に切り替えたりはできる。ただし同時押しの新配列は IMEの外(専用ハードや常駐ツール)が要る | データ一枚 JSONの差し替えだけ(薙刀式・フリック) |
| 変換エンジン | 環境による Windows・Mac・LinuxではIMEごと入れ替えられる。ChromeOS(Chromebook)はアプリ形式のIMEを 入れられず拡張機能の範囲まで、しかも学校や職場の貸与機ではそれも管理者次第。 iPad / iPhone に外付けキーボードを繋いだ場合は標準のもの一択 | コードで WebAssemblyを差し替える。いまは Mozc |
| 候補の見た目・並べ方 | ほぼできない フォントや配色を選べるIMEはある。ただしアプリ側からは触れず、 並べ方(何段で、どういう順に出すか)は変えられない | コードで 候補窓もただのDOM。縦書きなら横並び、フリックならキーボードの上、と作り分けられる。 本文と同じCSSを見ているので、配色も書体も揃う(テーマ連動) |
| 見せる候補の選び方 | ほぼできない 表示する件数を設定できるIMEはある。ただし「どれを既定で見せて、どれを奥に送るか」の 決め方はIMEの中に閉じていて、外から変えることも、基準を動かして試すこともできない | コードで 変換エンジンが返すコストを使い、ふだん見せる候補とその先に送る候補に分けている。 分ける基準はその場で動かせる(候補の二層化) |
| 表示・レイアウト | アプリ次第 縦書きに対応したアプリなら縦書きで書ける。macOSの標準IMEは、そうしたアプリでは 変換候補の窓も縦組で出す。ただしブラウザの中の縦書きに対しては、横書きの候補窓が出てくる | コードで CSSで組む。候補窓も本文の向きについてくる(縦書き) |
| 学習・ユーザー辞書 | できる(分けられない) 単語登録も学習もできる。ただし記憶はひとつで、文書やジャンルごとに分ける手段はない (汚したくなければ学習を止めるしかない) | コードで 辞書も学習もこのページの持ち物。将来は文書やジャンルごとに分けられる |
OSのIMEを不当に低く描かないように、できることは「できる」と書いています。 そのうえで残る「できない」が、ここで実験している場所です。 各ページのソースは GitHub にあります。