トップページ > 記事閲覧
オーバレイの作成
日時: 2006/02/02 18:28
名前: つじ   <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

sekino様。御指南下さいませ。

DateBk5の日本語オーバレイを作成、配布しているつじというものですm(__)m
DateBk5の次バージョン、DateBk6のαテストが始まり、これの日本語化に挑んでいるのですが、オーバレイをONにすると一部のビットマップが化け文字になってしまうと言うトラブルに見舞われています。

現在は、prc2pilrc でDateBk6.prcからリソースをPilrc形式で抜き取り、これを翻訳してPilrcとBuild-prcでLocalize Hack形式のファイルを作成。そしてPalm上でPowerLocalizerを使いオーバレイに変換という手続きをとっています。

ところがどうやらprc2pilrcでうまくリソースが抜き出せていない箇所がちょうど化けているようです。

例えば以下のようなリソースがあります。

PushButton "\004\033" id 1050 at (1 148 7 11) RightAnchor Font 0 Group 5

これはprc2pilrcで抜き出したものの一行を抜粋した物ですが、"\004\003"というところがどうもおかしいようです。ここは翻訳する必要はないのでそのままにしておいたのですが、本来、ここにはビットマップが表示されます。しかしオーバレイをONにすると化け文字となってしまいます。

バイナリエディタでオリジナルファイルとLocalizeファイルを比べると、記述内容がまるで異なります。
1〜2カ所ならバイナリエディタで直せばよいだけなのですが、これが結構な数があるのです。

なんとかうまくリソースを抜き出したいのですが、sekino様はオーバレイ作成時、どうやって元のリソースを確認されていますか??

良い方法があったら御指南下さい。

長文失礼いたしましたm(__)m
メンテ
Page: [1] [2] [3]

Re: オーバレイの作成 ( No.4 )
日時: 2006/02/03 10:42
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

> 現在でも「Localize Hack形式のファイル」⇒「PowerLocalizer」という手順を
踏まなければいけない理由はなんでしょう?

えーっと一番大きな理由は、私にプログラミングの知識が全くないことです
全く持って胸を張って言うようなことではないのですが…

DateBk5の日本語化をしてみよう!! と決意した際に、先人達の残して下さったやり方をそのまま模倣して、「やり方のみ」覚えたのです。

第2の理由としては、未だにLocalize Hack形式ファイルを必要とする人がいることです。
DateBkはただでさえ巨大アプリで、オーバレイも巨大。OS4以前のマシンではオーバレイを使うと激重になってしまいます。で、「自己責任 」でG-WriteLocalizeを使ってオリジナルファイルに日本語リソースを上書きして使う方がいます。その際にLacalize Hack形式ファイルが必要なのです。
そんな理由です。個人的にはオーバレイがPC上で構築できるのならそちらに移行して、以後オーバレイのみの配布にしたいところです。

「休日定義」の件。うちのBBSも覗いてくださったようでありがとうございます!!
さすがにライバル社に問い合わせるのも気が引けるな…と思っておりました。アドバイスありがとうございます。日本語化の件が一段落したら問い合わせてみたいと思います。
メンテ
Re: オーバレイの作成 ( No.5 )
日時: 2006/02/03 16:14
名前: sekino

>さすがにライバル社に問い合わせるのも気が引けるな
うまくエンジニアレベルに話が降りれば対応してくれると思いますよ。
あとは、Agendusを褒めちぎるとか...

PRCExplorer
一気にPilRC形式のデータを吐き出せました。
少しだけ修正が必要ですが。

オーバレイ、Localize Hack形式への書き出しについて、ツール、手順等
纏めますね。
メンテ
Re: オーバレイの作成 ( No.6 )
日時: 2006/02/03 17:13
名前: sekino

