Make some messages localized serverside

This commit is contained in:
Anton 2015-04-26 13:50:55 +03:00
parent 9329387b6c
commit 47e7cad9e9
7 changed files with 88 additions and 39 deletions

View file

@ -5,8 +5,7 @@ import net.minecraft.entity.passive.EntityTameable;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.IDemon; import WayofTime.alchemicalWizardry.common.IDemon;
@ -116,14 +115,14 @@ public class EntityDemon extends EntityTameable implements IDemon
{ {
if (owner != null && owner.worldObj.isRemote) if (owner != null && owner.worldObj.isRemote)
{ {
ChatComponentText chatmessagecomponent; ChatComponentTranslation chatmessagecomponent;
if (isSitting) if (isSitting)
{ {
chatmessagecomponent = new ChatComponentText(StatCollector.translateToLocal("message.demon.willstay")); chatmessagecomponent = new ChatComponentTranslation("message.demon.willstay");
} else } else
{ {
chatmessagecomponent = new ChatComponentText(StatCollector.translateToLocal("message.demon.shallfollow")); chatmessagecomponent = new ChatComponentTranslation("message.demon.shallfollow");
} }
owner.addChatComponentMessage(chatmessagecomponent); owner.addChatComponentMessage(chatmessagecomponent);

View file

@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
@ -148,7 +149,7 @@ public class ItemAttunedCrystal extends Item implements IReagentManipulator
if (player.isSneaking()) if (player.isSneaking())
{ {
this.setHasSavedCoordinates(itemStack, false); this.setHasSavedCoordinates(itemStack, false);
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.clearing"))); player.addChatComponentMessage(new ChatComponentTranslation("message.attunedcrystal.clearing"));
} }
return itemStack; return itemStack;
@ -224,14 +225,14 @@ public class ItemAttunedCrystal extends Item implements IReagentManipulator
if (dimension != world.provider.dimensionId || Math.abs(coords.xCoord - x) > maxDistance || Math.abs(coords.yCoord - y) > maxDistance || Math.abs(coords.zCoord - z) > maxDistance) if (dimension != world.provider.dimensionId || Math.abs(coords.xCoord - x) > maxDistance || Math.abs(coords.yCoord - y) > maxDistance || Math.abs(coords.zCoord - z) > maxDistance)
{ {
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.error.toofar"))); player.addChatComponentMessage(new ChatComponentTranslation("message.attunedcrystal.error.toofar"));
return itemStack; return itemStack;
} }
TileEntity pastTile = world.getTileEntity(coords.xCoord, coords.yCoord, coords.zCoord); TileEntity pastTile = world.getTileEntity(coords.xCoord, coords.yCoord, coords.zCoord);
if (!(pastTile instanceof TEReagentConduit)) if (!(pastTile instanceof TEReagentConduit))
{ {
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.error.cannotfind"))); player.addChatComponentMessage(new ChatComponentTranslation("message.attunedcrystal.error.cannotfind"));
return itemStack; return itemStack;
} }
@ -254,7 +255,7 @@ public class ItemAttunedCrystal extends Item implements IReagentManipulator
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.linked") + " " + reagent.name)); player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.linked") + " " + reagent.name));
} else } else
{ {
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.error.noconnections"))); player.addChatComponentMessage(new ChatComponentTranslation("message.attunedcrystal.error.noconnections"));
} }
} }
world.markBlockForUpdate(coords.xCoord, coords.yCoord, coords.zCoord); world.markBlockForUpdate(coords.xCoord, coords.yCoord, coords.zCoord);
@ -265,7 +266,7 @@ public class ItemAttunedCrystal extends Item implements IReagentManipulator
this.setDimension(itemStack, dimension); this.setDimension(itemStack, dimension);
this.setCoordinates(itemStack, new Int3(x, y, z)); this.setCoordinates(itemStack, new Int3(x, y, z));
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.attunedcrystal.linking"))); player.addChatComponentMessage(new ChatComponentTranslation("message.attunedcrystal.linking"));
} }
} }
} }

View file

@ -10,7 +10,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -72,7 +72,7 @@ public class ItemDestinationClearer extends Item implements IReagentManipulator
relay.reagentTargetList.clear(); relay.reagentTargetList.clear();
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.destinationclearer.cleared"))); player.addChatComponentMessage(new ChatComponentTranslation("message.destinationclearer.cleared"));
} }
} }

View file

@ -8,8 +8,7 @@ import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks; import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.api.Int3; import WayofTime.alchemicalWizardry.api.Int3;
@ -125,7 +124,7 @@ public class RitualEffectDemonPortal extends RitualEffect
{ {
if(!checkJars(ritualStone)) if(!checkJars(ritualStone))
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.ritualdemonportal.missingjar"))); player.addChatMessage(new ChatComponentTranslation("message.ritualdemonportal.missingjar"));
return false; return false;
} }
return true; return true;

