５. 撲殺バットMODの作成（翻訳追加）

# 概要
アイテムやレシピを追加しましたが、各名称は定義設定で指定した固定値のままでした。
今回は多言語対応として、使用言語に合わせて表示を変える「翻訳」を追加します。[^1]

# １. 翻訳について
翻訳は下記のフォルダにテキスト形式で配置します。
```
\media\lua\shared\Translate\%lang%\
```
「Translate」フォルダの下に、「JP」や「EN」といった言語名のフォルダを作成し、その言語フォルダ配下に翻訳ファイルを配置します。

:::note info
言語情報や使用するエンコーディングについては、下記URLを参照してください。
[PZwiki : Modding - Localization](https://pzwiki.net/wiki/Modding#Localization)
:::

例として、アイテム名の日本語翻訳ファイルの一部を抜粋します。
```text:ItemName_JP.txt
ItemName_JP = {
	ItemName_Base.223Box = ".223弾 (箱)",
	ItemName_Base.223Bullets = ".223弾",
	ItemName_Base.223BulletsMold = "弾頭鋳型(.223弾)",
	ItemName_Base.223Clip = "MSR700 マガジン",
	・・・
```
翻訳ファイルのファイル名や各翻訳設定の接頭辞（上記例では"ItemName_"）は、翻訳種別ごとに固定となります。その辺りはバニラ翻訳と同様ですので、下記を参照してください。
```
C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\media\lua\shared\Translate\%lang%\
```

また、翻訳は「原則、現在プレイしている言語と同じもの」が適用されますが、該当言語の翻訳がない場合は「デフォルトで英語翻訳、それすらない場合は各定義で指定した値」が表示されます。その為、自作MODで翻訳を追加する場合は「自国語＋英語」を用意するのが良いでしょう。

# ２. アイテム名の翻訳追加
前回までで追加した武器３種とレシピ本のアイテム名について翻訳を追加します。
まずは下記の通り日本語翻訳を追加します。
```
\media\lua\shared\Translate\JP\ItemName_JP.txt
```
```text:ItemName_JP.txt
ItemName_JP = {
	ItemName_P4BokusatsuBat.P4BokusatsuBatT1 = "撲殺バット＋＋",
	ItemName_P4BokusatsuBat.P4BokusatsuBatT2 = "撲殺バット＋",
	ItemName_P4BokusatsuBat.P4BokusatsuBatT3 = "撲殺バット",
	ItemName_P4BokusatsuBat.P4BokusatsuBatBook = "撲殺バット物語",
}
```
定義内容はフォーマットに気を付けるだけで、特に難しい点はないと思います。撲殺バットについては「ティアＮ」という表記では色気が無かったので、「＋＋」「＋」「無印」という表記にしてみました。同様にアイテム名の英語翻訳も下記の通り追加します。
```
\media\lua\shared\Translate\EN\ItemName_EN.txt
```
```text:ItemName_EN.txt
ItemName_EN = {
	ItemName_P4BokusatsuBat.P4BokusatsuBatT1 = "Bludgeoning Bat++",
	ItemName_P4BokusatsuBat.P4BokusatsuBatT2 = "Bludgeoning Bat+",
	ItemName_P4BokusatsuBat.P4BokusatsuBatT3 = "Bludgeoning Bat",
	ItemName_P4BokusatsuBat.P4BokusatsuBatBook = "Bludgeoning Bat Book",
}
```
こちらも日本語翻訳の内容とほぼ変わりありません。各言語ごとに使用するエンコーディングが決まっていますので、そちらにだけご注意ください。なお、撲殺バットの表記は「Bokusatsu Bat」では英語圏の人には理解できないと思いましたので「Bludgeoning Bat」としました。

# ３. レシピ名の翻訳追加
アイテム名の翻訳と同様に、レシピ名についても下記の通り翻訳を追加します。
```
\media\lua\shared\Translate\JP\Recipes_JP.txt
```
```text:Recipes_JP.txt
Recipe_JP = {
	Recipe_Upgrade_Bokusatsu_Bat = "撲殺バットをアップグレードする",
}
```
今回追加したレシピは２つでしたが、どちらも同じ名前にするためにレシピ名を同じにしていたため、追加する翻訳も１定義のみとなります。表記を分けたい場合はレシピ定義でレシピ名をそれぞれ別名で付け、それぞれに翻訳定義を追加すればよいでしょう。
```
\media\lua\shared\Translate\EN\Recipes_EN.txt
```
```text:Recipes_EN.txt
Recipe_EN = {
	Recipe_Upgrade_Bokusatsu_Bat = "Upgrade Bludgeoning Bat",
}
```

# ４. 翻訳追加の確認
今回追加した言語の翻訳が正しく反映されているかを確認しましょう。まずは言語設定を日本語にしてゲームを開始します。アイテム名、レシピ名が日本語になっていることが確認できます。
![05-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2481343/d7524e58-f223-a72b-a882-f1bdfb5fb9e8.png)

次に言語設定を英語にすると、英語翻訳が有効になっていることが確認できます。
![05-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2481343/eae0db8b-be11-706a-e913-12b567bdcf44.png)

念のため、今回追加していないタイ語にしてみると、前述の通り該当する翻訳がないので英語翻訳が有効になっていることが確認できます。
![05-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2481343/9bd45b4b-4b2d-5379-6a2d-961d2e5bb9d1.png)

# あとがき
ここでは、多言語対応として翻訳追加について解説しました。
翻訳系MODを作りたい場合は、本記事の方法のみで実現できます。
次回はLua実装の解説として独自ギミックを追加します。

---
索引：[Project ZomboidのMODを開発する](https://qiita.com/PePePePePeil/items/5db632d902eb91847541)
前：[４. 撲殺バットMODの作成（レシピ追加）](https://qiita.com/PePePePePeil/items/d6e4c534070b23a34195) 
次：[６. 撲殺バットMODの作成（独自ギミック追加１）](https://qiita.com/PePePePePeil/items/4365bbd374eaf334d416) 

[^1]: 今回の内容を反映したMODファイルは下記。
💾 [P4BokusatsuBat_05.zip](https://www.pepepepe.com/zomboid/Qiita/P4BokusatsuBat_05.zip)（MD5チェックサム：a0964f14a3a18e6198546e16580c4525）