DvorakJとGoogle日本語入力の連携による各種キー配列への対応

| コメント(0) | トラックバック(0)

そもそも何故?

 まず、何故こんな手の込んだことをやるのかについて、ざっと説明します。

 15年ほど前から、私はDvorak配列を使っています。それ以前から、日本語の入力には漢直を使っていたので、Qwerty配列からDvorak配列への乗り換えは簡単でした。漢直の設定をIMEのローマ字テーブルに入れる(*1)という方法なので、その漢直用のテーブルのローマ字部分をQwertyからDvorakに置換するだけで済みました。つまり、英字配列を変えても日本語の入力方法に影響しなかったわけです。

「JIS仮名+漢直」と「親指シフト+漢直」の違い

 今年の夏、急に、仮名入力に漢直を混ぜる方法を思いついてしまいました。漢直のストロークをローマ字入力モードで渡すのではなく、仮名入力モードで(仮名文字列として)渡してしまおうというわけです。

 実際にやってみると、JIS仮名配列ではうまくいきましたが、親指シフトの場合は「。」と「.」が区別できずに(*2)行き詰まりました。

 しかし、漢直のストロークとして扱うためには、どうしても「。」と「.」は区別できなくてはなりません。現に、これまでずっと、ローマ字入力モードの漢直では何の問題もなく「。」と「.」を区別できていたので、このやり方ならうまくいくはずです。

親指シフトをローマ字テーブルで入力する

 そこで、「。」や「.」のキーを(アルファベットとして)ローマ字入力モードのIMEに渡して、ローマ字テーブルで「。」や「.」に変換するようにしました。部分的にローマ字入力モードにはできないので、当然、他の仮名や記号等も全部ローマ字テーブルで設定することになります。ローマ字テーブルで漢直のストロークを設定するのと同じように、仮名の“よみ”とは無関係に、キーの位置とシフト状態を示す中間コードとして扱うことにするわけです。

 以下は、そのために作ったDvorakJ用の設定内容(*)です。

同時に打鍵する配列

/*
 *  encode-oyayubi-qwerty-mu-hen-sp-kana.txt
 *
 *  ・左右の親指で同時打鍵シフト入力するためのDvorakJの設定ファイルです
 *      いわゆる“親指シフト方式”に限らず、親指でシフトする方式に使用できます
 *      実際に入力する文字(列)ではなく、中間コードを出力します
 *      IMEのローマ字入力モードで目的の文字(列)に変換することを想定しています
 *
 *  ・中間コードには、通常のQwerty配列の文字を使用し、以下の記号を前置します
 *      'ô':バックスラッシュの打鍵('\'と区別するため)
 *      'ŝ':通常のシフト打鍵
 *      'ò':左親指との同時打鍵 {無変換}
 *      'ó':右親指との同時打鍵 {変換}
 *      'ō':両親指との同時打鍵 {無変換}+{変換}    (※)オプション
 *      'ė':拡張1との同時打鍵 {空白}              (※)オプション
 *      'ë':拡張2との同時打鍵 {ひらがな}          (※)オプション
 *
 *      (※)コメントで無効にしてあります(必要に応じてコメントを外してください)
 *
 *  ・これは、日本語入力用の設定ファイルです
 *      必ず「日本語入力用配列を日本語入力時にのみ使用する」を選択してください
 *
 */


/* 文字(単独打鍵) */
[
1|2|3|4|5|6|7|8|9|0|{-}|{^}|{\}|
q|w|e|r|t|y|u|i|o|p|{@}|{[}|
a|s|d|f|g|h|j|k|l|;|{:}|{]}|
z|x|c|v|b|n|m|,|.|/|ô{\}|
]


/* シフト(ŝ) + 文字 */
-shift[
ŝ1|ŝ2|ŝ3|ŝ4|ŝ5|ŝ6|ŝ7|ŝ8|ŝ9|ŝ0|ŝ{-}|ŝ{^}|ŝ{\}|
ŝq|ŝw|ŝe|ŝr|ŝt|ŝy|ŝu|ŝi|ŝo|ŝp|ŝ{@}|ŝ{[}|
ŝa|ŝs|ŝd|ŝf|ŝg|ŝh|ŝj|ŝk|ŝl|ŝ;|ŝ{:}|ŝ{]}|
ŝz|ŝx|ŝc|ŝv|ŝb|ŝn|ŝm|ŝ,|ŝ.|ŝ/|ŝô{\}|
]


/* 左親指(ò) + 文字 */
-muhenkan[
ò1|ò2|ò3|ò4|ò5|ò6|ò7|ò8|ò9|ò0|ò{-}|ò{^}|ò{\}|
òq|òw|òe|òr|òt|òy|òu|òi|òo|òp|ò{@}|ò{[}|
òa|òs|òd|òf|òg|òh|òj|òk|òl|ò;|ò{:}|ò{]}|
òz|òx|òc|òv|òb|òn|òm|ò,|ò.|ò/|òô{\}|
{無変換}|
]


/* 右親指(ó) + 文字 */
-henkan[
ó1|ó2|ó3|ó4|ó5|ó6|ó7|ó8|ó9|ó0|ó{-}|ó{^}|ó{\}|
óq|ów|óe|ór|ót|óy|óu|ói|óo|óp|ó{@}|ó{[}|
óa|ós|ód|óf|óg|óh|ój|ók|ól|ó;|ó{:}|ó{]}|
óz|óx|óc|óv|ób|ón|óm|ó,|ó.|ó/|óô{\}|
{変換}|
]

