キーボードが言語ごとにたくさん種類があることでおなじみの Gemini PDA ですが、前回話題にしたように、ハードウェア的に同じキーボードの印字を変えただけのようなので、弊害もあります。
Android のキーボード設定ファイルは大きくは Generic.kl と Generic.kcm の2種類あるんですが説明はよそにおまかせして(中略)。なお、Generic.kl は Android 標準のまま改変されていません。
Gemini PDA を販売している Planet Computers は大ブリテンのメーカーなので、キーボードと言えば UK 配列で、Generic.kcm もそのようになってます。
UK キーボードの配列が下図。 @ が Fn+K に割り当てられてます。
Generic.kcm ではこうなってます
key K { label: 'K' base: 'k' shift, capslock: 'K' fn: '@' }
なので、初期セットアップ時に @ を出すためには Fn+K を押さないといけない(重要)
他の記号類に関しても User-installable keymaps 未設定時に物理キーボードで入力する際には上記の UK キーボードの配列を参照して入力しないといけません。
バーチャルキーボード使えよって話なんですが、ちょっと悔しいじゃん?
次に US キーボードを見てましょう。
見ての通り、キーの数はまったく同一です。@ は Shift+2 で、いわゆる英語キーボードの標準ですね。
でも、初期設定では Shift+2 は " になってるので理屈がわかってないと大混乱します。玄人向けだ。
Generic.kcm はこれ。
key 2 { label: '2' base: '2' shift: '"' fn: '#' }
Gemini キーボードアプリで適切に US キーボードに設定すると次のように設定が上書きされます。
key 2 { label: '2' base: '2' shift: '@' fn: '`' alt: '\u00b2' }
キーの表記通りの文字が打てる喜び。
このように User-installable keymaps を使って同一のキーボードを多言語対応させることができているわけですね。
低コストで多言語対応できる悪くない仕組みだとは思いますが、いうほど安くないし、ユーザーへの負担がちょっと気になりますね。
で、User-installable keymaps を使って自分の好きなようにキー配列を変えてやろうって色々調べてるのが下図。
次回以降に続く。