データパックを様々な言語に対応させよう!

:::note warn
この記事はほぼリソースパックの話です。
バージョンは1.21~1.21.3(コマンドとデータパック部分のみ)です。
:::
# はじめに
データパックで作ったオリジナルのアイテムなどを様々な言語に対応させたいと思ったことはありますか?

![2023-12-02_09.19.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/c7056820-bb9a-0394-efc3-fc67b5b7c6c7.png)
Minecraftには現在**127個**の言語に対応しています。
ダイヤモンドの剣の翻訳↓
![2023-12-02_09.12.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/1dce2120-0c60-7aab-3954-ca7408792e86.png)![2023-12-02_09.13.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/fb176159-609d-89c2-37bb-fba055fcd7dc.png)![2023-12-02_09.15.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/9f4f5f3d-4979-a064-ce4f-fd278e96ce43.png)![2023-12-02_09.15.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/98d2a718-a082-0a62-305a-cd1e673226cc.png)

## langファイル
langファイルはこの様になっています。
言語コード_国名コード.jsonとなっています。
英語(アメリカ)
```en_us.jsonの一部
{
  "item.minecraft.diamond": "Diamond",
  "item.minecraft.diamond_axe": "Diamond Axe",
  "item.minecraft.diamond_boots": "Diamond Boots",
  "item.minecraft.diamond_chestplate": "Diamond Chestplate",
  "item.minecraft.diamond_helmet": "Diamond Helmet",
  "item.minecraft.diamond_hoe": "Diamond Hoe",
  "item.minecraft.diamond_horse_armor": "Diamond Horse Armor",
  "item.minecraft.diamond_leggings": "Diamond Leggings",
  "item.minecraft.diamond_pickaxe": "Diamond Pickaxe",
  "item.minecraft.diamond_shovel": "Diamond Shovel",
  "item.minecraft.diamond_sword": "Diamond Sword"
}
```
日本語
```ja_jp.jsonの一部
{
  "item.minecraft.diamond": "ダイヤモンド",
  "item.minecraft.diamond_axe": "ダイヤモンドの斧",
  "item.minecraft.diamond_boots": "ダイヤモンドのブーツ",
  "item.minecraft.diamond_chestplate": "ダイヤモンドのチェストプレート",
  "item.minecraft.diamond_helmet": "ダイヤモンドのヘルメット",
  "item.minecraft.diamond_hoe": "ダイヤモンドのクワ",
  "item.minecraft.diamond_horse_armor": "ダイヤモンドの馬鎧",
  "item.minecraft.diamond_leggings": "ダイヤモンドのレギンス",
  "item.minecraft.diamond_pickaxe": "ダイヤモンドのツルハシ",
  "item.minecraft.diamond_shovel": "ダイヤモンドのシャベル",
  "item.minecraft.diamond_sword": "ダイヤモンドの剣"
}
```
左側が翻訳キー,右側が名前です。
# デフォルトの名前の変更
langファイルをいじれば名前を変更することができます。
日本語 `ja_jp.json` 英語(アメリカ) `en_us.json` この2つを覚えておくといいでしょう。
### 日本語での変更
リソースパックの`リソースパック名/assets/minecraft/lang/ja_jp.json`を作り開きましょう。
#### アイテム名の変更
`ダイヤモンド`の名前を`金剛石`に変更してみましょう。
```リソースパック名/assets/minecraft/lang/ja_jp.json
{
  "item.minecraft.diamond": "金剛石"
}
```
変更前
![2023-12-02_10.48.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/52bab086-24c7-0bd5-72cf-8ea3aa1e326b.png)
変更後
![2023-12-02_10.48.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/ba7a2875-4104-0b55-1584-33d0417c75d6.png)

`"item.minecraft.(アイテムID)": "名前"`で変更できます。

#### ブロック名の変更
`ダイヤモンドブロック`の名前を`金剛石ブロック`に変更してみましょう。
```リソースパック名/assets/minecraft/lang/ja_jp.json
{
  "block.minecraft.diamond_block": "金剛石ブロック"
}
```
変更前
![2023-12-02_10.51.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/2ea7611e-0531-5470-d1b7-d01a41ffda1e.png)
変更後
![2023-12-02_10.52.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/e660be63-50ae-2800-a626-0e5dd3ccd3ed.png)
`"block.minecraft.(ブロックID)": "名前"`で変更できます。

#### エンティティ名の変更
`クリーパー`の名前を`匠`に変更してみましょう。
```リソースパック名/assets/minecraft/lang/ja_jp.json
{
  "entity.minecraft.creeper": "匠"
}
```
`"entity.minecraft.(エンティティID)": "名前"`で変更できます。

#### 複数変更する場合
:::note warn
**,** コンマを入れましょう。
:::


