====== 语言文件生成 ======
您可以从支持翻译关键字的现有语言文件和类中生成翻译条目。
首先,创建一个继承 ''FabricLanguageProvider'' 的类,并实现如下基本方法:
private static class MyModEnglishLangProvider extends FabricLanguageProvider {
private MyModEnglishLangProvider(FabricDataOutput dataGenerator) {
// en_us 是可选参数,默认情况下该参数为 en_us
super(dataGenerator, "en_us");
}
@Override
public void generateTranslations(TranslationBuilder translationBuilder) {
}
}
让我们添加一些翻译条目:
@Override
public void generateTranslations(TranslationBuilder translationBuilder) {
translationBuilder.add(SIMPLE_ITEM, "Simple Item");
translationBuilder.add(SIMPLE_BLOCK, "Simple Block");
translationBuilder.add(SIMPLE_ITEM_GROUP, "Simple Item Group");
// 加载现有的语言文件
try {
Path existingFilePath = dataGenerator.getModContainer().findPath("assets/mymod/lang/en_us.existing.json").get();
translationBuilder.add(existingFilePath);
} catch (Exception e) {
throw new RuntimeException("Failed to add existing language file!", e);
}
}
现在,我们需要将提供程序添加到入口点类的 ''onInitializeDataGenerator'' 中的数据生成器中,如下所示:
public class DataGeneration implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
Pack pack = fabricDataGenerator.createPack();
pack.addProvider(MyModEnglishLangProvider::new);
}
}
====== 支持的类 ======
以下的游戏对象有一个翻译键供你翻译:
* ''Item''
* ''Block''
* ''ItemGroup''
* ''EntityType''
* ''Enchantment''
* ''EntityAttribute''
* ''StatType''
* ''StatusEffect''
* ''Identifier''