Windows 8 で日本語入力できない問題。設定ローミングではローマ字定義が同期されない。

 

新しく購入した VAIO Z (VPCZ23AJ) 。これに Windows 8 をインストールしてみたら、何故か日本語入力が出来ない!

「半角/全角」キーを押してもタスクバーの IME 表示は「あ」にはならず「A」のまま。

IMEメニュー(タスクバー IME アイコンを右クリックで開く) のプロパティを選んでも、一瞬ウィンドウが表示されるが直ぐに閉じてしまう。

 

うーん困った。

 

■結論

いきなり結論から行きます。

まず1台の Windows8 で MS-IME にローマ字定義を追加し、それをデフォルトのローマ字設定として選択します。その後設定の同期を有効にすると、SkyDrive に設定が格納されます。

次に2台目の Windows8 で、設定が同期されると MS-IME で日本語入力が出来なくなります。(タスクトレイのIME が "A" のままで "あ" にならず英数半角しか入力できない現象)。

この原因は、

Windows 8 (2012/11/16現在) のローミングは、IME のローマ字定義そのものは同期しません。しかし選択されているローマ字設定は同期されてしまうので、同期先の IME は存在しないローマ字定義を参照しようとして日本語入力起動に失敗しているようです。

これは同期先 Windows8 のローマ字設定をデフォルトの "MS-IME" にするか、同期先 Windows 8 で同期されなかったローマ字定義を追加することで解消します。

 

※ 2012/11/21 更新

IME のローミングは直接レジストリを変更した場合まで考慮していないようです。

clip_image001[1]

 

以下↓私の試行錯誤の過程をお送りします。

 

■キーボードレイアウトが英語キーボードになっている。

ふと気づいたのは、Shift+2 キーを押すと "@" が入力されているではないですか!これはキーボードレイアウトが英語キーボードである証拠。

そういえばそんな不具合が Windows 8 にはあったなと調べてみると、「標準 PS/2 キーボード」として認識していても、なぜか英語キーボードレイアウトになっていると「半角/全角」キーがないため、IME が起動せず日本語入力が出来ない問題があるようです。

これは CP から引きずっている問題で RTM でも同じようです。

これはこちらのフォーラムで解決。

[Win8CP] 日本語配列キーボードが英語配列キーボードとして認識されることがある
http://answers.microsoft.com/ja-jp/windows/forum/windows_cp-hardware/win8cp/ac81e6d4-9548-4498-b3cb-69126662c07e

 

■まだダメ→ユーザを変えてみる→日本語入力できた

キーボードレイアウトを日本語にして、ちゃんと日本語キーボードになっている (Shift+2 キーで " が入力される) のを確認しましたが、相変わらずタスクバーの IME は "A" のまま。

次に試してみたのは「ローカルユーザ」を新たに作成して、そのユーザで試してみること。

するとちゃんと入力されるじゃないですか!

と言うことは私のユーザプロファイルがおかしいのか??

 

■設定データのローミングか・・・

Windows 8 からは設定データのローミング (OS やアプリの設定内容を SkyDrive に保存して、他のPCでも同じにする) が有効になってるから、IME 設定がおかしくなっているからに違いない。

で、早速レジストリエディタで見てみると・・・ありました。

clip_image001

私は AZIK という入力方式を PC-98 の頃から使ってまして、このために AZIK という名前のローマ字スタイルをデフォルトにしています。

右側の値 "romastyle" == "AZIK" になってますが、左側のツリーを見ると "RomaDef" の下に "AZIK" がありません。

どうも、

・ローミングでは IME ローマ字設定は同期されない

・しかし選択されているローマ字設定は同期されてしまう

と言うことで、独自にローマ字設定をしていると存在しないローマ字定義がデフォルトで選択され、その結果日本語入力が出来なくなっているようです。

 

※ AZIK とは、日本語はほぼ子音+母音のにゅうりょくで、子音+子音の組合わせはありません。で、子音+子音でも入力しちゃおう、という方式です。

例えば、

「子音+k」が入力された場合、kin が入力されます。例えば "k" なら「k+kin」== 「きん」と入力されます。「s+k」なら「しん」。「h+k」なら「ひん」。

「子音+p」の場合は「おう」がアサインされています。ので「y+p」なら「よう」。「g+p」なら「ごう」。

というように組合わせを増やして文字打鍵数を減らし、20~30% 高速入力できる方式で、組合わせが増えるだけなので今までのキータッチを変更することなく習得出来ます。

オススメです。

拡張ローマ字入力「AZIK」・「ACT」で快適な日本語入力を!

http://hp.vector.co.jp/authors/VA002116/azik/azikindx.htm

 

■対策その1 ローマ字設定デフォルトを MS-IME にする

一番安直な方法として、"romastyle" = "MS-IME" にしてしまう方法があります。

で、レジストリエディタで変更しようとすると、

clip_image002

何故かエラー。

仕方がないので、変更用レジストリファイルを作成して結合します。

 

Windows Registry Editor Version 5.00

 

[HKEY_CURRENT_USER\Software\Microsoft\IME\15.0\IMEJP\MSIME]

"romastyle"="MS-IME"

 

出来た出来た。"romastyle" == "MS-IME" になりました。

clip_image003

で、めでたく IME の日本語入力が出来るようになりました。

clip_image004

 

■対策その2 ローマ字定義を追加する

レジストリエディタで見る限り問題はローマ字定義がレジストリに存在していないだけのようです。

では、IME 15.0 用の AZIK 用の定義を追加してしまえば良いということで。

定義用のレジストリファイルを作成

これを結合してみたらちゃんと日本語入力出来るようになりました。

 

■所感

アプリの設定ローミングは XML データで 100KB までという制限があります(Windows ストアアプリの場合)。で、ローマ字設定レジストリファイルだけで 16KB あります。

ローマ字設定が 5ヶあると、それだけで 100KB を超えてしまうので、IME のローマ字設定は同期されない仕様になっているようです。

今までのバージョンの IME には、MS-IME 以外にも "ATOK", "VJE", "WXG" など他の IME のローマ字設定がありましたが、今回の Windows 8 では "MS-IME" しかありません。

このあたりの事情で、ローマ字定義が同期されないものとおもいます。

出来ればローミングするときに、

・ローマ字設定がデフォルトの "MS-IME" ではない場合で、ローマ字設定がなければ "MS-IME" にしてしまう。

・存在しないローマ字定義が選択されていてもプロパティウィンドウで選択肢直すことが出来るようにする。

の2点どちらかであれば日本語入力が出来なくなり、レジストリエディタを使わないと復旧不可能という事態は避けられると思います。

0 件のコメント :

コメントを投稿

PR