>sekino様が試されたように
>「PUSHBUTTON ID 1050 AT (1 148 7 11) USABLE RIGHTANCHOR GROUP 5 GRAPHICAL >BITMAPID 13170 SELECTEDBITMAPID 13180」
>と出力されました。…が、Build-prcでコンパイル(っていうんですか??)する際
>に、該当行でエラーをはいてしまいます。
「error: expecting: item string, got ID」
>だそうです。…すいません。理解できません

ちょっと修正がいります
「PUSHBUTTON ID 1050 」
のところを
「PUSHBUTTON "" ID 1050 」
と修正してください。

BUTTONリソースも同じ。
メンテ
Re: オーバレイの作成 ( No.7 )
日時: 2006/02/03 17:30
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

>ちょっと修正がいります

ありがとうございます!!
早速試してみます!!
メンテ
Re: オーバレイの作成 ( No.8 )
日時: 2006/02/03 17:50
名前: Maniac  <jmccmy@st.rim.or.jp>
参照: http://home.att.ne.jp/yellow/jmccmy/Palm/

> 現在でも「Localize Hack形式のファイル」⇒「PowerLocalizer」という手順を
踏まなければいけない理由はなんでしょう?

私の場合でいいますと、以下のような感じになります。

LocalizeHack形式を使う場合:
一部のアプリ(特にSplashID)は、OVL形式でいきなり作ってしまうと、一部の機能に支障が出ることがあるようです。(私のやり方が悪いだけかもしれませんが)
ただSplashIDの場合は、LocalizeHack形式からPowerLocalizerでオーバーレイを作成するときちんと動きます。よってオーバーレイで作ってダメなときにはG-MkLocalizerでLocalizeHack形式で作ったりします。

