ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: 日本語化あそび
名前: lightbox
処理選択
パスワード

件名 日本語化あそび
名前 lightbox
コメント
@DIV
きちんとしたアプリケーションをきちんと日本語化するのは多くの時間が必要です。
この作業はとても大変で、バージョンが変わるとその労力が再び必要になります。

しかし、普段良く使う場所だけであれば短時間で可能ですし、
そもそも小さなツール類であればヒマな時に思いつきで実行できます。

で、それに必要なツールと言えば [[Stirling]] と [[Resource Hacker]] です。

他人に配布するのが目的であれば、@C:green(WDiff) や @C:green(OTL) が必要になりますが、
個人的に使うのであれば、パッチのあたったプログラムをコピーして使えば良いです。
@END

[[必要なフリーソフト]]
@DIV
Stirling( バイナリエディタ )
http://www.vector.co.jp/soft/win95/util/se079072.html

Resource Hacker( 日本語版 : rh_japanese.zip )
http://www.angusj.com/resourcehacker/

WDiff( 差分配布用 )
http://www.vector.co.jp/soft/win95/util/se057654.html

OTL( テキスト定義ファイルからパッチ )
http://www.vector.co.jp/soft/win95/util/se385242.html
@END

Stirling
http://lightbox.cocolog-nifty.com/photos/app/clippath_patch.png
右側のエリアに直接入って編集できますが、Delete や Insert しないように注意。
目的の場所は検索で簡単に探せます。
上のサンプル画像は、SHIFT_JIS で行ないましたが、いまどきなら 
キャラクタセットは Unicode に変更しておきます。


Resource Hacker
http://lightbox.cocolog-nifty.com/photos/app/reshacker.png
右側のエディタで変更したら、スクリプトをコンパイルしてから保存します。
変更すると変更前の残骸が別の場所に残る場合があるので、バイナリエディタ側
で検索する時は注意。
アイコンとかの変更も簡単。
メニューやダイアログの変更なんかは実際表示したものを見ながら可能。


WDiff
http://lightbox.cocolog-nifty.com/photos/app/wdiff.png
HELPは解りづらいので、インターネットで使い方調べたほうが良いでしょう。
とにかく差分ファイル作って、自己展開(32ビット)を作ります。
それをオリジナルと同じディレクトリに置いて実行するとパッチがあたります。


OTL
http://lightbox.cocolog-nifty.com/photos/app/otl.png
[任意の名前]
というセクション1つに対して、アドレスを連ねていきます。
そして、連続するパッチデータを記述します。
単純パッチと違うところは、すぐ戻せるというところと、
矛盾したパッチしようとすると GUI 上で解るというところでしょうか。

   ↓例
@DIV
[パッチ]
ADDRESS1=B28C
DATA1=436C6970205061746820282F2920,2F2082C583528373815B20202020
ADDRESS2=B29C
DATA2=436C6970205061746820285C2920,5C2082C583528373815B20202020
@END

固定長の変更のみであれば、以下のようなバッチファイルとスクリプトで、
パッチ定義ファイルを作成できます。

[[cnv.bat]]
@DIV
fc /B ClipPath.dll.bak ClipPath.dll > patch.txt
cscript.exe cnv_patch.vbs
pause
@END

[[cnv_patch.vbs]]
@DIV
Set Fso	= CreateObject( "Scripting.FileSystemObject" )

on error resume next
Set InObj = Fso.OpenTextFile( "patch.txt", 1 )
if Err.Number <> 0 then
	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0
Set OutObj = Fso.OpenTextFile( "patch.ini", 2, True )

OutObj.WriteLine "[ConvertFromFC]"

' **********************************************************
' 処理
' **********************************************************
nCnt = 0
Do While not InObj.AtEndOfStream

	Buffer = InObj.ReadLine
	if nCnt <> 0 then

		aData = Split( Buffer, ":" )
		aHex = Split( aData(1), " " )

		OUtObj.WriteLine "ADDRESS" & nCnt & "=" & Hex(Clng(( "&H" & aData(0) )))
		OutObj.WriteLine "DATA" & nCnt & "=" & aHex(1) & "," & aHex(2)

	end if

	nCnt = nCnt + 1

Loop

' **********************************************************
' ファイルクローズ
' **********************************************************
OutObj.Close
InObj.Close

Wscript.Echo "処理が終了しました"
@END

[[作成された patch.ini]]
@DIV
[ConvertFromFC]
ADDRESS1=B28C
DATA1=2F,43
ADDRESS2=B28D
DATA2=20,6C
ADDRESS3=B28E
DATA3=82,69
ADDRESS4=B28F
DATA4=C5,70
ADDRESS5=B290
DATA5=83,20
ADDRESS6=B291
DATA6=52,50
ADDRESS7=B292
DATA7=83,61
ADDRESS8=B293
DATA8=73,74
ADDRESS9=B294
DATA9=81,68
ADDRESS10=B295
DATA10=5B,20
ADDRESS11=B296
DATA11=20,28
ADDRESS12=B297
DATA12=20,2F
ADDRESS13=B298
DATA13=20,29
ADDRESS14=B29C
DATA14=5C,43
ADDRESS15=B29D
DATA15=20,6C
ADDRESS16=B29E
DATA16=82,69
ADDRESS17=B29F
DATA17=C5,70
ADDRESS18=B2A0
DATA18=83,20
ADDRESS19=B2A1
DATA19=52,50
ADDRESS20=B2A2
DATA20=83,61
ADDRESS21=B2A3
DATA21=73,74
ADDRESS22=B2A4
DATA22=81,68
ADDRESS23=B2A5
DATA23=5B,20
ADDRESS24=B2A6
DATA24=20,28
ADDRESS25=B2A7
DATA25=20,5C
ADDRESS26=B2A8
DATA26=20,29
@END