SWGはMMORPGであるが故に、Patchがリリースされるごとにstringデータはその都度 追加修正されます。
ここでは、追加修正されたstfデータの整理から翻訳、stfファイル作成までの手順を説明します。
ここでは、追加修正されたstfデータの整理から翻訳、stfファイル作成までの手順を説明します。
■Patchリリース後、更新されたファイルをチェックする
使用ツール
- SWG Explorer 1.5
stfファイルの保存、htmlへエクスポートを行うツール。
「.Net Framework」が必要です。(.Net Framework 2の手動インストールでOK)
手順
まず、ExplorerでSWGフォルダを開き、最新のPatchファイルの番号を確認します。
続いて、SWG Explorer でtocファイルを開き、先ほど確認したPatchで更新or追加されたstfファイルをピックアップします。
※SWGtreというMODツール使えばpatch毎にまとめてstfファイルをエクスポート出来て簡単でした。
これで、stfファイルからhtmlファイルへのエクスポートが完了しました。
■新旧データの比較
使用ツール
- Microsoft Excel
- 表合成(Excelアドイン)
2つのhtmlファイルを合成するためのExcelアドオン。
手順
Excelを起動
例)
1) 下記のように英語ファイルと日本語ファイルがあるとします。
1) 下記のように英語ファイルと日本語ファイルがあるとします。
英語のstringファイル
index | name | value |
---|---|---|
1 | jedi1 | Obi-Wan Kenobi |
2 | jedi2 | Qui-Gon Jinn |
3 | jedi3 | Yoda |
4 | others | R2-D2 |
日本語のstringファイル
index | name | value |
---|---|---|
1 | jedi1 | オビ=ワン・ケノービ |
2 | jedi3 | ヨーダ |
2) 2つのファイルのname値を参照してテーブルに列を追加し、合成します。
index | name | value | value_j |
---|---|---|---|
1 | jedi1 | Obi-Wan Kenobi | オビ=ワン・ケノービ |
2 | jedi2 | Qui-Gon Jinn | |
3 | jedi3 | Yoda | ヨーダ |
4 | others | R2-D2 |
※追加箇所が多い場合は、表合成(Excelアドイン)で2つのhtmlファイルを使うと簡単にマージできます。
■翻訳
日本語化されていない箇所を翻訳します。
例)
index | name | value | value_j |
---|---|---|---|
1 | jedi1 | Obi-Wan Kenobi | オビ=ワン・ケノービ |
2 | jedi2 | Qui-Gon Jinn | クワイ=ガン・ジン |
3 | jedi3 | Yoda | ヨーダ |
4 | others | R2-D2 | R2-D2 |
文字ルール
- 英数文字は半角で入力する。
- 感嘆符や疑問符(!?)は全角文字で。
- 改行しない。
- キャラクター名には括弧で英語名を付ける。(例:ジャバ様(Jabba))
※面倒なので英語名のままでも良いと思う。
翻訳ルール
すでに翻訳されている文字列を参照し、スタイルを合わせて下さい。
stfファイルの作成
使用ツール
- tsv2stf (by SeaCross氏) ※ファイルはダウンロードにあります。
- Excel または テキストエディタ
手順
※tsv2stf の詳しい使い方は、同梱のreadme.txtをご覧下さい。
1) Excel または テキストエディタでタブ区切りtxtファイルを作成します。
index | name | value |
---|---|---|
1 | jedi1 | オビ=ワン・ケノービ |
2 | jedi2 | クワイ=ガン・ジン |
3 | jedi3 | ヨーダ |
4 | others | R2-D2 |
※1行目の「index」「name」「value」を忘れずに。
2) 作成したtxtファイルをtsv2stf.exeにドラッグ&ドロップすると、同じフォルダにstfファイルが出力されます。(複数ファイルのドラッグ&ドロップもOK)
■stfファイルのインストール方法
保存場所
出来上がったstfファイルを下記のフォルダに保存します。
フォルダがない場合は作成して下さい。
(作成の過程でファイル名をリネームしている場合は、元のファイル名に戻して下さい)
フォルダがない場合は作成して下さい。
(作成の過程でファイル名をリネームしている場合は、元のファイル名に戻して下さい)
C:\Program Files\StarWarsGalaxies\string\ja
例)
quest\ground\c_entertainer_trainer.stf を保存する場合は、
C:\Program Files\StarWarsGalaxies\string\ja\quest\ground\ の中に c_entertainer_trainer.stf を保存します。
quest\ground\c_entertainer_trainer.stf を保存する場合は、
C:\Program Files\StarWarsGalaxies\string\ja\quest\ground\ の中に c_entertainer_trainer.stf を保存します。
クライアントで表示確認
SWGクライアントを起動して該当箇所が正しく表示されているか確認して下さい。
■フィードバックを得る
キャラクターの種族やプロフェッションの違いによって表示確認が行えない場合があります。
現役プレイヤーの皆さんのフィードバックをお待ちしております!!
現役プレイヤーの皆さんのフィードバックをお待ちしております!!
■参考資料
stfファイルのフォーマット
CD AB 00 00 01 [** **(行数+1)] 00 00 [** **(行数)] 00 00
[** **(行番号)] 00 00 [checksum?] [** **(文字数)] 00 00 [unicode文字列(2byte)]
[** **(行番号)] 00 00 [** **(文字数)] 00 00 [ascii文字列(1byte)]
※[** **(行数)]: 16進数表記
例) 全部で1行の場合… 01 00 10行の場合… 0A 00 256行の場合… 00 01 257行の場合… 01 01
※[unicode(2byte)]: little endianで表記。
※[checksum?]: crc32だと思うがよくわからん (FF FF FF FFで代用可)
※[** **(文字数)]: そのセルの文字数を16進数で表記。文字数=byte数
※index値は、SWGクライアントに参照されなので、適当に番号を振ってもOK。
例) 全部で1行の場合… 01 00 10行の場合… 0A 00 256行の場合… 00 01 257行の場合… 01 01
※[unicode(2byte)]: little endianで表記。
※[checksum?]: crc32だと思うがよくわからん (FF FF FF FFで代用可)
※[** **(文字数)]: そのセルの文字数を16進数で表記。文字数=byte数
※index値は、SWGクライアントに参照されなので、適当に番号を振ってもOK。
例)
以下のようなテーブルのstfファイルを例に挙げます。
以下のようなテーブルのstfファイルを例に挙げます。
index | name | value |
---|---|---|
1 | jedi1 | オビ=ワン・ケノービ |
2 | jedi2 | クワイ=ガン・ジン |
3 | jedi3 | ヨーダ |
4 | others | R2-D2 |
バイナリエディタで見ると次のようになっています。
CD AB 00 00 01 05 00 00 00 04 00 00 00 //ヘッダ
01 00 00 00 FF FF FF FF 0A 00 00 00 AA 30 D3 30 1D FF EF 30 F3 30 FB 30 B1 30 CE 30 FC 30 D3 30 //index=1のvalue値 [1行目、10文字、オビ=ワン・ケノービ]
02 00 00 00 FF FF FF FF 09 00 00 00 AF 30 EF 30 A4 30 1D FF AC 30 F3 30 FB 30 B8 30 F3 30 //index=2のvalue値 [2行目、9文字、クワイ=ガン・ジン]
03 00 00 00 FF FF FF FF 03 00 00 00 E8 30 FC 30 C0 30 //index=3のvalue値 [3行目、3文字、ヨーダ]
04 00 00 00 FF FF FF FF 05 00 00 00 52 00 32 00 2D 00 44 00 32 00 //index=4のvalue値 [4行目、5文字、R2-D2]
01 00 00 00 05 00 00 00 6A 65 64 69 31 //index=1のname値 [1行目、5文字、jedi1]
02 00 00 00 05 00 00 00 6A 65 64 69 32 //index=2のname値 [2行目、5文字、jedi2]
03 00 00 00 05 00 00 00 6A 65 64 69 33 //index=3のname値 [3行目、5文字、jedi3]
04 00 00 00 06 00 00 00 6F 74 68 65 72 73 //index=4のname値 [4行目、6文字、others]
01 00 00 00 FF FF FF FF 0A 00 00 00 AA 30 D3 30 1D FF EF 30 F3 30 FB 30 B1 30 CE 30 FC 30 D3 30 //index=1のvalue値 [1行目、10文字、オビ=ワン・ケノービ]
02 00 00 00 FF FF FF FF 09 00 00 00 AF 30 EF 30 A4 30 1D FF AC 30 F3 30 FB 30 B8 30 F3 30 //index=2のvalue値 [2行目、9文字、クワイ=ガン・ジン]
03 00 00 00 FF FF FF FF 03 00 00 00 E8 30 FC 30 C0 30 //index=3のvalue値 [3行目、3文字、ヨーダ]
04 00 00 00 FF FF FF FF 05 00 00 00 52 00 32 00 2D 00 44 00 32 00 //index=4のvalue値 [4行目、5文字、R2-D2]
01 00 00 00 05 00 00 00 6A 65 64 69 31 //index=1のname値 [1行目、5文字、jedi1]
02 00 00 00 05 00 00 00 6A 65 64 69 32 //index=2のname値 [2行目、5文字、jedi2]
03 00 00 00 05 00 00 00 6A 65 64 69 33 //index=3のname値 [3行目、5文字、jedi3]
04 00 00 00 06 00 00 00 6F 74 68 65 72 73 //index=4のname値 [4行目、6文字、others]