Генерація перекладу
Посібник із налаштування створення перекладу за допомогою datagen.
WARNING
Ця сторінка написана для версії 1.21.4. Документація для старіших версій може бути неповною.
ПЕРЕДУМОВИ
Спершу переконайтеся, що ви виконали процес налаштування datagen.
Налаштування
Спочатку ми створимо нашого постачальника. Пам’ятайте, що фактично генерують дані для нас постачальники. Створіть клас, який extends FabricLanguageProvider, і заповніть базові методи:
public class FabricDocsReferenceEnglishLangProvider extends FabricLanguageProvider {
public FabricDocsReferenceEnglishLangProvider(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) {
}
}2
3
4
5
6
7
8
9
10
TIP
Вам знадобиться окремий постачальник для кожної мови, яку ви хочете створити (наприклад, один ExampleEnglishLangProvider і один ExamplePirateLangProvider).
Щоб завершити налаштування, додайте цього постачальника до своєї DataGeneratorEntrypoint у методі onInitializeDataGenerator.
pack.addProvider(FabricDocsReferenceItemTagProvider::new);Створення перекладу
Разом зі створенням необроблених перекладів, перекладів з ResourceLocation і копіюванням їх з уже існуючого файлу (передаючи Path), існують допоміжні методи для перекладу предметів, блоків, теґів, статистики, сутностей, статус ефектів, групи предметів, атрибути сутностей та зачарування. Просто викличте add у translationBuilder з тим, що ви хочете перекласти, і на що це має бути перекладено:
translationBuilder.add("text.fabric_docs_reference.greeting", "Hello there!");Використання перекладу
Згенеровані переклади замінюють багато перекладів, доданих в інших посібниках, але ви також можете використовувати їх усюди, де використовуєте об’єкт Текст. У нашому прикладі, якщо ми хочемо дозволити пакетам ресурсів перекладати наше привітання, ми використовуємо Component.translatable замість Component.nullToEmpty:
ChatHud chatHud = Minecraft.getInstance().gui.getChat();
chatHud.addMessage(Component.literal("Hello there!"));
chatHud.addMessage(Component.translatable("text.fabric_docs_reference.greeting")); 2
3






