ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

FactorioのMODを日本語化する手順

FactorioのMODを自分で日本語化したい!という人向けの記事です。

日本語化の流れは以下の通り。

 

(以下長いので畳んでいます)

 1. modの圧縮ファイルを展開する

modは圧縮ファイルとして保存されており、そのままではテキストファイルの編集ができません。たぶん。そこで、圧縮ファイルを展開します。圧縮ファイルは%AppData%\Factorio\modsにあります。

展開したままでもFactorioはファイルをそこから読んでくれますので、再圧縮は不要です。

f:id:donadonasan:20200625140728p:plain

圧縮ファイル展開後のmodsフォルダの様子

2. 日本語用localeフォルダを作成する

modのフォルダを覗くと、localeというフォルダがあります。そこの中にja(注意!jpではありません!)フォルダを作ります。

f:id:donadonasan:20200625141046p:plain

localeフォルダ

f:id:donadonasan:20200625141230p:plain

localeフォルダ内にjaフォルダを作る

 

3. 文字列を定義するファイルをenフォルダとかからコピーしてくる

他のlocaleフォルダにある、文字列を定義する.cfgファイルをコピーします。ファイル名は任意のようで、modによって異なります。(factorio 公式wikiには*.cfgとある)

f:id:donadonasan:20200625141307p:plain

locale/enフォルダとかにある.cfgファイルをlocale/jaにコピーする

4.  追加データをinfo.jsonから持ってくる

enにある.cfgファイルは、殆どの場合mod名やmodの概要情報が抜けています。そこで、必要に応じこれらをinfo.jsonから持ってきます。持ってこれるものは"title"と"description"です。

4.1 title

titleは、factorioのmod選択画面に表示されるmod名です。

f:id:donadonasan:20200625142600p:plain

info.json内のtitle部分

f:id:donadonasan:20200625143003p:plain

Factorio内での表示

locale/ja内の.cfgファイルに[mod-name]カテゴリを作り、その中にmodの名前(バージョン番号を含まない)でキーを作りmodの名前を設定します。'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。

f:id:donadonasan:20200625143619p:plain

mod-nameカテゴリ

なお、この例では.cfgの先頭ではなく途中にカテゴリを追加しています。これは、この例では先頭にあるキー群にカテゴリが設定されていないためです(たまにそういうmodがいる)。こういうのの先頭に[mod-name]を書いてしまうと、これら先頭にあったキー群が全て[mod-name]カテゴリ内に入ってしまい、困ったことになります。

ちなみに変更後のFactorio内表示はこうなります。

f:id:donadonasan:20200625144039p:plain

title変更後のFactorio内mod選択画面の様子
4.2 description

descriptionは、modの説明として表示される文章です。

f:id:donadonasan:20200625144724p:plain

info.json内のdescription部分

f:id:donadonasan:20200625144837p:plain

Factorio内での表示

locale/ja内の.cfgファイルに[mod-description]カテゴリを作り、その中にmodの名前(バージョン番号を含まない)でキーを作りmodの詳細説明を記述します。'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。

f:id:donadonasan:20200625145017p:plain

mod-descriptionカテゴリ

なお、この例では.cfgの先頭ではなく途中にカテゴリを追加しています。これは、この例では先頭にあるキー群にカテゴリが設定されていないためです(たまにそういうmodがいる)。こういうのの先頭に[mod-description]を書いてしまうと、これら先頭にあったキー群が全て[mod-description]カテゴリ内に入ってしまい、困ったことになります。

ちなみに変更後のFactorio内表示はこうなります。

f:id:donadonasan:20200625145206p:plain

description変更後のFactorio内mod選択画面の様子

5. 翻訳する

.cfg内の各文字列を翻訳します。繰り返しになりますが、'='の前後には、原則として空白を含めないで下さい。空白も文字の一部と認識されます。

f:id:donadonasan:20200625145454p:plain

翻訳する

6. Factorioを起動し翻訳結果を確認する

Factorioを起動し、翻訳結果を確認します。これは必ずやってください。諸般の事情で文字化けすることもありますし、またプログラマのミスでキーを参照していなかったり、.cfg内のキー名が間違っていたりします。また、ゲーム内で文字列を見ると「あ、この翻訳はよくないな」ってなることも多々あります。

f:id:donadonasan:20200625145820p:plain

翻訳結果の例

なお、.cfgファイルはFactorioの起動処理内でのみ読み込まれます。Factorio起動後は読み込まれないため、.cfgに加えた変更の結果を見る場合はFactorioを再起動してください。