fFtT を日本語対応にするために辞書を作る。まず漢字。必要なデータは、コードポイントとそのコードポイントのローマ字読みの先頭のアルファベット。
もしかすると、コードポイントは不要かもしれない。Unihan_Readings.txt がサポートする U+3400 から U+FA2D(とりあえず BMP 以降は考えないことにする)の配列という形にすればインデックスでアクセスするだけでいい。50733 文字もあるけど……。しかし調べてみると、その中で音読み・訓読みが定義されているのは 13369 文字だけだった。となるとやはりコードポイントは必要か。
一方、読み先頭字はというと、アルファベット 26 文字分のビットフィールドということになる。つまり 4 バイトを消費するのだが、こちらもまた調べてみると実際に使われる文字はもう少し少ない。ローマ字なので例えば L とか Q とかはまあないのだ。具体的には
7647 K
6664 S
4033 T
3514 H
2188 M
1594 G
1545 Y
1538 N
1494 R
1328 A
1319 O
1294 B
1057 I
943 J
855 C
808 U
772 D
625 E
499 F
407 W
6 P
こんな感じで 21 字で済む。そうすると 3 バイト。うーんなんとか 2 バイトに詰められないかな……。まあ、とりあえず 3 バイトにするかな。そうすると 1 エントリあたり 5 バイトの、13369 字分ということで 65KBytes になる。けっこう小さくなるなー。
参照する際は、コードポイント順に並べてある前提で 2 分探索することになる。