ПЕРЕДУМОВИ
Спершу переконайтеся, що ви виконали процес налаштування datagen.
Налаштування
Спочатку ми створимо нашого постачальника. Пам’ятайте, що фактично генерують дані для нас постачальники. Створіть клас, який розширює FabricLanguageProvider, і заповніть базові методи:
java
public class ExampleModEnglishLangProvider extends FabricLanguageProvider {
protected ExampleModEnglishLangProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) {
// Specifying en_us is optional, as it's the default language code
super(dataOutput, "en_us", registryLookup);
}
@Override
public void generateTranslations(HolderLookup.Provider wrapperLookup, TranslationBuilder translationBuilder) {
}
}1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
TIP
Вам знадобиться окремий постачальник для кожної мови, яку ви хочете створити (наприклад, один ExampleEnglishLangProvider і один ExamplePirateLangProvider).
Щоб завершити налаштування, додайте цього провайдера до своєї DataGeneratorEntrypoint у методі onInitializeDataGenerator.
java
pack.addProvider(ExampleModEnglishLangProvider::new);1
Створення перекладу
Разом зі створенням необроблених перекладів, перекладів з Identifier і копіюванням їх з уже наявного файлу (передаючи Path), існують допоміжні методи для перекладу предметів, блоків, теґів, статистики, сутностей, ефектів, вкладок творчості, атрибути сутностей та зачарування. Просто викличте add у translationBuilder з тим, що ви хочете перекласти, і на що це має бути перекладено:
java
translationBuilder.add("text.example-mod.greeting", "Hello there!");1
Використання перекладу
Згенеровані переклади замінюють багато перекладів, доданих в інших посібниках, але ви також можете використовувати їх усюди, де використовуєте об’єкт Component. У нашому прикладі, якщо ми хочемо дозволити пакетам ресурсів перекладати наше привітання, ми використовуємо Component.translatable замість Component.literal:
java
ChatComponent chatHud = Minecraft.getInstance().gui.getChat();
chatHud.addMessage(Component.literal("Hello there!"));
chatHud.addMessage(Component.translatable("text.example-mod.greeting")); 1
2
3
2
3






