ПЕРЕДУМОВИ
Спершу переконайтеся, що ви виконали процес налаштування datagen.
Налаштування
Спочатку ми створимо нашого постачальника. Пам’ятайте, що фактично генерують дані для нас постачальники. Створіть клас, який extends FabricLanguageProvider, і заповніть базові методи:
java
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) {
}
}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(FabricDocsReferenceEnglishLangProvider::new);1
Створення перекладу
Разом зі створенням необроблених перекладів, перекладів з Identifier і копіюванням їх з уже існуючого файлу (передаючи Path), існують допоміжні методи для перекладу предметів, блоків, теґів, статистики, сутностей, статус ефектів, групи предметів, атрибути сутностей та зачарування. Просто викличте add у translationBuilder з тим, що ви хочете перекласти, і на що це має бути перекладено:
java
translationBuilder.add("text.fabric_docs_reference.greeting", "Hello there!");1
Використання перекладу
Згенеровані переклади замінюють багато перекладів, доданих в інших посібниках, але ви також можете використовувати їх усюди, де використовуєте об’єкт Текст. У нашому прикладі, якщо ми хочемо дозволити пакетам ресурсів перекладати наше привітання, ми використовуємо Text.translatable замість Text.of:
java
ChatHud chatHud = MinecraftClient.getInstance().inGameHud.getChatHud();
chatHud.addMessage(Text.literal("Hello there!"));
chatHud.addMessage(Text.translatable("text.fabric_docs_reference.greeting")); 1
2
3
2
3





