HTC Snap日本語化






皆様お久しぶりですm(__)m



ひょんなことからHTC Snapを入手したので日本語化に挑戦してみました。

ある程度満足いくレベルになったので覚書の意味もこめて手法を紹介したいと思います。



日本語化にあたっては、pocketgamesさんのSnap関連記事や

Chaiさんのkeypad.dllのいじり方のエントリーなどを参考にさせていただきました。

ありがとうございました!



日本語化する前に必ず覚えておくこと





HTC Snapはwindowsフォルダに"ファイル名に大文字を含むファイル"(Test.TXTなど。拡張子も含む)を入れると再起動後にファイルが壊れます。

windowsフォルダにファイルをコピーする際はあらかじめリネームで小文字にするか、コピー後、再起動前にリネームしてください。

特にATOKなどはファイルのほとんどが大文字を含んでいるので、あらかじめCABをバラしてリネームしておき、手動でインストールすることをお勧めします。



1.フォントとNLS





ファイル名の大文字に注意しておけば後は今までの機種と同様です。

私の場合、wince.nlsをwindowsフォルダにコピーし、ホーミンさんのreloadnls.exeをスタートアップに置いています。

フォントは、フォントファイルをwindowsフォルダにコピーし、レジストリでフォントリンクを設定します。



2.ATOKをインストールする





日本語入力にはやはりATOKを使いたいのであれこれがんばってみました。

その結果、下記のことが実現し、日本語入力環境としてはかなり満足いくものになりました。



・日本語入力はATOKを使用

・半角入力は標準のIMEを使用

Numlockの呪いを回避ごめんなさい呪いは半角入力しか回避できません



この手法では、標準の半角用IMEATOKという2つのIMEを共存させています。

日本語入力への切り替えの際に使用するIMEを切り替えます。

これを実現する為に入力ロケール切り替えのHotkeyを使用しました。



Numlockの呪いは前面QWERTYなWM Standard端末の場合、多かれ少なかれ存在します。

Snapも例外なく(程度は軽いですが)存在します。 -> 連絡先入力やIEのアドレス入力など

標準IMEATOKを共存させたことで、Numlockの呪いは今のところ一切発生していません。残念。連絡先入力では日本語に切り替えると呪いが発生しました。。。

今回はSnapで行いましたが、もしかしたら他の端末でもこの手法で回避できるかもしれません。



それでは、手法の紹介です。



まず、ATOKをインストールします。

上述のようにファイル名に大文字を含んでいると再起動後に大変なことになるので手動でインストールしました。

様々な理由から私の場合、Sig3用のATOKを使用しました。(IMEオンのアイコンがタスクバーに表示されるのが大きな理由w)



レジストリの設定は特に重要です。

HKCU\Software\JustSystem(Sig3用の場合)以下のレジストリはそのままインポートして問題ありません。

重要なのはHKCU\keyboard layout以下の設定と、HKLM\System\CurrentControlSet\Control\Layouts以下の設定です。

下記の用に設定してください。



・HKLM\System\CurrentControlSet\Control\Layoutsの"e0010409"キーをコピーして"e0020409キー"を作成

・作成した"e0020409"キー内の"Ime File"を"\windows\atokimm.dll"に変更

・HKCU\keyboard layout\Preloadの"1"キーをコピーして"2"キーを作成

・作成した"2"キー内の"Default"を"e0020409"に変更



IMEの切り替えはHotkey(SHIFT+ALT)を使用します。

正常な切り替えを行うにはタイミングに癖があるため、切り替え用のソフトを自作してみました。

ここからダウンロードしてください。(Toggle_IME.exeというプログラムが入っています。)

新しいツールをアップしたので削除しました。



"Toggle_IME.exe"を"innercircle.exe"(小文字だよ!)にリネームしてwindowsフォルダに投げ込んであげれば

右下◎キーで切り替えできて幸せです。



以上の通りに行うことで標準IMEATOKが共存しますが、このままだと下記の問題があります。



・推測変換がでてこない

・日本語入力時にバックスペースキーが効かない



残念ながら推測変換については未だうまい方法が見つかりません(T_T

今後の課題にしておきます。(若干目星はつけているのですが・・・)



バックスペースキーについては次の項で説明します。



3. keypad.dllを書き換える





SnapのQWARTY側のバックスペースキーはトラックボールの右にある"<-"キーと同じキーコードが割付られています。

"<-"キーはStandard端末固有のキーで、Standard用のソフトはこのキーの処理が(実質)義務付けられています。

しかし、ATOKなどの本来Standard用に作られていないソフトの場合、"<-"の処理が実装されていませんので

思うような動作ができません。



そこで、Chaiさんの紹介されているkeypad.dllを書き換える方法を用いてQWERTY側のバックスペースキーを本来のBSキーに変更してみました。

keypad.dllをSnapのwindowsフォルダからコピーしてPCに持ってきます。

バイナリエディタで"20280h"以下(08 00 00 00 1B 00 00 00 ・・・)の6回でてくる"1B"を"08"に変更します。

メールキーを別のソフトに置き換えしたい場合はtmail.exeの変更(pocketgamesさん参照)も行っておくといいでしょう。



書き換えが終了したらPriviledgedな署名を行って端末にコピーします。もちろん署名のインストールも忘れてはいけません。

失敗すると、再起動後にキーがまったく利かなくなりますw

この状態でもActiveSyncは使えますので、あわてずにPCへ接続し、Snapのwindowsフォルダ内keypad.dllをリネームして再起動(バッテリを抜くw)しましょう。



以上の操作を行うことで推測変換以外についてほぼ完璧な日本語化が実現できました。

いろいろと裏技だらけですので、試される方は自己責任で行ってください。






なお、Toggle_IME.exeはオコロムウェアです。

ブログ等で紹介いただく時などに、('-w-')オコロム!と書いていただくことで無料で使用することができますwww



それでは、良いSnapライフを!