FactorioのMODを自分で日本語化したい!という人向けの記事です。
日本語化の流れは以下の通り。
- 1. modの圧縮ファイルを展開する
- 2. 日本語用localeフォルダを作成する
- 3. 文字列を定義するファイルをenフォルダとかからコピーしてくる
- 4. 追加データをinfo.jsonから持ってくる
- 5. 翻訳する
- 6. Factorioを起動し翻訳結果を確認する
(以下長いので畳んでいます)
1. modの圧縮ファイルを展開する
modは圧縮ファイルとして保存されており、そのままではテキストファイルの編集ができません。たぶん。そこで、圧縮ファイルを展開します。圧縮ファイルは%AppData%\Factorio\modsにあります。
展開したままでもFactorioはファイルをそこから読んでくれますので、再圧縮は不要です。
2. 日本語用localeフォルダを作成する
modのフォルダを覗くと、localeというフォルダがあります。そこの中にja(注意!jpではありません!)フォルダを作ります。
3. 文字列を定義するファイルをenフォルダとかからコピーしてくる
他のlocaleフォルダにある、文字列を定義する.cfgファイルをコピーします。ファイル名は任意のようで、modによって異なります。(factorio 公式wikiには*.cfgとある)
4. 追加データをinfo.jsonから持ってくる
enにある.cfgファイルは、殆どの場合mod名やmodの概要情報が抜けています。そこで、必要に応じこれらをinfo.jsonから持ってきます。持ってこれるものは"title"と"description"です。
4.1 title
titleは、factorioのmod選択画面に表示されるmod名です。
locale/ja内の.cfgファイルに[mod-name]カテゴリを作り、その中にmodの名前(バージョン番号を含まない)でキーを作りmodの名前を設定します。'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。
なお、この例では.cfgの先頭ではなく途中にカテゴリを追加しています。これは、この例では先頭にあるキー群にカテゴリが設定されていないためです(たまにそういうmodがいる)。こういうのの先頭に[mod-name]を書いてしまうと、これら先頭にあったキー群が全て[mod-name]カテゴリ内に入ってしまい、困ったことになります。
ちなみに変更後のFactorio内表示はこうなります。
4.2 description
descriptionは、modの説明として表示される文章です。
locale/ja内の.cfgファイルに[mod-description]カテゴリを作り、その中にmodの名前(バージョン番号を含まない)でキーを作りmodの詳細説明を記述します。'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。
なお、この例では.cfgの先頭ではなく途中にカテゴリを追加しています。これは、この例では先頭にあるキー群にカテゴリが設定されていないためです(たまにそういうmodがいる)。こういうのの先頭に[mod-description]を書いてしまうと、これら先頭にあったキー群が全て[mod-description]カテゴリ内に入ってしまい、困ったことになります。
ちなみに変更後のFactorio内表示はこうなります。
5. 翻訳する
.cfg内の各文字列を翻訳します。繰り返しになりますが、'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。
6. Factorioを起動し翻訳結果を確認する
Factorioを起動し、翻訳結果を確認します。これは必ずやってください。諸般の事情で文字化けすることもありますし、またプログラマのミスでキーを参照していなかったり、.cfg内のキー名が間違っていたりします。また、ゲーム内で文字列を見ると「あ、この翻訳はよくないな」ってなることも多々あります。
なお、.cfgファイルはFactorioの起動処理内でのみ読み込まれます。Factorio起動後は読み込まれないため、.cfgに加えた変更の結果を見る場合はFactorioを再起動してください。