日本語化の知見

最近のDOOMでは多言語に対応するようにLANGUAGEシステムが変わっています。

ここではそのシステムを利用した知見をちょっとご紹介しておきます。

 

ちなみにN121MTはそれらの翻訳チームとは何の関係もありません。


LANGUAGE.csvについて

そもそも「LANGUAGE」というのは、wadで使う文字列の変数を事前に定義したリストみたいなものです。

大抵は会話や独自のメッセージ等で使われ、武器追加系だと独自のオプションなどにもあります。

 

それまでのバージョンではLANGUAGEは「LANGUAGE.txt」で司っていました。

どうもこれを駆使すると日本語化も可能だった……とのことです。

ただtxt形式で編集がちょっと大変で難しいという問題もありました。

 

現在のGZDOOM系ではtxtではなくcsvファイルで管理するようになっています。

デフォルトは英語が基本ですが、これを使うことで日本語化もスペイン語化も簡単に出来るようになりました。

CSVファイルの構造

基本的には一般的なCSVファイルと同様です。

  • ヘッダ有
  • コンマで区切り
  • 文字コードはUTF-8(BOM無し)

ヘッダについては決まったものがあれば後は言語ごとに列を追加しまくるだけです。

めちゃくちゃ簡易的なものになると、以下のような表になります。

default Identifier Remarks eng ena enz eni enj enb enl enw jp
Yes TXT_YES      はい
No TXT_NO     いいえ

主なヘッダのセルとしては以下の通りです。

  • default:翻訳されない時の英文
  • Identifier:スクリプト等で使用する変数
  • Remarks:ゲーム上では表示されないコメント的なセル
  • eng enaなど:英語の列、基本的には空欄だけど列が無いと翻訳が変になる
  • jp:日本語はこの列に書きましょう

基本的には公式から配布されているLANGUAGE.csvをベースにして作るべきですが、最小限のものなどにする場合は上記のファイルでも動くことは動きます。

ただ最終的には翻訳の人がすぐに編集できるようにcsvファイル化をした方が良いでしょう。

スクリプトでの使用

LANGUAGE.csvやLANGUAGE.txtで定義された文字列は、ACSやZscriptで変数名を指定してあげれば使用できます。

ACSの場合は「l:"TXT_YES"」、Zscriptでは「$TXT_YES」等となります。


後から翻訳

上記のものを応用すると、アドオン系のwadに別ファイルのwadによる翻訳も可能となっています。

対象のwadの後に読み込ませることで翻訳できるようになります)

 

ただ別ファイルのwadと言ってもLANGUAGE.csvしかないファイルとなり、

しかもzipのままであっても読み込めるので、特定の言語のみであればこの方法も有りです。

ただ次のパターンは適用されないのでご注意ください。

  • LANGUAGE変数使わずに直でメッセージを書いているパターン
    • LANGUAGE変数化するか、直メッセージを日本語化するしかありません
    • 一応、ZDOOMのwikiでもLANGUAGE推奨とのことだそうです
  • 画像で扱っているパターン
    • こればかりはどうしようもないので画像編集しか方法はないと言えます
  • スクリプトでフォントを直指定しているパターン
    • ACSやZScript等で独自の会話システムでフォントを直指定していると効きません
    • GZDOOMの日本語ローカライズ自体が効いていないかもしれません
    • もしかすると効かせるための方法もあるかもしれませんが、詳細不明…… 

スクリプト系で会話シーンを導入している場合、LANGUAGE.csvだけでは対処不能な可能性も多いかもしれません。

特にストーリー重視のwadで会話を見ないと分からない系は結構痛いかも……。

ただ武器などの追加系wadであれば大抵LANGUAGEもあるので、日本語化は容易かと。