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