```リソースパック名/assets/minecraft/lang/ja_jp.json
{
  "item.minecraft.diamond": "金剛石",
  "item.minecraft.diamond_axe": "金剛石の斧",
  "item.minecraft.diamond_boots": "金剛石のブーツ",
  "item.minecraft.diamond_chestplate": "金剛石のチェストプレート",
  "item.minecraft.diamond_helmet": "金剛石のヘルメット",
  "item.minecraft.diamond_hoe": "金剛石のクワ",
  "item.minecraft.diamond_horse_armor": "金剛石の馬鎧",
  "item.minecraft.diamond_leggings": "金剛石のレギンス",
  "item.minecraft.diamond_pickaxe": "金剛石のツルハシ",
  "item.minecraft.diamond_shovel": "金剛石のシャベル",
  "item.minecraft.diamond_sword": "金剛石の剣"
}
```
# オリジナルアイテムの名前
データパックで作ったアイテムの名前を様々な言語に対応させてみましょう。
例としてここでは`鉄のナイフ`を作りました
```
/give @p iron_sword[item_name='{"translate":"item.namespace.iron_knife"}'] 
```
説明文ありver.
```
/give @p iron_sword[item_name='{"translate":"item.namespace.iron_knife"}',lore=['{"color":"white","italic":false,"translate":"item.namespace.iron_knife.desc"}']]
```
### 名前の設定
英語(アメリカ)
``` リソースパック名/assets/namespace/lang/en_us.json
{
    "item.namespace.iron_knife": "Iron Knife",
    "item.namespace.iron_knife.desc": "Iron Knife Description"
}
```
日本語
``` リソースパック名/assets/namespace/lang/ja_jp.json

{
    "item.namespace.iron_knife": "鉄のナイフ",
    "item.namespace.iron_knife.desc": "鉄のナイフの説明"
}
```

リソースパック対応前
![2023-12-02_12.52.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/70be554f-34c4-ab96-3b87-13827a8b80b3.png)
英語(アメリカ)
![2023-12-02_12.54.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/c728a729-c30c-c33d-a010-98f6c4121a45.png)
日本語
![2023-12-02_12.53.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/d93e87df-d996-69ae-af17-7887d4c87a0e.png)

:::note info
英語(アメリカ)`en_us.json`は対応していない言語でも表示されます。
:::
中国語(中国大陸)
![2023-12-02_12.54.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/70beef60-e5a1-351b-ea17-b0a29c2d6117.png)

# advancements,item_modifierの翻訳
データパックの翻訳をします。
### advancements
```データパック名/data/namespace/advancements/root.json
{
  "display": {
    "icon": {
      "id": "minecraft:barrier"
    },
    "title": {
      "text": "advancements.test.title"
    },
    "description": {
      "translate": "advancements.test.description"
    },
    "background": "minecraft/textures/block/dirt.png"
  },
  "criteria": {
    "test": {
      "trigger": "minecraft:tick"
    }
  }
}
```
##### 名前の設定
英語(アメリカ)
``` リソースパック名/assets/namespace/lang/en_us.json
{
    "advancements.test.title": "Advancement Title",
    "advancements.test.description": "Advancement Description"
}
```
日本語
``` リソースパック名/assets/namespace/lang/ja_jp.json
{
    "advancements.test.title": "進捗タイトル",
    "advancements.test.description": "進捗説明文"
}
```
リソースパック対応前
![2023-12-02_16.33.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/e5ffdde2-aa0f-34df-13b8-4c9212621fe9.png)
英語(アメリカ)
![2023-12-02_16.31.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/422ff72f-b4d6-346a-1a85-83f73b410b73.png)
日本語
![2023-12-02_16.30.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/b1d73c3d-ba6b-57d2-aa2f-fc0e41ee4f67.png)
## item_modifier
```データパック名/data/namespace/item_modifiers/test.json
[
  {
    "function": "minecraft:set_name",
    "name": {
      "translate": "item.namespace.test"
    }
  },
  {
    "function": "minecraft:set_lore",
    "lore": [
      {
        "translate": "item.namespace.test.desc"
      }
    ],
    "mode": "replace_all"
  }
]
```

#### 名前の設定
英語(アメリカ)
``` リソースパック名/assets/namespace/lang/en_us.json
{
    "item.namespace.test": "Test",
    "item.namespace.test.desc": "Test Description"
}
```
日本語
``` リソースパック名/assets/namespace/lang/ja_jp.json

{
    "item.namespace.test": "テスト",
    "item.namespace.test.desc": "テストの説明"
}
```
リソースパック対応前
![2023-12-02_16.47.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/3a26922d-4dbf-b929-38d5-efad31582477.png)
英語(アメリカ)
![2023-12-02_16.47.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/20ea3114-93a9-b4ca-d080-54823285221e.png)
日本語
![2023-12-02_16.48.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/ecab84b2-2ec9-5b9b-e68e-6191a1fdcc55.png)
# 用例
### 本
```
/give @p written_book{title:"",author:"",generation:3,pages:['{"translate":"item.namespace.book"}']} 
```
![2023-12-02_20.27.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/e0dadd49-0db9-5747-e152-777e6bdee28b.png)![2023-12-02_20.29.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/17deae6f-a421-dcc0-23e8-5ffaae757ae5.png)
### 看板
```
/give @p oak_sign{BlockEntityTag:{back_text:{messages:['{"translate":"block.namespace.sign.back"}','{"text":""}','{"text":""}','{"text":""}']},front_text:{messages:['{"translate":"block.namespace.sign.front"}','{"text":""}','{"text":""}','{"text":""}']}}}
```
![2023-12-02_20.28.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/d5b9dd35-0b1e-becf-458a-271f6dd8f3e8.png)![2023-12-02_20.31.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632861/ee92d2e7-ef27-2c47-c54d-0bb5b2729f0c.png)
# 最後に
海外の配布サイトなどに投稿するときにどうでしょうか?
今回のデータパック、リソースパックはここからダウンロードできます。ご参考程度に
https://drive.google.com/drive/folders/1pSs4NCfj-k64Yr3lONSjNT3D9bagRzd2?usp=drive_link
# 参考サイト
https://minecraft.fandom.com/ja/wiki/%E8%A8%80%E8%AA%9E