このページではリソースパックを用いて言語をカスタマイズする方法について解説する。
方法[]
リソースパックを用いると、Minecraftに新しい言語を追加したり、あるいは既存の言語の翻訳文を書き換え・追加することができる。
言語の追加・上書きをするには、リソースパックのassets/<名前空間>/lang
フォルダに<言語コード>.json
という名前のJSONファイルを追加する。ファイルの記述方法は#記法を参照。
既存の言語の言語コードの一覧はこちらのページにある(日本語:ja_jp
)。新しい言語を追加する場合は、言語コードはpack.mcmeta
ファイルで指定したものと一致させる必要がある。
言語を追加する場合には、pack.mcmeta
ファイルに対して追加する言語の情報を明記する必要がある。既存の言語の上書きをする場合はこの手順は不要。
pack.mcmeta
の雛形記法[]
翻訳文は翻訳キーと呼ばれる識別子に結び付ける形で定義されており、翻訳キーを指定することで現在使用中の言語の翻訳文を呼び出すことができるようになっている。
<言語コード>.json
には、翻訳キーとその言語の翻訳文の組を次のように{}
の中に並べて定義する。翻訳キー、翻訳文はそれぞれ""
で囲み、その間には:
を挿入する。組と組の間には,
を挟む必要がある。
{
"block.minecraft.acacia_button": "アカシアのボタン",
"block.minecraft.acacia_door": "アカシアのドア"
}
既存の言語の上書きをする場合は、書き換え・追加したい分の組だけを記述すればよい。
翻訳文内では、装飾コードによる文字色・文字効果の指定、およびJSONのエスケープ文字(\nで改行など)が使用できる。ただし、MC-182301により翻訳文としてJSONテキストを使用することはできない。
既存の翻訳キーを知る方法は主に二つある。一つは.minecraft/assetsのindex
にある目次からja-jp.json
の番号を取得し、同object
内からその番号で検索して発見したファイルを.json
ファイルとして読む方法であり、このファイルの内容はそのまま言語ファイルの雛形として使用できる。
もう一方はCrowdinのMinecraftの翻訳プロジェクトから検索して「CONTEXT」欄の「Key」を見ることである。
テキスト挿入[]
翻訳テキストは withというJSONリストを伴って呼び出されることがある。このリストにはJSONテキストが並べられており、このリスト内のテキストは翻訳文上に挿入することができる。この機能は通常のゲームプレイではプレイヤー名など、任意の文字列を挿入するために使用される。
翻訳文上にテキストを挿入するためには、翻訳文上でその挿入場所を識別子を用いて明示する必要がある。使用できる識別子には%s
と%n$s
型の2種類がある。
%s
はリスト内の文字列を順番に挿入するために使用される。例えば withに["太郎", "次郎", "三郎"]
が与えられている場合、%s、%s、%s、こんにちは
は「太郎、次郎、三郎、こんにちは」と表示される。
%n$s
はリスト内のn
番目の要素を挿入することができる。例えば withに["太郎", "次郎", "三郎"]
が与えられている場合、%3$s、%2$s、%1$s、こんにちは
は「三郎、二郎、一郎、こんにちは」と表示される。
なお%s
で文字列を順番に挿入していく場合、%n$s
などは選択の移動に関与しない。例えば withに["太郎", "次郎", "三郎"]
が与えられている場合、%s、%2$s、%s、こんにちは
は「一郎、二郎、二郎、こんにちは」と表示される。%2$s
の後だからといって次の%s
が3番目の三郎を参照することはなく、一つ前の%s
が参照した次の要素、この場合は2番目の次郎を参照する。
使用方法[]
既存の翻訳キーを書き換えることで「土」などデフォルトのMinecraftで使用される翻訳文を任意に書き換えることができる。また、新しい翻訳キー・翻訳文の組を追加することにより配布マップやデータパックの多言語対応を実現することもできる。
新しく追加した翻訳キーは、JSONテキスト#被翻訳テキストを使用することで表示することができる。
またデータパックでカスタムバイオームやカスタム防具装飾などの要素を追加した場合、その要素の表示名は設定ファイルの名前から自動的に生成される翻訳キーを参照することがある。以下は、そうした翻訳キーの生成規則の一覧である。
要素 | 翻訳キー |
---|---|
バイオーム | biome.<名前空間>.<バイオーム名>
|
ワールドプリセット | generator.<名前空間>.<プリセット名>
|
スーパーフラットの ワールドプリセット |
flat_world_preset.<名前空間>.<プリセット名>
|
死亡メッセージ | ダメージの種類を参照 |