kzouのBenQ P50日記 このページをアンテナに追加 RSSフィード

2005-07-05

[]リアル日本語化への道(第2回)改訂版

ご注意

作業手順及びツールなどが全面的に変更となったため、改訂しました。過去記事はこちら
→ http://p50.g.hatena.ne.jp/kzou/00000705

前回は日本語のResourceの元となる日本語PocketPC 2003SEのエミュレータからのROMイメージの取り出しを書きましたが、皆さん作業できました?

いままで見れなかった部分も見れてまさにInside Windows Mobileって感じですね(^^ゞ

今回は、前回抜き出したファイルを元に日本語のmuiファイルを作る方法を書いてみます。当然、前回と同様に自己責任であること最低限の努力はしてください。もちろん流れを読んで理解できなければ辞めたほうがいい作業だと思います。

リスクは必ず付き物ですので自己責任とか理解できない人、本体や周辺機器が壊れたら困るという人も絶対に行わないでください。

やり方及び実行もグレーゾーンなのか黒なのか白なのか解りませんことをまず自覚してください。

また、作成したファイルを自己管理のもと以外で配ったり(二次配布)するのはグレーとか黒以前に黒だと思われます。(多分、GameのROMとか音楽ファイルみたいな扱いなかなぁ~って認識レベルですけど)

しつこく書きますが全て自己責任でお願いいたします。

<<日本語のResourceを利用したmuiファイルの作り方>>

用意するもの

流れとしてはこんな感じ

空のDLLファイルを作成→元のDLLファイルから文字列を持ってくる→状態に合わせてビルドする→ビルドしたら名前を○○○.dll.0411.muiとしてレジストリで同一言語設定にしたPPCに送ってリセットしてみる。

下記の文章の説明文はホーミンさんから頂いた手順書を参考に加筆してあります。
(重ね重ねホーミンさんにはお世話になっております<(__)>)

※尚、MS部分のリソース編集は問題が発生することがあるので要注意

muiに必要なResourceを含む流用DLLファイルの作成

  • DLLファイル作成時の注意点
    • ビルド時のオプションや修正事項を予め調べる
      • DumpStringTable.zipこちらからDownloadしてPC上で解凍してDumpStringTable.exeを用意しておく。
        DumpStringTable.exeにバグがありましたので差し替えをいたしました! Downloadされた方は再度Downloadしなおしてください!!(2005/7/10 22:20差し替え)
      • DumpStringTable.exeをPC上で起動して日本語版のエミュレータから取り出したROMファイルの中にある目的dllやexeファイルをDumpStringTable.exeで開いてみる。
        • なにもエラーが表示されなければ作業Aへ
        • "/N option required."とエラーが表示される場合は作業Bへ
        • さらに"StringTable can edit only on .rc file. Export StringTable?"というエラーが表示されたら作業Cへ


  • 日本語Resourceを流用するファイルを開く
  • 日本語Resourceの流用
    • 上の状態だと作成中のResourceウィンドウと今開いた流用元の日本語エミュレータから抜いたResourceが表示されていると思います。
    • 日本語Resourceの"String Table"、"Menubar"、"Dialog"などを各々開いた状態でShiftキーなどで選択して作成中の空のDLLファイルの○○.rcと書かれているところにCtrlキーを押しながら1項目ごとに("String Table"、"Menubar"、"Dialog"をやる場合は中の数字を等を選択した状態で3回)ドラッグ&ドロップでコピーします。
    • コピーした後は"Menubar"や"Dialog"の変更を絶対にやらないでください。無用なコードがお節介のように書き込まれてしまうそうです。(変更する場合はビルドした後にResourceHackerで行いましょう)
  • ビルドをする
    • 上に書いた、作業Aと作業Bの場合は作業を確認してビルドをします。
    • 上に書いた、作業Cの場合は"一旦開いているDLL作成のプロジェクトを閉じて(自動で保存されます)、プロジェクトの入ったフォルダの中にあるプロジェクト名.rcファイルエディタなどで開きます。
      先程、作業CでDumpStringTable.exeを使って書き出したテキストファイルを開き該当の番号を検索して文字列をコピーします。全ての箇所のコピー(修正)が終わったらエディタで保存して閉じてください。
      その後はプロジェクトの入ったフォルダワークスペースファイル(プロジェクト名.vcw)を開きますが、その後はビルドするまで一切触らないでください。
      (要は¥0000っていう文字列終端処理がeVCでもResourceHackerでも見れないので弄れない為、エディタでの処理をした訳です。)
      (参考まで)文字列リソースが単純にコピーできない理由
      文字列リソースは「文字数」と「実際の文字列」が保存されています。これを裏ワザ的に利用して終端文字(\0)を途中に入れることが出来ます。eVCやResHackerで文字列編集して保存すると、「終端文字までの文字数」と「終端文字まで文字列」になるためおかしな事がおこります。
      /Nオプションは文字列に終端文字がついた形で保存します。
      DumpStringTable.exeはこういう文字列をチェックします。

Dialogなどをドラック&ドロップするとeVCが強制終了してしまう場合。

これはeVCのバグかもしれないということですが、Dialogなので使われているアドレス番号がある程度以上になると認識できずエラーでeVCが落ちてしまいます。その場合は、追加で下記の処理が必要です。(今のところoutres.dllで作業が必要です)

プロジェクトの入ったフォルダワークスペースファイル(プロジェクト名.vcw)を開いて"String Table"、"Menubar"、"Dialog"や一切触らずにビルドしてください。

これで空のdllから"String Table"、"Menubar"、"Dialog"のみ日本語を流用したmuiファイルの作成方法の説明は終わりです。

次回は色々と問題のある導入方法へと続きます。(読む前に出来上がって嬉しくて導入すると私と同じ痛い目にあうかもです(^^ゞ)

(2005.7.10改訂 旧記事はこちら)
(2005.7.12修正)

tk109tk1092005/07/04 22:22補足ですがEvc関連のファイルリンクは以下URIの手順2に記述してあります。
SDKインスコ時にスクリプトチェックにかかる場合があるので、ノートンとかは切っておいたほうが良いです~ ご参考まで http://tk109.matrix.jp/blog/DownLoad/Doc/X50vJp.html

kzoukzou2005/07/04 22:35tk109さん ナイスフォロー、流石お役立ちサイト! 皆さん参考にしてくださいね~♪

AsukalAsukal2005/07/04 23:32お疲れ様です。だいぶ進みましたか??私は出張で続き(Blue Angel版)の製作が止まりイライラです!

kzoukzou2005/07/10 13:01Asukalさん 遅レス、スイマセン<(__)> 作業はある程度は順調ですけどドキュメントが間に合わないって感じです(;_;)

ホーミンホーミン2005/07/10 17:01気づいた事何点か書いておきます。
・「プロジェクト」→「設定」で設定するときは「設定の対象」を「すべての構成」にして設定すると設定漏れや間違いが防げます。
・「ツール」→「オプション」「ダウンロード」タブの「常にバイナリをターゲットにダウンロード」のチェックを外しておくとビルド時にデバイスへダウンロードされません。
・DumpDialogRC.exeではIDが番号でなく名前のダイアログは書き出し出来ないので、eVCでコピーする必要があります。
・MenuはeVCでもResHackerでも編集しても大丈夫です。当然下手にいじらない方がいいですけど。
(参考まで)文字列リソースが単純にコピーできない理由
文字列リソースは「文字数」と「実際の文字列」が保存されています。これを裏ワザ的に利用して終端文字(\0)を途中に入れることが出来ます。eVCやResHackerで文字列編集して保存すると、「終端文字までの文字数」と「終端文字まで文字列」になるためおかしな事がおこります。
/Nオプションは文字列に終端文字がついた形で保存します。
DumpStringTable.exeはこういう文字列をチェックします。

kzoukzou2005/07/10 20:52ホーミンさん 全文追加転記させていただきました(^^; ありがとうございます<(__)>

JaylinJaylin2012/01/09 03:23Now I feel stpiud. That's cleared it up for me

tqjktpvbtqjktpvb2012/01/10 00:44Kn2Wyg , [url=http://hhrbdreuqbov.com/]hhrbdreuqbov[/url], [link=http://tssigiyguzpm.com/]tssigiyguzpm[/link], http://nmpryrutedtl.com/

dlhulbdlhulb2012/01/15 00:19sQvKKz , [url=http://tjdoquxeqpss.com/]tjdoquxeqpss[/url], [link=http://bvdcklbjoeqo.com/]bvdcklbjoeqo[/link], http://xxhcovznpakr.com/