🇨🇳 中文 (Chinese - China)
🇨🇳 中文 (Chinese - China)
外观
🇨🇳 中文 (Chinese - China)
🇨🇳 中文 (Chinese - China)
外观
本页面基于这个版本编写:
1.21.4
前提
首先,请确保你已完成 Datagen 设置 。
首先,我们要创建提供程序。 请记住,提供程序才是为我们生成数据的。 创建一个 extends FabricLanguageProvider
的类,填入基本方法:
public class FabricDocsReferenceEnglishLangProvider extends FabricLanguageProvider {
protected FabricDocsReferenceEnglishLangProvider(FabricDataOutput dataOutput, CompletableFuture<RegistryWrapper.WrapperLookup> registryLookup) {
// Specifying en_us is optional, as it's the default language code
super(dataOutput, "en_us", registryLookup);
}
@Override
public void generateTranslations(RegistryWrapper.WrapperLookup wrapperLookup, TranslationBuilder translationBuilder) {
}
}
TIP
对于想要生成的每种语言,需要不同的提供程序(例如一个 ExampleEnglishLangProvider
还有一个 ExamplePirateLangProvider
)。
要完成设置,将此提供程序添加到 onInitializeDataGenerator
方法中的 DataGeneratorEntrypoint
。
pack.addProvider(FabricDocsReferenceEnglishLangProvider::new);
除了创建原始翻译、来自 Identifier
的翻译以及从现有的文件复制(通过传递 Path
)之外,还有用于翻译物品、方块、标签、统计数据、实体、状态效果、物品组、实体属性和魔咒的辅助方法。 只需在 translationBuilder
上调用 add
,添加你想要翻译的内容以及应该翻译成的内容:
translationBuilder.add("text.fabric_docs_reference.greeting", "Hello there!");
生成的翻译取代了其他教程中添加的许多翻译,但你也可以在任何使用 Text
对象的地方使用。 在我们的示例中,如果我们想允许资源包翻译我们的问候语,我们使用 Text.translatable
而不是 Text.of
:
ChatHud chatHud = MinecraftClient.getInstance().inGameHud.getChatHud();
chatHud.addMessage(Text.literal("Hello there!"));
chatHud.addMessage(Text.translatable("text.fabric_docs_reference.greeting"));