提供: Minecraft Modding Wiki
移動先: 案内検索
(StatCollector、net.minecraft.util以下のI18nについて少し追記。追えないのでわかる人頼む。)
(pack_format周り追記)
 
(他の1人の利用者による、間の4版が非表示)
1行目: 1行目:
 
== ローカライズについて ==
 
== ローカライズについて ==
Mod開発環境で利用できるローカライズ・国際化(I18n=Intenationalization)機能について解説します。
+
Minecraftが使用しているローカライズ・国際化(I18n=Intenationalization)機能について解説します。
  
 
=== 言語ファイル ===
 
=== 言語ファイル ===
23行目: 23行目:
  
 
</source>
 
</source>
 +
 +
バニラの言語ファイルは、「assets/minecraft/lang」直下に存在します。ファイル名は1.11以降「小文字_小文字.lang」が使われます。([http://minecraft.gamepedia.com/Language#Available_languages バニラで用意されているロケール一覧])例えば英語は、「en_us.lang」になります。
 +
 +
Modでは「assets/<modid>/lang」直下に言語ファイルを配置します。<br>
 +
pack.mcmetaで指定できるリソースパックのパックフォーマット("pack_format")が3の場合、バニラ1.11以降と同じく「小文字_小文字.lang」がファイル名になります。<br>
 +
指定しなかった場合は1.10以前と同じく「小文字_大文字.lang」というファイル名になります。(1.11現在デフォルトのパックフォーマットが2であるため)
  
 
=== I18n ===
 
=== I18n ===
「net.minecraft.client.resources.I18n」は、Minecraftの言語設定に基づいて、適切に配置したMinecraftの言語ファイルによるローカライズ結果を取得するのに使われています。ただし、このローカライズはクライアント側でのみ可能です(Forge環境では@SideOnly(Side.CLIENT)が付与されています)。以前(未調査)は「net.minecraft.util.text.translation.I18n」や「net.minecraft.util.StatCollector」が使われていました。
+
「net.minecraft.client.resources.I18n」は、Minecraftの言語設定に基づいて、適切に配置したMinecraftの言語ファイルによるローカライズ結果を取得するのに使われています。ただし、このローカライズはクライアント側でのみ可能です(Forge環境では@SideOnly(Side.CLIENT)が付与されています)。以前(未調査、1.9か1.8.9?)は「net.minecraft.util.text.translation.I18n」や「net.minecraft.util.StatCollector」が使われていました。
  
ローカライズには、「I18n#format」を使用します。第一引数にローカライズ前の文字列を渡し、可変引数となっている第二引数にローカライズで使用する「引数」を渡します。この「引数」は、言語ファイルの項で述べた「引数」と同一です。
+
ローカライズには、「I18n#format」を使用します。第一引数にローカライズ前の文字列を渡し、可変長引数となっている第二引数にローカライズで使用する「引数」を渡します。この「引数」は、言語ファイルの項で述べた「引数」と同一です。
  
 
例(コメントは戻り値)
 
例(コメントは戻り値)
38行目: 44行目:
  
 
=== StatCollector ===
 
=== StatCollector ===
'''''この項は、Minecraft 1.8.xまでを対象とした内容です。'''''
+
'''''この項は、Minecraft (未調査、1.8.x?)までを対象とした内容です。'''''
  
 
(未調査)
 
(未調査)

2017年3月28日 (火) 21:20時点における最新版

ローカライズについて[編集]

Minecraftが使用しているローカライズ・国際化(I18n=Intenationalization)機能について解説します。

言語ファイル[編集]

Minecraftが対応している言語ファイルでは、「K=V」と「行コメント」が使用できます。ここでは、「K」はローカライズ前の文字列を表し、「V」はローカライズ後の文字列を表しています。

また、「V」は実際にローカライズが行われるタイミングで「引数」を受け取ることができ、引数は「String#format」で解釈されます。詳しくは、String#formatのJavadoc書式文字列の構文のJavadocを参照するといいでしょう。

「行コメント」の開始文字は、「#」です。

例えば、以下のような書式です。

# 「#」以降は「コメント」として無視される

K=V # ここも無視される

tile.sample_block.name=Sample Block
item.sample_item.name=Sample Item

this.is.unlocalized.key=This is localized value.
sample.arg.int=I'll give you %1$d minutes.
sample.arg.string=Hi. This is a %1$s Mod.

バニラの言語ファイルは、「assets/minecraft/lang」直下に存在します。ファイル名は1.11以降「小文字_小文字.lang」が使われます。(バニラで用意されているロケール一覧)例えば英語は、「en_us.lang」になります。

Modでは「assets/<modid>/lang」直下に言語ファイルを配置します。
pack.mcmetaで指定できるリソースパックのパックフォーマット("pack_format")が3の場合、バニラ1.11以降と同じく「小文字_小文字.lang」がファイル名になります。
指定しなかった場合は1.10以前と同じく「小文字_大文字.lang」というファイル名になります。(1.11現在デフォルトのパックフォーマットが2であるため)

I18n[編集]

「net.minecraft.client.resources.I18n」は、Minecraftの言語設定に基づいて、適切に配置したMinecraftの言語ファイルによるローカライズ結果を取得するのに使われています。ただし、このローカライズはクライアント側でのみ可能です(Forge環境では@SideOnly(Side.CLIENT)が付与されています)。以前(未調査、1.9か1.8.9?)は「net.minecraft.util.text.translation.I18n」や「net.minecraft.util.StatCollector」が使われていました。

ローカライズには、「I18n#format」を使用します。第一引数にローカライズ前の文字列を渡し、可変長引数となっている第二引数にローカライズで使用する「引数」を渡します。この「引数」は、言語ファイルの項で述べた「引数」と同一です。

例(コメントは戻り値)

I18n.format("this.is.unlocalized.key"); // "This is localized value."

I18n.format("sample.arg.int", 3); // "I'll give you 3 minutes."
I18n.format("sample.arg.string", "Minecraft"); // This is a Minecraft Mod.

StatCollector[編集]

この項は、Minecraft (未調査、1.8.x?)までを対象とした内容です。

(未調査)