langファイルによるローカライズについて
LanguageRegistryとさよならしよう
Forge for minecraft 1.6.2から, assets/(.*)/lang/*.langファイルを自動で読み込んでくれるようになった. そのためもういちいちコード内でLanguageRegistry.addName()やloadLocalization()のようなメソッドを呼ぶ必要がなくなった. そのためlangファイルを言語別に書けばよいだけなうえ, 他の言語ファイルもおけばいいだけになった. なおlangファイルのフォーマットはJavaのpropertiesと同じである.
langファイルのサンプル
en_US.lang(英語)
tile.infernalfurnace.name=InfernalFurnace tile.dwarvenOre.mithril.name=Mithril Ore tile.dwarvenOre.ebony.name=Ebony Ore
Properties形式について
minecraftにはunlocalizedNameとdisplayNameという2つの名前があり, langファイルではその2つを対応させればよい. propertiesの左辺はunlocalizedName(内部名)なのでブロックとアイテムは以下のようになる.
tile.hogehoge.name(ブロックの場合) tile.hogehoge.piyopiyo.name(メタデータを使ったブロックの場合) item.hogehoge.name(アイテムの場合) item.hogehoge.piyopiyo.name(メタデータを使ったアイテムの場合)
他にもContainerの名前, CreativeTab, Enchantmentなど, 内部名で扱っているものはすべてlangファイルからローカライズできる.