英語版PocketPC2002の日本語化 (備忘録として) (Last update: Feb 18, 2003)
英語版PocketPC2002を日本語化したので手順をまとめておきます。作業を行ったのはiPAQ H3950です。他のPocketPC2002でも同様の手順で日本語化可能だと思いますが、保証はしません。
日本語フォントの導入
CEFONTをWindowsフォルダにコピー
フォントリンクの設定: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft¥Fontlink\SystemLinkにTahoma,ArialCourier New, Times New Roman,Symbolを追加、\Windows\CEFONT.ttfを設定。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft¥Fontlink\SystemLink¥SkipTableの設定。
(このあたりは http://www12.big.or.jp/~t-hiruma/iPAQ/today/japanize.html を参考にさせていただきました)
HKEY_LOCAL_MACHINE\SYSTEM\GDI\V1\SYSFONTでNm=CEFONT,Ht=-12,Wt=400,CS=128
日本語入力IMEの導入
compoPOBoxのインストール:
KCTRLのコピー
compoPOBOXの変換時の表示ができなかった(白四角になる)のでHKEY_CURRENT_USER¥Software\Gawaro\KCTRLにTTFont0=cefontを設定
ここまでの作業で大半のソフトでの日本語の読み書きができるはずです。標準添付のNotes, Task, Contacts, Inbox (e-mail), PocketWord, PocketExcelなどで日本語の読み書きができることを確認しました。
しかしInternet Explorerはこれだけでは日本語が読めません。 これは日本語のコードがデコードできないためのようです。デコードするためのコード表がwince.nlsに含まれているのですが、英語版のwin.cenlsには日本語のコード表が含まれてないためのようです。なので日本語版のwince.nlsが必要になります。
このwince.nlsを合法的に入手する方法が問題になります。
CE2.11用のwince.nlsはMSからDLできるSDK(勿論日本語版)などに含まれているのでこれを流用することが出来ます。(合法かどうかは別にして、技術的には) このwince.nlsでも日本語のデコードが可能でIEでの日本語表示が可能になります。
ただし、Regional Settings関係の設定が正常に読めないようで設定がかなり乱れます。このうちレジストリの設定でカバーできるのは以下のとおり。
HKEY_LOCAL_MACHINE\nls\overrides |
ICaln=dword
01 (日本語の際のカレンダーの選択:1西暦(日本語) 2西暦(英語)3和暦 SLDte="yyyy/mm/dd"
(ロングフォーマットの日付フォーマット) |
HKEY_LOCAL_MACHINE\nls |
DefaultOCP 1B5 ->3a4 DefaultACP 352->3A4 DefaultLCID 406 -> 411 PocketPCの言語選択。Regional Settingsで地域を変更すると変わる。 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internetexplorer\International |
Def_CodePage 4E4 -> 3A4 :IEのデフォルトコードページの設定(3A4は日本語(自動選択)) |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International |
ACP 4e4->
3a4 PocketPCの言語選択。Regional Settingsで地域を変更すると変わる。 |
(他にもありそうです)
これらの設定で大半の部分は何とかなりますが、どうしてもだめだったのがCalenderの月、曜日表示でした。これらもwince.nlsのRegional Settingsの中に書かれているのですが、正常に読めないために表示が化けます。
恐らくファイルの先頭部分に各設定の先頭アドレスのようなものがかかれているのだと想像しますが、これらを修正して読めるようにできれば解決できると思いますが、このリバースエンジニアリングには相当な労力が必要です。
手っ取り早いのは日本語版PocketPC2002からのコピー。これによってRegional
Settingsを含め正常に使うことが出来ます。(著作権の問題はおいといて)