View file

@ -12,6 +12,7 @@ import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
@ -511,7 +512,7 @@ public class TEAltar extends TEInventory implements IFluidTank, IFluidHandler, I
{ {
if(AlchemicalWizardry.causeHungerChatMessage && !player.isPotionActive(Potion.hunger.id)) if(AlchemicalWizardry.causeHungerChatMessage && !player.isPotionActive(Potion.hunger.id))
{ {
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.hunger"))); player.addChatComponentMessage(new ChatComponentTranslation("message.altar.hunger"));
} }
player.addPotionEffect(new PotionEffect(Potion.hunger.id, 40, regenEffect.getAmplifier() * 2 - 2)); player.addPotionEffect(new PotionEffect(Potion.hunger.id, 40, regenEffect.getAmplifier() * 2 - 2));
} }
@ -943,9 +944,9 @@ public class TEAltar extends TEInventory implements IFluidTank, IFluidHandler, I
public void sendChatInfoToPlayer(EntityPlayer player) public void sendChatInfoToPlayer(EntityPlayer player)
{ {
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.currentessence"), this.fluid.amount))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.currentessence"), this.fluid.amount));
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.currenttier"), UpgradedAltars.isAltarValid(worldObj, xCoord, yCoord, zCoord)))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.currenttier"), UpgradedAltars.isAltarValid(worldObj, xCoord, yCoord, zCoord)));
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.capacity"), this.getCapacity()))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.capacity"), this.getCapacity()));
} }
public void sendMoreChatInfoToPlayer(EntityPlayer player) public void sendMoreChatInfoToPlayer(EntityPlayer player)
@ -956,9 +957,9 @@ public class TEAltar extends TEInventory implements IFluidTank, IFluidHandler, I
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.progress") + " " + progress + "LP/" + liquidRequired * stackSize + "LP")); player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.progress") + " " + progress + "LP/" + liquidRequired * stackSize + "LP"));
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.consumptionrate") + " " + (int) (consumptionRate * (1 + consumptionMultiplier)) + "LP/t")); player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.consumptionrate") + " " + (int) (consumptionRate * (1 + consumptionMultiplier)) + "LP/t"));
} }
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.currentessence"), this.fluid.amount))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.currentessence"), this.fluid.amount));
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.inputtank"), this.fluidInput.amount))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.inputtank"), this.fluidInput.amount));
player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.outputtank"), this.fluidOutput.amount))); player.addChatMessage(new ChatComponentTranslation(String.format("message.altar.outputtank"), this.fluidOutput.amount));
} }
@Override @Override

View file

@ -13,8 +13,7 @@ import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
@ -220,7 +219,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
if (testRitual.equals("")) if (testRitual.equals(""))
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.nothinghappened"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.nothinghappened"));
return; return;
} }
@ -228,7 +227,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
RitualActivatedEvent event = new RitualActivatedEvent(this, crystalOwner, testRitual, player, activationCrystal, crystalLevel); RitualActivatedEvent event = new RitualActivatedEvent(this, crystalOwner, testRitual, player, activationCrystal, crystalLevel);
if(MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) if(MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY)
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.somethingstoppedyou"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.somethingstoppedyou"));
return; return;
} }
@ -241,7 +240,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
if (!testLevel) if (!testLevel)
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.crystalvibrates"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.crystalvibrates"));
return; return;
} }
@ -250,7 +249,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
if (currentEssence < Rituals.getCostForActivation(testRitual)) if (currentEssence < Rituals.getCostForActivation(testRitual))
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.youfeelapull"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.youfeelapull"));
return; return;
} }
@ -259,7 +258,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
{ {
if (!Rituals.startRitual(this, testRitual, player)) if (!Rituals.startRitual(this, testRitual, player))
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.ritualresistyou"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.ritualresistyou"));
return; return;
} else } else
@ -268,7 +267,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
if(drain > 0) if(drain > 0)
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.energyflows"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.energyflows"));
for (int i = 0; i < 12; i++) for (int i = 0; i < 12; i++)
{ {
@ -276,7 +275,7 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone
} }
}else }else
{ {
player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("message.masterstone.somethingstoppedyou"))); player.addChatMessage(new ChatComponentTranslation("message.masterstone.somethingstoppedyou"));
return; return;
} }

View file

