マイクラの言語ファイルの中身を見る
- 英語以外の言語ファイルは一体どこにあるのか
- 日本語の言語ファイルはUnicodeで書かれている
- 1.15.2の日本語の言語ファイルの中身
- %s とか %1$s とかってなによ?
- 言語ファイルを変更して反映させるには
英語以外の言語ファイルは一体どこにあるのか
いつもの.minecraft/versions/<バージョン>.jar
の中にあるのかと思ったら、存在しなかった。
で、よくよく調べてみると以下にあるとのことだった。
.minecraft/assets/indexes/<バージョン>.json
を開く- 中に以下のような記述がある場所を探す (日本語の例)
: "minecraft/lang/ja_jp.json": { "hash": "efd2cd466ec340e9a33980e4429cf02152c2c6bb", "size": 474708 }, :
hash
の内容を覚える(どこかにメモする).minecraft/assets/objects/
を開く- フォルダがいっぱいあるので、
hash
の先頭2文字(上の場合はef)のフォルダを開く hash
と同じファイル名を「テキストファイル」として開く (中身はJSON)
日本語の言語ファイルはUnicodeで書かれている
ファイルを開くと大量の\u7171
みたいな文字がいっぱい並んでます。
なので、読める形に変換しましょう。
私はここのサイトを使ってます。
Unicode Escape Sequence | KWONLINE.ORG
1.15.2の日本語の言語ファイルの中身
どういうものがあるのか。
こんな感じになってます。長いので、適当に省略します。
{ "addServer.add": "完了", "addServer.enterIp": "サーバーアドレス", "addServer.enterName": "サーバー名", "addServer.hideAddress": "アドレスを隠す", "addServer.resourcePack": "サーバーリソースパック", "addServer.resourcePack.disabled": "無効", "addServer.resourcePack.enabled": "有効", : "advancements.story.upgrade_tools.description": "より良いツルハシをつくる", "advancements.story.upgrade_tools.title": "アップグレード", "advancements.toast.challenge": "挑戦完了!", "advancements.toast.goal": "目標達成!", "advancements.toast.task": "進捗達成!", "argument.anchor.invalid": "無効なエンティティのアンカー位置 %s です", "argument.block.id.invalid": "「%s」は不明なブロックの種類です", : "commands.scoreboard.players.set.success.single": "%2$s の %1$s を %3$s に設定しました", "commands.seed.success": "シード値:%s", "commands.setblock.failed": "ブロックを設置できませんでした", "commands.setblock.success": "%s, %s, %s におけるブロックを変更しました", : "subtitles.entity.dolphin.ambient": "イルカが鳴く", "subtitles.entity.dolphin.ambient_water": "イルカが鳴く", "subtitles.entity.dolphin.attack": "イルカが攻撃をする", "subtitles.entity.dolphin.death": "イルカが死ぬ", "subtitles.entity.dolphin.eat": "イルカが食べる", "subtitles.entity.dolphin.hurt": "イルカがダメージを受ける", "subtitles.entity.dolphin.jump": "イルカがジャンプをする", "subtitles.entity.dolphin.play": "イルカが遊ぶ", "subtitles.entity.dolphin.splash": "イルカが飛び込む", "subtitles.entity.dolphin.swim": "イルカが泳ぐ", : "title.singleplayer": "シングルプレイ", "translation.test.args": "%s %s", "translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!", "translation.test.escape": "%%s %%%s %%%%s %%%%%s", "translation.test.invalid": "hi %", "translation.test.invalid2": "hi %s", "translation.test.none": "Hello, world!", "translation.test.world": "world", : }
%s とか %1$s とかってなによ?
これは、言語ファイルで決められないパラメータが入ります。
例えばcommands.seed.success
はシード値 : %s
ですが、実際に表示されるものは%s
のところに別の値が入って表示されます。
%1$s
も似たようなもので、1番目のパラメータを使いますよってことです。
どうやって使うのか
tellrawで表示させたい場合は、こんな感じで使います。
tellraw @p {"translate":"title.singleplayer"}
もしも%sになにか指定したいなら
tellraw @p {"translate":"commands.seed.success","with":["この辺"]}
とかで指定できます。
%sが複数ある場合も
tellraw @p {"translate":"commands.setblock.success","with":["0","60","15"]}
と書くと、頭から順番に使われます。 何番目っていうのかこういう書き方をした時に、指定するやつですね。
言語ファイルを変更して反映させるには
リソースパックに入れましょう。
<リソースパック名>/assets/minecraft/lang/<言語名>.json
に配置すればOKです。
全部書かなくても一部だけ変更でもOKです。
<言語名>
のところは日本語ならja_jp
ですね。