Note/翻訳のコツ?
*翻訳のコツ [#r409c829]
このページでは、Mod翻訳において知っておくと有用な知識やコツをまとめます。Wiki独自のルール等に関しては[[翻訳ガイドライン]]にどうぞ。
**目次 [#me42c140]
#contents
*各種仕様 [#y5c814a7]
**Constructionset [#k14c675d]
***export [#v068bf96]
-CS1.2とCS1.0(CS1.1はCS1.0と同じ)は出力形式が異なる((新たにそのデータを利用するQuest名が挿入された))。しかし、全てのカテゴリではなく、DialogueとNamesのみである。他の、QuestStages・Names・Descriptions・ScriptMessages・GameSettingsは同じ
--例:Dialogue (FormIDとサブカテゴリ名の間にQuest名が挿入)
#pre{{{
CS1.0形式:FormID: 0018D81C TimeToGo 0 You need to go now.
CS1.2形式:FormID: 0018D81C MQ00 TimeToGo 0 You need to go now.
}}}
--例:Names (サブカテゴリとデータの間に "tab" "半角スペース" "tab" が挿入される)
#pre{{{
CS1.0形式:FormID: 00000007 Player NPC_ Bendu Olo
CS1.2形式:FormID: 00000007 Player NPC_ Bendu Olo
}}}
-ModをCSで読み込みexportを行なえばMod単体のデータが取り出せると思いきや、Vanillaのデータも一緒になっている(つまりexportされたデータは Vanilla+Mod)。よってMod単体のデータを取り出す為にVanillaの部分を除く必要がある (テキストの差分を取り出すTool等で行なう)
-BooksはExportを行なうとOblivion.exeと同じ階層の BookExport ディレクトリに出力される。ファイル名は [書籍のEditorID].txt((括弧の[と]は説明用で実際にはつかない)) となる。但し、表示用の簡易HTMLタグが抜け落ちてしまうので翻訳で使用するには難点がある。よって日本語化パッチに同梱のBOOK_EXPORT.exeを利用する事がモアベーターである(こちらならタグが抜け落ちない)
***import [#sc545eb3]
-Dialogue等はimportするだけで反映するが、ScriptMessagesに関しては各Scriptの編集画面で''Save''するか、''Recompile all''する必要がある。但し、後者は無関係なScriptまでRecompileしてしまい、ローカライズしたModに不要データが組み込まれて不具合の元になる。これをクリーンアップするには [[TES4Gecko>http://www.nexusmods.com/oblivion/mods/8665]] が有用である
-Dialogue等はimportするだけで反映するが、ScriptMessagesに関しては各Scriptの編集画面で''Save''するか、''Recompile all''する必要がある。但し、後者は無関係なScriptまでRecompileしてしまい、ローカライズしたModに不要データが組み込まれて不具合の元になる。これをクリーンアップするには [[TES4Gecko>NexusOblivion:8665]] が有用である
-ScriptはScript Editorで見る事の出来るもの(Named Script)の他にも、Dialogue等にも存在する断片的Script(Result Script)もあり、これらもRecompileしなくてはならない (上述 Recompile all の対象外)
-Oblivion Script Extenderで提供される機能を用いたScriptはOBSEからCSを起動させないとScriptのRecompileが出来ない
-importするデータにおいて、行の順番は気にしなくて良い。よって翻訳時に自分の好きなようにソートして良い((FormIDでソートすると大概において便利である))
-Books は export で出力が行なわれた BookExport に翻訳済データを配置すれば import が出来る。但し、importされるデータには冒頭に<div align="left"><br>が付加され、改行部分には<br>が挿入される(強制的に簡易HTMLモードにされる)。これを嫌う場合は、手動でCS上からちまちま貼り付けを行なう
--このタグ自動挿入を回避する方法がOblivion本体の日本語化パッチ同梱のEXPORT_BOOK.exeのReadmeに記載されている。これを利用する事で手動貼り付けを行なう必要が無くなった
***言語/文字コードに関する問題 [#y7c3ef58]
-基本的に日本語の表示には対応してない(一部表示は出来る部分はある)。表示が化けるだけで日本語のimport/exportには問題は無い
-日本語を表示できるようにしたい場合はパッチを当てる必要がある。
--CS_1.2.404_ja_patch_build*.7z [[ファイル置き場>http://oblivion.z49.org/files/]]
-日本語データをimportする場合、その文字コードは SHIFT_JIS でなくてはならない((どっちかというと、日本語化パッチの仕様))
-文字コードが原因でexportデータ上の一部の記号が文字化けを起こす事が有る
--例えば、英語圏で使われる文字コードはASCIIオンリーと思いきや、ISO-8859-1((Latin-1))やCP1252((Latin-1のMS拡張。Windows-1252))が利用されている。それらの文字コードで用いられるアポストロフィーには2種有り、一方はASCII領域にあるので日本語環境でも問題なく表示できるが、もう一方がShiftJISの2バイトモードの先頭部分にあたる領域(0x81〜0x9F、0xE0〜0xEF)に存在する。故に、その領域に存在する文字を使われると日本語では化けてしまう
--他にも 0x85 "..."を一文字で表したもの((実は日本語の三点リーダは海外言語のそれ(ドット3つ連続)が起源であるようで、CP1252の0x85をUTF-8に変換すると三点リーダになる。UTF-8の三点リーダをCP1252に変換すると0x85になる。またフォント設定によっては三点リーダが "..." と成るのも似た理由だろうと思われる)) が良く見られ、これは大抵の日本語環境では表示できない。引用符ならまだしもこの記号の場合はASCIIの範囲に一文字で代替できる文字がなく、かといって三点リーダで置換するのも微妙。この場合はドット3つで置換するのが賢明かもしれない
--大抵の海外modderはWindowsで作業しているのでCP1252の可能性が高い
---参考:[[WikiPedia.ja:Windows-1252]], [[WikiPedia.ja:IEC_8859-1]]
--参考先を御覧になればお分かりの通り、他にも引用符([[WikiPedia.ja:引用符]])も含むので油断は出来ない
--化けた文字を解読する場合は、バイナリエディタ等でバイナリの値を読むのがベスト
痴 = 's (バイナリ値 0x92 0x73)
稚 = 't (バイナリ値 0x92 0x74)
致 = 'v (バイナリ値 0x92 0x76)
値 = 'l (バイナリ値 0x92 0x6C)
知 = 'm (バイナリ値 0x92 0x6D)
--邪道な方法かもしれませんが、化けるテキストをMS OfficeのWordで読むと文字コードを指定して読めるので楽に元の文字が解読できるかもしれません。また、ブラウザにD&Dしてブラウザの表示文字コードを弄って試すのもお手軽です
**Oblivion.exe [#hb4b9c18]
***基本 [#ecf4f0e2]
-[QUOTE]はゲーム中では半角ダブルクォート(")に置換される。これはCS上でダブルクォートを使用できないことの回避策と思われる(すなわち、翻訳データで半角ダブルクォートを使用してはならない)
***書籍類の簡易HTMLモードとプレーンテキストモード [#b275a103]
-文の冒頭((恐らく、空白文字の類は無視される))が簡易タグの場合、『簡易HTMLモード』(簡易タグによる装飾有。改行は<br>や<p>等で行なう)になり、そうでない時は『プレーンテキストモード』( <や> はそのまま表示される。改行は改行として扱われる)として解釈される。『簡易HTMLモード』で < や > を用いるとタグとして解釈されうるので使用してはいけない
-各種タグの概説 (詳細はCSWikiを参照の事)
--<br>:一行の改行((<br>のみの行は改行されない。改行させたい場合は 半角スペースを<br>の前に置けばよい))
--<p>:二行の改行
--<div>:align='right/center/left'で位置を指定
--<font>:color='rgb', face='1/2/3/4/5/Font名'(iniのSFontFile_*で規定されているFont)
--<hr>:改ページ。Scrollでは無視
--<img>:
***espマスター法((勝手ネーミング))に関して [#ffeb2df9]
-espファイルAをマスターとして作成したespファイルA'を使用し、espファイルAの内容を上書きする方法を仮にこうネーミングする
-espファイルはそれのマスターとして使用されたesmファイルによって作成されたデータしか上書きが出来ない。espファイルAで作成されたデータを別のespファイルBでは上書きできないのが本来の仕様であるが、この手法を用いる事でそれが可能になる
-これは公式のTool(Construction Set)では不可能である。CSではesmファイルのみしかマスターにしか選べない。これを行なうには有志開発のToolを使わなくてはならない
-これを利用する事で、espファイルで提供されているModをオリジナルなespを操作する事無く日本語化を行なう事が可能になる。
-この手法は上述の通りMod翻訳にも有用だが、当Wikiプロジェクトでは扱わない。理由は以下の通り
--この手法によるトラブルは報告されてないが、オフィシャルなToolでは提供出来ない、所謂『バグ技』である事((出来る限りオーソドックスな手法を用いるべきとの判断))
--espファイルを放り込むだけで導入できる容易さは有るが、Oblivion自体が利用できるesm/espファイル数の上限が255付近に有る為、ヘビーユーザーにはデメリットになる事。又、ロード順の問題も生じるものと思われる
--espファイルを提供する事で『これだけでModインストールできる』と勘違いする人を無くせるという副次効果も有
**日本語化パッチ [#rff382e1]
***基本 [#e36865c7]
-Oblivion.exeは英文では、改行で単語を半ばで切らないように、文末に近い単語間の半角スペースで自動的に改行を行なう仕様となっている。ところが日本語化パッチではこれが問題となり、半角スペースがあった場合、意図せぬ部分で改行されてしまうことがあった。そこで、昔の日本語化パッチ(v0.07付近以前)は 、''半角スペースを表記したい場合はアンダースコア/アンダーバー(_)で代用する''(ゲーム上では半角スペースになる)という仕様で回避を行なっていた。ところが、日本語化パッチv0.08以降で処理する日本語の場合は半角スペースでは改行はしない((readmeより:行末文字がShift-JIS 2byte、Shift-JIS 1byteカナの場合は、半角スペースの位置で改行させないようにした))ようになった。よって ''半角スペースを表記したい場合はアンダースコア/アンダーバー(_)で代用する'' という事は現行の日本語化パッチを使うなら必要ないといえる
***書籍において [#leb23fdc]
-''書籍データの始まりがタグの場合、簡易HTMLモードになる''とされているが、日本語化パッチとの兼ね合いでこの切り替えは多少複雑になっている。検証結果(v0.15 beta)は以下の通り
++簡易HTMLモードと解釈される
---最初の行がタグの場合
---改行… タグ (タグの前に改行のみが1個以上有る)
---半角スペース 改行 … タグ (タグの前に半角スペースと改行が有る) ((一つ上も含め、これは通常のOblivion.exeの仕様と思われる。『空白文字(半角スペース、改行、タブ等)のみがタグの前に有る場合は判定で無視される、という法則と推測』))
---日本語(全角文字) …タグ((これは日本語化パッチの処理から来る仕様と思われる。実際こんな記法は使用しないとは思うが、間違ってこれに当てはまる記述をしないよう気をつける必要はある))
++プレーンテキストモードと解釈される
---タグより前に半角英数が有る
-レイアウト調整は全角スペース( )やアンダースコア(_)で行なえる。また、現行の日本語化パッチなら半角スペースでも可能
-簡易HTMLモードの場合、書籍はフォントを番号で指定でき((font face=数字。数字は1〜5))、日本語化パッチは夫々に番号に割り当てるフォントをPC上にインストールされたフォントの好きな物に変更できる。しかし現行の日本語化パッチは、Daedric Font((font face=4))に関しては変更できない((もとより変える必要もないのではあるが))。Daedric Fontは半角英数しか含まないため、書籍のテキスト部分で Daedric Fontに含まれない文字((たとえば日本語))に対しDaedric Fontを指定すると問題が生じる(たいていはそのように作成された書籍を読もうとするとCTDを起こす)。具体的には''Daedric Fontが指定されている部分には半角英数しか使用してはいけない''、もしくはどうしても変更したいなら''Daedric Fontをしないように書き換える''ならば問題は解決する。ただし、Daedric FontはOblivionというゲーム世界を示す一つのアイテムなので前者の解法がベターであり、後者はあまり望ましくないと思われる((そもそも、Daedric Fontが使用された部分は魔術的な雰囲気作りをする部分であり、そこに書かれている内容は重要ではない))。
*実際の作業 [#z7eccbaf]
[[Mod翻訳方法メモ>http://oblivion.z49.org/modja.html]]が詳しいので、ここでは概要のみ
**翻訳する対象 [#s3ca2ce4]
-実際に翻訳を行なえばよいカテゴリは以下の通り
--Dialogue:台詞
--QuestStages:クエストのジャーナル
--Names:様々な物の名前。Namesの中のサブカテゴリ、DIALはちょっと変わっていて、会話の選択肢になる
--ScriptMessageboxes:このWikiでは長くて冗長なので ScriptMessages と記述 (boxで無いのも多いし)。Scriptの出力するメッセージ。画面左上に出る文字や、Scriptの出すダイアログ
--Books:書物
--Descriptions:ローディングのときに出るtips他。殆どModでは利用されない
--GameSettings:UI上の文字列。殆どModでは利用されない
-上述のように、DescriptionsとGameSettingsはほぼ利用されないので恐らく無視しても構わない
-Namesは全て翻訳できれば言う事は無いが、大概膨大なのでDIALだけ翻訳を行なえば十分
-NamesのRACEサブカテゴリは翻訳を行なうと会話で不具合((口パクが無くなったり、台詞音声が再生されなくなるらしい))が発生するらしいので行なわない方が良い模様
-gamesetting.txt の "sDeviceJoystick Joystick" の行は、翻訳すると不具合((ジョイスティックの設定画面でハングするようだ))が発生するようなので、さわらぬ方がよい
**exportしたデータ(Vanilla+Mod)からMod単体のデータを取り出す方法 [#i2eb784e]
+Vanilla単体のデータを取り出す(oblivion.esmのみ読み込み、export)
+取り出したVanillaデータをテキストエディタで FormID でソート
+Modを読み込みexport (このデータが Vanilla+Mod)
+取り出したVanilla+Modデータをテキストエディタで FormID でソート
+テキストの差分を取るTool((diff.exe、WinMerge等))でVanillaデータとVanilla+Modデータの差分を取り、Modの分のデータを取り出す
**データサイズ制限 [#u9a66b23]
一部のカテゴリにはデータサイズ制限がある
***Dialogue [#m9fbc023]
-Oblivion.exeはDialogueの表示において文字列の長さに制限がある(Topic(CS上で Topic Text と出るエリア)に関しては38、本文(CS上で Response Text と出るエリア)に関しては150。恐らく単位はbytes)。これを改善したい場合、ConstructionSet.iniに次の設定(Topic長50、本文長255の設定)が必要
#pre{{{
[Localization]
iExtendedResponseLength=255
iExtendedTopicLength=50
bAllowExtendedText=1
}}}
-Oblivion.ini等は弄らなくて良いのでplayer側に手間が増える事はない((但し、ダイアログ表示の文字数はData/Menus以下のUI設定用XMLの設定の影響も受けるので注意は必要です))
-ゲーム内で一気に表示される文字が増えるので、モニタ解像度を変えて確認する必要がある(小さくて読めなくは無いか、等)
***Script [#a22cbfd6]
-Scriptはサイズ上限が一つあたり15kb付近にあるらしい。よって大きなサイズのScriptを翻訳する場合、翻訳テキストを詰め込みすぎてそれを越えないように注意する必要がある((日本語化しただけでそれを超える事は殆ど無いとは思うが))
**翻訳時に注意する事 [#gf5649da]
-大概のNPCの会話は『共通部分』((GREETINGの様に広範囲のキャラで使用されるもの))と『固有部分』((そのキャラだけが使用するもの))の両方を持っています。故に、『共通部分』はどんな状況でも意味が通るように無難に訳す必要が有ります。また、『固有部分』も(様々な状況にあわせるために無難な内容と口調にした)『共通部分』との落差がはっきりして違和感が出てしまう為、口調等も自由度は少なくなります。ただし、『共用部分』を持たないNPC(クエスト独自に出てくるNPC等。Vanillaで言えばAn Unexpected Voyage(Waterftontの船の宿がジャックされるやつ)の敵キャラ)の場合は数少ない口調を弄りまくれるポイントになります
*その他参考資料 [#q9e688de]
-[[CSWiki:http://cs.elderscrolls.com/constwiki/index.php/Main_Page]]
-[[Mod翻訳方法メモ>http://oblivion.z49.org/modja.html]]:Modの翻訳方法のメモ