User Tools

Site Tools


zh_cn:tutorial:datagen_language

语言文件生成

您可以从支持翻译关键字的现有语言文件和类中生成翻译条目。

首先,创建一个继承 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<T>
  • Enchantment
  • EntityAttribute
  • StatType<T>
  • StatusEffect
  • Identifier
zh_cn/tutorial/datagen_language.txt · Last modified: 2024/06/04 17:11 by sjk1949