最近のDOOMでは多言語に対応するようにLANGUAGEシステムが変わっています。
ここではそのシステムを利用した知見をちょっとご紹介しておきます。
ちなみにN121MTはそれらの翻訳チームとは何の関係もありません。
そもそも「LANGUAGE」というのは、wadで使う文字列の変数を事前に定義したリストみたいなものです。
大抵は会話や独自のメッセージ等で使われ、武器追加系だと独自のオプションなどにもあります。
それまでのバージョンではLANGUAGEは「LANGUAGE.txt」で司っていました。
どうもこれを駆使すると日本語化も可能だった……とのことです。
ただtxt形式で編集がちょっと大変で難しいという問題もありました。
現在のGZDOOM系ではtxtではなくcsvファイルで管理するようになっています。
デフォルトは英語が基本ですが、これを使うことで日本語化もスペイン語化も簡単に出来るようになりました。
基本的には一般的なCSVファイルと同様です。
ヘッダについては決まったものがあれば後は言語ごとに列を追加しまくるだけです。
めちゃくちゃ簡易的なものになると、以下のような表になります。
| default | Identifier | Remarks | eng ena enz eni enj enb enl enw | jp |
| Yes | TXT_YES | はい | ||
| No | TXT_NO | いいえ |
主なヘッダのセルとしては以下の通りです。
基本的には公式から配布されているLANGUAGE.csvをベースにして作るべきですが、最小限のものなどにする場合は上記のファイルでも動くことは動きます。
ただ最終的には翻訳の人がすぐに編集できるようにcsvファイル化をした方が良いでしょう。
LANGUAGE.csvやLANGUAGE.txtで定義された文字列は、ACSやZscriptで変数名を指定してあげれば使用できます。
ACSの場合は「l:"TXT_YES"」、Zscriptでは「$TXT_YES」等となります。
上記のものを応用すると、アドオン系のwadに別ファイルのwadによる翻訳も可能となっています。
(対象のwadの後に読み込ませることで翻訳できるようになります)
ただ別ファイルのwadと言ってもLANGUAGE.csvしかないファイルとなり、
しかもzipのままであっても読み込めるので、特定の言語のみであればこの方法も有りです。
ただ次のパターンは適用されないのでご注意ください。
スクリプト系で会話シーンを導入している場合、LANGUAGE.csvだけでは対処不能な可能性も多いかもしれません。
特にストーリー重視のwadで会話を見ないと分からない系は結構痛いかも……。
ただ武器などの追加系wadであれば大抵LANGUAGEもあるので、日本語化は容易かと。