オーバーレイで作る場合:
ZLauncherの日本語化であったんですが、とあるバージョンからLocalizeHack形式や、そこから作成したオーバーレイが機能しなくなる現象がおきました。今ではZZTechs社より専用のローカライズツールを提供していただき、ダイレクトに日本語版を作成していますが(ZZTechs社の許可あり)、その後の調査で直接オーバーレイを作成してもきちんと動作することがわかっています。(LocalizeHack形式で作成した物が動かない理由はいまだにわかりません

最近の大半のアプリはオーバーレイで大丈夫なようですので、最近あまりG-MkLocalizerの活躍の場もなくなってます。ただ、OS3x/4xで使われている方のことを考え、OS5専用でない限りはなるべくLocalizeHack形式のものも作るようにはしています。(それか日本語版ですね)
メンテ
Re: オーバレイの作成 ( No.9 )
日時: 2006/02/03 17:37
名前: Maniac  <jmccmy@st.rim.or.jp>
参照: http://home.att.ne.jp/yellow/jmccmy/Palm/

>個人的にはオーバレイがPC上で構築できるのならそちらに移行して、以後オーバレイのみの配布にしたいところです。

オーバーレイを直接作成する方法ですが、私はPRC2OVL.EXEを使っています。このツールはPalmOS5のSDKに添付されているようです。私はCodeWarriorの中から見つけましたが。。

ちなみにDateBK6だとこんな感じのバッチファイルを作成します。

prc2ovl DateBK6.prc -locale jpJP -o DateBK6_jpJP.prc -n -i MBAR 0000-9999 -i Talt 0000-9999 -i tFRM 0000-9999 -i tSTR 0000-9999 -i tAIN 1000 -i tver 1000

これで一発でオーバーレイ作成です。(あ、ちなみにパソコン上で作ります)DateBK6-Resource.prcも同様にオーバーレイを作成でき、Palm上でも動作を確認できてますよ。

で、ここで作ったオーバーレイをTCにHotSyncして、ひたすらTC上でオーバーレイの日本語化と動作確認、日本語化に伴う画面項目の位置調整などを行っています。(私はPalmバカですので極力Palmをつかっちゃいます キーボード入力だと速いっす。それにいつでもどこでもローカライズできちゃいます。通勤途中とか遠くのお客さんのとこに行く途中なんかにやってます。Palmだけでやるのがポイントです(笑)

オーバーレイ自体もPalm上で作成できればパソコンすら使わないでやれるんですが。。。
メンテ
Re: オーバレイの作成 ( No.10 )
日時: 2006/02/03 23:56
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

とりあえず報告です。成功しました!!
sekino様、Maniac様。本当にありがとうございました。

今回初めてPRCExplorerを使ってのリソース抜きだしにチャレンジしたのですが、prc2pilrcより確実で、しかもリソースがきちんとソートされて出てくるので、めちゃくちゃ便利です。以後、こちらに完全移行しようかと思います。

maniac様> これで一発でオーバーレイ作成です。(あ、ちなみにパソコン上で作ります)DateBK6-Resource.prcも同様にオーバーレイを作成でき、Palm上でも動作を確認できてますよ。

えっ?! だってDateBk6-Resource.prcってファイルタイプが"Rsrc"ですよね。オーバレイって効くんですか?? "appl"にしか効かないと思いこんでいました。単にPowerLocalizerが"appl"しか対象にしていないということ?!

PRC2OVL.EXE… Palm OS Developer Suiteに入っていたような…
試してみます!!
メンテ
Re: オーバレイの作成 ( No.11 )
日時: 2006/02/04 00:58
名前: sekino
参照: http://www5f.biglobe.ne.jp/~T-Pilot/PalmWares/JaPon/Tmp/

>えっ?! だってDateBk6-Resource.prcってファイルタイプ
>が"Rsrc"ですよね。オーバレイって効くんですか?? "appl"
>にしか効かないと思いこんでいました。単にPowerLocali
>zerが"appl"しか対象にしていないということ?!

ということなんです。
オーバレイは全てのリソースデータベースに対して有効な仕組みです。

ファイルタイプは全く関係ありません。

ついでにもう一つ。

>今回初めてPRCExplorerを使ってのリソース抜きだしに
>チャレンジしたのですが、prc2pilrcより確実で、しか
>もリソースがきちんとソートされて出てくるので、めち
>ゃくちゃ便利です。以後、こちらに完全移行しようかと思います。

HelpのAboutダイアログの下から二行目を見てください。
納得するはずです。
メンテ
Re: オーバレイの作成 ( No.12 )
日時: 2006/02/05 15:46
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

sekino> HelpのAboutダイアログの下から二行目を見てください。
sekino> 納得するはずです。

このアプリって、palmsourceに勤務してる方が個人的に作られていると言うこと??
すごいなぁ!!
メンテ
Re: オーバレイの作成 ( No.13 )
日時: 2006/02/05 17:08
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

to Maniac様

>ちなみにDateBK6だとこんな感じのバッチファイルを作成します。

これはオリジナルファイルから、"英語リソース"の日本語オーバレイの作成法ですね。

PC上で一気にオーバレイを作ろうと、以下のようなバッチを作ってみました。

build-prc -t ovly DateBk60apA_jpJP-a5.prc "DateBk6_jpJP" CESF *.bin

ところがこれで作成したファイルと、Maniacさんからご教授いただいた方法で作成したファイルをPRCExplorerで比較してみると、私の作ったファイルに"ovly"という項目が足りません。

きっと直接オーバーレイにするには何か記述が足りないのだろうと、PRC2OVL.EXEで作成されたオーバレイからリソースを抜き取ってみたのですが、"ovly"に対応するリソースが見あたりません。そこで"ovly 1000"の項目をPRCExplorerで選択、"save resource"を選んでみたら、バイナリファイルが生成されました。なので、このバイナリファイルをpilrc.exeで生成されるバイナリに混ぜて、もう一度Build-prcしたらようやく"ovly"の項目が出来ました。

で、試したところ、DateBk6, DateBk6-Resources共に見事オーバーレイが有効となりました!!

まだスマートな方法ではありませんが、それでもkなり作業が楽になりました。

もっとスマートな方法があれば御指南頂ければ嬉しいです。
よろしくお願いしますm(__)m
メンテ
Re: オーバレイの作成 ( No.14 )
日時: 2006/02/05 19:42
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp/

ご紹介いただいたPRCExplorerですが、日本語リソースの抜き出しには適していないのでしょうか??
自分が作成したオーバーレイからリソースを抜き出してみたら、日本語がすべて化けておりました。
メンテ
Re: オーバレイの作成 ( No.15 )
日時: 2006/02/05 23:15
名前: alg
参照: http://alg.at.infoseek.co.jp/

>>14
>日本語がすべて化けておりました。

日本語、というか、標準的な英数字記号に当てはまらない文字コードを持つ文字は、
\x81
みたいな形式になりますね。
でも、コンパイルすればちゃんと日本語になりますよ。
メンテ
Re: オーバレイの作成 ( No.16 )
日時: 2006/02/06 06:57
名前: sekino

なんだか、久しぶりにホットな展開

>PC上で一気にオーバレイを作ろうと、以下
>のようなバッチを作ってみました。

えっと、一気に作るのは難しいです。

まず、オーバレイ用のベースになるファイルを生成して、次にそ
のファイルをオーバレイに仕立て直す。
という手順をふむ必要が有ります。

「ovly」りそーすは、ベースとなるファイルとオーバレイファイ
ルの橋渡しをするリソースで、どんなリソースをオーバレイさせ
ていますよという情報ですので、一度オーバレイファイルを生成
させて、そのファイルを解析した結果である「ovly」リソースを
マージする。

例:(引数はいんちきです。イメージね)
第一ステップ
 pilrc base.rcp -t Rsrc -c TPLT -ro base.prc
or
build-prc -t Rsrc -c TPLT base.prc *.bin
第2ステップ
 PRC2OVL base.prc -locale jpJP -o DateBK6_jpJP.prc
メンテ
Re: オーバレイの作成 ( No.17 )
日時: 2006/02/06 17:38
名前: Maniac  <jmccmy@st.rim.or.jp>
参照: http://home.att.ne.jp/yellow/jmccmy/Palm/

>>13

sekinoさんも書かれていますが、ovlyリソースは、元アプリに対して、どのリソースが
オーバーレイ対象かを示すリストとチェックサムを持っているようです。
ovlyリソースはPRC2OVL.EXEでオーバーレイを作成したときに、オーバーレイの
中に作成されます。元アプリの中には存在しません。

私の作業方法は基本的には以下のものだけですので、比較的手順は、簡単ですが、
rcpから作っていくと、ovlyリソースの扱いがめんどいかもしれませんね。

1)元アプリからPRC2OVL.EXEでオーバーレイを作成(日本語のためのオーバーレイだが中身はまだ英語
2)1)で作成されたオーバーレイをPalmにHotSync
3)Palm上でRsrcEditでオーバーレイを修正(日本語化)+テスト

