Локализация предмета.

Версия Minecraft
1.12.2
21
1
Учусь делать мод на версию minecraft 1.12.2. Сделал всё как в учебнике - создал предмет с моделью и текстурой. Решил сделать локализацию. По расположению assets/tameetpack/lang/ создал файл ru_ru.lang . В нём написал следующее: item.Money.name=Монета . Но в игре вместо текста знаки вопроса. В случае с английским языком всё нормально. В учебнике написано, что надо что-то сделать в pack.mcmeta, но что, не сказано. Что же надо сделать?
 
5,018
47
783

Icosider

Kotliner
Администратор
3,601
99
664
Учусь делать мод на версию minecraft 1.12.2. Сделал всё как в учебнике - создал предмет с моделью и текстурой. Решил сделать локализацию. По расположению assets/tameetpack/lang/ создал файл ru_ru.lang . В нём написал следующее: item.Money.name=Монета . Но в игре вместо текста знаки вопроса. В случае с английским языком всё нормально. В учебнике написано, что надо что-то сделать в pack.mcmeta, но что, не сказано. Что же надо сделать?
Если пишешь мод через intellij idea, то всё должно быть нормально, в случаи с эклипсом, то нужно как говорил @timaxa007, убрать флаг юникода(UTF-8 без BOM). То что было про pack.mcmeta это о смене регистра. Т.е. в случаи с версией 2 регистр может быть как верхний, так и нижний, а в случаи с 3, только в нижнем.
 
18
0
Последнее редактирование:
1,357
110
235
Лучше делать через ru_ru.lang, тогда не будет "вопросиков" и "закарючек". У меня было также, исправил этим (через ru_ru.lang) способом.
И да, если ответ был до тебя, не надо его цитировать (то есть, если мой #7 и твой #8, то не надо цитировать моё сообщение).
 
18
0
list.add(StatCollector.translateToLocal("book.text.1"));
что я не так сделал?

@SideOnly(Side.CLIENT)
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4, List list) {
list.add(StatCollector.translateToLocal("text1"));
par3List.add(this.text1);

}
 
18
0
List у тебя уже есть. Это первое. Второе, зачем 2 раза добавлять информацию? В лэнг файле прописал твоё описание?
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List list, boolean par4) {
list.add(StatCollector.translateToLocal("text1"));
}
вот так мне показывает text1 а не то что я в лэнг написал
 
1,357
110
235
Ну смотри, мой метод (на 1.7.10) addInformation:
Java:
    public void addInformation(ItemStack is, EntityPlayer player, List list, boolean flag) {
        NBTTagCompound nbt = is.getTagCompound();
        if(nbt.getByte("CustomSize") == 54) {
            if (nbt.hasKey("CustomSize"))
                list.add(StatCollector.translateToLocal("big"));
        }
        else if(nbt.getByte("CustomSize") == 27) {
            if (nbt.hasKey("CustomSize"))
                list.add(StatCollector.translateToLocal("small"));
        }
    }

А вот ru_Ru.lang (1.7.10):
JSON:
big=Размер: большой
small=Размер: маленький
Могу тебе ещё сказать, чтобы ты попробовал l18n.format("text1");.
 

Sainthozier

Стрелочник
623
11
369
Ну смотри, мой метод (на 1.7.10) addInformation:
Java:
    public void addInformation(ItemStack is, EntityPlayer player, List list, boolean flag) {
        NBTTagCompound nbt = is.getTagCompound();
        if(nbt.getByte("CustomSize") == 54) {
            if (nbt.hasKey("CustomSize"))
                list.add(StatCollector.translateToLocal("big"));
        }
        else if(nbt.getByte("CustomSize") == 27) {
            if (nbt.hasKey("CustomSize"))
                list.add(StatCollector.translateToLocal("small"));
        }
    }
1. Чекаешь значение
2. Проверяешь существование ключа
3. Добавляешь в лист строчку
Или я тупой, или здесь и вправду отсутствует логика )
 
Сверху