〔オプションの部分は省略します〕

 このように、敢えてDvorakJでは実際に入力する文字を指定してません。その代わりに、論理的な打鍵情報を中間コード化することに徹しています。

 文字キーの中間コードに関しては(独自の符号を用いると煩雑になるので)Qwerty配列の文字をそのまま使っています。もちろんDvorak配列バージョンを作っても構いません。

 以下のように、Google日本語入力のローマ字テーブルの「入力」欄に中間コードを入れ、「出力」欄には目的の文字を入れます。

(表1) ローマ字テーブルの設定例:親指シフト(NICOLA-J)(*4)

最上段 上段
単独左親指右親指SHIFT 単独左親指右親指SHIFT
入力出力入力出力入力出力入力出力 入力出力入力出力入力出力入力出力
1 ò1 ó1 ŝ1 q òq óq ŝq
2 ò2 ó2 ŝ2 w òw ów ŝw
3 ò3 ó3 ŝ3 e òe óe ŝe
4 ò4 ó4 ŝ4 r òr ór ŝr
5 ò5 ó5 ŝ5 t òt ót ŝt
6 ò6 ó6 ŝ6 y òy óy ŝy
7 ò7 ó7 ŝ7 u òu óu ŝu
8 ò8 ó8 ŝ8 i òi ói ŝi
9 ò9 ó9 ŝ9 o òo óo ŝo
0 ò0 ó0 ŝ0 p òp óp ŝp
- ò- ó- ŝ- @ ò@ ó@ ŝ@
^ ò^ ó^ ŝ^ [ ò[ ó[ ŝ[
\ ò\ ó\ ŝ\
中段 下段
単独左親指右親指SHIFT 単独左親指右親指SHIFT
入力出力入力出力入力出力入力出力 入力出力入力出力入力出力入力出力
a òa óa ŝa z òz óz ŝz
s òs ós ŝs x òx óx ŝx
d òd ód ŝd c òc óc ŝc
f òf óf ŝf v òv óv ŝv
g òg óg ŝg b òb ób ŝb
h òh óh ŝh n òn ón ŝn
j òj ój ŝj m òm óm ŝm
k òk ók ŝk , ò, ó, ŝ,
l òl ól ŝl . ò. ó. ŝ.
; ò; ó; ŝ; / ò/ ó/ ŝ/
: ò: ó: ŝ: ô\ òô\_ óô\ ŝô\_
] ò] ó] ŝ]

 どの打鍵でも、通常のローマ字入力の「あ」「い」「う」「え」「お」と同じように即座に仮名が入力されるので、ローマ字入力を使っている感じはしないと思います。(目を凝らしてよく見れば、何かが一瞬表示されていることは分かりますが、入力の邪魔になるほどではありません)

各種キー配列への対応

 ここまでは親指シフト(NICOLA-J)を例にして説明しましたが、各種配列用の入力ローマ字テーブルを作ることによって、TRONなどの1打鍵系の仮名配列(*5)に対応できます。また、JISや新JISを親指でシフトできるようにするなどの応用も可能です。

この続きは?

 16日の「親指シフトに漢直をじわじわ混ぜていく方法」に詳しく書く予定です。


 この記事はDvorak Advent Calendar 2015漢直 Advent Calendar 2015のために書いたものです。

(*1) 漢直の設定をIMEのローマ字テーブルに入れる 詳しくは、先日の「仮名漢|漢直」問題を御覧ください。

(*2) 親指シフトの場合は「。」と「.」が区別できずに 日本語の文章を入力する場合は「。」か「.」のどちらか片方を使うのが普通なので、IMEの方でどちらにするかを選べるようになっています。たぶん、その処理のせいで片方しか入力できないのだろうと思われます。JIS仮名配列の場合は、漢直のストロークに句読点などの記号が入らないため、このような問題が生じなかったのです。

(*3) DvorakJ用の設定内容 親指キーの組み合わせは、{無変換}と{変換}のほかに、{無変換}と{空白}、{空白}と{変換}の2種類があります。どの組み合わせでも、IMEは同じ中間コードを受け取るようになっています。

(*4) 親指シフト(NICOLA-J) NICOLA規格 | NICOLA 日本語入力コンソーシアムを参考にして、文字キーを[BS]に用いない「NICOLA-J型」を選びました。また、ここからリンクされているQ's Nicolatter 8 の配列図にならって、未定義の部分を「●」としています。

(*5) TRONなどの1打鍵系の仮名配列 漢字のストロークを単独打鍵の文字の組み合わせで確実に判定できるものであれば、どのような配列でも問題ありません。なお、TRONキーボードには左右の親指を同時に押した状態で入力する文字があるので、「両親指との同時打鍵」をオプションとして追加できるようにしました。

トラックバック(0)

トラックバックURL: http://homeposition.net/mt/mt-tb.cgi/1092

コメントする

カレンダー

<   2015年12月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のツイート

このページについて

このページは、m(as)mが2015年12月15日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「漢直用ローマ字をQwertyからDvorakに変換する小技」です。

次のブログ記事は「親指シフトに漢直をじわじわ混ぜていく方法」です。

最近の記事はメインページで、過去の記事はアーカイブで閲覧できます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 4.261