Palm純正のDeveloperSuiteでもできそうな感じですが、なんとなくわかりずらい感じ。。
メンテ
Re: オーバレイの作成 ( No.18 )
日時: 2006/02/06 19:28
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

Sekino様、Maniac様

御指南ありがとうございます。たぶん不十分だと思いますが、自分なりに理解しました。

リソース"ovly"はprc2ovlで生成した"英語リソースの日本語オーバレイ"よりbinファイルで抽出、Pilrcで生成されたbinファイルと一緒にbuild-prcするという手法が今のところ良い感じです。

Localize Hack形式を通さず直接オーバレイを生成できる環境が整いました!!

重ね重ね、本当にありがとうございました!!

それと、「休日定義」の件。どうやらうちのBBSを見てくださったようで、作者の井上様からご連絡いただきました。やはりアジェンダスの時も英語で説明されたようで、その時のファイルを頂戴できました!!
メンテ
Re: オーバレイの作成 ( No.19 )
日時: 2006/02/08 14:38
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

DateBk6の日本語オーバレイの件で、またまた質問です。よろしくお願いいたします。

とある tFRM で「GADGET ID」というきじゅつがあります。
この中身に手を加えてみたいのですが、PRCExplorerで覗いてみても、該当する記述がありません。この「GADGET ID」の中身は、どこに記述されているのでしょうか??