@ -59,6 +59,14 @@ tile.crystalBlock.fullCrystal.name=Кристальное скопление
tile.crystalBlock.crystalBrick.name=Кирпич кристального скопления tile.crystalBlock.crystalBrick.name=Кирпич кристального скопления
tile.demonPortal.name=Демонический портал tile.demonPortal.name=Демонический портал
tile.demonChest.name=Сундук демона tile.demonChest.name=Сундук демона
tile.enchantmentGlyph.enchantability.name=Глиф искусного зачарователя
tile.enchantmentGlyph.enchantmentLevel.name=Глиф магической силы
tile.stabilityGlyph.stability1.name=Глиф непреклонный стабильности
tile.schematicSaver.name=Schematic Saver
tile.blockMimic.name=Блок-имитатор
tile.blockSpectralContainer.name=Призрачный контейнер
tile.blockBloodLightSource.name=Кровавый свет
tile.spectralBlock.name=Призрачный блок
#Item Localization #Item Localization
item.weakBloodOrb.name=Слабый кровавый шар item.weakBloodOrb.name=Слабый кровавый шар
@ -201,6 +209,31 @@ item.itemHarvestSigil.name=Сигил богини плодородия
item.itemCompressionSigil.name=Сигил сжатия item.itemCompressionSigil.name=Сигил сжатия
item.itemAssassinSigil.name=Сигил убийцы item.itemAssassinSigil.name=Сигил убийцы
item.transcendentBloodOrb.name=Трансцендентальный кровавый шар item.transcendentBloodOrb.name=Трансцендентальный кровавый шар
item.itemMailCatalogue.name=Mail Order Catalogue
item.inputRoutingFocus.name=Фокус направления входа
item.bloodMagicBaseItem.EnderShard.name=Осколок Края
item.outputRoutingFocus.default.name=Обычный фокус направления выхода
item.outputRoutingFocus.modItem.name=Фокус направления выхода (ModItem)
item.outputRoutingFocus.ignMeta.name=Фокус направления выхода (Ignore Meta)
item.outputRoutingFocus.matchNBT.name=Фокус направления выхода (MatchNBT)
item.outputRoutingFocus.global.name=Фокус направления выхода (Global)
item.dawnScribeTool.name=Elemental Inscription Tool: Dawn
item.boundHelmetEarth.name=Земляной омега шлем
item.boundPlateEarth.name=Земляная омега кираса
item.boundLeggingsEarth.name=Земляные омега поножи
item.boundBootsEarth.name=Земляные омега ботинки
item.boundHelmetWind.name=Воздушный омега шлем
item.boundPlateWind.name=Воздушная омега кираса
item.boundLeggingsWind.name=Воздушные омега поножи
item.boundBootsWind.name=Воздушные омега ботинки
item.boundHelmetFire.name=Огненный омега шлем
item.boundPlateFire.name=Огненная омега кираса
item.boundLeggingsFire.name=Огненные омега поножи
item.boundBootsFire.name=Огненные омега ботинки
item.boundHelmetWater.name=Водный омега шлем
item.boundPlateWater.name=Водная омега кираса
item.boundLeggingsWater.name=Водные омега поножи
item.boundBootsWater.name=Водные омега ботинки
#Creative Tab #Creative Tab
itemGroup.tabBloodMagic=Blood Magic itemGroup.tabBloodMagic=Blood Magic
@ -211,6 +244,10 @@ bm.string.drain=Опустошение
bm.string.tier=Уровень bm.string.tier=Уровень
bm.string.crafting.orb.shaped=Форменное создание шара bm.string.crafting.orb.shaped=Форменное создание шара
bm.string.crafting.orb.shapeless=Бесформенное создание шара bm.string.crafting.orb.shapeless=Бесформенное создание шара
text.recipe.altar=Кровавый алтарь
text.recipe.altar.tier=Уровень: %s
text.recipe.altar.bloodRequired=LP: %s
text.recipe.shapedOrb=Форменный рецепт шара
#Entities #Entities
entity.AWWayofTime.EarthElemental.name=Элементаль земли entity.AWWayofTime.EarthElemental.name=Элементаль земли
@ -334,8 +371,9 @@ tooltip.reinforcedtelepfocus.desc1=Ещё более сильная версия
tooltip.reinforcedtelepfocus.desc2=которая использует слабый осколок tooltip.reinforcedtelepfocus.desc2=которая использует слабый осколок
tooltip.ritualdiviner.airstones=Камни воздуха: tooltip.ritualdiviner.airstones=Камни воздуха:
tooltip.ritualdiviner.blankstones=Пустые камни: tooltip.ritualdiviner.blankstones=Пустые камни:
tooltip.ritualdiviner.cannotplace=Не может размещать сумеречные руны tooltip.ritualdiviner.cannotplace=Не может размещать руны сумерек
tooltip.ritualdiviner.canplace=Может размещать сумеречные руны tooltip.ritualdiviner.canplace=Может размещать руны сумерек
tooltip.ritualdiviner.canplacedawn=Может размещать руны сумерек и рассвета
tooltip.ritualdiviner.desc=Используется для обнаружения новых видов ритуалов tooltip.ritualdiviner.desc=Используется для обнаружения новых видов ритуалов
tooltip.ritualdiviner.duskstones=Камни сумерек: tooltip.ritualdiviner.duskstones=Камни сумерек:
tooltip.ritualdiviner.earthstones=Камни земли: tooltip.ritualdiviner.earthstones=Камни земли:
@ -343,6 +381,8 @@ tooltip.ritualdiviner.firestones=Камни огня:
tooltip.ritualdiviner.moreinfo=Нажмите shift, чтобы увидеть дополнительную информацию tooltip.ritualdiviner.moreinfo=Нажмите shift, чтобы увидеть дополнительную информацию
tooltip.ritualdiviner.ritualtunedto=Ритуал настроен на сторону: tooltip.ritualdiviner.ritualtunedto=Ритуал настроен на сторону:
tooltip.ritualdiviner.waterstones=Камни воды: tooltip.ritualdiviner.waterstones=Камни воды:
tooltip.ritualdiviner.dawnstones=Камни рассвета:
tooltip.ritualdiviner.totalStones=Всего камней:
tooltip.sacrificialdagger.desc1=Чувство потери крови щекочет Ваши пальцы tooltip.sacrificialdagger.desc1=Чувство потери крови щекочет Ваши пальцы
tooltip.sacrificialdagger.desc2=Простого укольчика tooltip.sacrificialdagger.desc2=Простого укольчика
tooltip.sacrificialdagger.desc3=будет достаточно... tooltip.sacrificialdagger.desc3=будет достаточно...
@ -372,15 +412,18 @@ tooltip.tanksegmenter.desc2=реагентов, которые могут быт
tooltip.telepositionfocus.desc=Жемчуг Края, проникнутый кровью tooltip.telepositionfocus.desc=Жемчуг Края, проникнутый кровью
tooltip.voidsigil.desc=Лучше, чем швабра «Swiffer»! tooltip.voidsigil.desc=Лучше, чем швабра «Swiffer»!
tooltip.watersigil.desc=Бесконечная вода, кому-нибудь? tooltip.watersigil.desc=Бесконечная вода, кому-нибудь?
tooltip.routingFocus.limit=Лимит:
tooltip.routingFocus.desc=Фокус, используемый для направления предметов
#Messages #Messages
message.altar.capacity=Ёмкость: message.altar.capacity=Ёмкость: %s LP
message.altar.consumptionrate=Скорость потребления: message.altar.consumptionrate=Скорость потребления:
message.altar.currentessence=Текущая эссенция алтаря: message.altar.currentessence=Текущая эссенция алтаря: %s LP
message.altar.currenttier=Текущий уровень алтаря: message.altar.currenttier=Текущий уровень алтаря: %s
message.altar.progress=Прогресс алтаря: message.altar.progress=Прогресс алтаря:
message.altar.inputtank= Резервуар для входа: message.altar.inputtank= Резервуар для входа: %s LP
message.altar.outputtank= Резервуар для выхода: message.altar.outputtank= Резервуар для выхода: %s LP
message.altar.hunger=[BM] Из-за Вашего высокого уровня регенерации Вы проголодались...
message.attunedcrystal.clearing=Очистка сохранённого контейнера... message.attunedcrystal.clearing=Очистка сохранённого контейнера...
message.attunedcrystal.error.cannotfind=Не удалось найти соединённый контейнер. message.attunedcrystal.error.cannotfind=Не удалось найти соединённый контейнер.
message.attunedcrystal.error.noconnections=У соединённого контейнера не осталось свободных соединений! message.attunedcrystal.error.noconnections=У соединённого контейнера не осталось свободных соединений!
@ -408,4 +451,11 @@ message.ritual.side.west=ЗАПАД
message.ritualdemonportal.missingjar=Сосуд на одной из колонн, кажется, отсутствует... message.ritualdemonportal.missingjar=Сосуд на одной из колонн, кажется, отсутствует...
message.tanksegmenter.nowhas=У резервуара теперь message.tanksegmenter.nowhas=У резервуара теперь
message.tanksegmenter.setto=Сегментер резервуаров установлен на: message.tanksegmenter.setto=Сегментер резервуаров установлен на:
message.tanksegmenter.tankssetto=резервуара(-ов) установлены на: message.tanksegmenter.tankssetto=резервуара(-ов) установлены на:
message.routerfocus.limit=Ограничение предметов установлено на:
#Achievements
achievement.alchemicalwizardry:firstPrick=Ваш первый укольчик!
achievement.alchemicalwizardry:firstPrick.desc=Первая капля жизни в алтаре...
achievement.alchemicalwizardry:weakOrb=Слабо мерцающий красный цвет...
achievement.alchemicalwizardry:weakOrb.desc=Этого шара будет достаточно...пока что...