ローカライザーを利用するにはPalmOS英語版搭載機+J-OSIIIまたはWorkPad日本語版+山田さんが作成公開されておりますLocalize Hackが必要です。
ローカライザー作成講座自体は下記にも記してある通り冨永さんによってすでに行われていますが、ここでは私のような初心者にも出来るだけわかりやすく、そして簡単に作成するまでの手順を記述していきたいと思います。なお、私自身はWindowsしか使った事がなく、以下は全てWindows98での話です。たぶんWindows95でも同様だと思います。他の環境は解りません。 (なお、冨永さんのローカライザー作成講座と重複する部分もあります。文章自体もコピーさせていただいて使っている箇所は多々あります。ご了承下さい。)
さらに、ここで紹介させていただく手順はまったくの独学で勉強したものであり、本来の手順や、もっと効率が良い手順からはほど遠いかもしれません。ですが、一応ローカライザーはちゃんと出来上がります。
最近では、Gaku TaniguchiさんがG-MkLocalizerというPalm上で簡単にローカライザーを作成するアプリケーションを開発・公開して下さっています。これなら通勤時間などのちょっとした空き時間に気軽に作業をできる点などなど、本当にすばらしいとしか言いようがありません。
また、ローカライザー作成講座をして下さっている冨永さんと、J-OSシリーズを開発されローカライザーというシステムを確立して下さった山田さんに心からの敬意を表します。
まずはじめにローカライザーを作成するアプリケーションを決めます。初めから許可を得る必要はないとは思いますが(途中でやっぱりできない、なんて事もあると思いますしね。)ある程度目処が付いた時点で作者に連絡して許可をもらっておいた方が無用なトラブルを防げるでしょう。ソースファイルが公開されている場合を除いてローカライザーを作成するにはprcファイルを解析することが不可欠となります。特にパッケージソフトやシェアウエアソフトはリバースエンジニアリングと言われる解析を嫌う場合が多いので、必ず許可を得るようにして下さい。 「あなたのソフトの日本語版を作りたいんだ」という話をすれば、好意的に対処してくれると思います。
今回の例では、山田さんが作成して下さったSampleアプリケーションに私が少しだけ手を加えたSampleアプリケーション2(sample2.zip)のローカライザーを作成します。
以下は予備知識として、私が実際に海外の作者様から許可をいただけるまでのメールのやりとりを具体的に記したものです。
海外製アプリのローカライザー公開許可までの道のり
海外製アプリのローカライザー公開の許可を得るには、英語でのメールのやりとりは必須です。 しかも日本語版を作る場合と違って、海外の作者様はローカライザーというシステムやその思想なんかはご存じない訳ですから、そこから話を始めなければなりません。 実際にはもっと良い手順や説明があるかとは思うんですが、私の英語レベルではこれくらいで精一杯です。 海外製アプリのローカライザー作成にチャレンジされる方の参考になればと思います。
私の場合ですと、こういう流れでした。
- 私から作者様へのメール(* はターゲットアプリを示しています。)
恥ずかしながら最初のメールでは、ローカライザーの説明には「日本語化パッチ」という言葉しか思い浮かびませんでした。--------
Subject: Permission of opening to the public wish
Hello.
My name is Tetsuji Goto in Japan.
Please permit sudden mail.
I want to make the patch of making to Japanese of "*".
"*" is not modified.
(In short, "*" and this patch of making to Japanese are installed in Palm.)
As a result, only an English resource part of "*" comes to be displayed in Japanese.
(Menu, button, label, and character string, etc)
And, I want to open it to the public.
Of course, I support all patches.
Therefore, the trouble is not put.
There is no element that you become disadvantageous because of the appearance of this patch.
Please permit the thing opened to the public if making the patch is completed.
The user in Japan will increase further if permission is given.
Please give me the answer when you examine this matter.
A good answer is expected.
--------
件名: 公開許可願い
はじめまして。
私の名前は日本の後藤哲司と申します。
突然のメールをお許し下さい。
私は"*"の日本語化パッチを作りたい。
"*"自体の改変はしません。
(要するに"*"とこの日本語化パッチをPalmにインストールするわけです。)
これにより"*"の英語のリソース部分のみが日本語で表示されるようになります。
(メニュー、ボタン、ラベル、文字列など)
そして、それを公開したいのです。
もちろんパッチのサポートは、全て私が行います。
だから迷惑はかけません。
このパッチの登場で、あなたが不利になる要素はなにもありません。
もしパッチの作成が完了したら、公開する事を許可して下さい。
もし許可を下さったら、日本の利用者がさらに増えるでしょう。
あなたがこの件について検討して下さったら、私に返事を下さい。
良きお返事を期待しています。
--------- 作者様からのメール
やはり、1回目の私のメールでは説明が不十分だったようで(当たり前ですね。)、日本語訳に関する部分と、どういう理屈でリソースが日本語に置き換わるのかをもっと的確に伝えなければなりませんね。--------
Thanks for the inquiry and request in the above email.
Questions for you:
1) Is the resource a direct translation (or as close as possible) from the English text to the Japanese text?
2) Is the patch applied on the PC to the *.prc file, or is it applied somehow on the Palm unit?
I think your idea above is an excellent, and I just want to verify that the contents of the patch are just translations of the English text to the Japanese text of the same meaning.
--------
問い合わせのメールありがとうございました。
あなたへの質問:
1) リソースは英文から日本語への的確な訳(もしくはできるだけ近い)ですか?
2) パッチはPC上で*.prcファイルに組み込むものなのか、またそれはPalmデバイスでどのように扱われるのか?
私はあなたの考えは素晴らしいと思います。私はパッチの内容が単に同じ意味の日本語テキストへの英文の翻訳であることを確かめたいだけです。
--------
- 私から作者様へのメール
この説明はとても難しく、山田さんにアドバイスをいただきました。本当にありがとうございました。m(__)m
--------
Thank you very much for the reply immediately.
A1)
Yes, Japanese translation is faithfully done.
A2)
*.prc won't be modified both on PC and Palm device.
I make *-localizer.prc which include Japanese resources.
User will Install both of *.prc and *-localizer.prc
English resource is overriden by japanese resources dynamically run time.
I use a Localize Hack to do this.
Can you understand above?
A good answer is expected.
Thanks.
--------
早速のお返事ありがとうございました。
A1)
はい、日本語訳は忠実に行います。
A2)
*.prcはPC上でもPalmデバイス上でも改変は一切いたしません。
私は日本語のリソースを含んだ*-localizer.prcを作るだけです。
ユーザーは*.prcと*-localizer.prcの両方をインストールするわけです。
英語のリソースは、日本語のリソースによって常に動的に置き換えられます。
これにはLocalize Hackというアプリを利用します。
これでご理解いただけますでしょうか?
良いお返事をお待ちしています。
ありがとうございました。
--------- 作者様からのメール
だいたい上記内容でご理解いただけたようで、次のメールをいただきました。--------
The process below sounds very good then here, as long as the Japanese translation is as faithfully done (as you indicate below).
--------
分かりました。(あなたがおっしゃる通り)翻訳が忠実に行われるのであれば、素晴らしいアイディアだと思います。
--------- 私から作者様へのメール
最後の確認です。--------
Thank you very much for the reply immediately.
It is glad to understand.
Then, may I open this to the public?
A good answer is expected.
Thanks.
--------
早速のお返事ありがとうございました。
ご理解いただきうれしいです。
それでは、公開させていただいてもよろしいでしょうか?
良いお返事をお待ちしています。
ありがとうございました。
--------- 作者様からのメール
やりました!作者様より許可がいただけました。--------
Yes, you may open the patch to the public.
--------
はい、公開していただいてかまいませんよ。
--------
実際には全くこの場合と同じようにはいかないでしょうが、皆さんの参考程度にでもなれば幸いです。
なお、上記ツール類などのアプリケーションの検索には、PalmGear H.Q.やHandango!が非常に便利です。
C:\ C:\WINDOWS\COMMAND\ /NS /WIN95 PATH=C:\ORAWIN\BIN;C:\PROGRA~1\JUST\JSLIB32;C:\jdk\bin;(←この部分はJDKをインストールした場合のみ) SET BLASTER=A220 I7 D1 T2 REM [Header] @ECHO OFF loadhigh c:\windows\COMMAND\nlsfunc.exe c:\windows\country.sys SET PATH=C:\PROGRA~1\JUST\JSLIB32;"%PATH%;C:\WWW\PERL\BIN;";C:\GCC\BIN call C:\GCC\bin\instsh.bat \bin C:\GCC\bin\bash.exe \bin\sh.exe SET EMACSLOADPATH=C:\GCC\emacs\lisp SET EMACSPATH=C:\GCC\bin SET EMACSLOCKDIR=c:\temp SET INFOPATH=C:\GCC\info SET EMACSDOC=C:\GCC\emacs\etc SET EMACSDATA=C:\GCC\emacs\etc SET GCC_EXEC_PREFIX=C:\GCC\lib\gcc-lib\
classes.zip src.zip ptools.html ptools-e.html readme.txt
docフォルダ exampleフォルダ vslickフォルダ pilrc.exe Pilrcui.exe Readme.txt ReadMeJ.txt
Prc2pilrc Prc2pilrc.html Prc2pilrc.jar Prc2pilrc.tar
c:\loc\prc2pilrc\prc2pilrc.batを実行します。jviewの場合 cd c:\windows jview /cp c:\loc\prc2pilrc\Prc2pilrc.jar rdc.Prc2pilrc c:\loc\prc2pilrc\sample.prc JDKの場合 java -classpath Prc2pilrc.jar rdc.Prc2pilrc sample.prc
sample.rcp Tbmp1000.pbitm Tbmp1100.pbitm
// Prc2pilrc 0.1 by Dick van den Burg (burg@is.ge.com) Form id 1000 at (2 2 156 156) Modal HelpId 1100 MenuId 1000 Begin Title "Sample" Button "Tap here!" id 1001 at (50 135 60 13) LeftAnchor Font 0 FormBitmap at (44 16) Bitmap 1100 End Menu id 1000 Begin Pulldown "Options" Begin MenuItem "about Sample" id 1000 End End Alert id 1000 Confirmation Begin Title "Sample" Message "Sapmle Application for Localize Making." Buttons "OK" End Bitmap id 1000 "Tbmp1000.pbitm" Bitmap id 1100 "Tbmp1100.pbitm" String id 1100 "Help string for Sample" String id 1000 "Welcome to the Earth" ApplicationIconName id 1000 "Sample" Version id 1000 "1.0"
-------------------------------- -------------------------------- -------------------------------- -------------------------------- --####------------------#------- -#----#-----------------#------- -#----------------------#------- -#----------------------#------- -#----------------------#------- -#----------------------#------- --####---###-####--###--#--##--- ------#-#--#-#-#-#-#--#-#-#--#-- ------#-#--#-#-#-#-#--#-#-#--#-- ------#-#--#-#-#-#-#--#-#-####-- ------#-#--#-#-#-#-#--#-#-#----- -#----#-#--#-#-#-#-#--#-#-#--#-- --####--####-#-#-#-###--#--##--- -------------------#------------ -------------------#------------ -#################-#-##########- -------------------#------------ -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- --------------------------------
---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- -------------####----------------------------------------------- -------------#---#---------------------------------------------- ------------##---#---------------------------------------------- ------------#----#---------------------------------------------- ------------#----#-------------------------------------###------ ------------#----#-------------------------------------#-#------ ------------#---#-------------------------------------#--#------ ------------##--#------------------------------------#---#------ -------------#-#-------------------------------------#--##------ -------------###------------------------------------#---#------- --------------##------------------------------------#---#------- --------------##------------------------------------#--#---##--- -------------#-#--------###------------------------#--##-####--- -------#######-##----######--##--##-###----#-------#-##-##--#--- ------##---#-#########---#--###-#-###-#----#-###---###--#--#---- ------#---#-----##--#---##--#-##--#--##---#-##-#---##---####---- ------#--#------#--##---#--#--#---#--#---#-#---#---##--###-----# ------#-##------#-#----##--#--#--#---#--###----####-####-####### ------##--------##----##--##-#---#--##-##########--------------- -----###--------###--######--#--#---###-##-###------------------ ----#--##------#--####-----------------##----------------------- --###----######------------------------#------------------------ ---------------------------------------#------------------------ --------------------------------------##------------------------ -------------------------------------##------------------------- -------------------------------------#-------------------------- ---------------------------------------------------------------- ----------------------------------------------------------------
// Prc2pilrc 0.1 by Dick van den Burg (burg@is.ge.com) ↑単なるコメント行です Form id 1000 at (2 2 156 156) ↑このフォームの番号と表示位置の定義です Modal HelpId 1100 ↑このフォーム番号1000で右上のiをタップしたときに表示されるヘルプ番号です MenuId 1000 ↑このフォーム番号1000で表示されるメニュー番号です Begin Title "Sample" ↑一番上に反転表示されるタイトルです Button "Tap here!" id 1001 at (50 135 60 13) LeftAnchor Font 0 ↑このボタンの文字列と表示位置などの定義です FormBitmap at (44 16) Bitmap 1100 ↑筆記体のSampleと書いてあるビットマップ番号と表示位置の定義です End Menu id 1000 ↑上のフォーム番号1000が表示されている時のメニュー番号です Begin Pulldown "Options" ↑Menuボタンを押したときに一番上に表示されるタグです Begin MenuItem "about Sample" id 1000 ↑Optionsタグをタップしたときに表示されるメニューの内容です End End Alert id 1000 ↑about Sampleを選択したときに表示されるアラートボックスの定義です Confirmation Begin Title "Sample" ↑アラートボックスのタイトルです Message "Sapmle Application for Localize Making." ↑アラートボックス内に表示される文字列です Buttons "OK" ↑アラートボックスの一番下に表示されるボタン内の文字列です End Bitmap id 1000 "Tbmp1000.pbitm" ↑ランチャーで表示されるアプリケーションのアイコンファイルの定義です。 今回のローカライザー作成には必要ありません Bitmap id 1100 "Tbmp1100.pbitm" ↑フォーム番号1000で表示される筆記体のSampleと書いてあるビットマップ番号の定義です String id 1100 "Help string for Sample" ↑フォーム番号1000で右上のiをタップしたときに表示される文字列です String id 1000 "Welcome to the Earth" ↑プログラム内から呼び出されて表示される文字列です ApplicationIconName id 1000 "Sample" ↑ランチャーで表示されるアプリケーションの名前です。 ローカライザー作成には必要ありません Version id 1000 "1.0" ↑ランチャーで表示されるアプリケーションのバージョンです。
あと、Tbmp1100.pbitmの置き換えですが、ここでは例えば下記のように修正しておきます。// Sample Localizer ↑自分のわかりやすいように適当なコメントに置き換えておきます Form id 1000 at (2 2 156 156) Modal HelpId 1100 MenuId 1000 Begin Title "サンプル" ↑日本語に置き換えたい部分を翻訳します Button "ここをタップ" id 1001 at (50 135 60 13) LeftAnchor Font 0 ↑日本語の幅は1文字9ドットです。見やすく表示させるためには +4ドット必要でしょう。 atの後の()内の数値は左上のX座標, Y座標, 幅, 高さとなっていますので、 1, 3番目の数字と文字列の長さのバランスを取りましょう。 FormBitmap at (44 16) Bitmap 1100 End Menu id 1000 Begin Pulldown "オプション" Begin MenuItem "サンプルについて" id 1000 ↑各Pulldown項目の合計の横幅及びMenuItemの横幅が 160ドットを超えないように注意します End End Alert id 1000 Confirmation Begin Title "サンプルについて" ↑ここも横幅が160ドットに収まるように気を付けます Message "ローカライザー作成用のサンプルアプリケーションです。" Buttons "了解" EndBitmap id 1000 "Tbmp1000.pbitm"↑ランチャーで表示されるアプリケーションのアイコンファイルの定義です。 今回のローカライザー作成には必要ありません Bitmap id 1100 "Tbmp1100.pbitm" ↑フォーム番号1000で表示される筆記体のSampleと書いてあるビットマップ番号の定義です。 今回のローカライザー作成ではこのビットマップも置き換えてみるのでそのまま記述してありますが、 このビットマップを置き換えない場合はこの行も必要ありません。 String id 1100 "サンプルのヘルプ文字列を記述します。" String id 1000 "地球へようこそ"ApplicationIconName id 1000 "Sample"↑ランチャーで表示されるアプリケーションの名前です。 ローカライザー作成には必要ありません Version id 1 "1.0" ↑ランチャーで表示されるアプリケーションのバージョンです。 ローカライザーではVersion id 1と定義して下さい
---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- -----#-------#-------------------------------------------------- -----#-------#-------------------------------------------------- -#################---------------------------------------------- -----#-------#-------------------------------------------------- -----#-------#-------------------------------------------------- -----#-------#-------------------------------------------------- ------------#--------------------------------------------------- ------------#--------------------------------------------------- -----------#---------------------------------------------------- -----------#-----##---------#----------------------------------- ----------#--------##------#-------------#---------------------- ---------#----------------#-------------#-#--------------------- --------#---------------##---------------#---------------------- ----------------------##------###########----------------------- -----------------#####------------------#----------------------- ----------------------------------------#----------------------- ---------------------------------------#------------------------ ---------------------------------------#------------------------ --------------------------------------#------#--#--------------- --------------------------------------#------#--#--------------- -------------------------------------#-------#--#--------------- ------------------------------------#--------#--#---------#----- ----------------------------------##---------#--#--------#------ -------------------------------###----------#---#------##------- --------------------------------------------#---#----##--------- --------------------------------------------#---#--##----------- -------------------------------------------#----###------------- ----------------------------------------------------------------
c:\loc\pilrc\pilrc.batを実行します。pilrc -J sample.rcp c:\loc\build-prc
MBAR03e8.bin Talt03e8.bin Tbmp044c.bin tFRM03e8.bin tSTR03e8.bin tSTR044c.bin tver0001.bin
c:\loc\ptools\ptools.batを実行します。jviewの場合 cd c:\windows jview /cp c:\loc\ptools\classes.zip ptools.ShowDatabase JDKの場合 java -classpath classes.zip ptools.ShowDatabase
c:\loc\build-prc\build-prc.batを実行します。build-prc -t strt sample-loc.prc "Sample Localizer" JLoc *.bin
以上の設定してSampleを起動すれば日本語化+ビットマップが置き換えられているはずです。
以下のイメージのように置き換わっていますか?
あとは同様にpilrcでコンパイルしてあげればOKです。… … …Version id 1 "1.0"Version id 100 "1.0B1" ↑ローカライザー自身のバージョンです。Version id 100と定義して下さい。 Version id 101 "1.0" ↑ローカライザーが対応するターゲットアプリケーションのバージョンです。Version id 101と定義して下さい。 なお、複数のバージョンに対応する場合は以下のように記述します。 Version id 101 "1.0;0.9;0.8;0.7" String id 999 "Sample 日本語ローカライザー\n(c) 2000 後藤 哲司\npalm@japan.com" ↑コピーライト,作者,配布条件などを記述します。なお、\nは改行を示しています。