何度も申し訳ございません。御指南頂ければと思います。よろしくお願いいたします。
メンテ
Re: オーバレイの作成 ( No.20 )
日時: 2006/02/08 15:23
名前: sekino

>「GADGET ID」
は実体の無いオブジェクトで、プログラム上でコントロールする物と考えてください。

僕自身は使ったことが無いので詳細は把握していませんが、
プログラム上でボタンにしたり、何を表示するかセットしたりするんではなかったかな?

手の加え方は...?
文字列が表示されているボタンになるのであれば、該当する文字列がストリングリソースに無いか探してみて、そちらを変更してみるとか...
メンテ
Re: オーバレイの作成 ( No.21 )
日時: 2006/02/08 18:43
名前: Maniac  <jmccmy@st.rim.or.jp>
参照: http://home.att.ne.jp/yellow/jmccmy/Palm/

>>19

Gadgetには自分で画像を貼り付けたりして独自のコントロールを作りだすときに使われると聞いたことがあります。Gadget自体の定義としては、タダ単に領域が定義されているだけだったようなきがします。中身をいじるのはプログラムの中でやっているかと思いますよ〜
メンテ
Re: オーバレイの作成 ( No.22 )
日時: 2006/02/09 09:35
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

sekino様、Maniac様

ご回答ありがとうございます。
そうですか。やっぱりリソースレベルではtSTRをいじるくらいしか方法はないですね。

今回の件は作者のCESD氏に要望いたしました。
氏はこれまで日本向けに"for Japanese"バージョンを作ってくださっていましたので、DateBk6も"for Japanese"作成時には、ここをこうゆう風にして下さい、とメールしてみました。

どうもありがとうございました。
メンテ
Re: オーバレイの作成 ( No.23 )
日時: 2006/02/17 15:56
名前: つじ  <datebk5@av.lolipop.jp>
参照: http://datebk5.lolipop.jp

to sekino様

sekino様がNo16で示された方法を試しているのですが、うまくいきません。

具体的には、生成されたオーバレイファイル(DateBk6_jpJP)をPRCExplorerで確認すると、リソースはきちんと日本語化されおり、"ovly"リソースもあります。PowerLocalizerでも"有効"となっているのですが、実際にDateBk6を起動すると英語リソースのままです。

実際の作業ですが、
翻訳したDateBk60apA_jpJP-b1.rcpってファイル名のPilrc形式ファイルを

pilrc -L Japanese -Fj -Loc jpJP DateBk60apA_jpJP-b1.rcp temp

でtempと言うフォルダにバイナリ化し、それを

build-prc --no-check-resources -t Rsrc base.prc "DateBk6_jpJP" CESF *.bin

でbase.prcを生成させます。(--no-check-resources を入れないと「resource 'code' #1 is missing」と怒られました)
で、オリジナルのDateBk6から

prc2ovl DateBk6.prc -locale jpJP -o DateBk6_jpJP.prc -n -i MBAR 0000-9999 -i Talt 0000-9999 -i tFRM 0000-9999 -i tSTR 0000-9999 -i tAIN 1000 -i tver 1000

でDateBk6_jpJPを生成させ、この二つのファイルを

PRC2OVL base.prc -locale jpJP -o DateBk6_jpJP.prc

とマージさせました。

どこかやり方間違っておりますでしょうか??
毎度毎度申し訳ございませんが、御指南下さいm(__)m
メンテ

Page: [1] [2] [3]

題名 スレッドをトップへソート
名前
E-Mail
URL
パスワード (記事メンテ時に使用)
コメント

   クッキー保存