diff --git a/.gitignore b/.gitignore index cd49c366dd..db39a3b6a0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ out *.iws *.iml .idea +*.env # gradle build diff --git a/changelog.md b/changelog.md index 189fd4cf96..9b55061deb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,23 @@ +# 7.5.8 + +* AI performance improvements +* Dropped babies in the inventory no longer end up in the backrooms +* Inverted marriage slider as this is more what people expect +* Fixed large players receiving damage on the ceiling +* Married adventurers no longer despawn +* Added a procreation cooldown (3 in-game days by default) +* Added attack-text cooldown +* Fixed trait influenced gender preferences +* Added gender override config flag for players + +# 7.5.7 + +* Fixed a crash + +# 7.5.6 + +* Added missing loot tables for some headstones + # 7.5.5 * Fixed server crash diff --git a/common/src/main/java/net/mca/Config.java b/common/src/main/java/net/mca/Config.java index de988f3313..ca03c650ba 100644 --- a/common/src/main/java/net/mca/Config.java +++ b/common/src/main/java/net/mca/Config.java @@ -51,6 +51,7 @@ public static Config getInstance() { public boolean enableVillagerMailingPlayers = true; public boolean allowBodyCustomizationInDestiny = true; public boolean allowTraitCustomizationInDestiny = true; + public boolean enableGenderCheckForPlayers = true; public float zombieBiteInfectionChance = 0.05f; public float infectionChanceDecreasePerLevel = 0.25f; @@ -58,9 +59,9 @@ public static Config getInstance() { //villager behavior public float twinBabyChance = 0.02f; - public float marriageHeartsRequirement = 100; - public float engagementHeartsRequirement = 50; - public float bouquetHeartsRequirement = 10; + public int marriageHeartsRequirement = 100; + public int engagementHeartsRequirement = 50; + public int bouquetHeartsRequirement = 10; public int babyItemGrowUpTime = 24000; public int villagerMaxAgeTime = 384000; public int villagerMaxHealth = 20; @@ -95,6 +96,7 @@ public static Config getInstance() { public float coloredHairChance = 0.02f; public int heartsRequiredToAutoSpawnGravestone = 10; public boolean useSmarterDoorAI = false; + public int procreationCooldown = 72000; //tracker public boolean trackVillagerPosition = true; diff --git a/common/src/main/java/net/mca/client/SpeechManager.java b/common/src/main/java/net/mca/client/SpeechManager.java index 4f7fcb6e59..463b29dcde 100644 --- a/common/src/main/java/net/mca/client/SpeechManager.java +++ b/common/src/main/java/net/mca/client/SpeechManager.java @@ -59,7 +59,7 @@ private void speak(String phrase, UUID sender) { float gene = villager.getGenetics().getGene(Genetics.VOICE_TONE); int tone = Math.min(9, (int)Math.floor(gene * 10.0f)); - Identifier sound = new Identifier("mca_voices", "%s/%s_%d".formatted(phrase, villager.getGenetics().getGender().binary().getStrName(), tone).toLowerCase(Locale.ROOT)); + Identifier sound = new Identifier("mca_voices", "%s/%s_%d".formatted(phrase, villager.getGenetics().getGender().binary().getDataName(), tone).toLowerCase(Locale.ROOT)); if (client.world != null && client.player != null) { Collection keys = client.getSoundManager().getKeys(); diff --git a/common/src/main/java/net/mca/client/render/TombstoneBlockEntityRenderer.java b/common/src/main/java/net/mca/client/render/TombstoneBlockEntityRenderer.java index c953ee1d58..31b8fd080b 100644 --- a/common/src/main/java/net/mca/client/render/TombstoneBlockEntityRenderer.java +++ b/common/src/main/java/net/mca/client/render/TombstoneBlockEntityRenderer.java @@ -73,7 +73,7 @@ public void render(Data entity, float tickDelta, MatrixStack matrices, VertexCon y += 5; - drawText(text, text.wrapLines(Text.translatable("block.mca.tombstone.footer." + entity.getGender().binary().getStrName()), maxLineWidth), y, matrices, vertexConsumers, light); + drawText(text, text.wrapLines(Text.translatable("block.mca.tombstone.footer." + entity.getGender().binary().getDataName()), maxLineWidth), y, matrices, vertexConsumers, light); matrices.pop(); } diff --git a/common/src/main/java/net/mca/client/render/layer/FaceLayer.java b/common/src/main/java/net/mca/client/render/layer/FaceLayer.java index 5efdec5bef..f82cc15860 100644 --- a/common/src/main/java/net/mca/client/render/layer/FaceLayer.java +++ b/common/src/main/java/net/mca/client/render/layer/FaceLayer.java @@ -1,5 +1,6 @@ package net.mca.client.render.layer; +import net.mca.MCA; import net.mca.client.model.CommonVillagerModel; import net.mca.entity.ai.Genetics; import net.mca.entity.ai.Traits; @@ -39,12 +40,9 @@ public Identifier getSkin(T villager) { int time = villager.age / 2 + (int) (CommonVillagerModel.getVillager(villager).getGenetics().getGene(Genetics.HEMOGLOBIN) * 65536); boolean blink = time % 50 == 1 || time % 57 == 1 || villager.isSleeping() || villager.isDead(); boolean hasHeterochromia = variant.equals("normal") && CommonVillagerModel.getVillager(villager).getTraits().hasTrait(Traits.Trait.HETEROCHROMIA); + String gender = CommonVillagerModel.getVillager(villager).getGenetics().getGender().getDataName(); + String blinkTexture = blink ? "_blink" : (hasHeterochromia ? "_hetero" : ""); - return cached(String.format("mca:skins/face/%s/%s/%d%s.png", - variant, - CommonVillagerModel.getVillager(villager).getGenetics().getGender().getStrName(), - index, - blink ? "_blink" : (hasHeterochromia ? "_hetero" : "") - ), Identifier::new); + return cached("skins/face/" + variant + "/" + gender + "/" + index + blinkTexture + ".png", MCA::locate); } } diff --git a/common/src/main/java/net/mca/client/render/layer/SkinLayer.java b/common/src/main/java/net/mca/client/render/layer/SkinLayer.java index 02aac6ad09..f19c98b578 100644 --- a/common/src/main/java/net/mca/client/render/layer/SkinLayer.java +++ b/common/src/main/java/net/mca/client/render/layer/SkinLayer.java @@ -20,7 +20,7 @@ public SkinLayer(FeatureRendererContext renderer, M model) { public Identifier getSkin(T villager) { Genetics genetics = getVillager(villager).getGenetics(); int skin = (int) Math.min(4, Math.max(0, genetics.getGene(Genetics.SKIN) * 5)); - return cached(String.format("%s:skins/skin/%s/%d.png", MCA.MOD_ID, genetics.getGender().getStrName(), skin), Identifier::new); + return cached("skins/skin/" + genetics.getGender().getDataName() + "/" + skin + ".png", MCA::locate); } @Override diff --git a/common/src/main/java/net/mca/entity/VillagerEntityMCA.java b/common/src/main/java/net/mca/entity/VillagerEntityMCA.java index ab048218e7..92e62ef0db 100644 --- a/common/src/main/java/net/mca/entity/VillagerEntityMCA.java +++ b/common/src/main/java/net/mca/entity/VillagerEntityMCA.java @@ -560,7 +560,9 @@ public final boolean damage(DamageSource source, float damageAmount) { // TODO: Verify the `isUnblockable` replacement for 1.19.4, ensure same behavior if (!Config.getInstance().canHurtBabies && !source.isIn(DamageTypeTags.BYPASSES_SHIELD) && getAgeState() == AgeState.BABY) { if (source.getAttacker() instanceof PlayerEntity) { - sendEventMessage(Text.translatable("villager.baby_hit")); + if (requestCooldown()) { + sendEventMessage(Text.translatable("villager.baby_hit")); + } } return super.damage(source, 0.0f); } @@ -578,10 +580,12 @@ public final boolean damage(DamageSource source, float damageAmount) { if (getWorld().getTime() - lastHit > 40) { lastHit = getWorld().getTime(); if (!isGuard() || getSmallBounty() == 0) { - if (getHealth() < getMaxHealth() / 2) { - sendChatMessage(player, "villager.badly_hurt"); - } else { - sendChatMessage(player, "villager.hurt"); + if (requestCooldown()) { + if (getHealth() < getMaxHealth() / 2) { + sendChatMessage(player, "villager.badly_hurt"); + } else { + sendChatMessage(player, "villager.hurt"); + } } } } @@ -659,6 +663,17 @@ && getProfession() != ProfessionsMCA.GUARD.get() return super.damage(source, damageAmount); } + long lastCooldown = 0L; + + private boolean requestCooldown() { + if (getWorld().getTime() - lastCooldown > 100) { + lastCooldown = getWorld().getTime(); + return true; + } else { + return false; + } + } + public boolean isGuard() { return getProfession() == ProfessionsMCA.GUARD.get() || getProfession() == ProfessionsMCA.ARCHER.get(); } @@ -1455,7 +1470,7 @@ public static DefaultAttributeContainer.Builder createVillagerAttributes() { private void tickDespawnDelay() { if (this.despawnDelay > 0 && !this.hasCustomer() && --this.despawnDelay == 0) { - if (getVillagerBrain().getMemories().values().stream().anyMatch(m -> random.nextInt(100) < m.getHearts())) { + if (getRelationships().getPartner().isPresent() || getVillagerBrain().getMemories().values().stream().anyMatch(m -> random.nextInt(Config.getInstance().marriageHeartsRequirement) < m.getHearts())) { setProfession(VillagerProfession.NONE); setDespawnDelay(0); } else { diff --git a/common/src/main/java/net/mca/entity/VillagerLike.java b/common/src/main/java/net/mca/entity/VillagerLike.java index 1706d4fc53..9b3e7a2e01 100644 --- a/common/src/main/java/net/mca/entity/VillagerLike.java +++ b/common/src/main/java/net/mca/entity/VillagerLike.java @@ -45,6 +45,7 @@ import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.UUID; public interface VillagerLike> extends CTrackedEntity, VillagerDataContainer, Infectable, Messenger { @@ -139,16 +140,26 @@ default boolean hasCustomSkin() { } } - default boolean canBeAttractedTo(VillagerLike other) { - if (getTraits().eitherHaveTrait(Traits.Trait.HOMOSEXUAL, other)) { - return getTraits().hasSameTrait(Traits.Trait.HOMOSEXUAL, other) && getGenetics().getGender() == other.getGenetics().getGender(); + /** + * @param villager the villager to check + * @return the set of "valid" genders + */ + default Set getAttractedGenderSet(VillagerLike villager) { + if (villager.getTraits().hasTrait(Traits.Trait.BISEXUAL)) { + return Set.of(Gender.MALE, Gender.FEMALE, Gender.NEUTRAL); + } else if (villager.getTraits().hasTrait(Traits.Trait.HOMOSEXUAL)) { + return Set.of(villager.getGenetics().getGender(), Gender.NEUTRAL); + } else { + return Set.of(villager.getGenetics().getGender().opposite(), Gender.NEUTRAL); } - return getTraits().hasSameTrait(Traits.Trait.BISEXUAL, other) - || getGenetics().getGender().isMutuallyAttracted(other.getGenetics().getGender()); + } + + default boolean canBeAttractedTo(VillagerLike other) { + return getAttractedGenderSet(this).contains(other.getGenetics().getGender()) && getAttractedGenderSet(other).contains(getGenetics().getGender()); } default boolean canBeAttractedTo(PlayerSaveData other) { - return canBeAttractedTo(toVillager(other)); + return !Config.getInstance().enableGenderCheckForPlayers || canBeAttractedTo(toVillager(other)); } default Hand getDominantHand() { diff --git a/common/src/main/java/net/mca/entity/ai/BreedableRelationship.java b/common/src/main/java/net/mca/entity/ai/BreedableRelationship.java index fecac73c5b..a3593b892b 100644 --- a/common/src/main/java/net/mca/entity/ai/BreedableRelationship.java +++ b/common/src/main/java/net/mca/entity/ai/BreedableRelationship.java @@ -28,10 +28,11 @@ public class BreedableRelationship extends Relationship { private static final CDataParameter IS_PROCREATING = CParameter.create("isProcreating", false); + private static final CDataParameter LAST_PROCREATION = CParameter.create("lastProcreation", 0); public static CDataManager.Builder createTrackedData(CDataManager.Builder builder) { return Relationship.createTrackedData(builder) - .addAll(IS_PROCREATING) + .addAll(IS_PROCREATING, LAST_PROCREATION) .add(Pregnancy::createTrackedData); } @@ -52,9 +53,16 @@ public boolean isProcreating() { return entity.getTrackedValue(IS_PROCREATING); } - public void startProcreating() { + public boolean mayProcreateAgain(long time) { + int intTime = (int) time; + int delta = intTime - entity.getTrackedValue(LAST_PROCREATION); + return delta < 0 || delta > Config.getInstance().procreationCooldown; + } + + public void startProcreating(long time) { procreateTick = 60; entity.setTrackedValue(IS_PROCREATING, true); + entity.setTrackedValue(LAST_PROCREATION, (int) time); } public void tick(int age) { @@ -105,18 +113,18 @@ private Optional handleDynamicGift(ItemStack stack) { if (stack.getItem() instanceof SwordItem sword) { //swords float satisfaction = sword.getAttackDamage(); - satisfaction = (float)(Math.pow(satisfaction, 1.25) * 2); - return Optional.of(new GiftType(stack.getItem(), (int)satisfaction, MCA.locate("swords"))); + satisfaction = (float) (Math.pow(satisfaction, 1.25) * 2); + return Optional.of(new GiftType(stack.getItem(), (int) satisfaction, MCA.locate("swords"))); } else if (stack.getItem() instanceof RangedWeaponItem ranged) { //ranged weapons float satisfaction = ranged.getRange(); - satisfaction = (float)(Math.pow(satisfaction, 1.25) * 2); - return Optional.of(new GiftType(stack.getItem(), (int)satisfaction, MCA.locate("archery"))); + satisfaction = (float) (Math.pow(satisfaction, 1.25) * 2); + return Optional.of(new GiftType(stack.getItem(), (int) satisfaction, MCA.locate("archery"))); } else if (stack.getItem() instanceof ToolItem tool) { //tools float satisfaction = tool.getMaterial().getMiningSpeedMultiplier(); - satisfaction = (float)(Math.pow(satisfaction, 1.25) * 2); - return Optional.of(new GiftType(stack.getItem(), (int)satisfaction, MCA.locate( + satisfaction = (float) (Math.pow(satisfaction, 1.25) * 2); + return Optional.of(new GiftType(stack.getItem(), (int) satisfaction, MCA.locate( stack.getItem() instanceof AxeItem ? "swords" : stack.getItem() instanceof HoeItem ? "hoes" : stack.getItem() instanceof ShovelItem ? "shovels" : @@ -124,13 +132,13 @@ private Optional handleDynamicGift(ItemStack stack) { ))); } else if (stack.getItem() instanceof ArmorItem armor) { //armor - int satisfaction = (int)(Math.pow(armor.getProtection(), 1.25) * 1.5 + armor.getMaterial().getToughness() * 5); + int satisfaction = (int) (Math.pow(armor.getProtection(), 1.25) * 1.5 + armor.getMaterial().getToughness() * 5); return Optional.of(new GiftType(stack.getItem(), satisfaction, MCA.locate("armor"))); } else if (stack.getItem().isFood()) { //food FoodComponent component = stack.getItem().getFoodComponent(); if (component != null) { - int satisfaction = (int)(component.getHunger() + component.getSaturationModifier() * 3); + int satisfaction = (int) (component.getHunger() + component.getSaturationModifier() * 3); return Optional.of(new GiftType(stack.getItem(), satisfaction, MCA.locate("food"))); } } @@ -150,7 +158,7 @@ private void acceptGift(ItemStack stack, GiftType gift, ServerPlayerEntity playe // desaturation int occurrences = getGiftSaturation().get(stack); - int penalty = (int)(occurrences * Config.getInstance().giftDesaturationFactor * Math.pow(Math.max(satisfaction, 0.0), Config.getInstance().giftDesaturationExponent)); + int penalty = (int) (occurrences * Config.getInstance().giftDesaturationFactor * Math.pow(Math.max(satisfaction, 0.0), Config.getInstance().giftDesaturationExponent)); if (penalty != 0) { analysis.add("desaturation", -penalty); } @@ -179,7 +187,7 @@ private void acceptGift(ItemStack stack, GiftType gift, ServerPlayerEntity playe } //modify mood and hearts - entity.getVillagerBrain().modifyMoodValue((int)(desaturatedSatisfaction * Config.getInstance().giftMoodEffect + Config.getInstance().baseGiftMoodEffect * MathHelper.sign(desaturatedSatisfaction))); + entity.getVillagerBrain().modifyMoodValue((int) (desaturatedSatisfaction * Config.getInstance().giftMoodEffect + Config.getInstance().baseGiftMoodEffect * MathHelper.sign(desaturatedSatisfaction))); CriterionMCA.HEARTS_CRITERION.trigger(player, memory.getHearts(), desaturatedSatisfaction, "gift"); memory.modHearts(desaturatedSatisfaction); } @@ -193,7 +201,7 @@ private boolean handleSpecialCaseGift(ServerPlayerEntity player, ItemStack stack Item item = stack.getItem(); if (item instanceof SpecialCaseGift) { - if (((SpecialCaseGift)item).handle(player, entity)) { + if (((SpecialCaseGift) item).handle(player, entity)) { stack.decrement(1); } return true; diff --git a/common/src/main/java/net/mca/entity/ai/GPT3.java b/common/src/main/java/net/mca/entity/ai/GPT3.java index 14fb6d35c0..46957eee09 100644 --- a/common/src/main/java/net/mca/entity/ai/GPT3.java +++ b/common/src/main/java/net/mca/entity/ai/GPT3.java @@ -36,7 +36,7 @@ public class GPT3 { private static final Map lastInteraction = new HashMap<>(); public static String translate(String phrase) { - return phrase.replaceAll("_", " ").toLowerCase(Locale.ROOT).replace("mca.", ""); + return phrase.replace("_", " ").toLowerCase(Locale.ROOT).replace("mca.", ""); } public record Answer(String answer, String error) { @@ -52,8 +52,8 @@ public static Answer request(String encodedURL) { // parse json JsonObject map = JsonParser.parseString(body).getAsJsonObject(); - String answer = map.has("answer") ? map.get("answer").getAsString().trim().replace("\n", "") : ""; - String error = map.has("error") ? map.get("error").getAsString().trim().replace("\n", "") : null; + String answer = map.has("answer") ? map.get("answer").getAsString().trim().replace("\n", " ") : ""; + String error = map.has("error") ? map.get("error").getAsString().trim().replace("\n", " ") : null; return new Answer(answer, error); } catch (Exception e) { @@ -76,9 +76,9 @@ public static Optional answer(ServerPlayerEntity player, VillagerEntityM lastInteraction.put(player.getUuid(), villager.getUuid()); // remember phrase - List pastDialogue = memory.computeIfAbsent(villager.getUuid(), (key) -> new LinkedList<>()); - int MEMORY = MIN_MEMORY + Math.min(5, Config.getInstance().villagerChatAIIntelligence) * (MAX_MEMORY - MIN_MEMORY) / 5; - while (pastDialogue.stream().mapToInt(v -> (v.length() / 4)).sum() > MEMORY) { + List pastDialogue = memory.computeIfAbsent(villager.getUuid(), key -> new LinkedList<>()); + int memory = MIN_MEMORY + Math.min(5, Config.getInstance().villagerChatAIIntelligence) * (MAX_MEMORY - MIN_MEMORY) / 5; + while (pastDialogue.stream().mapToInt(v -> (v.length() / 4)).sum() > memory) { pastDialogue.remove(0); } pastDialogue.add("$player: " + msg); diff --git a/common/src/main/java/net/mca/entity/ai/Pregnancy.java b/common/src/main/java/net/mca/entity/ai/Pregnancy.java index a60c4f24c8..f1e36d5aec 100644 --- a/common/src/main/java/net/mca/entity/ai/Pregnancy.java +++ b/common/src/main/java/net/mca/entity/ai/Pregnancy.java @@ -112,7 +112,7 @@ public VillagerEntityMCA createChild(Gender gender, VillagerEntityMCA partner) { // advancement child.getRelationships().getFamily(2, 0) - .filter(e -> e instanceof ServerPlayerEntity) + .filter(ServerPlayerEntity.class::isInstance) .map(ServerPlayerEntity.class::cast) .forEach(CriterionMCA.FAMILY::trigger); @@ -128,7 +128,7 @@ public VillagerEntityMCA createChild(Gender gender) { private Optional getFather() { return mother.getRelationships().getPartner() - .filter(father -> father instanceof VillagerEntityMCA) + .filter(VillagerEntityMCA.class::isInstance) .map(VillagerEntityMCA.class::cast); } @@ -140,8 +140,8 @@ public void procreate(Entity spouse) { int count = areTwins ? 2 : 1; // advancement - if (spouse instanceof ServerPlayerEntity) { - CriterionMCA.BABY_CRITERION.trigger((ServerPlayerEntity)spouse, count); + if (spouse instanceof ServerPlayerEntity player) { + CriterionMCA.BABY_CRITERION.trigger(player, count); } long seed = random.nextLong(); diff --git a/common/src/main/java/net/mca/entity/ai/brain/VillagerTasksMCA.java b/common/src/main/java/net/mca/entity/ai/brain/VillagerTasksMCA.java index 21d8c2f5c1..97afd1fca1 100644 --- a/common/src/main/java/net/mca/entity/ai/brain/VillagerTasksMCA.java +++ b/common/src/main/java/net/mca/entity/ai/brain/VillagerTasksMCA.java @@ -139,7 +139,7 @@ public static Brain initializeTasks(VillagerEntityMCA village return brain; } else if (age != AgeState.ADULT) { brain.setSchedule(Schedule.VILLAGER_BABY); - brain.setTaskList(Activity.PLAY, VillagerTasksMCA.getPlayPackage(0.5F)); + brain.setTaskList(Activity.PLAY, VillagerTasksMCA.getPlayPackage(1.0F)); brain.setTaskList(Activity.CORE, VillagerTasksMCA.getSelfDefencePackage()); } else if (villager.isGuard()) { brain.setSchedule(SchedulesMCA.getTypeSchedule(villager, SchedulesMCA.GUARD, SchedulesMCA.GUARD_NIGHT)); @@ -255,7 +255,7 @@ public static Brain initializeTasks(VillagerEntityMCA village Pair.of(0, ForgetCompletedPointOfInterestTask.create(profession.acquirableWorkstation(), MemoryModuleType.POTENTIAL_JOB_SITE)), Pair.of(2, WorkStationCompetitionTask.create()), Pair.of(3, new FollowCustomerTask(speedModifier)), - Pair.of(6, FindPointOfInterestTask.create(profession.acquirableWorkstation(), MemoryModuleType.JOB_SITE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty())), + Pair.of(6, LazyFindPointOfInterestTask.create(profession.acquirableWorkstation(), MemoryModuleType.JOB_SITE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty())), Pair.of(7, new WalkTowardJobSiteTask(speedModifier)), Pair.of(8, TakeJobSiteTask.create(speedModifier)), Pair.of(10, GoToWorkTask.create()), @@ -442,7 +442,7 @@ private static Activity getActivity(VillagerEntityMCA villager) { v.sendChatToAllAround("villager.cant_find_bed"); } return !forced; - }, (v) -> { + }, v -> { v.getResidency().seekHome(); })), //verify the bed, occupancies state and similar diff --git a/common/src/main/java/net/mca/entity/ai/brain/tasks/EnterBuildingTask.java b/common/src/main/java/net/mca/entity/ai/brain/tasks/EnterBuildingTask.java index 3efca46928..3874afdf17 100644 --- a/common/src/main/java/net/mca/entity/ai/brain/tasks/EnterBuildingTask.java +++ b/common/src/main/java/net/mca/entity/ai/brain/tasks/EnterBuildingTask.java @@ -1,6 +1,5 @@ package net.mca.entity.ai.brain.tasks; -import com.google.common.collect.ImmutableMap; import net.mca.entity.VillagerEntityMCA; import net.mca.server.world.data.Building; import net.minecraft.entity.ai.brain.MemoryModuleState; @@ -13,6 +12,7 @@ import net.minecraft.world.World; import java.util.Comparator; +import java.util.Map; import java.util.Optional; public class EnterBuildingTask extends MultiTickTask { @@ -20,7 +20,7 @@ public class EnterBuildingTask extends MultiTickTask { private final float speed; public EnterBuildingTask(String building, float speed) { - super(ImmutableMap.of(MemoryModuleType.ATTACK_TARGET, MemoryModuleState.VALUE_ABSENT, MemoryModuleType.WALK_TARGET, MemoryModuleState.VALUE_ABSENT, MemoryModuleType.LOOK_TARGET, MemoryModuleState.REGISTERED)); + super(Map.of(MemoryModuleType.ATTACK_TARGET, MemoryModuleState.VALUE_ABSENT, MemoryModuleType.WALK_TARGET, MemoryModuleState.VALUE_ABSENT, MemoryModuleType.LOOK_TARGET, MemoryModuleState.REGISTERED)); this.building = building; this.speed = speed; } diff --git a/common/src/main/java/net/mca/entity/ai/brain/tasks/ExtendedFindPointOfInterestTask.java b/common/src/main/java/net/mca/entity/ai/brain/tasks/ExtendedFindPointOfInterestTask.java index d173c1b8d3..d3ae8265b9 100644 --- a/common/src/main/java/net/mca/entity/ai/brain/tasks/ExtendedFindPointOfInterestTask.java +++ b/common/src/main/java/net/mca/entity/ai/brain/tasks/ExtendedFindPointOfInterestTask.java @@ -33,7 +33,7 @@ public class ExtendedFindPointOfInterestTask extends MultiTickTask { private static final int MAX_POSITIONS_PER_RUN = 5; - private static final int POSITION_EXPIRE_INTERVAL = 20; + private static final int POSITION_EXPIRE_INTERVAL = 200; public static final int POI_SORTING_RADIUS = 48; private final Consumer onFinish; @@ -103,12 +103,12 @@ protected void run(ServerWorld serverWorld, VillagerEntityMCA villager, long l) if (path != null && path.reachesTarget()) { BlockPos blockPos2 = path.getTarget(); pointOfInterestStorage.getType(blockPos2).ifPresent(pointOfInterestType -> { - pointOfInterestStorage.getPosition(this.poiType, (registryEntryx, otherPos) -> { + pointOfInterestStorage.getPosition(this.poiType, (typeRegistryEntry, otherPos) -> { return otherPos.equals(blockPos2); }, blockPos2, 1); villager.getBrain().remember(this.targetMemoryModuleType, GlobalPos.create(serverWorld.getRegistryKey(), blockPos2)); - this.entityStatus.ifPresent(byte_ -> serverWorld.sendEntityStatus(villager, byte_)); + this.entityStatus.ifPresent(statusByte -> serverWorld.sendEntityStatus(villager, statusByte)); this.foundPositionsToExpiry.clear(); DebugInfoSender.sendPointOfInterest(serverWorld, blockPos2); diff --git a/common/src/main/java/net/mca/entity/ai/brain/tasks/LazyFindPointOfInterestTask.java b/common/src/main/java/net/mca/entity/ai/brain/tasks/LazyFindPointOfInterestTask.java new file mode 100644 index 0000000000..e09958d0ae --- /dev/null +++ b/common/src/main/java/net/mca/entity/ai/brain/tasks/LazyFindPointOfInterestTask.java @@ -0,0 +1,134 @@ +package net.mca.entity.ai.brain.tasks; + +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.longs.Long2ObjectMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import net.minecraft.entity.ai.brain.MemoryModuleType; +import net.minecraft.entity.ai.brain.task.FindPointOfInterestTask; +import net.minecraft.entity.ai.brain.task.SingleTickTask; +import net.minecraft.entity.ai.brain.task.Task; +import net.minecraft.entity.ai.brain.task.TaskTriggerer; +import net.minecraft.entity.ai.pathing.Path; +import net.minecraft.entity.mob.PathAwareEntity; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.server.network.DebugInfoSender; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.GlobalPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.poi.PointOfInterestStorage; +import net.minecraft.world.poi.PointOfInterestType; +import org.apache.commons.lang3.mutable.MutableLong; + +import java.util.Optional; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * A lazy version of {@link FindPointOfInterestTask} with longer cooldowns + */ +public class LazyFindPointOfInterestTask extends FindPointOfInterestTask { + private static final int MIN_DELAY = 200; + + public static Task create(Predicate> poiPredicate, MemoryModuleType poiPosModule, MemoryModuleType potentialPoiPosModule, boolean onlyRunIfChild, Optional entityStatus) { + MutableLong cooldown = new MutableLong(0L); + Long2ObjectMap long2ObjectMap = new Long2ObjectOpenHashMap<>(); + SingleTickTask singleTickTask = TaskTriggerer.task(taskContext -> { + return taskContext.group(taskContext.queryMemoryAbsent(potentialPoiPosModule)).apply(taskContext, queryResult -> { + return (world, entity, time) -> { + if (onlyRunIfChild && entity.isBaby()) { + return false; + } else if (cooldown.getValue() == 0L) { + cooldown.setValue(world.getTime() + (long) world.random.nextInt(MIN_DELAY)); + return false; + } else if (world.getTime() < cooldown.getValue()) { + return false; + } else { + cooldown.setValue(time + MIN_DELAY + (long) world.getRandom().nextInt(MIN_DELAY)); + + PointOfInterestStorage pointOfInterestStorage = world.getPointOfInterestStorage(); + long2ObjectMap.long2ObjectEntrySet().removeIf(entry -> { + return !entry.getValue().isAttempting(time); + }); + + Predicate predicate2 = pos -> { + RetryMarker retryMarker = long2ObjectMap.get(pos.asLong()); + if (retryMarker == null) { + return true; + } else if (!retryMarker.shouldRetry(time)) { + return false; + } else { + retryMarker.setAttemptTime(time); + return true; + } + }; + + Set, BlockPos>> set = pointOfInterestStorage.getSortedTypesAndPositions(poiPredicate, predicate2, entity.getBlockPos(), 48, PointOfInterestStorage.OccupationStatus.HAS_SPACE).limit(5L).collect(Collectors.toSet()); + Path path = findPathToPoi(entity, set); + if (path != null && path.reachesTarget()) { + BlockPos blockPos = path.getTarget(); + pointOfInterestStorage.getType(blockPos).ifPresent(poiType -> { + pointOfInterestStorage.getPosition(poiPredicate, (registryEntry, blockPos2) -> { + return blockPos2.equals(blockPos); + }, blockPos, 1); + queryResult.remember(GlobalPos.create(world.getRegistryKey(), blockPos)); + entityStatus.ifPresent(status -> { + world.sendEntityStatus(entity, status); + }); + long2ObjectMap.clear(); + DebugInfoSender.sendPointOfInterest(world, blockPos); + }); + } else { + for (Pair, BlockPos> registryEntryBlockPosPair : set) { + long2ObjectMap.computeIfAbsent(registryEntryBlockPosPair.getSecond().asLong(), m -> { + return new RetryMarker(world.random, time); + }); + } + } + + return true; + } + }; + }); + }); + + return potentialPoiPosModule == poiPosModule ? singleTickTask : TaskTriggerer.task(context -> { + return context.group(context.queryMemoryAbsent(poiPosModule)).apply(context, poiPos -> { + return singleTickTask; + }); + }); + } + + private static class RetryMarker { + private static final int MIN_DELAY = 40; + private static final int ATTEMPT_DURATION = 400; + private final Random random; + private long previousAttemptAt; + private long nextScheduledAttemptAt; + private int currentDelay; + + RetryMarker(Random random, long time) { + this.random = random; + this.setAttemptTime(time); + } + + public void setAttemptTime(long time) { + this.previousAttemptAt = time; + int i = this.currentDelay + this.random.nextInt(MIN_DELAY) + MIN_DELAY; + this.currentDelay = Math.min(i, ATTEMPT_DURATION); + this.nextScheduledAttemptAt = time + (long) this.currentDelay; + } + + public boolean isAttempting(long time) { + return time - this.previousAttemptAt < ATTEMPT_DURATION; + } + + public boolean shouldRetry(long time) { + return time >= this.nextScheduledAttemptAt; + } + + public String toString() { + return "RetryMarker{, previousAttemptAt=" + this.previousAttemptAt + ", nextScheduledAttemptAt=" + this.nextScheduledAttemptAt + ", currentDelay=" + this.currentDelay + "}"; + } + } +} diff --git a/common/src/main/java/net/mca/entity/ai/brain/tasks/WanderOrTeleportToTargetTask.java b/common/src/main/java/net/mca/entity/ai/brain/tasks/WanderOrTeleportToTargetTask.java index fb0c59fcec..5a07b1988a 100644 --- a/common/src/main/java/net/mca/entity/ai/brain/tasks/WanderOrTeleportToTargetTask.java +++ b/common/src/main/java/net/mca/entity/ai/brain/tasks/WanderOrTeleportToTargetTask.java @@ -6,7 +6,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.ai.brain.MemoryModuleType; -import net.minecraft.entity.ai.brain.WalkTarget; import net.minecraft.entity.ai.brain.task.WanderAroundTask; import net.minecraft.entity.ai.pathing.LandPathNodeMaker; import net.minecraft.entity.ai.pathing.PathNodeType; @@ -17,35 +16,45 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; public class WanderOrTeleportToTargetTask extends WanderAroundTask { + // Pathfinding is one of the slowest components, let's slow it down a bit. + private static final int SLOWDOWN = 5; + private int cooldown = SLOWDOWN; public WanderOrTeleportToTargetTask() { + // nop } @Override protected boolean shouldRun(ServerWorld serverWorld, MobEntity mobEntity) { - return super.shouldRun(serverWorld, mobEntity); + if (cooldown < 0) { + cooldown = SLOWDOWN; + return super.shouldRun(serverWorld, mobEntity); + } else { + cooldown--; + return false; + } } @Override protected void keepRunning(ServerWorld world, MobEntity entity, long l) { if (Config.getInstance().allowVillagerTeleporting) { - WalkTarget walkTarget = entity.getBrain().getOptionalMemory(MemoryModuleType.WALK_TARGET).get(); - BlockPos targetPos = walkTarget.getLookTarget().getBlockPos(); + entity.getBrain().getOptionalMemory(MemoryModuleType.WALK_TARGET).ifPresent(walkTarget -> { + BlockPos targetPos = walkTarget.getLookTarget().getBlockPos(); - // If the target is more than x blocks away, teleport to it immediately. - if (!targetPos.isWithinDistance(entity.getPos(), Config.getInstance().villagerMinTeleportationDistance)) { - tryTeleport(world, entity, targetPos); - } + // If the target is more than x blocks away, teleport to it immediately. + if (!targetPos.isWithinDistance(entity.getPos(), Config.getInstance().villagerMinTeleportationDistance)) { + tryTeleport(world, entity, targetPos); + } + }); } super.keepRunning(world, entity, l); } private void tryTeleport(ServerWorld world, MobEntity entity, BlockPos targetPos) { - for(int i = 0; i < 10; ++i) { + for (int i = 0; i < 10; ++i) { int j = this.getRandomInt(entity, -3, 3); int k = this.getRandomInt(entity, -1, 1); int l = this.getRandomInt(entity, -3, 3); @@ -57,12 +66,12 @@ private void tryTeleport(ServerWorld world, MobEntity entity, BlockPos targetPos } private boolean tryTeleportTo(ServerWorld world, MobEntity entity, BlockPos targetPos, int x, int y, int z) { - if (Math.abs((double)x - targetPos.getX()) < 2.0D && Math.abs((double)z - targetPos.getZ()) < 2.0D) { + if (Math.abs((double) x - targetPos.getX()) < 2.0D && Math.abs((double) z - targetPos.getZ()) < 2.0D) { return false; } else if (!this.canTeleportTo(world, entity, new BlockPos(x, y, z))) { return false; } else { - entity.requestTeleport((double)x + 0.5D, y, (double)z + 0.5D); + entity.requestTeleport((double) x + 0.5D, y, (double) z + 0.5D); return true; } } @@ -85,10 +94,6 @@ private int getRandomInt(MobEntity entity, int min, int max) { return entity.getRandom().nextInt(max - min + 1) + min; } - private boolean isAreaSafe(ServerWorld world, Vec3d pos) { - return isAreaSafe(world, BlockPos.ofFloored(pos)); - } - private boolean isAreaSafe(ServerWorld world, BlockPos pos) { // The following conditions define whether it is logically // safe for the entity to teleport to the specified pos within world diff --git a/common/src/main/java/net/mca/entity/ai/relationship/AgeState.java b/common/src/main/java/net/mca/entity/ai/relationship/AgeState.java index 07950d7a3b..fb16c5c3c2 100644 --- a/common/src/main/java/net/mca/entity/ai/relationship/AgeState.java +++ b/common/src/main/java/net/mca/entity/ai/relationship/AgeState.java @@ -9,9 +9,9 @@ public enum AgeState implements VillagerDimensions { UNASSIGNED(1, 0.9F, 1, 1, 1.0f, 1.0f), - BABY (0.45F, 0.45F, 0, 1.5F, 0.0f, 1.6f), - TODDLER (0.6F, 0.6F, 0, 1.3F, 0.6f, 1.4f), - CHILD (0.7F, 0.7F, 0, 1.2F, 0.85f, 1.2f), + BABY (0.45F, 0.4F, 0, 1.5F, 0.0f, 1.6f), + TODDLER (0.6F, 0.55F, 0, 1.3F, 0.65f, 1.4f), + CHILD ( 0.7F, 0.65F, 0, 1.2F, 0.9f, 1.2f), TEEN (0.85F, 0.85F, 0.5F, 1, 1.05f, 1.0f), ADULT (1, 1, 1, 1, 1.0f, 1.0f); diff --git a/common/src/main/java/net/mca/entity/ai/relationship/Gender.java b/common/src/main/java/net/mca/entity/ai/relationship/Gender.java index b47ba246ef..fc6cbc5912 100644 --- a/common/src/main/java/net/mca/entity/ai/relationship/Gender.java +++ b/common/src/main/java/net/mca/entity/ai/relationship/Gender.java @@ -15,19 +15,21 @@ import java.util.stream.Stream; public enum Gender { - UNASSIGNED(0xFFFFFF), - MALE(0x01A6EA), - FEMALE(0xA649A4), - NEUTRAL(0xFFFFFF); + UNASSIGNED(0xFFFFFF, "unassigned"), + MALE(0x01A6EA, "male"), + FEMALE(0xA649A4, "female"), + NEUTRAL(0xFFFFFF, "neutral"); private static final Random RNG = Random.create(); private static final Gender[] VALUES = values(); private static final Map REGISTRY = Stream.of(VALUES).collect(Collectors.toMap(Gender::name, Function.identity())); private final int color; + private final String dataName; - Gender(int color) { + Gender(int color, String dataName) { this.color = color; + this.dataName = dataName; } public EntityType getVillagerType() { @@ -46,16 +48,8 @@ public int getId() { return ordinal(); } - public String getStrName() { - return name().toLowerCase(Locale.ENGLISH); - } - - public boolean isNonBinary() { - return this == NEUTRAL || this == UNASSIGNED; - } - - public Stream getTransients() { - return isNonBinary() ? Stream.of(MALE, FEMALE) : Stream.of(this); + public String getDataName() { + return dataName; } public Gender binary() { @@ -66,20 +60,6 @@ public Gender opposite() { return this == FEMALE ? MALE : FEMALE; } - /** - * Checks whether this gender is attracted to another. - */ - public boolean isAttractedTo(Gender other) { - return other == UNASSIGNED || this == NEUTRAL || other != this; - } - - /** - * Checks whether both genders are mutually attracted to each other. - */ - public boolean isMutuallyAttracted(Gender other) { - return isAttractedTo(other) && other.isAttractedTo(this); - } - public static Gender byId(int id) { if (id < 0 || id >= VALUES.length) { return UNASSIGNED; diff --git a/common/src/main/java/net/mca/entity/interaction/VillagerCommandHandler.java b/common/src/main/java/net/mca/entity/interaction/VillagerCommandHandler.java index aeed1b9c20..5b370baf67 100644 --- a/common/src/main/java/net/mca/entity/interaction/VillagerCommandHandler.java +++ b/common/src/main/java/net/mca/entity/interaction/VillagerCommandHandler.java @@ -9,10 +9,10 @@ import net.mca.entity.ai.Memories; import net.mca.entity.ai.MoveState; import net.mca.entity.ai.relationship.RelationshipState; -import net.mca.server.world.data.FamilyTree; -import net.mca.server.world.data.FamilyTreeNode; import net.mca.item.ItemsMCA; import net.mca.mixin.MixinVillagerEntityInvoker; +import net.mca.server.world.data.FamilyTree; +import net.mca.server.world.data.FamilyTreeNode; import net.mca.server.world.data.PlayerSaveData; import net.mca.util.WorldUtils; import net.minecraft.entity.Saddleable; @@ -87,7 +87,7 @@ public boolean handle(ServerPlayerEntity player, String command) { entity.stopRiding(); } else { entity.getWorld().getOtherEntities(player, player.getBoundingBox() - .expand(10), e -> e instanceof Saddleable && ((Saddleable)e).isSaddled()) + .expand(10), e -> e instanceof Saddleable && ((Saddleable) e).isSaddled()) .stream() .filter(horse -> !horse.hasPassengers()) .min(Comparator.comparingDouble(a -> a.squaredDistanceTo(entity))).ifPresentOrElse(horse -> { @@ -134,8 +134,10 @@ public boolean handle(ServerPlayerEntity player, String command) { case "procreate" -> { if (memory.getHearts() < 100) { entity.sendChatMessage(player, "interaction.procreate.fail.lowhearts"); + } else if (entity.getRelationships().mayProcreateAgain(player.getWorld().getTime())) { + entity.getRelationships().startProcreating(player.getWorld().getTime()); } else { - entity.getRelationships().startProcreating(); + entity.sendChatMessage(player, "interaction.procreate.fail.toosoon"); } return true; } @@ -236,7 +238,7 @@ public boolean handle(ServerPlayerEntity player, String command) { } //slightly randomly the search center - ServerWorld world = (ServerWorld)entity.getWorld(); + ServerWorld world = (ServerWorld) entity.getWorld(); String finalArg = arg; MCA.executorService.execute(() -> { Identifier identifier = new Identifier(finalArg); diff --git a/common/src/main/java/net/mca/item/BouquetItem.java b/common/src/main/java/net/mca/item/BouquetItem.java index c977b3f4c4..bfb4b2b5eb 100644 --- a/common/src/main/java/net/mca/item/BouquetItem.java +++ b/common/src/main/java/net/mca/item/BouquetItem.java @@ -12,7 +12,7 @@ public BouquetItem(Item.Settings properties) { } @Override - protected float getHeartsRequired() { + protected int getHeartsRequired() { return Config.getInstance().bouquetHeartsRequirement; } diff --git a/common/src/main/java/net/mca/item/EngagementRingItem.java b/common/src/main/java/net/mca/item/EngagementRingItem.java index 33c1f7017f..ac6c0f913d 100644 --- a/common/src/main/java/net/mca/item/EngagementRingItem.java +++ b/common/src/main/java/net/mca/item/EngagementRingItem.java @@ -12,7 +12,7 @@ public EngagementRingItem(Settings properties) { } @Override - protected float getHeartsRequired() { + protected int getHeartsRequired() { return Config.getInstance().engagementHeartsRequirement; } diff --git a/common/src/main/java/net/mca/item/RelationshipItem.java b/common/src/main/java/net/mca/item/RelationshipItem.java index da901481e3..07779b9fd6 100644 --- a/common/src/main/java/net/mca/item/RelationshipItem.java +++ b/common/src/main/java/net/mca/item/RelationshipItem.java @@ -11,7 +11,7 @@ public RelationshipItem(Settings properties) { super(properties); } - abstract float getHeartsRequired(); + abstract int getHeartsRequired(); @Override public boolean handle(ServerPlayerEntity player, VillagerEntityMCA villager) { diff --git a/common/src/main/java/net/mca/item/WeddingRingItem.java b/common/src/main/java/net/mca/item/WeddingRingItem.java index bc9decc13d..ab39a95284 100644 --- a/common/src/main/java/net/mca/item/WeddingRingItem.java +++ b/common/src/main/java/net/mca/item/WeddingRingItem.java @@ -12,7 +12,7 @@ public WeddingRingItem(Item.Settings properties) { } @Override - protected float getHeartsRequired() { + protected int getHeartsRequired() { return Config.getInstance().marriageHeartsRequirement; } diff --git a/common/src/main/java/net/mca/mixin/MixinPlayerEntity.java b/common/src/main/java/net/mca/mixin/MixinPlayerEntity.java index faab716da8..7a64374209 100644 --- a/common/src/main/java/net/mca/mixin/MixinPlayerEntity.java +++ b/common/src/main/java/net/mca/mixin/MixinPlayerEntity.java @@ -1,17 +1,13 @@ package net.mca.mixin; import net.mca.item.BabyItem; -import net.mca.server.world.data.VillageManager; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.server.world.ServerWorld; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerEntity.class) @@ -20,13 +16,6 @@ private MixinPlayerEntity() { super(null, null); } - @Inject(method = "onDeath(Lnet/minecraft/entity/damage/DamageSource;)V", at = @At("HEAD")) - private void onOnDeath(DamageSource cause, CallbackInfo info) { - if (!getWorld().isClient) { - VillageManager.get((ServerWorld) getWorld()).getBabies().push((PlayerEntity) (Object) this); - } - } - @Inject(method = "dropItem(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/ItemEntity;", at = @At("HEAD"), cancellable = true) diff --git a/common/src/main/java/net/mca/mixin/client/MixinPlayerEntityClient.java b/common/src/main/java/net/mca/mixin/client/MixinPlayerEntityClient.java index 83c3084e41..eb0e956471 100644 --- a/common/src/main/java/net/mca/mixin/client/MixinPlayerEntityClient.java +++ b/common/src/main/java/net/mca/mixin/client/MixinPlayerEntityClient.java @@ -23,17 +23,19 @@ protected MixinPlayerEntityClient(EntityType entityType, public void mca$getActiveEyeHeight(EntityPose pose, EntityDimensions dimensions, CallbackInfoReturnable cir) { if (Config.getInstance().adjustPlayerEyesToHeight) { MCAClient.getPlayerData(getUuid()).ifPresent(data -> { + float height; switch (pose) { case SWIMMING, FALL_FLYING, SPIN_ATTACK -> { - cir.setReturnValue(0.4f * data.getRawScaleFactor()); + height = 0.4f; } case CROUCHING -> { - cir.setReturnValue(1.27f * data.getRawScaleFactor()); + height = 1.27f; } default -> { - cir.setReturnValue(1.62f * data.getRawScaleFactor()); + height = 1.62f; } } + cir.setReturnValue(Math.min(this.getHeight() - 1.0f / 16.0f, height * data.getRawScaleFactor())); }); } } diff --git a/common/src/main/java/net/mca/server/world/data/BabyBunker.java b/common/src/main/java/net/mca/server/world/data/BabyBunker.java deleted file mode 100644 index 8b15176297..0000000000 --- a/common/src/main/java/net/mca/server/world/data/BabyBunker.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.mca.server.world.data; - -import net.mca.item.BabyItem; -import net.mca.util.NbtHelper; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - -public class BabyBunker { - // Maps a player UUID to the itemstack of their held ItemBaby. Filled when a player dies so the baby is never lost. - private final Map> limbo; - - private final VillageManager manager; - - BabyBunker(VillageManager manager) { - this.manager = manager; - limbo = new HashMap<>(); - } - - BabyBunker(VillageManager manager, NbtCompound nbt) { - this.manager = manager; - limbo = NbtHelper.toMap(nbt, UUID::fromString, element -> NbtHelper.toList(element, i -> ItemStack.fromNbt((NbtCompound)i))); - } - - public NbtCompound writeNbt() { - return NbtHelper.fromMap(new NbtCompound(), limbo, UUID::toString, stacks -> NbtHelper.fromList(stacks, stack -> stack.writeNbt(new NbtCompound()))); - } - - public void pop(PlayerEntity player) { - // When players respawn check to see if their baby was saved in limbo. Add it back to their inventory. - List baby = limbo.remove(player.getUuid()); - - if (baby != null) { - baby.forEach(bab -> { - if (!player.giveItemStack(bab)) { - player.dropStack(bab, 0); - } - }); - manager.markDirty(); - } - } - - public void push(PlayerEntity player) { - // If a player dies while holding a baby, remember it until they respawn. - List babies = player.getInventory().main.stream() - .filter(s -> s.getItem() instanceof BabyItem) - .collect(Collectors.toList()); - - if (!babies.isEmpty()) { - limbo.put(player.getUuid(), babies); - manager.markDirty(); - } - } -} diff --git a/common/src/main/java/net/mca/server/world/data/Village.java b/common/src/main/java/net/mca/server/world/data/Village.java index 12ca8c5aa5..c831863dfd 100644 --- a/common/src/main/java/net/mca/server/world/data/Village.java +++ b/common/src/main/java/net/mca/server/world/data/Village.java @@ -27,9 +27,9 @@ public class Village implements Iterable { private static final int MOVE_IN_COOLDOWN = 1200; - public final static int PLAYER_BORDER_MARGIN = 32; - public final static int BORDER_MARGIN = 48; - public final static int MERGE_MARGIN = 64; + public static final int PLAYER_BORDER_MARGIN = 32; + public static final int BORDER_MARGIN = 48; + public static final int MERGE_MARGIN = 64; private static final long BED_SYNC_TIME = 200; @Nullable @@ -259,7 +259,7 @@ public boolean isPositionValidBed(BlockPos pos) { public List getResidents(ServerWorld world) { return getResidentsUUIDs() .map(world::getEntity) - .filter(v -> v instanceof VillagerEntityMCA) + .filter(VillagerEntityMCA.class::isInstance) .map(VillagerEntityMCA.class::cast) .collect(Collectors.toList()); } @@ -286,7 +286,7 @@ public int getMaxPopulation() { } public boolean hasStoredResource() { - return storageBuffer.size() > 0; + return !storageBuffer.isEmpty(); } public boolean hasBuilding(String building) { diff --git a/common/src/main/java/net/mca/server/world/data/VillageManager.java b/common/src/main/java/net/mca/server/world/data/VillageManager.java index 91f1432a4c..16670a44b5 100644 --- a/common/src/main/java/net/mca/server/world/data/VillageManager.java +++ b/common/src/main/java/net/mca/server/world/data/VillageManager.java @@ -49,7 +49,6 @@ public class VillageManager extends PersistentState implements Iterable private final ServerWorld world; private final ReaperSpawner reapers; - private final BabyBunker babies; private int buildingCooldown = 21; @@ -60,7 +59,6 @@ public static VillageManager get(ServerWorld world) { VillageManager(ServerWorld world) { this.world = world; reapers = new ReaperSpawner(this); - babies = new BabyBunker(this); } VillageManager(ServerWorld world, NbtCompound nbt) { @@ -68,7 +66,6 @@ public static VillageManager get(ServerWorld world) { lastBuildingId = nbt.getInt("lastBuildingId"); lastVillageId = nbt.getInt("lastVillageId"); reapers = nbt.contains("reapers", NbtElement.COMPOUND_TYPE) ? new ReaperSpawner(this, nbt.getCompound("reapers")) : new ReaperSpawner(this); - babies = nbt.contains("babies", NbtElement.COMPOUND_TYPE) ? new BabyBunker(this, nbt.getCompound("babies")) : new BabyBunker(this); NbtList villageList = nbt.getList("villages", NbtElement.COMPOUND_TYPE); for (int i = 0; i < villageList.size(); i++) { @@ -86,10 +83,6 @@ public ReaperSpawner getReaperSpawner() { return reapers; } - public BabyBunker getBabies() { - return babies; - } - public Optional getOrEmpty(int id) { return Optional.ofNullable(villages.get(id)); } @@ -130,7 +123,6 @@ public NbtCompound writeNbt(NbtCompound nbt) { nbt.putInt("lastVillageId", lastVillageId); nbt.put("villages", NbtHelper.fromList(villages.values(), Village::save)); nbt.put("reapers", reapers.writeNbt()); - nbt.put("babies", babies.writeNbt()); return nbt; } diff --git a/common/src/main/java/net/mca/server/world/data/villageComponents/VillageMarriageManager.java b/common/src/main/java/net/mca/server/world/data/villageComponents/VillageMarriageManager.java index cd0b5fb024..8928c20838 100644 --- a/common/src/main/java/net/mca/server/world/data/villageComponents/VillageMarriageManager.java +++ b/common/src/main/java/net/mca/server/world/data/villageComponents/VillageMarriageManager.java @@ -33,7 +33,7 @@ public void marry(ServerWorld world) { .filter(v -> !v.getRelationships().isPromised()) .collect(Collectors.toList()); - if (availableVillagers.size() <= 1 || availableVillagers.size() < allVillagers.size() * village.getMarriageThreshold()) { + if (availableVillagers.size() <= 1 || availableVillagers.size() > allVillagers.size() * village.getMarriageThreshold()) { return; // The village is too small. } diff --git a/common/src/main/resources/assets/mca/lang/es_es.json b/common/src/main/resources/assets/mca/lang/es_es.json index 5f00061b7e..c220119c2f 100644 --- a/common/src/main/resources/assets/mca/lang/es_es.json +++ b/common/src/main/resources/assets/mca/lang/es_es.json @@ -463,13 +463,13 @@ "gui.whistle.noFamily": "No se pudo encontrar ningún miembro de la familia en la zona.", "gui.village.left": "Saliendo de %s", "gui.village.welcome": "Bienvenido(a) a %s!", - "gui.village.taxes": "¡%1$s ha pagado sus impuestos!", + "gui.village.taxes": "¡%s ha pagado sus impuestos!", "gui.village.taxes.no": "%s está feliz de no pagar impuestos.", - "gui.village.taxes.more": "%1$s está contento de vivir en riqueza gracias a los bajos impuestos y ha pagado un 25% adicional.", - "gui.village.taxes.happy": "%1$s está contento de tener unos impuestos tan justos.", - "gui.village.taxes.sad": "%1$s se entristeció, los impuestos son demasiado para ellos.", - "gui.village.taxes.angry": "%1$s se enfadó debido a los altos impuestos.", - "gui.village.taxes.riot": "%1$s se negó a pagar esos impuestos tan altos esta vez.", + "gui.village.taxes.more": "%s está contento de vivir en riqueza gracias a los bajos impuestos y ha pagado un 25% adicional.", + "gui.village.taxes.happy": "%s está contento de tener unos impuestos tan justos.", + "gui.village.taxes.sad": "%s se entristeció, los impuestos son demasiado para ellos.", + "gui.village.taxes.angry": "%s se enfadó debido a los altos impuestos.", + "gui.village.taxes.riot": "%s se negó a pagar esos impuestos tan altos esta vez.", "gui.village.rank.outlaw": "Bandido/a", "gui.village.rank.peasant": "Campesino/a", "gui.village.rank.merchant": "Comerciante", diff --git a/common/src/main/resources/assets/mca/lang/es_mx.json b/common/src/main/resources/assets/mca/lang/es_mx.json index e2e5addaa6..ed30316595 100644 --- a/common/src/main/resources/assets/mca/lang/es_mx.json +++ b/common/src/main/resources/assets/mca/lang/es_mx.json @@ -24,7 +24,7 @@ "item.mca.wedding_ring": "Anillo de boda", "item.mca.wedding_ring.tooltip": "Cásate con alguien si cumples los requisitos del corazón", "item.mca.wedding_ring_rg": "Anillo de Boda de oro rosado", - "item.mca.wedding_ring_rg.tooltip": "Cásate con alguien con estos si cumples con los corazones requeridos", + "item.mca.wedding_ring_rg.tooltip": "Cásate con alguien si cumples con los corazones requeridos", "item.mca.engagement_ring": "Anillo de compromiso", "item.mca.engagement_ring.tooltip": "Comprométete con alguien con suficientes corazones.", "item.mca.engagement_ring_rg": "Anillo de compromiso de oro rosado", @@ -338,8 +338,8 @@ "gui.skin_library.add": "Añadir", "gui.skin_library.add.tooltip": "Etiquetar el contenido ayuda al usuario a encontrar y filtrar activos específicos.", "gui.skin_library.close": "Cerrar", - "gui.skin_library.gender": "Género:", - "gui.skin_library.profession": "Profesiones", + "gui.skin_library.gender": "Género: %s", + "gui.skin_library.profession": "Profesiones: %s", "gui.skin_library.temperature": "Temperatura: %s", "gui.skin_library.chance_val": "Probabilidad: %1$s", "gui.skin_library.chance": "Azar", @@ -463,13 +463,13 @@ "gui.whistle.noFamily": "No se pudo encontrar ningún miembro de la familia en la zona.", "gui.village.left": "Saliendo de %s", "gui.village.welcome": "Bienvenido(a) a %s!", - "gui.village.taxes": "¡%1$s ha pagado sus impuestos!", + "gui.village.taxes": "¡%s ha pagado sus impuestos!", "gui.village.taxes.no": "%s está feliz de no pagar impuestos.", - "gui.village.taxes.more": "%1$s está contento de vivir en riqueza gracias a los bajos impuestos y ha pagado un 25% adicional.", - "gui.village.taxes.happy": "%1$s está contento de tener unos impuestos tan justos.", - "gui.village.taxes.sad": "%1$s se entristeció, los impuestos son demasiado para ellos.", - "gui.village.taxes.angry": "%1$s se enfadó debido a los altos impuestos.", - "gui.village.taxes.riot": "%1$s se negó a pagar esos impuestos tan altos esta vez.", + "gui.village.taxes.more": "%s está contento de vivir en riqueza gracias a los bajos impuestos y ha pagado un 25% adicional.", + "gui.village.taxes.happy": "%s está contento de tener unos impuestos tan justos.", + "gui.village.taxes.sad": "%s se entristeció, los impuestos son demasiado para ellos.", + "gui.village.taxes.angry": "%s se enfadó debido a los altos impuestos.", + "gui.village.taxes.riot": "%s se negó a pagar esos impuestos tan altos esta vez.", "gui.village.rank.outlaw": "Bandido/a", "gui.village.rank.peasant": "Campesino/a", "gui.village.rank.merchant": "Comerciante", diff --git a/common/src/main/resources/assets/mca/lang/fr_fr.json b/common/src/main/resources/assets/mca/lang/fr_fr.json index 8808d1b322..2415cf3a34 100644 --- a/common/src/main/resources/assets/mca/lang/fr_fr.json +++ b/common/src/main/resources/assets/mca/lang/fr_fr.json @@ -207,7 +207,7 @@ "personalityDescription.grumpy": "Difficile de lui parler", "personalityDescription.shy": "Timide", "personalityDescription.gloomy": "Toujours négatif", - "traits.title": "Traits:", + "traits.title": "Traits: ", "trait.lactose_intolerance": "Intolérant au lactose", "trait.coeliac_disease": "Intolérant au gluten", "trait.diabetes": "Diabète", @@ -306,14 +306,14 @@ "gui.skin_library.authenticating": "Authentification", "gui.skin_library.authenticating_browser": "Continuez l'authentification dans votre navigateur !", "gui.skin_library.delete_confirm": "Voulez-vous vraiment supprimer ce contenu ?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "Pourquoi voulez-vous signaler ce contenu ?", + "gui.skin_library.report_invalid": "Texture Invalide", + "gui.skin_library.report_invalid_tooltip": "Ce n'est pas des cheveux/vêtements purs et ceux-là ne fonctionnent pas correctement. Il devrait être étiqueté comme 'invalide'", + "gui.skin_library.report_default": "Contre les règles", + "gui.skin_library.report_default_tooltip": "Ce contenu va à l'encontre des règles spécifiées sur la page d'aide.", "gui.skin_library.search": "Chercher", "gui.skin_library.cancel": "Annuler", - "gui.skin_library.reported": "Reported!", + "gui.skin_library.reported": "Signalé !", "gui.skin_library.drop": "Déposez une image ici, entrez un chemin de fichier ou une URL pour commencer.", "gui.skin_library.locked": "Pour publier des skins, veuillez d'abord vous connecter.", "gui.skin_library.like_locked": "Connectez-vous pour voir le contenu aimé ou publié.", @@ -324,16 +324,16 @@ "gui.skin_library.subscribe": "Utiliser le serveur dans son ensemble !", "gui.skin_library.sort_likes": "Trier par likes.", "gui.skin_library.sort_newest": "Trier par date.", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.filter_invalid": "Cacher le contenu invalide", + "gui.skin_library.filter_hair": "Cacher les cheveux", + "gui.skin_library.filter_clothing": "Cacher les vêtements", + "gui.skin_library.filter_moderator": "Afficher uniquement les contenus bannis", "gui.skin_library.like": "Like", "gui.skin_library.edit": "Éditer", "gui.skin_library.delete": "Supprimer", "gui.skin_library.ban": "Ban", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.unban": "Débannir", + "gui.skin_library.report": "Signaler", "gui.skin_library.details": "Détails", "gui.skin_library.add": "Ajouter", "gui.skin_library.add.tooltip": "L'étiquetage du contenu aide l'utilisateur à trouver et à filtrer des actifs spécifiques.", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Village Enneigé", "gui.destiny.village_plains": "Village des Plaines", "gui.destiny.village_savanna": "Village de la Savanne", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Ancienne Cité", "destiny.story.reason/1": "Un jour, vous en avez assez et décidez d'un voyage pour explorer le monde.", "destiny.story.travelling/1": "You avez conquis des sommets enneigés et des marais fétides, évitant les Husks dans des déserts sans fin.", "destiny.story.somewhere/1": "Vous êtes bloqué sans nourriture et sans abri au milieu de nulle part.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "Vous vous frayez un chemin au travers une forte tempête de neige lorsque vous apercevez une faible lumière au loin. C'est un village, peut-être ont-ils une auberge où vous réchauffer?", "destiny.story.village_plains/1": "Au milieu d'une plaine, quelques villageois se sont contruit une colonie. Le climat est tempéré, les gens amicaux, peut-être ont-ils une place pour un nouveau colon?", "destiny.story.village_savanna/1": "Finalement, vous trouvez un village entre les arbres et herbes arides. Voyons s'ils sont amicaux!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "Mais un malheureux faux pas vous fait basculer dans une grotte profonde et sombre. Lorsque vous reprenez conscience, vous vous retrouvez entouré des ruines antiques d'une ville oubliée par le monde depuis des lustres.", "gui.blueprint.taxes": "Impôts", "gui.blueprint.birth": "Limite de naissance", "gui.blueprint.marriage": "Limite de mariage", @@ -463,13 +463,13 @@ "gui.whistle.noFamily": "Aucun membre de la famille n'a pu être trouvé dans la zone.", "gui.village.left": "Vous quittez %s", "gui.village.welcome": "Bienvenue à %s!", - "gui.village.taxes": "%1$s a payé ses impôts!", + "gui.village.taxes": "%s a payé ses impôts!", "gui.village.taxes.no": "%s est heureux de ne pas payer d'impôts.", "gui.village.taxes.more": "%s est heureux de vivre dans le luxe grâce aux faibles impôts et a payé 25% en supplément.", - "gui.village.taxes.happy": "%1$s est heureux d'avoir des impôts aussi justes.", - "gui.village.taxes.sad": "%1$s est triste, les impôts sont trop élevées pour eux.", - "gui.village.taxes.angry": "%1$s est en colère en raison des impôts élevés.", - "gui.village.taxes.riot": "%1$s a refusé de payer des impôts aussi élevés cette fois-ci.", + "gui.village.taxes.happy": "%s est heureux d'avoir des impôts aussi justes.", + "gui.village.taxes.sad": "%s est triste, les impôts sont trop élevées pour eux.", + "gui.village.taxes.angry": "%s est en colère en raison des impôts élevés.", + "gui.village.taxes.riot": "%s a refusé de payer des impôts aussi élevés cette fois-ci.", "gui.village.rank.outlaw": "Hors-la-loi", "gui.village.rank.peasant": "Paysan", "gui.village.rank.merchant": "Marchand", diff --git a/common/src/main/resources/assets/mca/lang/hu_hu.json b/common/src/main/resources/assets/mca/lang/hu_hu.json index 71f6d16468..9967604134 100644 --- a/common/src/main/resources/assets/mca/lang/hu_hu.json +++ b/common/src/main/resources/assets/mca/lang/hu_hu.json @@ -1,6 +1,6 @@ { "itemGroup.mca.mca_tab": "Minecraft Comes Alive", - "entity.minecraft.villager.mca.none": "Jobless", + "entity.minecraft.villager.mca.none": "Munkanélküli", "entity.minecraft.villager.mca.outlaw": "Törvényen kívüli", "entity.minecraft.villager.mca.jeweler": "Ékszerész", "entity.minecraft.villager.mca.pillager": "Rabló", @@ -9,288 +9,288 @@ "entity.minecraft.villager.mca.guard": "Őr", "entity.minecraft.villager.mca.warrior": "Harcos", "entity.minecraft.villager.mca.archer": "Íjász", - "entity.minecraft.villager.mca.adventurer": "Adventurer", - "entity.minecraft.villager.mca.mercenary": "Mercenary", - "entity.minecraft.villager.mca.cultist": "Cultist", + "entity.minecraft.villager.mca.adventurer": "Kalandor", + "entity.minecraft.villager.mca.mercenary": "Zsoldos", + "entity.minecraft.villager.mca.cultist": "Szektás", "entity.minecraft.villager.mca.child": "Gyermek", "entity.mca.grim_reaper": "Kaszás", - "entity.mca.male_villager": "Male Villager", - "entity.mca.female_villager": "Female Villager", - "entity.mca.male_zombie_villager": "Male Zombie Villager", - "entity.mca.female_zombie_villager": "Female Zombie Villager", - "entity.mca.ancient_cultist": "Ancient Cultist", - "item.mca.scythe": "Scythe", - "item.mca.scythe.tooltip": "Kill a villager and catch his soul, then right-click a tombstone to revive. But be careful, the fallen villager will rise as an undead.", + "entity.mca.male_villager": "Férfi Falusi", + "entity.mca.female_villager": "Nő Falusi", + "entity.mca.male_zombie_villager": "Férfi Zombifalusi", + "entity.mca.female_zombie_villager": "Nő Zombifalusi", + "entity.mca.ancient_cultist": "Ősi Szektás", + "item.mca.scythe": "Kasza", + "item.mca.scythe.tooltip": "Ölj meg egy falusit, s kapd el a lelkét, majd jobb-kattolj egy sirkőre a feltámasztáshoz. De légy óvatos, az elesett falusi élőhalottként fog feltámadni.", "item.mca.wedding_ring": "Jeggyűrű", - "item.mca.wedding_ring.tooltip": "Marry someone if you meet the heart requirements", - "item.mca.wedding_ring_rg": "Rose Gold Wedding Ring", - "item.mca.wedding_ring_rg.tooltip": "Marry someone if you meet the heart requirements", + "item.mca.wedding_ring.tooltip": "Házasodj össze valakivel, ha a szív-követelmény megfelelő", + "item.mca.wedding_ring_rg": "Rózsaarany jegygyűrű", + "item.mca.wedding_ring_rg.tooltip": "Házasodj össze valakivel, ha a szív-követelmény megfelelő", "item.mca.engagement_ring": "Eljegyzési gyűrű", - "item.mca.engagement_ring.tooltip": "Engage to someone with enough hearts", - "item.mca.engagement_ring_rg": "Rose Gold Engagement Ring", - "item.mca.engagement_ring_rg.tooltip": "Engage to someone with enough hearts", - "item.mca.matchmakers_ring": "Matchmaker's Ring", - "item.mca.needle_and_thread": "Needle and Thread", - "item.mca.needle_and_thread.tooltip": "Right-click to change your clothing.", - "item.mca.comb": "Comb", - "item.mca.comb.tooltip": "Right-click to change your hairstyle.", - "item.mca.bouquet": "Bouquet", - "item.mca.bouquet.tooltip": "A nice gift to start a relationship.", - "item.mca.baby_boy": "Baby Boy", - "item.mca.baby_boy.blanket": "Empty Blanket", - "item.mca.baby_boy.named": "Little %s (Male)", - "item.mca.baby_girl": "Baby Girl", - "item.mca.baby_girl.blanket": "Empty Blanket", - "item.mca.baby_girl.named": "Little %s (Female)", - "item.mca.sirben_baby_boy": "Baby Sirben Boy", - "item.mca.sirben_baby_boy.blanket": "Empty Blanket", - "item.mca.sirben_baby_boy.named": "Little %s (Sirben)", - "item.mca.sirben_baby_girl": "Baby Sirben Girl", - "item.mca.sirben_baby_girl.blanket": "Empty Blanket", - "item.mca.sirben_baby_girl.named": "Little %s (Sirben)", + "item.mca.engagement_ring.tooltip": "Jegyezz el valakit, akinek elegendő szíve van", + "item.mca.engagement_ring_rg": "Rózsaarany eljegyzési gyűrű", + "item.mca.engagement_ring_rg.tooltip": "Jegyezz el valakit, akinek elegendő szíve van", + "item.mca.matchmakers_ring": "Párkereső gyűrűje", + "item.mca.needle_and_thread": "Tű és cérna", + "item.mca.needle_and_thread.tooltip": "Jobb-katt, hogy megváltoztasd az öltözéked.", + "item.mca.comb": "Fésű", + "item.mca.comb.tooltip": "Jobb-klikk, hogy megváltoztasd a hajad.", + "item.mca.bouquet": "Csokor", + "item.mca.bouquet.tooltip": "Szép ajándék a barátság elkezdéséhez.", + "item.mca.baby_boy": "Névtelen kisfiú", + "item.mca.baby_boy.blanket": "Üres takaró", + "item.mca.baby_boy.named": "Kicsi %s (fiú)", + "item.mca.baby_girl": "Névtelen kisleány", + "item.mca.baby_girl.blanket": "Üres takaró", + "item.mca.baby_girl.named": "Kicsi %s (lány)", + "item.mca.sirben_baby_boy": "Különc kisfiú", + "item.mca.sirben_baby_boy.blanket": "Üres takaró", + "item.mca.sirben_baby_boy.named": "Kicsi %s (különc)", + "item.mca.sirben_baby_girl": "Különc kisleány", + "item.mca.sirben_baby_girl.blanket": "Üres takaró", + "item.mca.sirben_baby_girl.named": "Kicsi %s (különc)", "item.mca.baby.state.infected": "Fertőzött!", - "item.mca.baby.state.ready": "Ready to grow!", + "item.mca.baby.state.ready": "Felnövésre készen!", "item.mca.baby.age": "Kor: %s", "item.mca.baby.name": "Név: %s", - "item.mca.baby.mother": "Mother: %s", - "item.mca.baby.father": "Father: %s", + "item.mca.baby.mother": "Anya: %s", + "item.mca.baby.father": "Apa: %s", "item.mca.baby.owner.you": "Te", - "item.mca.baby.give_name": "Kattints a jobb egérgombbal az elnevezáshez", + "item.mca.baby.give_name": "Jobb-katt az elnevezéshez", "item.mca.baby.no_drop/1": "Nem dobhatod el a babát, te szörnyeteg", - "item.mca.baby.no_drop/2": "Szemmel tartalak, mister", - "item.mca.baby.no_drop/3": "Kérlek ne dobd el a babát!", - "item.mca.male_villager_spawn_egg": "Male Villager Spawn Egg", - "item.mca.female_villager_spawn_egg": "Female Villager Spawn Egg", - "item.mca.male_zombie_villager_spawn_egg": "Male Zombie Villager Spawn Egg", - "item.mca.female_zombie_villager_spawn_egg": "Female Zombie Villager Spawn Egg", - "item.mca.grim_reaper_spawn_egg": "Grim Reaper Spawn Egg", + "item.mca.baby.no_drop/2": "Szemmel tartom magát, uram", + "item.mca.baby.no_drop/3": "Kérlek, ne dobd el a babát!", + "item.mca.male_villager_spawn_egg": "Férfi falusi idézőtojás", + "item.mca.female_villager_spawn_egg": "Nő falusi idézőtojás", + "item.mca.male_zombie_villager_spawn_egg": "Férfi zombifalusi idézőtojás", + "item.mca.female_zombie_villager_spawn_egg": "Nő zombifalusi idézőtojás", + "item.mca.grim_reaper_spawn_egg": "Kaszás idézőtojás", "item.mca.divorce_papers": "Válási papírok", - "item.mca.divorce_papers.tooltip": "Give this to your spouse to end any (un)happy marriage", - "item.mca.rose_gold_ingot": "Rose Gold Ingot", - "item.mca.new_outfit": "New Outfit", - "item.mca.rose_gold_dust": "Rose Gold Dust", - "item.mca.villager_editor": "Villager Editor", - "item.mca.villager_editor.tooltip": "Modify a villager's attributes\n\nSneak whilst using to open a villager's inventory", - "item.mca.whistle": "Whistle", - "item.mca.whistle.tooltip": "Right-click call your family to your current location", - "item.mca.family_tree": "Family Tree", - "item.mca.family_tree.tooltip": "This extremely thick book contains the family tree of every villager ever alive.", - "item.mca.villager_tracker": "Villager Tracker", - "item.mca.villager_tracker.active": "Tracking %s.", - "item.mca.villager_tracker.distance": "~%s blocks away.", - "item.mca.villager_tracker.tooltip": "Powered by the same magic as ender eyes, this tracker can track most villagers. Assuming you remember their name.", - "item.mca.civil_registry": "Civil Registry", - "item.mca.civil_registry.tooltip": "Literate villagers keep track of all kind of events in this kind of books.", - "item.mca.staff_of_life": "Staff of Life", - "item.mca.staff_of_life.uses": "Uses left: %s", - "item.mca.staff_of_life.tooltip": "Right-click a tombstone to revive a dead villager", - "item.mca.book_death": "Death, and How to Cure It!", - "item.mca.book_romance": "Relationships and You", - "item.mca.book_family": "Managing Your Family Vol. XI", - "item.mca.book_rose_gold": "On Rose Gold", - "item.mca.book_infection": "Beware the Infection!", - "item.mca.book_blueprint": "Construction work", - "item.mca.book_supporters": "Book of Supporters", - "item.mca.book_cult_0": "The Sirbens", - "item.mca.book_cult_1": "The Sirbens II", - "item.mca.book_cult_2": "The Sirbens III", - "item.mca.book_cult_ancient": "The Ancient Sirbens", - "item.mca.letter": "Letter", - "item.mca.blueprint": "Blueprint", - "item.mca.blueprint.tooltip": "Right-click to manage the village you are currently in", - "item.mca.potion_of_feminity": "Potion of Feminity", - "item.mca.potion_of_feminity.tooltip": "Right-click to make yourself or a villager feminine.", - "item.mca.potion_of_masculinity": "Potion of Masculinity", - "item.mca.potion_of_masculinity.tooltip": "Right-click to make yourself or a villager masculine.", - "analysis.title": "Last interaction analysis:", - "analysis.base": "Base", - "analysis.desaturation": "Desaturation", - "analysis.luck": "Luck", - "analysis.heartsBonus": "Hearts bonus", - "analysis.fatigue": "Fatigue", - "analysis.total": "Total", - "analysis.profession": "Profession", - "analysis.age_group": "Age", - "analysis.gender": "Gender", - "analysis.has_item": "Has item", - "analysis.min_health": "Health", - "analysis.is_married": "Is married", - "analysis.has_home": "Has home", - "analysis.has_village": "Has village", - "analysis.min_infection_progress": "Infection", - "analysis.mood": "Mood", - "analysis.mood_group": "Mood group", - "analysis.personality": "Personality", - "analysis.min_pregnancy_progress": "Pregnancy progress", - "analysis.pregnancy_child_gender": "Child gender", - "analysis.current_chore": "Current chore", - "analysis.item": "Specific item", - "analysis.tag": "Specific item tag", - "analysis.hearts_min": "Hearts", - "analysis.hearts_max": "Hearts", - "analysis.hearts": "Hearts", - "analysis.advancement": "Advancement", - "analysis.memory": "Memory", - "analysis.trait": "Trait", - "analysis.constraints": "Constraints", - "tag.mca:town_center": "Bell", - "tag.mca:tombstones": "Tombstone", - "tag.minecraft:beds": "Bed", - "tag.minecraft:flower_pots": "Flower Pot", - "tag.mca:chests": "Chests", - "tag.mca:iron_doors": "Iron Door", - "tag.mca:iron_bars": "Iron Bars", - "tag.minecraft:cauldrons": "Cauldrons", - "block.mca.rose_gold_block": "Rose Gold Block", - "block.mca.jeweler_workbench": "Jeweler Workbench", - "block.mca.infernal_flame": "Infernal Flame", - "block.mca.upright_headstone": "Upright Headstone", - "block.mca.slanted_headstone": "Slanted Headstone", - "block.mca.cross_headstone": "Cross Headstone", - "block.mca.wall_headstone": "Wall Headstone", - "block.mca.gravelling_headstone": "Gravelling Headstone", - "block.mca.cobblestone_upright_headstone": "Cobblestone Upright Headstone", - "block.mca.cobblestone_slanted_headstone": "Cobblestone Slanted Headstone", - "block.mca.wooden_upright_headstone": "Wooden Upright Headstone", - "block.mca.wooden_slanted_headstone": "Wooden Slanted Headstone", - "block.mca.golden_upright_headstone": "Golden Upright Headstone", - "block.mca.golden_slanted_headstone": "Golden Slanted Headstone", - "block.mca.deepslate_upright_headstone": "Deepslate Upright Headstone", - "block.mca.deepslate_slanted_headstone": "Deepslate Slanted Headstone", + "item.mca.divorce_papers.tooltip": "Add ezt a házastársadnak, hogy véget vethess a boldog(talan) házasságnak", + "item.mca.rose_gold_ingot": "Rózsaarany rúd", + "item.mca.new_outfit": "Új ruci", + "item.mca.rose_gold_dust": "Rózsaarany-por", + "item.mca.villager_editor": "Falusi szerkesztő", + "item.mca.villager_editor.tooltip": "Módosítsd a falusi tulajdonságait\n\nLopakodva nyisd meg a falusi eszköztárát", + "item.mca.whistle": "Síp", + "item.mca.whistle.tooltip": "Jobb-klikk, hogy a jelenlegi helyedre hívd a családod", + "item.mca.family_tree": "Családfa", + "item.mca.family_tree.tooltip": "Ebben a rendkívül vastag könyvben minden élő falusi családfája megtalálható.", + "item.mca.villager_tracker": "Falusi nyomkövető", + "item.mca.villager_tracker.active": "%s követése.", + "item.mca.villager_tracker.distance": "~%s blokknyira messze.", + "item.mca.villager_tracker.tooltip": "Ugyanazzal a mágiával működik, mint az ender szeme, ez a nyomkövető képes a legtöbb falusi követésére. Feltéve persze, ha emlékszel a falusi nevére.", + "item.mca.civil_registry": "Anyakönyvezés", + "item.mca.civil_registry.tooltip": "Az írástudó falusiak minden fontos eseményt nyomon követnek és leírnak ebben a könyvben.", + "item.mca.staff_of_life": "Élet varázsbotja", + "item.mca.staff_of_life.uses": "Használat: %s", + "item.mca.staff_of_life.tooltip": "Jobb-katt a sírkőre, hogy felélessz egy halott falusit", + "item.mca.book_death": "Halál, és hogy orvosold!", + "item.mca.book_romance": "Kapcsolatok és Te", + "item.mca.book_family": "Családod kezelése XI. felvonás", + "item.mca.book_rose_gold": "Rózsaaranyon", + "item.mca.book_infection": "Óvakodj a fertőzéstől", + "item.mca.book_blueprint": "Építkezős munkálatok", + "item.mca.book_supporters": "Támogatók könyve", + "item.mca.book_cult_0": "A különcök", + "item.mca.book_cult_1": "A különcök II", + "item.mca.book_cult_2": "A külncök III", + "item.mca.book_cult_ancient": "Az ősi különcök", + "item.mca.letter": "Levél", + "item.mca.blueprint": "Tervrajz", + "item.mca.blueprint.tooltip": "Jobb-katt, hogy kezeld a falut, ahol éppen vagy", + "item.mca.potion_of_feminity": "Nőiesség bájitala", + "item.mca.potion_of_feminity.tooltip": "Jobb-klikk, hogy egy önmagadat vagy egy falusit nőiessé varázsolj.", + "item.mca.potion_of_masculinity": "Férfiasság bájitala", + "item.mca.potion_of_masculinity.tooltip": "Jobb-klikk, hogy egy önmagadat vagy egy falusit férfiassá varázsolj.", + "analysis.title": "Utolsó interakciós elemzés:", + "analysis.base": "Alap", + "analysis.desaturation": "Telítettség", + "analysis.luck": "Szerencse", + "analysis.heartsBonus": "Élet bónusz", + "analysis.fatigue": "Fáradtság", + "analysis.total": "Összes", + "analysis.profession": "Szakma", + "analysis.age_group": "Kor", + "analysis.gender": "Nem", + "analysis.has_item": "Tétele van-e", + "analysis.min_health": "Egészség", + "analysis.is_married": "Házas-e", + "analysis.has_home": "Otthona van-e", + "analysis.has_village": "Falva van-e", + "analysis.min_infection_progress": "Fertőzés", + "analysis.mood": "Hangulat", + "analysis.mood_group": "Hangulat csoport", + "analysis.personality": "Személyiség", + "analysis.min_pregnancy_progress": "Terhesség folyamata", + "analysis.pregnancy_child_gender": "Gyermek neme", + "analysis.current_chore": "Jelenlegi munka", + "analysis.item": "Konkrét tétel", + "analysis.tag": "Konrét tétel-címke", + "analysis.hearts_min": "Szív", + "analysis.hearts_max": "Szív", + "analysis.hearts": "Szív", + "analysis.advancement": "Előrehaladás", + "analysis.memory": "Memória", + "analysis.trait": "Jellem", + "analysis.constraints": "Korlátok", + "tag.mca:town_center": "Harang", + "tag.mca:tombstones": "Sírkő", + "tag.minecraft:beds": "Ágy", + "tag.minecraft:flower_pots": "Virágcserép", + "tag.mca:chests": "Láda", + "tag.mca:iron_doors": "Vasajtó", + "tag.mca:iron_bars": "Vasrács", + "tag.minecraft:cauldrons": "Üst", + "block.mca.rose_gold_block": "Rózsaarany blokk", + "block.mca.jeweler_workbench": "Ékszerész munkaasztal", + "block.mca.infernal_flame": "Pokol lángja", + "block.mca.upright_headstone": "Függőleges sírkő", + "block.mca.slanted_headstone": "Dőlt sírkő", + "block.mca.cross_headstone": "Kereszt sírkő", + "block.mca.wall_headstone": "Fali sírkő", + "block.mca.gravelling_headstone": "Kavicsos sírkő", + "block.mca.cobblestone_upright_headstone": "Zúzottköves függőleges sírkő", + "block.mca.cobblestone_slanted_headstone": "Zúzottköves dőlt sírkő", + "block.mca.wooden_upright_headstone": "Fa függőleges sírkő", + "block.mca.wooden_slanted_headstone": "Fa dőlt sírkő", + "block.mca.golden_upright_headstone": "Arany függőleges sírkő", + "block.mca.golden_slanted_headstone": "Arany dőlt sírkő", + "block.mca.deepslate_upright_headstone": "Mélypala függőleges sírkő", + "block.mca.deepslate_slanted_headstone": "Mélypala dőlt sírkő", "block.mca.tombstone.header": "Itt nyugszik", "block.mca.tombstone.footer.male": "Nyugodjék békében", "block.mca.tombstone.footer.female": "Nyugodjék békében", - "block.mca.tombstone.remains": "%2$s's %1$s", + "block.mca.tombstone.remains": "%2$s %1$s", "relation.spouse": "Házastárs", - "relation.daughter": "Daughter", - "relation.son": "Son", + "relation.daughter": "Lánya", + "relation.son": "Fia", "enum.agestate.baby": "Baba", - "enum.agestate.toddler": "Kisgyermek", + "enum.agestate.toddler": "Totyogós", "enum.agestate.child": "Gyermek", "enum.agestate.teen": "Fiatal", "enum.agestate.adult": "Felnőtt", - "personality.athletic": "Atletikus", + "personality.athletic": "Sportos", "personality.confident": "Magabiztos", "personality.strong": "Erős", "personality.friendly": "Barátságos", "personality.tough": "Szívós", "personality.curious": "Kíváncsi", "personality.peaceful": "Békés", - "personality.flirty": "Flirty", - "personality.witty": "Witty", + "personality.flirty": "Kacér", + "personality.witty": "Vicces", "personality.sensitive": "Érzékeny", - "personality.greedy": "Önző", + "personality.greedy": "Mohó", "personality.stubborn": "Makacs", "personality.odd": "Különös", "personality.sleepy": "Álmos", "personality.fragile": "Törékeny", "personality.weak": "Gyenge", - "personality.grumpy": "Grumpy", - "personality.shy": "Shy", - "personality.gloomy": "Gloomy", + "personality.grumpy": "Zsémbes", + "personality.shy": "Félénk", + "personality.gloomy": "Komor", "personalityDescription.athletic": "Gyorsabban fut", - "personalityDescription.confident": "Deals more damage", - "personalityDescription.strong": "Deals far more damage", - "personalityDescription.friendly": "Bonus hearts for interactions", - "personalityDescription.tough": "Extra defence", - "personalityDescription.curious": "Likes stories", - "personalityDescription.peaceful": "Will not attack if on full health", - "personalityDescription.flirty": "Bonus points for specific interactions", - "personalityDescription.witty": "Likes jokes", - "personalityDescription.sensitive": "Double heart penalty on failed interactions", - "personalityDescription.greedy": "Finds less on chores", - "personalityDescription.stubborn": "Harder to speak with", - "personalityDescription.odd": "Less success chance when entering personal space", - "personalityDescription.sleepy": "Slow. Always.", - "personalityDescription.fragile": "Less defence", - "personalityDescription.weak": "Deals less damage", - "personalityDescription.grumpy": "Hard to talk to", - "personalityDescription.shy": "Shy", - "personalityDescription.gloomy": "Always assuming the worst", - "traits.title": "Traits: ", - "trait.lactose_intolerance": "Lactose Intolerance", - "trait.coeliac_disease": "Coeliac Disease", - "trait.diabetes": "Diabetes", - "trait.sirben": "Sirben", - "trait.dwarfism": "Dwarfism", - "trait.albinism": "Albinism", - "trait.heterochromia": "Heterochromia", - "trait.color_blind": "Color Blind", - "trait.vegetarian": "Vegetarian", - "trait.bisexual": "Bisexual", - "trait.homosexual": "Homosexual", - "trait.left_handed": "Left Handed", - "trait.electrified": "Electrified", - "trait.rainbow": "Rainbow", - "traitDescription.lactose_intolerance": "Intolerant to lactose.", - "traitDescription.coeliac_disease": "Gets massive diarrhea on gluten.", - "traitDescription.diabetes": "Sugar bad.", - "traitDescription.sirben": "Was unfortunately born as a Sirben. Nothing one can do about this.", - "traitDescription.dwarfism": "Smaller than usual.", - "traitDescription.albinism": "Lacks pigmentation.", - "traitDescription.heterochromia": "Two different eye colors.", - "traitDescription.color_blind": "The world is black and white.", - "traitDescription.vegetarian": "Dislikes eating meat.", - "traitDescription.bisexual": "Can have attraction to any gender.", - "traitDescription.homosexual": "Can have attraction to the same gender.", - "traitDescription.left_handed": "Uses their left-hand as their dominant hand.", - "traitDescription.electrified": "Struck by lightning.", - "traitDescription.rainbow": "Colored using Jebs secret source.", - "sirben": "*random Sirben noises*", - "mood.depressed": "Depressed", + "personalityDescription.confident": "Több sebzést okoz", + "personalityDescription.strong": "Sokkal több sebzést okoz", + "personalityDescription.friendly": "További szívek a műveletekért", + "personalityDescription.tough": "Extra védelem", + "personalityDescription.curious": "Szereti a történeteket", + "personalityDescription.peaceful": "Ha teljes életereje van, nem támad", + "personalityDescription.flirty": "További pontok a meghatározott interakciókért", + "personalityDescription.witty": "Szereti a vicceket", + "personalityDescription.sensitive": "Dupla szívlevonás a sikertelen interakcióért", + "personalityDescription.greedy": "Ritkán csinál házimunkát", + "personalityDescription.stubborn": "Nehéz vele beszélni", + "personalityDescription.odd": "Kevesebb sikerélmény, ha belépsz a magánszférájába", + "personalityDescription.sleepy": "Lassú. Mindig.", + "personalityDescription.fragile": "Kevesebb védelem", + "personalityDescription.weak": "Kevesebb sebzést okot", + "personalityDescription.grumpy": "Nehéz csevegni vele", + "personalityDescription.shy": "Félénk", + "personalityDescription.gloomy": "Mindig a legrosszabbat feltételezi", + "traits.title": "Tulajdonságok: ", + "trait.lactose_intolerance": "Laktózérzékeny", + "trait.coeliac_disease": "Lisztérzékeny", + "trait.diabetes": "Cukorbeteg", + "trait.sirben": "Különc", + "trait.dwarfism": "Törpeség", + "trait.albinism": "Albinizmus", + "trait.heterochromia": "Heterokrómia", + "trait.color_blind": "Színvak", + "trait.vegetarian": "Vegetáriánus", + "trait.bisexual": "Biszexuális", + "trait.homosexual": "Homoszexuális", + "trait.left_handed": "Balkezes", + "trait.electrified": "Elektromosított", + "trait.rainbow": "Szivárvány", + "traitDescription.lactose_intolerance": "Nem fogyaszthat tejterméket.", + "traitDescription.coeliac_disease": "Súlyos hasmenés a glutén fogysztása miatt.", + "traitDescription.diabetes": "A cukor rossz.", + "traitDescription.sirben": "Sajnos Különcnek született. Semmit sem lehet tenni ezügyben.", + "traitDescription.dwarfism": "Alacsonyabb, mint a többiek.", + "traitDescription.albinism": "Hiányos vagy csökkentett melanin pigment termelődés.", + "traitDescription.heterochromia": "Két különböző szemszín.", + "traitDescription.color_blind": "A világot csak fekete-fehérben látja.", + "traitDescription.vegetarian": "Nem szeret húst enni.", + "traitDescription.bisexual": "Bármelyik nemhez vonzódhat.", + "traitDescription.homosexual": "Azonos neműekhez vonzódik.", + "traitDescription.left_handed": "A bal kezét használja, mint domináns kéz.", + "traitDescription.electrified": "Belecsapott egy villám.", + "traitDescription.rainbow": "Jeb titkos forrásának felhasználásával lett színezve.", + "sirben": "*véletlenszerű Különc zajok*", + "mood.depressed": "Lehangolt", "mood.sad": "Szomorú", "mood.unhappy": "Boldogtalan", "mood.passive": "Passzív", - "mood.fine": "Fine", - "mood.happy": "Happy", - "mood.overjoyed": "Overjoyed", - "mood.bored_to_tears": "Bored to tears", - "mood.bored": "Bored", - "mood.uninterested": "Uninterested", - "mood.silly": "Silly", - "mood.giggly": "Giggly", - "mood.entertained": "Entertained", - "mood.infuriated": "Infuriated", - "mood.angry": "Angry", - "mood.annoyed": "Annoyed", - "mood.interested": "Interested", - "mood.talkative": "Talkative", - "mood.pleased": "Pleased", - "buildingType.building": "Building", - "buildingType.house": "House", - "buildingType.bakery": "Bakery", - "buildingType.armorer": "Armorer", - "buildingType.butcher": "Butcher", - "buildingType.cartographer": "Cartographer", - "buildingType.fishermans_mut": "Fisherman's Hut", - "buildingType.fletcher": "Fletcher", - "buildingType.leatherworker": "Leatherworker", - "buildingType.bookkeeper": "Bookkeeper", - "buildingType.mason": "Stone Mason", - "buildingType.weaving_mill": "Weaving Mill", - "buildingType.toolsmith": "Toolsmith", - "buildingType.weaponsmith": "Weaponsmith", - "buildingType.blocked": "Restricted", - "buildingType.big_house": "Big House", - "buildingType.big_house.description": "Families love to live in the same house, but that requires a few extra beds.", + "mood.fine": "Jól van", + "mood.happy": "Boldog", + "mood.overjoyed": "Elragadtatott", + "mood.bored_to_tears": "Rémesen unatkozik", + "mood.bored": "Unott", + "mood.uninterested": "Közönyös", + "mood.silly": "Bolondos", + "mood.giggly": "Kuncogós", + "mood.entertained": "Szórakozott", + "mood.infuriated": "Feldühödött", + "mood.angry": "Mérges", + "mood.annoyed": "Bosszús", + "mood.interested": "Érdeklődő", + "mood.talkative": "Beszédes", + "mood.pleased": "Elégedett", + "buildingType.building": "Építmény", + "buildingType.house": "Ház", + "buildingType.bakery": "Pékség", + "buildingType.armorer": "Páncélkészítő", + "buildingType.butcher": "Hentes", + "buildingType.cartographer": "Térképész", + "buildingType.fishermans_mut": "Halász kunyhója", + "buildingType.fletcher": "Nyílkészítő", + "buildingType.leatherworker": "Bőrműves", + "buildingType.bookkeeper": "Könyvelő", + "buildingType.mason": "Kőfaragó", + "buildingType.weaving_mill": "Szövőüzem", + "buildingType.toolsmith": "Eszközkovács", + "buildingType.weaponsmith": "Fegyverkovács", + "buildingType.blocked": "Korlátozott", + "buildingType.big_house": "Nagy ház", + "buildingType.big_house.description": "A családok imádnak egy házban lakni, viszont több árgya van szükség.", "buildingType.blacksmith": "Kovács", - "buildingType.blacksmith.description": "A place to produce the highest quality equipment for the guards and archers.", + "buildingType.blacksmith.description": "Egy hely, ahol a legmagasabb minőségű felszereléseket gyártják az őőrők és íjászok számára.", "buildingType.storage": "Tároló", - "buildingType.storage.description": "A place to store taxes.", - "buildingType.graveyard": "Graveyard", - "buildingType.graveyard.description": "One or more tombstones. The souls of fallen villagers need an empty tombstone to be able to find rest.", - "buildingType.town_center": "Town Center", - "buildingType.music_store": "Music Store", - "buildingType.music_store.description": "Work in Progress", + "buildingType.storage.description": "Hely az adók tárolására.", + "buildingType.graveyard": "Temető", + "buildingType.graveyard.description": "Egy vagy több sírkő. Az elesett falusiak lelkének szüksége van egy üres sírkőre, hogy nyugalomra lelhessen.", + "buildingType.town_center": "Városközpont", + "buildingType.music_store": "Zenebolt", + "buildingType.music_store.description": "Folyamatban van", "buildingType.library": "Könyvtár", - "buildingType.library.description": "A quiet place for librarians, clerics, and the cartographer. By improving the village logistics the taxes are increased by 50%!", + "buildingType.library.description": "Egy csendes hely a könyvtárosoknak, papoknak és térképészeknek. A fali logisztikájának fejlesztésével az adók 50%-kal emelkednek.", "buildingType.inn": "Fogadó", - "buildingType.inn.description": "Sad villagers drink away their sorrows here and the inn also attracts all kinds of travelers.", + "buildingType.inn.description": "A szomorú falusiak itt isszák el bánatukat, továbbá a fogadó sok utazót is vonzz.", "buildingType.prison": "Börtön", - "buildingType.prison.description": "A place to lock thieves, traitors, and similar into.", - "buildingType.armory": "Armory", - "buildingType.armory.description": "Upgrades the guards default armor.", - "buildingType.infirmary": "Infirmary", + "buildingType.prison.description": "Egy hely, ahova a tolvajokat, árulókat, és más hasonló arcokat lehet bezárni.", + "buildingType.armory": "Fegyvertár", + "buildingType.armory.description": "Az őrök alap páncélját fejleszti.", + "buildingType.infirmary": "Gyengélkedő", "buildingType.infirmary.description": "Reduces the chance of infection by 50%! Sick villagers tend to gather here.", "task.reputation": "Reach %1$s total hearts", "task.population": "Reach a population of %1$s", diff --git a/common/src/main/resources/assets/mca/lang/ko_kr.json b/common/src/main/resources/assets/mca/lang/ko_kr.json index 8f8ae4f1cf..05cf8991fb 100644 --- a/common/src/main/resources/assets/mca/lang/ko_kr.json +++ b/common/src/main/resources/assets/mca/lang/ko_kr.json @@ -75,12 +75,12 @@ "item.mca.whistle.tooltip": "우클릭하여 당신의 현재 위치로 가족을 부를 수 있습니다.", "item.mca.family_tree": "가계도", "item.mca.family_tree.tooltip": "이 굉장히 두꺼운 책에는 살아있는 모든 주민들의 가계도가 담겨 있습니다.", - "item.mca.villager_tracker": "Villager Tracker", - "item.mca.villager_tracker.active": "Tracking %s.", - "item.mca.villager_tracker.distance": "~%s blocks away.", - "item.mca.villager_tracker.tooltip": "Powered by the same magic as ender eyes, this tracker can track most villagers. Assuming you remember their name.", - "item.mca.civil_registry": "Civil Registry", - "item.mca.civil_registry.tooltip": "Literate villagers keep track of all kind of events in this kind of books.", + "item.mca.villager_tracker": "주민 추적기", + "item.mca.villager_tracker.active": "%s 을(를) 추적하는 중.", + "item.mca.villager_tracker.distance": "~%s 블록 떨어진 곳에 있습니다.", + "item.mca.villager_tracker.tooltip": "엔더의 눈과 같은 마법으로 작동하는 이 추적기는 대부분의 주민을 추적할 수 있습니다. 다만 찾고 싶어하는 주민의 이름을 기억하고 계셔야 합니다.", + "item.mca.civil_registry": "마을의 역사", + "item.mca.civil_registry.tooltip": "몇몇 박식한 주민들은 이러한 책에 마을에서 일어난 모든 사건을 기록합니다.", "item.mca.staff_of_life": "생명의 지팡이", "item.mca.staff_of_life.uses": "남은 사용 횟수: %s", "item.mca.staff_of_life.tooltip": "묘비를 우클릭하여 죽은 주민을 부활시킵니다.", @@ -300,78 +300,78 @@ "task.advancement_mca:adventure/kill_grim_reaper": "사신을 처치하세요!", "gui.loading": "불러오는 중...", "gui.skin_library.load_image": "이미지 불러오기", - "gui.skin_library.list_fetch_failed": "Failed to fetch list", - "gui.skin_library.is_auth_failed": "Failed to check authentication", - "gui.skin_library.not_64": "Image is not 64 by 64 pixel.", - "gui.skin_library.authenticating": "Authenticating", - "gui.skin_library.authenticating_browser": "Complete authentication in your browser!", + "gui.skin_library.list_fetch_failed": "목록을 불러오지 못했습니다", + "gui.skin_library.is_auth_failed": "인증에 실패하였습니다", + "gui.skin_library.not_64": "64 x 64 픽셀 이미지가 아닙니다.", + "gui.skin_library.authenticating": "인증 중", + "gui.skin_library.authenticating_browser": "브라우저에서 인증을 완료하십시오!", "gui.skin_library.delete_confirm": "정말로 이 컨텐츠를 삭제하길 원하십니까?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "이 콘텐츠를 신고하시려는 이유가 무엇인가요?", + "gui.skin_library.report_invalid": "올바르지 않은 텍스처", + "gui.skin_library.report_invalid_tooltip": "이것은 올바른 헤어스타일/옷이 아니므로 제대로 작동하지 않습니다. '올바르지 않음' 으로 표시될 것 입니다.", + "gui.skin_library.report_default": "규칙 위반", + "gui.skin_library.report_default_tooltip": "이 콘텐츠는 도움말 페이지에 명시된 규칙에 위배됩니다.", "gui.skin_library.search": "검색", "gui.skin_library.cancel": "취소", - "gui.skin_library.reported": "Reported!", - "gui.skin_library.drop": "Drop an image here, enter a file path or URL to start.", - "gui.skin_library.locked": "To publish skins, please log in first.", - "gui.skin_library.like_locked": "Please log in to see liked or submitted content.", - "gui.skin_library.choose_name": "Name your asset!", + "gui.skin_library.reported": "신고됨!", + "gui.skin_library.drop": "이미지를 여기로 드래그하시거나, 파일 경로나 URL을 입력하십시오.", + "gui.skin_library.locked": "스킨을 게시하려면 먼저 로그인하세요.", + "gui.skin_library.like_locked": "좋아요를 누르거나 게시된 콘텐츠를 보기위해 로그인하십시오.", + "gui.skin_library.choose_name": "이 에셋에 이름을 지어주십시오!", "gui.skin_library.already_uploading": "이미 업로드 중이니 조금만 기다려주세요.", - "gui.skin_library.upload_duplicate": "That content already exists.", - "gui.skin_library.upload_failed": "Upload failed. Woops.", - "gui.skin_library.subscribe": "Use server wide!", - "gui.skin_library.sort_likes": "Sort by likes", - "gui.skin_library.sort_newest": "Sort by date", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.upload_duplicate": "그 콘텐츠는 이미 존재합니다.", + "gui.skin_library.upload_failed": "이런! 업로드에 실패했습니다.", + "gui.skin_library.subscribe": "서버 전체에서 사용해보세요!", + "gui.skin_library.sort_likes": "좋아요순으로 정렬", + "gui.skin_library.sort_newest": "일자순으로 정렬", + "gui.skin_library.filter_invalid": "올바르지 않은 콘텐츠 숨기기", + "gui.skin_library.filter_hair": "헤어 숨기기", + "gui.skin_library.filter_clothing": "옷 숨기기", + "gui.skin_library.filter_moderator": "금지된 콘텐츠만 표시", "gui.skin_library.like": "좋아요", - "gui.skin_library.edit": "Edit", + "gui.skin_library.edit": "수정", "gui.skin_library.delete": "삭제", - "gui.skin_library.ban": "Ban", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", - "gui.skin_library.details": "Details", + "gui.skin_library.ban": "차단", + "gui.skin_library.unban": "차단 해제", + "gui.skin_library.report": "신고하기", + "gui.skin_library.details": "세부 사항", "gui.skin_library.add": "추가", - "gui.skin_library.add.tooltip": "Tagging content helps user find and filter for specific assets.", + "gui.skin_library.add.tooltip": "콘텐츠에 태그를 지정하면 사용자가 특정 에셋을 찾고 필터링하는 데 도움이 됩니다.", "gui.skin_library.close": "닫기", - "gui.skin_library.gender": "Gender: %s", - "gui.skin_library.profession": "Profession: %s", - "gui.skin_library.temperature": "Temperature: %s", - "gui.skin_library.chance_val": "Chance: %s", - "gui.skin_library.chance": "Chance", + "gui.skin_library.gender": "성별: %s", + "gui.skin_library.profession": "직업: %s", + "gui.skin_library.temperature": "온도: %s", + "gui.skin_library.chance_val": "확률: %s", + "gui.skin_library.chance": "확률", "gui.skin_library.name": "이름", - "gui.skin_library.publish": "Publish", - "gui.skin_library.undo": "Undo", - "gui.skin_library.less_contrast": "Decrease Contrast", - "gui.skin_library.more_contrast": "Increase Contrast", - "gui.skin_library.less_brightness": "Decrease Brightness", - "gui.skin_library.more_brightness": "Increase brightness", - "gui.skin_library.remove_saturation": "Remove Saturation", - "gui.skin_library.hair_color": "Preview color", - "gui.skin_library.probably_not_valids": "Skin could be invalid!", - "gui.skin_library.read_the_help": "This skin appears to be invalid!", - "gui.skin_library.read_the_help_hair": "This hair might be too dark or not grayscale!", - "gui.skin_library.meta.chance": "Chance", - "gui.skin_library.meta.chance.tooltip": "Probability that this asset is used by villagers.", - "gui.skin_library.meta.by": "By %s", - "gui.skin_library.meta.likes": "%s Likes", + "gui.skin_library.publish": "게시", + "gui.skin_library.undo": "실행 취소", + "gui.skin_library.less_contrast": "대비 감소", + "gui.skin_library.more_contrast": "대비 증가", + "gui.skin_library.less_brightness": "밝기 줄이기", + "gui.skin_library.more_brightness": "밝기 높이기", + "gui.skin_library.remove_saturation": "채도 없애기", + "gui.skin_library.hair_color": "색상 미리 보기", + "gui.skin_library.probably_not_valids": "스킨이 올바르지 않을 수도 있습니다!", + "gui.skin_library.read_the_help": "이 스킨이 올바르지 않은 것 같습니다!", + "gui.skin_library.read_the_help_hair": "이 헤어스타일은 너무 어둡거나 회색조가 아닐 수도 있습니다!", + "gui.skin_library.meta.chance": "확률", + "gui.skin_library.meta.chance.tooltip": "이 에셋이 마을 주민을 위해 사용될 수도 있습니다.", + "gui.skin_library.meta.by": "제작: %s", + "gui.skin_library.meta.likes": "%s 좋아요", "gui.skin_library.prepare": "What asset type do you want to create?", "gui.skin_library.prepare.hair": "헤어스타일 만들기", "gui.skin_library.prepare.clothing": "의상 만들기", - "gui.skin_library.fillToolThreshold": "Fill threshold", - "gui.skin_library.fillToolThreshold.tooltip": "Pressing F fill delete similar, adjacent pixels up to the given threshold.", - "gui.skin_library.tool_help": "Controls:\nLeft mouse to paint\nRight mouse to delete\nMiddle mouse to pick color\nHold space or mouse 3 to pan\nMousewheel to zoom\nF to clear similar pixels\nClick to open help", - "gui.skin_library.help": "Click to open help. MCA Skins need a bit of preprocessing in order to look good.", + "gui.skin_library.fillToolThreshold": "임계값 채우기", + "gui.skin_library.fillToolThreshold.tooltip": "F 키를 눌러 지정된 임계값까지 유사한 인접 픽셀을 지웁니다.", + "gui.skin_library.tool_help": "조작법:\n마우스 왼쪽 버튼으로 칠하기\n마우스 오른쪽 버튼으로 지우기\n마우스 휠 버튼으로 색상 선택\nSpace 키나 마우스 휠 버튼을 누른채로 이동\n마우스 휠로 확대/축소\nF 키로 비슷한 픽셀 지우기\n여기를 눌러서 도움말 열기", + "gui.skin_library.help": "이 곳을 클릭하여 도움말을 엽니다. MCA 스킨을 멋지게 보이게 하기 위해서는 약간의 사전 처리 과정이 필요합니다.", "gui.skin_library.temperature.0": "추움", "gui.skin_library.temperature.1": "쌀쌀함", - "gui.skin_library.temperature.2": "Moderate", + "gui.skin_library.temperature.2": "적당하게", "gui.skin_library.temperature.3": "따뜻함", "gui.skin_library.temperature.4": "더움", - "gui.skin_library.temperature.tooltip": "Temperature decides the biomes this asset is used in by villagers.", + "gui.skin_library.temperature.tooltip": "온도는 마을 주민이 이 에셋을 사용할 바이옴을 결정합니다.", "gui.skin_library.element.head": "머리", "gui.skin_library.element.hat": "모자", "gui.skin_library.element.right_leg": "오른쪽 다리", @@ -379,7 +379,7 @@ "gui.skin_library.element.right_arm": "왼쪽 팔", "gui.skin_library.element.left_leg": "왼쪽 다리", "gui.skin_library.element.left_arm": "왼쪽 팔", - "gui.skin_library.element.jacket": "Jacket", + "gui.skin_library.element.jacket": "재킷", "gui.skin_library.element.right_leg_2": "오른쪽 다리 2", "gui.skin_library.element.right_arm_2": "오른쪽 팔 2", "gui.skin_library.element.left_leg_2": "왼쪽 다리 2", @@ -389,14 +389,14 @@ "gui.skin_library.page.help": "도움", "gui.skin_library.page.login": "로그인", "gui.skin_library.page.logout": "로그아웃", - "gui.skin_library.subscription_filter.library": "Public", - "gui.skin_library.subscription_filter.library.tooltip": "Public library of skins", + "gui.skin_library.subscription_filter.library": "공개", + "gui.skin_library.subscription_filter.library.tooltip": "공개 스킨 라이브러리", "gui.skin_library.subscription_filter.liked": "좋아요", "gui.skin_library.subscription_filter.liked.tooltip": "당신이 좋아요를 누른 스킨들", - "gui.skin_library.subscription_filter.global": "Global", - "gui.skin_library.subscription_filter.global.tooltip": "Globally installed skins", - "gui.skin_library.subscription_filter.submissions": "Submissions", - "gui.skin_library.subscription_filter.submissions.tooltip": "Your submissions", + "gui.skin_library.subscription_filter.global": "전지역", + "gui.skin_library.subscription_filter.global.tooltip": "전지역에 걸쳐 설치된 스킨", + "gui.skin_library.subscription_filter.submissions": "제출물물", + "gui.skin_library.subscription_filter.submissions.tooltip": "나의 제출물", "gui.destiny.whoareyou": "당신은 누구인가요?", "gui.destiny.journey": "당신의 여정은 어디에서 시작될까요?", "gui.destiny.next": "다음", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "눈 덮인 마을", "gui.destiny.village_plains": "평원 마을", "gui.destiny.village_savanna": "사바나 마을", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "고대 도시", "destiny.story.reason/1": "어느 날, 당신은 든든히 식사를 마치고 세상을 탐험하기 위해 여행을 떠나기로 결정했습니다.", "destiny.story.travelling/1": "당신은 끝없는 사막에서 허스크들을 피하면서 눈 덮인 산들과 습한 늪들을 정복했습니다.", "destiny.story.somewhere/1": "당신은 어느 외딴 곳의 한가운데에서 식량도, 은신처도 없이 발이 묶이게 됩니다.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "당신은 눈보라를 뚫고 길을 가던 중 앞에서 희미한 불빛을 보게 됩니다. 그 빛의 정체는 마을입니다. 아마도 그 곳에는 몸을 녹일 만한 여관이 있지 않을까요?", "destiny.story.village_plains/1": "평원 생물군계의 한가운데에 소수의 주민들이 스스로 정착지를 건설했습니다. 기후는 온화하고 사람들은 친절하군요. 아마도 그들에게는 다른 정착민을 위한 자리가 남아 있지도?", "destiny.story.village_savanna/1": "마침내, 당신은 마른 나무들과 풀들 사이에서 마을을 발견합니다. 그곳에 사는 이들이 우호적인지 확인해 봅시다!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "하지만 불행하게도 실수로 당신은 깊고 어두운 동굴로 굴러 떨어지게 됩니다. 당신이 의식을 찾았을때엔, 당신은 오랫동안 세상에서 잊혀진 고대 도시의 유적에서 깨어난 당신을 발견하게 됩니다.", "gui.blueprint.taxes": "세금", "gui.blueprint.birth": "출생 제한", "gui.blueprint.marriage": "결혼 제한", @@ -585,7 +585,7 @@ "gui.villager_editor.female": "여성", "gui.villager_editor.masculine": "남성형", "gui.villager_editor.feminine": "여성형", - "gui.villager_editor.neutral": "Neutral", + "gui.villager_editor.neutral": "중립", "gui.villager_editor.infection": "감염", "gui.villager_editor.age": "나이", "gui.villager_editor.page": "페이지 %1$s", @@ -744,7 +744,7 @@ "notify.trading.disabled": "서버 관리자에 의해 거래가 비활성화되었습니다.", "notify.playerMarriage.disabled": "서버 관리자에 의해 플레이어간의 결혼이 비활성화되었습니다.", "civil_registry.empty": "근처에 마을이 없습니다.", - "civil_registry.bounty_hunters": "Bounty hunter has been sent after %s.", + "civil_registry.bounty_hunters": "현상금 사냥꾼이 %s을(를) 쫓아갔습니다.", "subtitle.mca.reaper.scythe_out": "낫 그리기", "subtitle.mca.reaper.scythe_swing": "낫 휘두르기", "subtitle.mca.reaper.idle": "사악한 웃음", diff --git a/common/src/main/resources/assets/mca/lang/pl_pl.json b/common/src/main/resources/assets/mca/lang/pl_pl.json index 3ab1b07a9c..492e181d8c 100644 --- a/common/src/main/resources/assets/mca/lang/pl_pl.json +++ b/common/src/main/resources/assets/mca/lang/pl_pl.json @@ -306,14 +306,14 @@ "gui.skin_library.authenticating": "Uwierzytelnianie", "gui.skin_library.authenticating_browser": "Pełne uwierzytelnienie w przeglądarce!", "gui.skin_library.delete_confirm": "Czy na pewno chcesz usunąć tę zawartość?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "Dlaczego chcesz zgłosić tę treść?", + "gui.skin_library.report_invalid": "Nieprawidłowa tekstura", + "gui.skin_library.report_invalid_tooltip": "To nie są czyste włosy/ubranie i dlatego nie działa poprawnie. Powinien zostać oznaczony jako „nieprawidłowy”.", + "gui.skin_library.report_default": "Wbrew zasadom", + "gui.skin_library.report_default_tooltip": "Ta treść jest niezgodna z zasadami określonymi na stronie pomocy.", "gui.skin_library.search": "Wyszukaj", "gui.skin_library.cancel": "Anuluj", - "gui.skin_library.reported": "Reported!", + "gui.skin_library.reported": "Zgłoszono!", "gui.skin_library.drop": "Upuść obraz tutaj, wprowadź ścieżkę do pliku lub adres URL, aby rozpocząć.", "gui.skin_library.locked": "Aby opublikować skórki, najpierw się zaloguj.", "gui.skin_library.like_locked": "Zaloguj się, aby zobaczyć polubione lub przesłane treści.", @@ -324,16 +324,16 @@ "gui.skin_library.subscribe": "Użyj całego serwera!", "gui.skin_library.sort_likes": "Sortuj według polubień", "gui.skin_library.sort_newest": "Sortuj według daty", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.filter_invalid": "Ukryj nieprawidłowe treści", + "gui.skin_library.filter_hair": "Ukryj włosy", + "gui.skin_library.filter_clothing": "Ukryj ubrania", + "gui.skin_library.filter_moderator": "Pokaż tylko zablokowane treści", "gui.skin_library.like": "Polub", "gui.skin_library.edit": "Edytuj", "gui.skin_library.delete": "Usuń", "gui.skin_library.ban": "Zablokuj", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.unban": "Odblokuj", + "gui.skin_library.report": "Zgłoś", "gui.skin_library.details": "Szczegóły", "gui.skin_library.add": "Dodaj", "gui.skin_library.add.tooltip": "Tagowanie treści pomaga użytkownikom znajdować i filtrować określone zasoby.", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Śnieżna Wioska", "gui.destiny.village_plains": "Zwykła wioska", "gui.destiny.village_savanna": "Wioska Savanna", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Starożytne miasto", "destiny.story.reason/1": "Pewnego dnia miałeś dość i postanowiłeś wyruszyć w podróż, aby poznać świat.", "destiny.story.travelling/1": "Podbiłeś ośnieżone góry i mgliste bagna, unikając posuchów na bezkresnych pustyniach.", "destiny.story.somewhere/1": "Jesteś uwięziony bez jedzenia i schronienia w szczerym polu.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "Przedzierasz się przez burzę śnieżną, gdy widzisz przed sobą słabe światła. To wieś, może mają karczmę na ogrzanie?", "destiny.story.village_plains/1": "Pośrodku równinnego biomu kilku wieśniaków zbudowało sobie osadę. Klimat umiarkowany, ludzie życzliwi, może mają miejsce dla kolejnego osadnika?", "destiny.story.village_savanna/1": "W końcu znajdujesz wioskę między suchymi drzewami i trawą. Zobaczmy, czy są przyjaźni!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "Ale niefortunny błąd powoduje, że spadasz do głębokiej, ciemnej jaskini. Kiedy odzyskujesz przytomność, znajdujesz się w otoczeniu starożytnych ruin miasta zapomnianego przez świat na wieki.", "gui.blueprint.taxes": "Podatki", "gui.blueprint.birth": "Limit urodzeń", "gui.blueprint.marriage": "Limit małżeństw", diff --git a/common/src/main/resources/assets/mca/lang/pt_br.json b/common/src/main/resources/assets/mca/lang/pt_br.json index c542f010a2..3cc72a1073 100644 --- a/common/src/main/resources/assets/mca/lang/pt_br.json +++ b/common/src/main/resources/assets/mca/lang/pt_br.json @@ -306,14 +306,14 @@ "gui.skin_library.authenticating": "Autenticando", "gui.skin_library.authenticating_browser": "Complete a autenticação no seu navegador!", "gui.skin_library.delete_confirm": "Tem certeza que deseja excluir isso?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "Por que você quer denunciar esse conteúdo?", + "gui.skin_library.report_invalid": "Textura inválida", + "gui.skin_library.report_invalid_tooltip": "Isso não é apenas cabelo/roupas e portanto não funciona corretamente. Isso deve ser rotulado como 'inválido'.", + "gui.skin_library.report_default": "Contra as regras", + "gui.skin_library.report_default_tooltip": "Este conteúdo é contra as regras conforme especificado na página de ajuda.", "gui.skin_library.search": "Pesquisar", "gui.skin_library.cancel": "Cancelar", - "gui.skin_library.reported": "Reported!", + "gui.skin_library.reported": "Denunciado!", "gui.skin_library.drop": "Arraste uma imagem até aqui, insira um caminho de arquivo ou um link de imagem para começar.", "gui.skin_library.locked": "Para publicar skins, por favor faça login primeiro.", "gui.skin_library.like_locked": "Por favor, faça login para ver conteúdo curtido ou enviado.", @@ -324,16 +324,16 @@ "gui.skin_library.subscribe": "Utilizar em todos os servidores!", "gui.skin_library.sort_likes": "Ordenar por curtidas", "gui.skin_library.sort_newest": "Ordenar por data", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.filter_invalid": "Esconder conteúdo inválido", + "gui.skin_library.filter_hair": "Esconder cabelos", + "gui.skin_library.filter_clothing": "Esconder roupas", + "gui.skin_library.filter_moderator": "Mostrar apenas conteúdos banidos", "gui.skin_library.like": "Curtir", "gui.skin_library.edit": "Editar", "gui.skin_library.delete": "Deletar", "gui.skin_library.ban": "Banir", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.unban": "Desbanir", + "gui.skin_library.report": "Denunciar", "gui.skin_library.details": "Detalhes", "gui.skin_library.add": "Adicionar", "gui.skin_library.add.tooltip": "Tags nos conteúdos ajudam usuários a encontrar e filtrar por conteúdos específicos.", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Vila na neve", "gui.destiny.village_plains": "Vila nas planícies", "gui.destiny.village_savanna": "Vila na savana", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Cidade Ancestral", "destiny.story.reason/1": "Um dia, você se cansou de tudo e decidiu ir em uma jornada para explorar o mundo.", "destiny.story.travelling/1": "Você conquistou montanhas nevadas e pântanos úmidos, evitando zumbis-múmia nos desertos sem fim.", "destiny.story.somewhere/1": "Você está perdido(a) no meio do nada sem abrigo nem comida.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "Você luta contra uma forte tempestade de neve quando você vê luzes fracas à frente. É uma vila, talvez eles tenham uma taverna para você se aquecer?", "destiny.story.village_plains/1": "No meio de um bioma de planície, alguns aldeões construíram um assentamento. O clima é moderado, as pessoas amigáveis, talvez eles tenham lugar para outro morador?", "destiny.story.village_savanna/1": "Finalmente você encontra uma vila entre árvores secas e grama. Vamos ver se eles são amigáveis!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "Mas um infeliz passo em falso te faz cair em uma caverna profunda e escura. Quando você recupera a consciência, você se encontra cercado(a) pelas ruínas ancestrais de uma cidade esquecida pelo mundo por eras.", "gui.blueprint.taxes": "Impostos", "gui.blueprint.birth": "Limite de natalidade", "gui.blueprint.marriage": "Limite de casamento", diff --git a/common/src/main/resources/assets/mca/lang/ru_ru.json b/common/src/main/resources/assets/mca/lang/ru_ru.json index 598b7207f3..437ec2b530 100644 --- a/common/src/main/resources/assets/mca/lang/ru_ru.json +++ b/common/src/main/resources/assets/mca/lang/ru_ru.json @@ -1,9 +1,9 @@ { - "itemGroup.mca.mca_tab": "В Майнкрафт Приходит Жизнь", + "itemGroup.mca.mca_tab": "Minecraft Comes Alive", "entity.minecraft.villager.mca.none": "Безработный", "entity.minecraft.villager.mca.outlaw": "Преступник", "entity.minecraft.villager.mca.jeweler": "Ювелир", - "entity.minecraft.villager.mca.pillager": "Мародер", + "entity.minecraft.villager.mca.pillager": "Разбойник", "entity.minecraft.villager.mca.miner": "Шахтёр", "entity.minecraft.villager.mca.baker": "Пекарь", "entity.minecraft.villager.mca.guard": "Стражник", @@ -15,7 +15,7 @@ "entity.minecraft.villager.mca.child": "Ребёнок", "entity.mca.grim_reaper": "Мрачный Жнец", "entity.mca.male_villager": "Сельский житель", - "entity.mca.female_villager": "Сельская жительница", + "entity.mca.female_villager": "Жительница", "entity.mca.male_zombie_villager": "Зомби-Мужчина", "entity.mca.female_zombie_villager": "Зомби-Женщина", "entity.mca.ancient_cultist": "Древний культист", @@ -31,9 +31,9 @@ "item.mca.engagement_ring_rg.tooltip": "Обручитесь с кем-то, имеющим достаточно сердец", "item.mca.matchmakers_ring": "Кольцо свахи", "item.mca.needle_and_thread": "Иголка и нитка", - "item.mca.needle_and_thread.tooltip": "Щёлкни правой кнопкой мыши, чтобы изменить одежду.", + "item.mca.needle_and_thread.tooltip": "Щёлкните правой кнопкой мыши, чтобы изменить одежду.", "item.mca.comb": "Расчёска", - "item.mca.comb.tooltip": "Щёлкни правой кнопкой мыши, чтобы изменить причёску.", + "item.mca.comb.tooltip": "Щёлкните правой кнопкой мыши, чтобы изменить причёску.", "item.mca.bouquet": "Букет", "item.mca.bouquet.tooltip": "Хороший подарок для начала отношений.", "item.mca.baby_boy": "Мальчик", @@ -48,7 +48,7 @@ "item.mca.sirben_baby_girl": "Девочка-Сирбен", "item.mca.sirben_baby_girl.blanket": "Пустое одеяло", "item.mca.sirben_baby_girl.named": "Маленькая %s (Сирбен)", - "item.mca.baby.state.infected": "Инфицированный!", + "item.mca.baby.state.infected": "Заражённый!", "item.mca.baby.state.ready": "Готов расти!", "item.mca.baby.age": "Возраст: %s", "item.mca.baby.name": "Имя: %s", @@ -59,7 +59,7 @@ "item.mca.baby.no_drop/1": "Нельзя вот так выбросить ребёнка, Вы монстр!", "item.mca.baby.no_drop/2": "Я слежу за Вами, мистер", "item.mca.baby.no_drop/3": "Пожалуйста, не бросайте малыша!", - "item.mca.male_villager_spawn_egg": "Яйцо спавна мужчины-жителя", + "item.mca.male_villager_spawn_egg": "Яйцо призыва жителя", "item.mca.female_villager_spawn_egg": "Яйцо спавна женщины-жителя", "item.mca.male_zombie_villager_spawn_egg": "Яйцо спавна мужчины-зомби", "item.mca.female_zombie_villager_spawn_egg": "Яйцо спавна женщины-зомби", @@ -70,38 +70,38 @@ "item.mca.new_outfit": "Новая Одежда", "item.mca.rose_gold_dust": "Пыль розового золота", "item.mca.villager_editor": "Редактор жителей", - "item.mca.villager_editor.tooltip": "Изменяет параметры жителя\n\nИспользуй \"Красться\" при использовании для открытия инвентаря жителя.", + "item.mca.villager_editor.tooltip": "Изменяет параметры жителя\n\nКрадитесь при использовании для открытия инвентаря жителя.", "item.mca.whistle": "Свисток", "item.mca.whistle.tooltip": "Щелкните правой кнопкой мыши, чтобы вызвать свою семью в текущее местоположение", "item.mca.family_tree": "Семейное Древо", "item.mca.family_tree.tooltip": "Эта толстенная книга содержит родословные всех когда-либо живших людей.", - "item.mca.villager_tracker": "Villager Tracker", - "item.mca.villager_tracker.active": "Tracking %s.", - "item.mca.villager_tracker.distance": "~%s blocks away.", - "item.mca.villager_tracker.tooltip": "Powered by the same magic as ender eyes, this tracker can track most villagers. Assuming you remember their name.", - "item.mca.civil_registry": "Civil Registry", - "item.mca.civil_registry.tooltip": "Literate villagers keep track of all kind of events in this kind of books.", - "item.mca.staff_of_life": "Жезл жизни", + "item.mca.villager_tracker": "Трекер жителей", + "item.mca.villager_tracker.active": "Трекинг: %s.", + "item.mca.villager_tracker.distance": "~%s блоков отсюда", + "item.mca.villager_tracker.tooltip": "Наделённый той же силой, что и очи эндера, этот трекер может найти большинство жителей. Если вы помните имя.", + "item.mca.civil_registry": "Гражданский реестр", + "item.mca.civil_registry.tooltip": "Грамотные жители ведут учёт разных событий в таких книгах.", + "item.mca.staff_of_life": "Посох жизни", "item.mca.staff_of_life.uses": "Осталось использований: %s", "item.mca.staff_of_life.tooltip": "Щелкните правой кнопкой мыши на надгробии, чтобы оживить мертвого жителя деревни", "item.mca.book_death": "Смерть, и как ее излечить!", - "item.mca.book_romance": "Взаимоотношения и Вы", + "item.mca.book_romance": "Отношения и Вы", "item.mca.book_family": "Управление вашей семьей, Том XI", "item.mca.book_rose_gold": "О Розовом Золоте", "item.mca.book_infection": "Остерегайся инфекции!", - "item.mca.book_blueprint": "Строительная работа.", + "item.mca.book_blueprint": "Строительная работа", "item.mca.book_supporters": "Книга спонсоров", "item.mca.book_cult_0": "Сирбены", "item.mca.book_cult_1": "Сирбены II", "item.mca.book_cult_2": "Сирбены III", "item.mca.book_cult_ancient": "Древние Сирбены", "item.mca.letter": "Письмо", - "item.mca.blueprint": "Чертеж", - "item.mca.blueprint.tooltip": "Щелкните правой кнопкой мыши, чтобы управлять деревней, в которой вы находитесь в данный момент", + "item.mca.blueprint": "Чертёж", + "item.mca.blueprint.tooltip": "Щелкните правой кнопкой мыши, чтобы управлять деревней, в которой вы сейчас находитесь", "item.mca.potion_of_feminity": "Зелье женственности", - "item.mca.potion_of_feminity.tooltip": "Щёлкни правой кнопкой мыши, чтобы поменять свой пол или пол жителя деревни на женский.", + "item.mca.potion_of_feminity.tooltip": "Щёлкните правой кнопкой мыши, чтобы поменять свой пол или пол жителя деревни на женский.", "item.mca.potion_of_masculinity": "Зелье мужественности", - "item.mca.potion_of_masculinity.tooltip": "Щёлкни правой кнопкой мыши, чтобы поменять свой пол или пол жителя деревни на мужской.", + "item.mca.potion_of_masculinity.tooltip": "Щёлкните правой кнопкой мыши, чтобы поменять свой пол или пол жителя деревни на мужской.", "analysis.title": "Анализ последнего взаимодействия:", "analysis.base": "Основа", "analysis.desaturation": "Десатурация", @@ -141,11 +141,11 @@ "tag.mca:iron_doors": "Железная дверь", "tag.mca:iron_bars": "Железные прутья", "tag.minecraft:cauldrons": "Котлы", - "block.mca.rose_gold_block": "Блок Розового Золота", + "block.mca.rose_gold_block": "Блок розового золота", "block.mca.jeweler_workbench": "Ювелирный верстак", "block.mca.infernal_flame": "Инфернальное Пламя", "block.mca.upright_headstone": "Вертикальное надгробие", - "block.mca.slanted_headstone": "Наклонное Надгробие", + "block.mca.slanted_headstone": "Наклонное надгробие", "block.mca.cross_headstone": "Надгробие с крестом", "block.mca.wall_headstone": "Настенное надгробие", "block.mca.gravelling_headstone": "Надгробный камень", @@ -158,8 +158,8 @@ "block.mca.deepslate_upright_headstone": "Вертикальное надгробие из глубинного сланца", "block.mca.deepslate_slanted_headstone": "Наклонное надгробие из глубинного сланца", "block.mca.tombstone.header": "Здесь лежит", - "block.mca.tombstone.footer.male": "Пусть он покоится с миром", - "block.mca.tombstone.footer.female": "Пусть она покоится с миром", + "block.mca.tombstone.footer.male": "Царство ему небесное", + "block.mca.tombstone.footer.female": "Царство ей небесное", "block.mca.tombstone.remains": "%2$s %1$s", "relation.spouse": "Супруг(а)", "relation.daughter": "Дочь", @@ -185,20 +185,20 @@ "personality.sleepy": "Сонный", "personality.fragile": "Хрупкий", "personality.weak": "Слабый", - "personality.grumpy": "Ворчун", - "personality.shy": "Застенчив", + "personality.grumpy": "Угрюмый", + "personality.shy": "Застенчивый", "personality.gloomy": "Хмурый", "personalityDescription.athletic": "Бегает быстрее", "personalityDescription.confident": "Наносит больше урона", - "personalityDescription.strong": "Наносит гораздо больший урон", + "personalityDescription.strong": "Наносит гораздо больше урона", "personalityDescription.friendly": "Бонусные сердца за взаимодействие", "personalityDescription.tough": "Дополнительная защита", "personalityDescription.curious": "Любит истории", - "personalityDescription.peaceful": "Не будет атаковать, если на полном здоровье", + "personalityDescription.peaceful": "Не будет атаковать при полном здоровье", "personalityDescription.flirty": "Бонусные баллы за определенные взаимодействия", "personalityDescription.witty": "Любит шутки", "personalityDescription.sensitive": "Двойной штраф при неудачных взаимодействиях", - "personalityDescription.greedy": "Находит меньше работы по дому", + "personalityDescription.greedy": "Добывает меньше на работе", "personalityDescription.stubborn": "Трудный собеседник", "personalityDescription.odd": "Меньше шансов на успех при входе в личное пространство", "personalityDescription.sleepy": "Медлителен. Постоянно.", @@ -243,7 +243,7 @@ "mood.passive": "Пассивное", "mood.fine": "В порядке", "mood.happy": "Счастливое", - "mood.overjoyed": "Преисполненное", + "mood.overjoyed": "Перегруженый", "mood.bored_to_tears": "Скучно до смерти", "mood.bored": "Скучное", "mood.uninterested": "Незаинтересованное", @@ -299,104 +299,104 @@ "task.bePatient": "Работа в процессе - будьте терпеливы!", "task.advancement_mca:adventure/kill_grim_reaper": "Убейте Мрачного Жнеца!", "gui.loading": "Загрузка", - "gui.skin_library.load_image": "Load Image", - "gui.skin_library.list_fetch_failed": "Failed to fetch list", - "gui.skin_library.is_auth_failed": "Failed to check authentication", - "gui.skin_library.not_64": "Image is not 64 by 64 pixel.", - "gui.skin_library.authenticating": "Authenticating", - "gui.skin_library.authenticating_browser": "Complete authentication in your browser!", - "gui.skin_library.delete_confirm": "Do you really want to delete this content?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", - "gui.skin_library.search": "Search", - "gui.skin_library.cancel": "Cancel", - "gui.skin_library.reported": "Reported!", - "gui.skin_library.drop": "Drop an image here, enter a file path or URL to start.", - "gui.skin_library.locked": "To publish skins, please log in first.", - "gui.skin_library.like_locked": "Please log in to see liked or submitted content.", - "gui.skin_library.choose_name": "Name your asset!", - "gui.skin_library.already_uploading": "Already uploading, be patient.", - "gui.skin_library.upload_duplicate": "That content already exists.", - "gui.skin_library.upload_failed": "Upload failed. Woops.", - "gui.skin_library.subscribe": "Use server wide!", - "gui.skin_library.sort_likes": "Sort by likes", - "gui.skin_library.sort_newest": "Sort by date", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.load_image": "Загрузить", + "gui.skin_library.list_fetch_failed": "Не удалось получить список", + "gui.skin_library.is_auth_failed": "Не удалось авторизоваться", + "gui.skin_library.not_64": "Изображение не 64х64 пикселей", + "gui.skin_library.authenticating": "Авторизация...", + "gui.skin_library.authenticating_browser": "Завершите авторизацию в браузере!", + "gui.skin_library.delete_confirm": "Вы точно хотите удалить это?", + "gui.skin_library.report_confirm": "Почему вы хотите пожаловаться на это?", + "gui.skin_library.report_invalid": "Неверная текстура", + "gui.skin_library.report_invalid_tooltip": "Этот контент - не только одежда/волосы, поэтому работает некорректно. Он должен быть помечен как \\\"Неверный\\\".", + "gui.skin_library.report_default": "Против правил", + "gui.skin_library.report_default_tooltip": "Этот контент противоречит правилам, указанным на странице помощи.", + "gui.skin_library.search": "Поиск", + "gui.skin_library.cancel": "Отменить", + "gui.skin_library.reported": "Жалоба отправлена!", + "gui.skin_library.drop": "Перетащите изображение сюда, введите путь к файлу или URL, чтобы начать.", + "gui.skin_library.locked": "Войдите в систему, чтобы публиковать скины.", + "gui.skin_library.like_locked": "Войдите, чтобы видеть понравившийся и отправленный контент.", + "gui.skin_library.choose_name": "Назовите ваш ресурс!", + "gui.skin_library.already_uploading": "Уже загружаем, подождите.", + "gui.skin_library.upload_duplicate": "Этот контент уже существует.", + "gui.skin_library.upload_failed": "Ой, загрузка не удалась.", + "gui.skin_library.subscribe": "Использовать на сервере!", + "gui.skin_library.sort_likes": "Сортировать по лайкам", + "gui.skin_library.sort_newest": "Сортировать по дате", + "gui.skin_library.filter_invalid": "Скрыть неверный контент", + "gui.skin_library.filter_hair": "Скрыть волосы", + "gui.skin_library.filter_clothing": "Скрыть одежду", + "gui.skin_library.filter_moderator": "Показать только заблокированный контент", "gui.skin_library.like": "Мне нравится", "gui.skin_library.edit": "Редактировать", "gui.skin_library.delete": "Удалить", - "gui.skin_library.ban": "Ban", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.ban": "Забанить", + "gui.skin_library.unban": "Разбанить", + "gui.skin_library.report": "Пожаловаться", "gui.skin_library.details": "Подробности", "gui.skin_library.add": "Добавить", - "gui.skin_library.add.tooltip": "Tagging content helps user find and filter for specific assets.", + "gui.skin_library.add.tooltip": "Теги на контенте помогают пользователям найти нужные ресурсы.", "gui.skin_library.close": "Закрыть", "gui.skin_library.gender": "Пол: %s", "gui.skin_library.profession": "Профессия: %s", "gui.skin_library.temperature": "Температура: %s", "gui.skin_library.chance_val": "Шанс: %s", "gui.skin_library.chance": "Шанс", - "gui.skin_library.name": "Name", - "gui.skin_library.publish": "Publish", - "gui.skin_library.undo": "Undo", - "gui.skin_library.less_contrast": "Decrease Contrast", - "gui.skin_library.more_contrast": "Increase Contrast", + "gui.skin_library.name": "Название", + "gui.skin_library.publish": "Опубликовать", + "gui.skin_library.undo": "Отменить действие", + "gui.skin_library.less_contrast": "Уменьшить контраст", + "gui.skin_library.more_contrast": "Увеличить контраст", "gui.skin_library.less_brightness": "Снизить яркость", "gui.skin_library.more_brightness": "Повысить яркость", - "gui.skin_library.remove_saturation": "Remove Saturation", - "gui.skin_library.hair_color": "Preview color", - "gui.skin_library.probably_not_valids": "Skin could be invalid!", - "gui.skin_library.read_the_help": "This skin appears to be invalid!", - "gui.skin_library.read_the_help_hair": "This hair might be too dark or not grayscale!", - "gui.skin_library.meta.chance": "Chance", - "gui.skin_library.meta.chance.tooltip": "Probability that this asset is used by villagers.", + "gui.skin_library.remove_saturation": "Убрать насыщенность", + "gui.skin_library.hair_color": "Просмотреть цвет", + "gui.skin_library.probably_not_valids": "Скин может быть неверным!", + "gui.skin_library.read_the_help": "Кажется, скин неверен!", + "gui.skin_library.read_the_help_hair": "Эти волосы могут быть слишком тёмными или не в серых тонах!", + "gui.skin_library.meta.chance": "Шанс", + "gui.skin_library.meta.chance.tooltip": "Вероятность использования этого ресурса жителями.", "gui.skin_library.meta.by": "Автор: %s", "gui.skin_library.meta.likes": "%s Лайков", "gui.skin_library.prepare": "What asset type do you want to create?", - "gui.skin_library.prepare.hair": "Create hairstyle", - "gui.skin_library.prepare.clothing": "Create Clothing", - "gui.skin_library.fillToolThreshold": "Fill threshold", - "gui.skin_library.fillToolThreshold.tooltip": "Pressing F fill delete similar, adjacent pixels up to the given threshold.", - "gui.skin_library.tool_help": "Controls:\nLeft mouse to paint\nRight mouse to delete\nMiddle mouse to pick color\nHold space or mouse 3 to pan\nMousewheel to zoom\nF to clear similar pixels\nClick to open help", - "gui.skin_library.help": "Click to open help. MCA Skins need a bit of preprocessing in order to look good.", - "gui.skin_library.temperature.0": "Cold", - "gui.skin_library.temperature.1": "Chilly", - "gui.skin_library.temperature.2": "Moderate", - "gui.skin_library.temperature.3": "Warm", - "gui.skin_library.temperature.4": "Hot", - "gui.skin_library.temperature.tooltip": "Temperature decides the biomes this asset is used in by villagers.", - "gui.skin_library.element.head": "Head", - "gui.skin_library.element.hat": "Hat", - "gui.skin_library.element.right_leg": "Right leg", - "gui.skin_library.element.body": "Body", - "gui.skin_library.element.right_arm": "Right arm", - "gui.skin_library.element.left_leg": "Left leg", - "gui.skin_library.element.left_arm": "Left arm", - "gui.skin_library.element.jacket": "Jacket", + "gui.skin_library.prepare.hair": "Создаю волосы", + "gui.skin_library.prepare.clothing": "Создаю одежду", + "gui.skin_library.fillToolThreshold": "Порог заполнения", + "gui.skin_library.fillToolThreshold.tooltip": "Нажатие F удалит похожие соседние пиксели до заданного порога.", + "gui.skin_library.tool_help": "Управление:\nЛКМ, чтобы рисовать\nПКМ, чтобы стирать\nСКМ, чтобы выбрать цвет\nЗажмите Пробел или СКМ, чтобы двигать изображение\nПрокрутите колёсико, чтобы приблизить\nF, чтобы очистить похожие пиксели\nНажмите, чтобы открыть помощь", + "gui.skin_library.help": "Нажмите, чтобы открыть помощь. Скины MCA требуют подготовки, чтобы выглядеть хорошо.", + "gui.skin_library.temperature.0": "Холодная", + "gui.skin_library.temperature.1": "Прохладная", + "gui.skin_library.temperature.2": "Нормальная", + "gui.skin_library.temperature.3": "Тёплая", + "gui.skin_library.temperature.4": "Горячая", + "gui.skin_library.temperature.tooltip": "Температура определяет биомы, в которых жители используют этот ресурс.", + "gui.skin_library.element.head": "Голова", + "gui.skin_library.element.hat": "Головной убор", + "gui.skin_library.element.right_leg": "Правая нога", + "gui.skin_library.element.body": "Тело", + "gui.skin_library.element.right_arm": "Правая рука", + "gui.skin_library.element.left_leg": "Левая нога", + "gui.skin_library.element.left_arm": "Левая рука", + "gui.skin_library.element.jacket": "Куртка", "gui.skin_library.element.right_leg_2": "Правая нога 2", "gui.skin_library.element.right_arm_2": "Правая рука 2", "gui.skin_library.element.left_leg_2": "Левая нога 2", "gui.skin_library.element.left_arm_2": "Левая рука 2", - "gui.skin_library.page.library": "Library", - "gui.skin_library.page.editor_prepare": "Editor", - "gui.skin_library.page.help": "Help", - "gui.skin_library.page.login": "Login", - "gui.skin_library.page.logout": "Logout", - "gui.skin_library.subscription_filter.library": "Public", - "gui.skin_library.subscription_filter.library.tooltip": "Public library of skins", - "gui.skin_library.subscription_filter.liked": "Liked", - "gui.skin_library.subscription_filter.liked.tooltip": "Your liked skins", - "gui.skin_library.subscription_filter.global": "Global", - "gui.skin_library.subscription_filter.global.tooltip": "Globally installed skins", - "gui.skin_library.subscription_filter.submissions": "Submissions", - "gui.skin_library.subscription_filter.submissions.tooltip": "Your submissions", + "gui.skin_library.page.library": "Библиотека", + "gui.skin_library.page.editor_prepare": "Редактор", + "gui.skin_library.page.help": "Помощь", + "gui.skin_library.page.login": "Войти", + "gui.skin_library.page.logout": "Выйти", + "gui.skin_library.subscription_filter.library": "Публичные", + "gui.skin_library.subscription_filter.library.tooltip": "Публичная библиотека скинов", + "gui.skin_library.subscription_filter.liked": "Лайки", + "gui.skin_library.subscription_filter.liked.tooltip": "Скины, которые вам понравились", + "gui.skin_library.subscription_filter.global": "Глобальные", + "gui.skin_library.subscription_filter.global.tooltip": "Глобально установленные скины", + "gui.skin_library.subscription_filter.submissions": "Отправленные", + "gui.skin_library.subscription_filter.submissions.tooltip": "Скины, отправленные вами", "gui.destiny.whoareyou": "Кто ты?", "gui.destiny.journey": "Где начнётся твоё путешествие?", "gui.destiny.next": "Следующий", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Снежная деревня", "gui.destiny.village_plains": "Деревня в равнинах", "gui.destiny.village_savanna": "Деревня в саванне", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Древний город", "destiny.story.reason/1": "Однажды, ты решил отправиться в путешествие, чтобы исследовать мир.", "destiny.story.travelling/1": "Ты покорял снежные горы и топкие болота, избегал Кадавров в бесконечных пустынях.", "destiny.story.somewhere/1": "Ты застрял без еды и крова в глуши.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "Ты пробиваешься сквозь сильную метель и видишь впереди тусклые огни. Это деревня, может быть, у них есть гостиница, чтобы согреться?", "destiny.story.village_plains/1": "Посреди равнинного биома несколько жителей построили себе поселение. Климат умеренный, люди дружелюбные, возможно, у них найдется место для еще одного поселенца?", "destiny.story.village_savanna/1": "Наконец ты находишь деревню между сухими деревьями и травой. Давай посмотрим, дружелюбны ли они!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "Но в результате досадной оплошности ты падаешь в глубокую темную пещеру. Когда ты приходишь в себя, то обнаруживаешь, что тебя окружают древние руины города, забытого миром на долгие века.", "gui.blueprint.taxes": "Налоги", "gui.blueprint.birth": "Лимит рождаемости", "gui.blueprint.marriage": "Брачный лимит", @@ -463,7 +463,7 @@ "gui.whistle.noFamily": "В этой области нет ваших членов семьи.", "gui.village.left": "Вы покидаете %s", "gui.village.welcome": "Добро пожаловать в %s!", - "gui.village.taxes": "%1$s уплатил свои налоги!", + "gui.village.taxes": "%s уплатил свои налоги!", "gui.village.taxes.no": "%s рад не платить налоги.", "gui.village.taxes.more": "%s рад жить в достатке благодаря низким налогам и заплатил лишние 25%%.", "gui.village.taxes.happy": "%1$s радуется, что у нас такие справедливые налоги.", @@ -530,7 +530,7 @@ "gui.button.call": "Позвать", "gui.button.familyTree": "Семья", "gui.button.armor": "Броня", - "gui.button.library": "Library", + "gui.button.library": "Библиотека", "gui.button.professions": "Профессии", "gui.button.profession.none": "Житель", "gui.button.profession.guard": "Стражник", @@ -585,7 +585,7 @@ "gui.villager_editor.female": "Женщина", "gui.villager_editor.masculine": "Мужчина", "gui.villager_editor.feminine": "Женщина", - "gui.villager_editor.neutral": "Neutral", + "gui.villager_editor.neutral": "Средний", "gui.villager_editor.infection": "Заражение", "gui.villager_editor.age": "Возраст", "gui.villager_editor.page": "Страница %1$s", @@ -712,7 +712,7 @@ "advancement.mca.scythe_kill.description": "Убейте крестьянина косой", "advancement.mca.scythe_revive": "Душа за Душу", "advancement.mca.scythe_revive.description": "Используйте заряженную косу, чтобы оживить деревенского жителя", - "advancement.mca.staff_of_life": "Жезл жизни", + "advancement.mca.staff_of_life": "Посох жизни", "advancement.mca.staff_of_life.description": "Используйте посох жизни, чтобы оживить павшего товарища", "advancement.mca.merchant": "Торговец", "advancement.mca.merchant.description": "Получите свой первый ранг в деревне.", @@ -743,8 +743,8 @@ "notify.revival.disabled": "Возрождения были отключены администратором сервера.", "notify.trading.disabled": "Торговля отключена администратором сервера.", "notify.playerMarriage.disabled": "Брак между игроками отключён администратором сервера.", - "civil_registry.empty": "No village nearby.", - "civil_registry.bounty_hunters": "Bounty hunter has been sent after %s.", + "civil_registry.empty": "Деревни поблизости нет.", + "civil_registry.bounty_hunters": "Охотник за головами был послан за %s.", "subtitle.mca.reaper.scythe_out": "Вынимание косы", "subtitle.mca.reaper.scythe_swing": "Взмах косы", "subtitle.mca.reaper.idle": "Злой смех", @@ -766,5 +766,5 @@ "mca.limit.patreon": "Ты достиг своего часового лимита общения с ИИ. Кликни сюда, чтобы открыть руководство о том, как увеличить этот лимит!", "mca.limit.premium": "Ты достиг своего часового лимита общения с ИИ, даже с включенной подпиской patreon! Пожалуйста, сделай перерыв.", "mca.limit.patreon.hover": "Нажми на меня!", - "key.mca.skin_library": "Open Skin Library" + "key.mca.skin_library": "Открыть библиотеку скинов" } diff --git a/common/src/main/resources/assets/mca/lang/tr_tr.json b/common/src/main/resources/assets/mca/lang/tr_tr.json index bad747276f..e8276b641c 100644 --- a/common/src/main/resources/assets/mca/lang/tr_tr.json +++ b/common/src/main/resources/assets/mca/lang/tr_tr.json @@ -306,14 +306,14 @@ "gui.skin_library.authenticating": "Doğrulanıyor", "gui.skin_library.authenticating_browser": "Doğrulamayı tarayıcınızda bitirin!", "gui.skin_library.delete_confirm": "Bu içeriği silmek istiyor musunuz?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "Bu içeriği neden bildirmek istiyorsunuz?", + "gui.skin_library.report_invalid": "Geçersiz Doku", + "gui.skin_library.report_invalid_tooltip": "Bu saf saç/giyim değildir ve bu nedenle doğru çalışmaz. 'geçersiz' olarak etiketlenmelidir.", + "gui.skin_library.report_default": "Kurallara Karşı", + "gui.skin_library.report_default_tooltip": "Bu içerik, yardım sayfasında belirtilen kurallara aykırıdır.", "gui.skin_library.search": "Ara", "gui.skin_library.cancel": "İptal", - "gui.skin_library.reported": "Reported!", + "gui.skin_library.reported": "Rapor edildi!", "gui.skin_library.drop": "Buraya bir görüntü at, bir dosya konumu yada URL ile başlat.", "gui.skin_library.locked": "Kostüm paylaşmak için, lütfen oturum açın.", "gui.skin_library.like_locked": "Beğenilmiş yada gönderilmiş içerikleri görmek için lütfen oturum açın.", @@ -324,16 +324,16 @@ "gui.skin_library.subscribe": "Sunucu çapında kullan", "gui.skin_library.sort_likes": "Beğenilere göre sırala", "gui.skin_library.sort_newest": "Tarihe göre sırala", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.filter_invalid": "Geçersiz içeriği gizle", + "gui.skin_library.filter_hair": "Saçı gizle", + "gui.skin_library.filter_clothing": "Giysileri gizle", + "gui.skin_library.filter_moderator": "Yalnızca yasaklı içeriği göster", "gui.skin_library.like": "Beğen", "gui.skin_library.edit": "Düzenle", "gui.skin_library.delete": "Sil", "gui.skin_library.ban": "Yasakla", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.unban": "Yasağı Kaldır", + "gui.skin_library.report": "Rapor Et", "gui.skin_library.details": "Ayrıntılar", "gui.skin_library.add": "Ekle", "gui.skin_library.add.tooltip": "İçeriği etiketleme, kullanıcının belirli varlıkları bulmasına ve filtrelemesine yardımcı olur.", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Karlı Köy", "gui.destiny.village_plains": "Ova Köyü", "gui.destiny.village_savanna": "Çayır Köyü", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Antik Şehir", "destiny.story.reason/1": "Bir gün, hazırlandın ve dünyayı keşfetmeye karar verdin.", "destiny.story.travelling/1": "Yolculuğunda sonu gelmeyen çölleri, karlı dağları ve bataklıkları aştın.", "destiny.story.somewhere/1": "Ardından hiç bilmediğin bir yerde aç susuz bir şekilde mahsur kaldın.", @@ -418,7 +418,7 @@ "destiny.story.village_snowy/1": "Kar fırtınasının altında uzaktan net olmayan ışıkları fark ediyorsun ve onlara doğru gidiyorsun. Bu bir köy, belki senin için bir barınakları vardır?", "destiny.story.village_plains/1": "Ovanın ortasında, bir köy buluyorsun. İklim ılıman, insanlar sıcakkanlı, belki başka bir yerleşimciye ihtiyaçları vardır?", "destiny.story.village_savanna/1": "Kurumuş ağaçlar ve çimenler arasında bir köy buluyorsun. Bakalım seni sevecekler mi!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "Ancak talihsiz bir yanlış adım seni derin, karanlık bir mağaraya yuvarlıyor. Bilincini yeniden kazandığında, kendini çağlar boyunca unutulmuş bir şehrin antik kalıntılarıyla çevrili buluyorsun.", "gui.blueprint.taxes": "Vergiler", "gui.blueprint.birth": "Doğum sınırı", "gui.blueprint.marriage": "Evlilik sınırı", @@ -465,7 +465,7 @@ "gui.village.welcome": "%s Bölgesine Hoş Geldiniz!", "gui.village.taxes": "%s Vergilerini ödemiş durumda!", "gui.village.taxes.no": "%s Vergilerini ödemediği için memnun.", - "gui.village.taxes.more": "%s düşük vergiler sayesinde zenginlik içinde yaşamaktan ve fazladan %25 ödemekten memnun.", + "gui.village.taxes.more": "%s düşük vergiler sayesinde zenginlik içinde yaşamaktan ve fazladan %%25 ödemekten memnun.", "gui.village.taxes.happy": "%s Adil vergilere sahip olduğu için mutlu.", "gui.village.taxes.sad": "%s Vergiler çok fazla geldiği için üzgün.", "gui.village.taxes.angry": "%s Yüksek vergilerden dolayı çok sinirli.", diff --git a/common/src/main/resources/assets/mca/lang/uk_ua.json b/common/src/main/resources/assets/mca/lang/uk_ua.json index 33f4f3ce26..07b4a67ef7 100644 --- a/common/src/main/resources/assets/mca/lang/uk_ua.json +++ b/common/src/main/resources/assets/mca/lang/uk_ua.json @@ -311,22 +311,22 @@ "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", "gui.skin_library.report_default": "Against Rules", "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", - "gui.skin_library.search": "Search", - "gui.skin_library.cancel": "Cancel", - "gui.skin_library.reported": "Reported!", - "gui.skin_library.drop": "Drop an image here, enter a file path or URL to start.", - "gui.skin_library.locked": "To publish skins, please log in first.", - "gui.skin_library.like_locked": "Please log in to see liked or submitted content.", + "gui.skin_library.search": "Пошук", + "gui.skin_library.cancel": "Скасувати", + "gui.skin_library.reported": "Повідомлено!", + "gui.skin_library.drop": "Завантажте зображення сюди, введіть шлях до файлу або URL для запуску.", + "gui.skin_library.locked": "Щоб публікувати скіни, будь ласка, увійдіть до системи.", + "gui.skin_library.like_locked": "Будь ласка, авторизуйтесь, щоб переглянути вподобаний або надісланий контент.", "gui.skin_library.choose_name": "Name your asset!", - "gui.skin_library.already_uploading": "Already uploading, be patient.", - "gui.skin_library.upload_duplicate": "That content already exists.", - "gui.skin_library.upload_failed": "Upload failed. Woops.", + "gui.skin_library.already_uploading": "Уже завантажується, наберіться терпіння.", + "gui.skin_library.upload_duplicate": "Цей контент вже існує.", + "gui.skin_library.upload_failed": "Упс, помилка завантаження.", "gui.skin_library.subscribe": "Use server wide!", - "gui.skin_library.sort_likes": "Sort by likes", - "gui.skin_library.sort_newest": "Sort by date", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", + "gui.skin_library.sort_likes": "Сортувати за вподобаннями", + "gui.skin_library.sort_newest": "Сортувати за датою", + "gui.skin_library.filter_invalid": "Сховати недійсний вміст", + "gui.skin_library.filter_hair": "Приховати волосся", + "gui.skin_library.filter_clothing": "Сховати одяг", "gui.skin_library.filter_moderator": "Show banned content only", "gui.skin_library.like": "Подобається", "gui.skin_library.edit": "Редагувати", @@ -360,9 +360,9 @@ "gui.skin_library.meta.by": "Від %s", "gui.skin_library.meta.likes": "%s Лайків", "gui.skin_library.prepare": "What asset type do you want to create?", - "gui.skin_library.prepare.hair": "Create hairstyle", - "gui.skin_library.prepare.clothing": "Create Clothing", - "gui.skin_library.fillToolThreshold": "Fill threshold", + "gui.skin_library.prepare.hair": "Створити зачіску", + "gui.skin_library.prepare.clothing": "Створити одяг", + "gui.skin_library.fillToolThreshold": "Поріг заповнення", "gui.skin_library.fillToolThreshold.tooltip": "Pressing F fill delete similar, adjacent pixels up to the given threshold.", "gui.skin_library.tool_help": "Controls:\nLeft mouse to paint\nRight mouse to delete\nMiddle mouse to pick color\nHold space or mouse 3 to pan\nMousewheel to zoom\nF to clear similar pixels\nClick to open help", "gui.skin_library.help": "Click to open help. MCA Skins need a bit of preprocessing in order to look good.", @@ -387,8 +387,8 @@ "gui.skin_library.page.library": "Бібліотека", "gui.skin_library.page.editor_prepare": "Редактор", "gui.skin_library.page.help": "Допомога", - "gui.skin_library.page.login": "Login", - "gui.skin_library.page.logout": "Logout", + "gui.skin_library.page.login": "Увійти", + "gui.skin_library.page.logout": "Вийти", "gui.skin_library.subscription_filter.library": "Public", "gui.skin_library.subscription_filter.library.tooltip": "Публічна бібліотека скінів", "gui.skin_library.subscription_filter.liked": "Вподобане", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "Зимнє поселення", "gui.destiny.village_plains": "Рівнинне поселення", "gui.destiny.village_savanna": "Саванне поселення", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "Стародавнє місто", "destiny.story.reason/1": "Одного дня тобі було достатньо, і ти вирішив відправитися в подорож, щоб досліджувати світ.", "destiny.story.travelling/1": "Ти підкорив засніжені гори й сильні болота, Уникаючи лушпиння в безкрайніх пустелях.", "destiny.story.somewhere/1": "Ти застряг без їжі та притулку посеред безодні.", diff --git a/common/src/main/resources/assets/mca/lang/zh_cn.json b/common/src/main/resources/assets/mca/lang/zh_cn.json index 073210380e..310084b61f 100644 --- a/common/src/main/resources/assets/mca/lang/zh_cn.json +++ b/common/src/main/resources/assets/mca/lang/zh_cn.json @@ -1,12 +1,12 @@ { - "itemGroup.mca.mca_tab": "Minecraft 凡家物语", + "itemGroup.mca.mca_tab": "Minecraft凡家物语", "entity.minecraft.villager.mca.none": "无业", "entity.minecraft.villager.mca.outlaw": "法外狂徒", "entity.minecraft.villager.mca.jeweler": "珠宝商", "entity.minecraft.villager.mca.pillager": "掠夺者", "entity.minecraft.villager.mca.miner": "矿工", "entity.minecraft.villager.mca.baker": "面包师", - "entity.minecraft.villager.mca.guard": "守卫", + "entity.minecraft.villager.mca.guard": "警卫", "entity.minecraft.villager.mca.warrior": "战士", "entity.minecraft.villager.mca.archer": "弓箭手", "entity.minecraft.villager.mca.adventurer": "冒险家", @@ -22,63 +22,63 @@ "item.mca.scythe": "死神镰刀", "item.mca.scythe.tooltip": "杀死一个村民并得到其灵魂,然后右击一个墓碑进行复活。但是请注意,复生的村民会以僵尸村民的身份复活。", "item.mca.wedding_ring": "结婚戒指", - "item.mca.wedding_ring.tooltip": "用它与跟你互动值达到要求的人结婚", + "item.mca.wedding_ring.tooltip": "用它与跟您互动值达到要求的人结婚", "item.mca.wedding_ring_rg": "玫瑰金结婚戒指", - "item.mca.wedding_ring_rg.tooltip": "用它与跟你互动值达到要求的人结婚", + "item.mca.wedding_ring_rg.tooltip": "用它与跟您互动值达到要求的人结婚", "item.mca.engagement_ring": "订婚戒指", - "item.mca.engagement_ring.tooltip": "用它与跟你互动值达到要求的人订婚", + "item.mca.engagement_ring.tooltip": "用它与跟您互动值达到要求的人订婚", "item.mca.engagement_ring_rg": "玫瑰金订婚戒指", - "item.mca.engagement_ring_rg.tooltip": "用它与跟你互动值达到要求的人订婚", + "item.mca.engagement_ring_rg.tooltip": "用它与跟您互动值达到要求的人订婚", "item.mca.matchmakers_ring": "牧师的戒指", "item.mca.needle_and_thread": "针与线", - "item.mca.needle_and_thread.tooltip": "右键以更换你的衣着。", + "item.mca.needle_and_thread.tooltip": "右键以更换您的衣着。", "item.mca.comb": "梳子", - "item.mca.comb.tooltip": "右键以更换你的发型。", + "item.mca.comb.tooltip": "右键以更换您的发型。", "item.mca.bouquet": "花束", "item.mca.bouquet.tooltip": "开启一段人脉的不错礼物。", "item.mca.baby_boy": "无名氏小男孩", "item.mca.baby_boy.blanket": "空毯子", - "item.mca.baby_boy.named": "小 %s(男孩)", + "item.mca.baby_boy.named": "小%s(男孩)", "item.mca.baby_girl": "无名氏小女孩", "item.mca.baby_girl.blanket": "空毯子", - "item.mca.baby_girl.named": "小 %s (女孩)", + "item.mca.baby_girl.named": "小%s(女孩)", "item.mca.sirben_baby_boy": "瑟本人小男孩", "item.mca.sirben_baby_boy.blanket": "空毯子", - "item.mca.sirben_baby_boy.named": "小 %s (瑟本人)", + "item.mca.sirben_baby_boy.named": "小%s(瑟本人)", "item.mca.sirben_baby_girl": "瑟本人小女孩", "item.mca.sirben_baby_girl.blanket": "空毯子", - "item.mca.sirben_baby_girl.named": "小 %s (怪人)", + "item.mca.sirben_baby_girl.named": "小%s(瑟本人)", "item.mca.baby.state.infected": "被感染了!", "item.mca.baby.state.ready": "准备好成长了!", - "item.mca.baby.age": "年龄:%s 岁", + "item.mca.baby.age": "年龄:%s岁", "item.mca.baby.name": "姓名:%s", "item.mca.baby.mother": "母亲:%s", "item.mca.baby.father": "父亲: %s", - "item.mca.baby.owner.you": "你", + "item.mca.baby.owner.you": "您", "item.mca.baby.give_name": "右键命名", - "item.mca.baby.no_drop/1": "你个禽兽,为什么要抛弃自己的孩子?", - "item.mca.baby.no_drop/2": "先生,我还在看着你呢", - "item.mca.baby.no_drop/3": "请勿遗弃你的孩子!", + "item.mca.baby.no_drop/1": "你这个禽兽,为什么要抛弃自己的孩子?", + "item.mca.baby.no_drop/2": "先生,我还在看着您呢", + "item.mca.baby.no_drop/3": "请勿遗弃您的孩子!", "item.mca.male_villager_spawn_egg": "男性村民刷怪蛋", "item.mca.female_villager_spawn_egg": "女性村民刷怪蛋", "item.mca.male_zombie_villager_spawn_egg": "男性僵尸村民刷怪蛋", "item.mca.female_zombie_villager_spawn_egg": "女性僵尸村民刷怪蛋", "item.mca.grim_reaper_spawn_egg": "死神刷怪蛋", "item.mca.divorce_papers": "离婚协议书", - "item.mca.divorce_papers.tooltip": "递给你的配偶,结束一段悲惨的婚姻吧。", + "item.mca.divorce_papers.tooltip": "递给您的配偶,结束一段悲惨的婚姻吧。", "item.mca.rose_gold_ingot": "玫瑰金锭", "item.mca.new_outfit": "新衣服", "item.mca.rose_gold_dust": "玫瑰金粉", "item.mca.villager_editor": "村民编辑器", "item.mca.villager_editor.tooltip": "修改村民的属性\n\n潜行时右键以打开村民的物品栏", "item.mca.whistle": "口哨", - "item.mca.whistle.tooltip": "右键以吹口哨来让你的家人们赶到你的位置。", + "item.mca.whistle.tooltip": "右键以吹口哨来让您的家人们赶到您的位置。", "item.mca.family_tree": "族谱", "item.mca.family_tree.tooltip": "这本沉甸甸的书记载了每个村民的族谱。", "item.mca.villager_tracker": "村民追踪器", - "item.mca.villager_tracker.active": "正在追踪 %s", + "item.mca.villager_tracker.active": "正在追踪%s", "item.mca.villager_tracker.distance": "~距离 %s 格", - "item.mca.villager_tracker.tooltip": "这个追踪器拥有与末影之眼相同的魔力,可以追踪大多数村民。只要你记得他们的名字。", + "item.mca.villager_tracker.tooltip": "这个追踪器拥有与末影之眼相同的魔力,可以追踪大多数村民。只要您记得他们的名字。", "item.mca.civil_registry": "民事登记簿", "item.mca.civil_registry.tooltip": "有文化的村民会在这本书中记录村庄的各种事件。", "item.mca.staff_of_life": "生命之杖", @@ -90,7 +90,7 @@ "item.mca.book_rose_gold": "《论玫瑰金》", "item.mca.book_infection": "《当心感染僵尸病毒!》", "item.mca.book_blueprint": "《建筑工程》", - "item.mca.book_supporters": "《制作者之书》", + "item.mca.book_supporters": "《贡献者之书》", "item.mca.book_cult_0": "《瑟本人》", "item.mca.book_cult_1": "《瑟本人 II》", "item.mca.book_cult_2": "《瑟本人 III》", @@ -99,9 +99,9 @@ "item.mca.blueprint": "蓝图", "item.mca.blueprint.tooltip": "右击管理您所在的村庄。", "item.mca.potion_of_feminity": "女性药水", - "item.mca.potion_of_feminity.tooltip": "右键使你或一位村民变成女性。", + "item.mca.potion_of_feminity.tooltip": "右键使您或一位村民变成女性。", "item.mca.potion_of_masculinity": "男性药水", - "item.mca.potion_of_masculinity.tooltip": "右键使你或一位村民变成男性。", + "item.mca.potion_of_masculinity.tooltip": "右键使您或一位村民变成男性。", "analysis.title": "最后一次互动时:", "analysis.base": "基础值", "analysis.desaturation": "兴趣值", @@ -160,7 +160,7 @@ "block.mca.tombstone.header": "永 远 怀 念", "block.mca.tombstone.footer.male": "愿他在天堂安息", "block.mca.tombstone.footer.female": "愿她在天堂安息", - "block.mca.tombstone.remains": "%2$s 的 %1$s", + "block.mca.tombstone.remains": "%2$s的%1$s", "relation.spouse": "配偶", "relation.daughter": "女儿", "relation.son": "儿子", @@ -235,7 +235,7 @@ "traitDescription.homosexual": "对同性有吸引力。", "traitDescription.left_handed": "用他们的左手作为惯用手。", "traitDescription.electrified": "被闪电击中过。", - "traitDescription.rainbow": "用 Jebs 的神秘材料染制。", + "traitDescription.rainbow": "用Jeb的神秘材料染制。", "sirben": "*瑟本人的随机叫声*", "mood.depressed": "沮丧", "mood.sad": "伤心", @@ -274,7 +274,7 @@ "buildingType.big_house": "大型房屋", "buildingType.big_house.description": "村民一家人会在一间房屋内同居,但是需要额外的床位。", "buildingType.blacksmith": "铁匠铺", - "buildingType.blacksmith.description": "为护卫和弓箭手生产高质量装备的场所。", + "buildingType.blacksmith.description": "为警卫和弓箭手生产高质量装备的场所。", "buildingType.storage": "税库", "buildingType.storage.description": "储存税收的地方。", "buildingType.graveyard": "墓园", @@ -289,12 +289,12 @@ "buildingType.prison": "监狱", "buildingType.prison.description": "关押盗贼、叛徒等人员的地方。", "buildingType.armory": "军械库", - "buildingType.armory.description": "能升级护卫们的默认盔甲。", + "buildingType.armory.description": "能升级警卫们的默认盔甲。", "buildingType.infirmary": "医务室", - "buildingType.infirmary.description": "将感染几率降低 50% !生病的村民们往往会聚集在这里。", - "task.reputation": "总互动值达到 %1$s", - "task.population": "人口达到 %1$s 人", - "task.build": "建造一座 %1$s", + "buildingType.infirmary.description": "将感染几率降低50%!生病的村民们往往会聚集在这里。", + "task.reputation": "总互动值达到%1$s", + "task.population": "人口达到%1$s人", + "task.build": "建造一座%1$s", "task.grimReaper": "杀死死神", "task.bePatient": "正在建造中 - 请保持耐心!", "task.advancement_mca:adventure/kill_grim_reaper": "杀死死神!", @@ -306,15 +306,15 @@ "gui.skin_library.authenticating": "验证中", "gui.skin_library.authenticating_browser": "请在浏览器中完成身份验证步骤", "gui.skin_library.delete_confirm": "确定要删除此内容吗?", - "gui.skin_library.report_confirm": "Why do you want to report this content?", - "gui.skin_library.report_invalid": "Invalid Texture", - "gui.skin_library.report_invalid_tooltip": "This is not pure hair/clothing and thus does not work correctly. It should get labeled as 'invalid'.", - "gui.skin_library.report_default": "Against Rules", - "gui.skin_library.report_default_tooltip": "This content is against the rules as specified at the help page.", + "gui.skin_library.report_confirm": "您为何要举报此内容?", + "gui.skin_library.report_invalid": "无效材质", + "gui.skin_library.report_invalid_tooltip": "这不是纯粹的头发/衣着,因此无法正常工作。应将其标记为 \"无效\"。", + "gui.skin_library.report_default": "违反规则", + "gui.skin_library.report_default_tooltip": "此内容违反了帮助页面的规则。", "gui.skin_library.search": "搜索", "gui.skin_library.cancel": "取消", - "gui.skin_library.reported": "Reported!", - "gui.skin_library.drop": "拖放图像到此处,输入文件路径或 URL 以开始", + "gui.skin_library.reported": "已举报!", + "gui.skin_library.drop": "拖放图像到此处,输入文件路径或URL以开始", "gui.skin_library.locked": "要发布皮肤,请先登录", "gui.skin_library.like_locked": "请登录以查看喜欢或提交的内容", "gui.skin_library.choose_name": "给您的资源命名!", @@ -324,16 +324,16 @@ "gui.skin_library.subscribe": "请使用服务器范围!", "gui.skin_library.sort_likes": "按点赞数排序", "gui.skin_library.sort_newest": "按日期排序", - "gui.skin_library.filter_invalid": "Hide invalid content", - "gui.skin_library.filter_hair": "Hide hair", - "gui.skin_library.filter_clothing": "Hide clothing", - "gui.skin_library.filter_moderator": "Show banned content only", + "gui.skin_library.filter_invalid": "隐藏无效内容", + "gui.skin_library.filter_hair": "隐藏头发", + "gui.skin_library.filter_clothing": "隐藏衣着", + "gui.skin_library.filter_moderator": "仅显示被封禁的内容", "gui.skin_library.like": "点赞", "gui.skin_library.edit": "编辑", "gui.skin_library.delete": "删除", "gui.skin_library.ban": "封禁", - "gui.skin_library.unban": "Unban", - "gui.skin_library.report": "Report", + "gui.skin_library.unban": "解封", + "gui.skin_library.report": "举报", "gui.skin_library.details": "详细信息", "gui.skin_library.add": "添加", "gui.skin_library.add.tooltip": "标记内容有助于用户寻找和过滤特定的资源", @@ -357,15 +357,15 @@ "gui.skin_library.read_the_help_hair": "头发颜色可能太暗,或不为灰度!", "gui.skin_library.meta.chance": "几率", "gui.skin_library.meta.chance.tooltip": "该资源被村民使用的几率", - "gui.skin_library.meta.by": "来自 %s", - "gui.skin_library.meta.likes": "%s 个赞", - "gui.skin_library.prepare": "你想创建什么资源类型?\n在上传皮肤之前,请点击“?”", + "gui.skin_library.meta.by": "来自%s", + "gui.skin_library.meta.likes": "%s个赞", + "gui.skin_library.prepare": "您想创建什么资源类型?\n在上传皮肤之前,请点击“?”", "gui.skin_library.prepare.hair": "创建发型", "gui.skin_library.prepare.clothing": "创建衣着", "gui.skin_library.fillToolThreshold": "填充阈值", - "gui.skin_library.fillToolThreshold.tooltip": "按下 F 键将删除类似的相邻像素直到给定的阈值。", - "gui.skin_library.tool_help": "控制:\n鼠标左键:绘制\n鼠标右键:删除\n鼠标中键:选择颜色\n按住空格键或鼠标中键:平移\n鼠标滚轮:缩放\nF 键:清除相似像素\n单击打开帮助", - "gui.skin_library.help": "点击打开帮助。MCA 皮肤需要进行一些预处理使其视觉效果更佳", + "gui.skin_library.fillToolThreshold.tooltip": "按下F键将删除类似的相邻像素直到给定的阈值。", + "gui.skin_library.tool_help": "控制:\n鼠标左键:绘制\n鼠标右键:删除\n鼠标中键:选择颜色\n按住空格键或鼠标中键:平移\n鼠标滚轮:缩放\nF键:清除相似像素\n单击打开帮助", + "gui.skin_library.help": "点击打开帮助。MCA皮肤需要进行一些预处理使其视觉效果更佳", "gui.skin_library.temperature.0": "寒冷", "gui.skin_library.temperature.1": "凉爽", "gui.skin_library.temperature.2": "适中", @@ -380,10 +380,10 @@ "gui.skin_library.element.left_leg": "左腿", "gui.skin_library.element.left_arm": "左臂", "gui.skin_library.element.jacket": "外套", - "gui.skin_library.element.right_leg_2": "右腿 2", - "gui.skin_library.element.right_arm_2": "右臂 2", - "gui.skin_library.element.left_leg_2": "左腿 2", - "gui.skin_library.element.left_arm_2": "左臂 2", + "gui.skin_library.element.right_leg_2": "右腿2", + "gui.skin_library.element.right_arm_2": "右臂2", + "gui.skin_library.element.left_leg_2": "左腿2", + "gui.skin_library.element.left_arm_2": "左臂2", "gui.skin_library.page.library": "库", "gui.skin_library.page.editor_prepare": "编辑器", "gui.skin_library.page.help": "帮助", @@ -392,7 +392,7 @@ "gui.skin_library.subscription_filter.library": "公共", "gui.skin_library.subscription_filter.library.tooltip": "公共皮肤库", "gui.skin_library.subscription_filter.liked": "获赞", - "gui.skin_library.subscription_filter.liked.tooltip": "你点赞的皮肤", + "gui.skin_library.subscription_filter.liked.tooltip": "您点赞的皮肤", "gui.skin_library.subscription_filter.global": "全球", "gui.skin_library.subscription_filter.global.tooltip": "在全球范围内安装的皮肤", "gui.skin_library.subscription_filter.submissions": "提交历史", @@ -407,7 +407,7 @@ "gui.destiny.village_snowy": "雪原村庄", "gui.destiny.village_plains": "平原村庄", "gui.destiny.village_savanna": "热带草原村庄", - "gui.destiny.ancient_city": "Ancient City", + "gui.destiny.ancient_city": "远古城市", "destiny.story.reason/1": "一天,你拥有了足够的物资和勇气,决定去探索这个世界。", "destiny.story.travelling/1": "你征服了寒冷的雪山和泥泞的沼泽,还避开了无尽沙漠之中的尸壳。", "destiny.story.somewhere/1": "你被困在荒无人烟的地方,没有任何食物或住所。", @@ -418,16 +418,16 @@ "destiny.story.village_snowy/1": "当你与雪地的严寒奋力搏斗时,眼前的微弱灯光点亮了你的希望。是一座村庄,也许村子里有一个客栈能让你暖暖身子呢?", "destiny.story.village_plains/1": "在平原生物群系的中心,一些村民为自己建造了安身之处。气候宜人,民风淳朴,也许他们很欢迎新来的客人呢?", "destiny.story.village_savanna/1": "最终,你找到了一座山清水秀的热带草原村庄。让我们看看这些村民们是否欢迎陌生人吧!", - "destiny.story.ancient_city/1": "But an unfortunate misstep sends you tumbling into a deep, dark cave. When you regain consciousness, you find yourself surrounded by the ancient ruins of a city forgotten by the world for eons.", + "destiny.story.ancient_city/1": "但一次不幸的失足让你跌入了一个幽深黑暗的洞穴。当你恢复意识时,发现自己被一座被世人遗忘已久的古代城市废墟所包围。", "gui.blueprint.taxes": "税收", "gui.blueprint.birth": "生育限制", "gui.blueprint.marriage": "婚姻限制", - "gui.blueprint.guards": "护卫", - "gui.blueprint.rankTooLow": "你需要更有权威的身份。", + "gui.blueprint.guards": "警卫", + "gui.blueprint.rankTooLow": "您需要更有权威的身份。", "gui.blueprint.currentRank": "身份:%1$s", "gui.blueprint.reputation": "总互动值:%1$s", "gui.blueprint.buildings": "建筑:%1$s", - "gui.blueprint.population": "人口:%1$s 个人住在 %2$s 座房子里", + "gui.blueprint.population": "人口:%1$s个人,拥有%2$s栋房屋", "gui.blueprint.map": "地图", "gui.blueprint.rank": "身份", "gui.blueprint.catalog": "分类", @@ -440,8 +440,8 @@ "gui.blueprint.addRoom": "添加房间", "gui.blueprint.addRoom.tooltip": "将拥有屋顶和门的房间添加为建筑物。", "gui.blueprint.removeBuilding": "移除建筑", - "gui.blueprint.buildingTypes": "选择建筑以查看其要求。如果你建造了一些东西,请录入它并从地图页面点击“添加建筑”按钮。", - "gui.blueprint.empty": "这里根本就没有什么村庄!快来建造一座房子为这片荒无人烟的地区注入活力!", + "gui.blueprint.buildingTypes": "选择建筑以查看其要求。如果您建造了一些东西,请录入它并从地图页面点击“添加建筑”按钮。", + "gui.blueprint.empty": "这里根本就没有什么村庄!快来建造一座房屋为这片荒无人烟的地区注入活力!", "gui.blueprint.waiting": "加载中……", "gui.blueprint.autoScan": "自动扫描", "gui.blueprint.autoScan.tooltip": "允许村民自动添加建筑。", @@ -454,22 +454,22 @@ "gui.blueprint.catalogFull": "建筑目录", "gui.blueprint.catalogHint": "通过满足建筑条件来建造特殊的建筑吧!", "gui.blueprint.autoScanDisabled": "启用自动扫描(在高级选项卡下),或手动添加建筑物!", - "gui.blueprint.tooltip.taxes": "向你的村民们收税吧!当你收税的百分比越高,他们给予你的税收将与你的声望形成反比例。", + "gui.blueprint.tooltip.taxes": "向您的村民们收税吧!当您收税的百分比越高,他们给予您的税收将与您的声望形成反比例。", "gui.blueprint.tooltip.births": "控制床的使用百分比,0% 代表没有人能够生育。", "gui.blueprint.tooltip.marriage": "控制婚姻百分比,0% 代表没有人能够结婚。", "gui.blueprint.settlement": "小聚落", "gui.nameBaby.title": "命名宝宝", "gui.whistle.title": "哨子", - "gui.whistle.noFamily": "在这个区域里似乎找不到你的家庭成员。", - "gui.village.left": "你离开了 %s", - "gui.village.welcome": "欢迎来到 %s!", - "gui.village.taxes": "%s 已缴纳税款!", - "gui.village.taxes.no": "%s 因不用交税感到非常高兴。", - "gui.village.taxes.more": "%s 因生活富裕而很高兴,并且还额外支付了 25% 的税。这要归功于合理的税收。", - "gui.village.taxes.happy": "%s 因税收合理而感到愉悦。", - "gui.village.taxes.sad": "%s 很伤心,要缴的税对其来说太多了。", - "gui.village.taxes.angry": "%s 因税收过高而感到恼怒。", - "gui.village.taxes.riot": "%s 拒绝缴纳如此高昂的税款。", + "gui.whistle.noFamily": "在这个区域里似乎找不到您的家庭成员。", + "gui.village.left": "已离开%s", + "gui.village.welcome": "欢迎来到%s!", + "gui.village.taxes": "%s已缴纳税款!", + "gui.village.taxes.no": "%s因不用交税感到非常高兴。", + "gui.village.taxes.more": "%s因生活富裕而很高兴,并且还额外支付了25%的税。这要归功于合理的税收。", + "gui.village.taxes.happy": "%s因税收合理而感到愉悦。", + "gui.village.taxes.sad": "%s很伤心,要缴的税对其来说太多了。", + "gui.village.taxes.angry": "%s因税收过高而感到愤怒。", + "gui.village.taxes.riot": "%s拒绝缴纳如此高昂的税款。", "gui.village.rank.outlaw": "法外狂徒", "gui.village.rank.peasant": "农民", "gui.village.rank.merchant": "商人", @@ -484,7 +484,7 @@ "gui.button.talk": "交谈", "gui.button.interact": "互动", "gui.button.command": "命令", - "gui.button.clothing": "穿衣", + "gui.button.clothing": "衣着", "gui.button.trade": "交易", "gui.button.locations": "位置", "gui.button.special": "特殊", @@ -533,11 +533,11 @@ "gui.button.library": "库", "gui.button.professions": "职业", "gui.button.profession.none": "村民", - "gui.button.profession.guard": "护卫", + "gui.button.profession.guard": "警卫", "gui.button.profession.archer": "弓箭手", "gui.title.namebaby.male": "这是个男孩!", "gui.title.namebaby.female": "这是个女孩!", - "gui.title.namebaby": "给你的孩子命名:", + "gui.title.namebaby": "给您的孩子命名:", "gui.title.tombstone": "输入墓志铭:", "gui.title.editor": "村民编辑器", "gui.title.whistle": "呼叫家庭成员", @@ -555,12 +555,12 @@ "gui.label.following": "跟随", "gui.info.gift.line.1": "有礼物", "gui.info.gift.line.2": "(点击获取)", - "gui.interact.label.married": "与 %1$s 结婚", - "gui.interact.label.engaged": "与 %1$s 订婚", + "gui.interact.label.married": "与%1$s结婚", + "gui.interact.label.engaged": "与%1$s订婚", "gui.interact.label.promised": "与%1$s相爱了", "gui.interact.label.notmarried": "未婚", "gui.interact.label.widow": "寡妇", - "gui.interact.label.parents": "父母:%1$s 和 %2$s", + "gui.interact.label.parents": "父母:%1$s和%2$s", "gui.interact.label.parentUnknown": "未知", "gui.interact.label.gift": "有礼物。点击获取。", "gui.interact.label.giveGift": "选择一件物品并按下鼠标右键。", @@ -571,11 +571,11 @@ "gui.family_tree.title": "族谱", "gui.family_tree.label.deceased": "已死亡", "gui.family_tree.label.orphan": "孤儿", - "gui.family_tree.child_of_2": "%1$s 和 %2$s 的孩子", - "gui.family_tree.child_of_1": "%1$s 的孩子", + "gui.family_tree.child_of_2": "%1$s和%2$s的孩子", + "gui.family_tree.child_of_1": "%1$s的孩子", "gui.family_tree.child_of_0": "孤儿", "gui.villager_editor.selectClothing": "选择衣着", - "gui.villager_editor.randClothing": "随机服装", + "gui.villager_editor.randClothing": "随机衣着", "gui.villager_editor.randHair": "随机发型", "gui.villager_editor.selectHair": "选择发型", "gui.villager_editor.prev": "向前", @@ -588,13 +588,13 @@ "gui.villager_editor.neutral": "中性的", "gui.villager_editor.infection": "感染进度", "gui.villager_editor.age": "年龄", - "gui.villager_editor.page": "第 %1$s 页", - "gui.villager_editor.uuid_unknown": "UUID ‘%1$s’ 未知。", - "gui.villager_editor.uuid_known": "UUID ‘%1$s’(%2$s)已经被占用了。", - "gui.villager_editor.name_created": "名字 ‘%1$s’ 未知,已经创建了一个条目。", - "gui.villager_editor.name_unique": "名字 ‘%1$s’ 是唯一的,并且已被占用。", - "gui.villager_editor.name_not_unique": "名字 ‘%1$s’ 不是唯一的,请考虑使用 UUID 。", - "gui.villager_editor.list_of_ids": "已被占用的 UUID 是 %s$s 的。", + "gui.villager_editor.page": "第%1$s页", + "gui.villager_editor.uuid_unknown": "UUID‘%1$s’未知。", + "gui.villager_editor.uuid_known": "UUID‘%1$s’(%2$s已经被占用了。", + "gui.villager_editor.name_created": "名字‘%1$s’未知,已经创建了一个条目。", + "gui.villager_editor.name_unique": "名字‘%1$s’是唯一的,并且已被占用。", + "gui.villager_editor.name_not_unique": "名字‘%1$s’ 不是唯一的,请考虑使用UUID。", + "gui.villager_editor.list_of_ids": "已被占用的UUID是%s$s的。", "gui.villager_editor.relation.father": "父亲", "gui.villager_editor.relation.mother": "母亲", "gui.villager_editor.relation.spouse": "配偶", @@ -612,14 +612,14 @@ "gui.villager_editor.vanilla_skin": "原版", "gui.villager_editor.vanilla_skin.tooltip": "使用原版玩家皮肤模型,并关闭遗传功能。", "gui.villager_editor.customization_hint": "使用梳子、针与线与变性药水自定义形象。", - "gui.villager_editor.model_hint": "(你的这些定制只能应用于后代)", + "gui.villager_editor.model_hint": "(您的这些定制只能应用于后代)", "command.verify.success": "已验证!上限增加。", - "command.verify.failed": "糟糕,你提供的邮箱是错误的。", + "command.verify.failed": "糟糕,您提供的邮箱是错误的。", "command.verify.crashed": "出错了……", "command.no_permission": "这条指令对于玩家是禁用的。", - "command.only_one_destiny": "你已经决定好你的命运了。", - "command.no_mail": "你没有任何邮件。", - "blueprint.noBuilding": "你需要站在一栋建筑里", + "command.only_one_destiny": "您已经决定好自己的命运了。", + "command.no_mail": "您没有任何邮件。", + "blueprint.noBuilding": "您需要站在一栋建筑里", "blueprint.refreshed": "建筑已刷新!", "blueprint.scan.overlap": "建筑与已有建筑相重叠!", "blueprint.scan.block_limit": "建筑体积太大了!", @@ -636,30 +636,30 @@ "marriage.engaged": "订婚", "marriage.widow": "寡妇", "marriage.promised": "承诺", - "server.noProposals": "你没有积极的建议。", - "server.proposals": "你可以按以下提议积极行动:", - "server.sentProposal": "你已向 %1$s 发出了请求。", - "server.spouseNotPresent": "你的配偶不在服务器上。", + "server.noProposals": "您没有可用的建议。", + "server.proposals": "您可以按以下提议积极行动:", + "server.sentProposal": "您已向%1$s发出了请求。", + "server.spouseNotPresent": "您的配偶不在服务器上。", "server.procreationSuccessful": "生育成功!", - "server.procreationRequest": "%1$s 要求生育。如要接受,请在10秒内输入 /mca procreate 。", - "server.marriedToVillager": "当你与一位村民结婚,你将无法使用这一指令。", - "server.babyPresent": "你与此伴侣已拥有一个孩子。", - "server.notMarried": "如果你未结婚,你将无法生儿育女。", - "server.alreadyMarried": "由于你已结婚,因此,你无法进行求婚。", - "server.proposedToYourself": "你无法向自己求爱。", - "server.proposalSent": "你给 %1$s 的请求已发出!", - "server.proposedMarriage": "%1$s 正在向你求婚。如要接受,请输入 /mca accept %1$s!", - "server.noProposal": "%1$s 未向你求婚。", - "server.proposalRejectionSent": "你的拒绝申请已发出。", - "server.proposalRejected": "%1$s 拒绝了你的请求。", - "server.proposalAccepted": "%1$s 已接受了你的请求!", - "server.married": "现在,你与 %1$s 结婚了!", - "server.endMarriageNotMarried": "你还没有结婚。", - "server.endMarriage": "你与 %1$s 的婚姻关系已终止。", - "server.marriageEnded": "%1$s 已终止与你的婚姻关系。", - "server.playerNotCustomized.title": "自定义你的玩家形象!", + "server.procreationRequest": "%1$s要求生育。如要接受,请在10秒内输入 /mca procreate 。", + "server.marriedToVillager": "当您与一位村民结婚,您将无法使用这一指令。", + "server.babyPresent": "您与此伴侣已拥有一个孩子。", + "server.notMarried": "如果您未结婚,您将无法生儿育女。", + "server.alreadyMarried": "由于您已结婚,因此,您无法进行求婚。", + "server.proposedToYourself": "您无法向自己求爱。", + "server.proposalSent": "您给%1$s的请求已发出!", + "server.proposedMarriage": "%1$s正在向您求婚。如要接受,请输入 /mca accept%1$s!", + "server.noProposal": "%1$s未向您求婚。", + "server.proposalRejectionSent": "您的拒绝申请已发出。", + "server.proposalRejected": "%1$s拒绝了您的请求。", + "server.proposalAccepted": "%1$s已接受了您的请求!", + "server.married": "现在,您与%1$s结婚了!", + "server.endMarriageNotMarried": "您还没有结婚。", + "server.endMarriage": "您与%1$s的婚姻关系已终止。", + "server.marriageEnded": "%1$s已终止与您的婚姻关系。", + "server.playerNotCustomized.title": "自定义您的玩家形象!", "server.playerNotCustomized.description": "输入 /mca editor", - "server.destinyNotSet.title": "决定你的命运!", + "server.destinyNotSet.title": "决定您的命运!", "server.destinyNotSet.description": "输入 /mca destiny", "server.mail.title": "你有新的邮件!", "server.mail.description": "输入 /mca mail 来接收", @@ -676,41 +676,41 @@ "gene.voice": "嗓音", "gene.voice.tone": "音调", "gene.tooltip": "%s:%d%%", - "events.marry": "现在,%1$s 与 %2$s 结婚了!", - "events.baby": "%1$s 和 %2$s 生了一个宝宝!", - "events.restock": "%1$s 已经补货了!", - "events.arrival.inn": "%1$s 已经到达了客栈!", - "events.bountyHunters": "%1$s 派出了赏金猎人猎捕你!", - "events.bountyHuntersFinal": "%1$s 已经被消灭了,一大群赏金猎人试图替它报仇!", + "events.marry": "现在,%1$s与%2$s结婚了!", + "events.baby": "%1$s和%2$s生了一个宝宝!", + "events.restock": "%1$s已经补货了!", + "events.arrival.inn": "%1$s已经到达了客栈!", + "events.bountyHunters": "%1$s派出了赏金猎人猎捕你!", + "events.bountyHuntersFinal": "%1$s已经被消灭了,一大群赏金猎人试图替它报仇!", "advancement.mca.baby": "下一世代", "advancement.mca.baby.description": "得到你的第一个孩子。", "advancement.mca.best_friend": "生死之交", - "advancement.mca.best_friend.description": "与一位村民获得 200 互动值。", - "advancement.mca.excellent_gift": "总是我所爱之物", + "advancement.mca.best_friend.description": "与一位村民获得200互动值。", + "advancement.mca.excellent_gift": "正合我意", "advancement.mca.excellent_gift.description": "给予出一份完美的礼物。", "advancement.mca.family": "安家", "advancement.mca.family.description": "与一位村民组建家庭。", "advancement.mca.friend": "建立友情", - "advancement.mca.friend.description": "获得 50 互动值。", + "advancement.mca.friend.description": "获得50互动值。", "advancement.mca.grandparent": "在我年轻的时候……", "advancement.mca.grandparent.description": "拥有至少两代子嗣。", - "advancement.mca.grow_adult": "他们成长得如此之快", + "advancement.mca.grow_adult": "茁壮成长", "advancement.mca.grow_adult.description": "成功培养出一名有能力的成年人。", - "advancement.mca.grow_child": "好一个大麻烦", + "advancement.mca.grow_child": "调皮捣蛋", "advancement.mca.grow_child.description": "你的宝宝已经成为一个小孩了!", "advancement.mca.marriage": "至死不渝", "advancement.mca.marriage.description": "与一位村民订婚并结婚。", - "advancement.mca.monster": "你这个怪物!", + "advancement.mca.monster": "禽兽不如", "advancement.mca.monster.description": "你丢弃了你的孩子……你个怪物。", - "advancement.mca.root": "Minecraft 凡家物语", + "advancement.mca.root": "Minecraft凡家物语", "advancement.mca.root.description": "进入一个村庄,你的全新社交之旅即将来临!", - "advancement.mca.twins": "一对慈爱的父母(两个人的!)", + "advancement.mca.twins": "好事成双", "advancement.mca.twins.description": "生个双胞胎!", - "advancement.mca.kill_grim_reaper": "与死神抗争", + "advancement.mca.kill_grim_reaper": "战胜死亡", "advancement.mca.kill_grim_reaper.description": "击败死神。", "advancement.mca.scythe_kill": "成为死神", - "advancement.mca.scythe_kill.description": "用死神镰刀杀死一名村民。", - "advancement.mca.scythe_revive": "灵魂", + "advancement.mca.scythe_kill.description": "用死神镰刀杀死一位村民。", + "advancement.mca.scythe_revive": "一命换一命", "advancement.mca.scythe_revive.description": "使用充能后的死神镰刀复活一名村民。", "advancement.mca.staff_of_life": "生命之杖", "advancement.mca.staff_of_life.description": "使用生命之杖复活一位逝去的同伴。", @@ -726,7 +726,7 @@ "advancement.mca.bounty_hunter.description": "遭到赏金猎人的袭击。", "advancement.mca.chores": "日常家务", "advancement.mca.chores.description": "让你的孩子开始工作。", - "advancement.mca.baby_smelted": "你是个可怕的人!", + "advancement.mca.baby_smelted": "残忍至极", "advancement.mca.baby_smelted.description": "用非常规手段打掉一个孩子。", "advancement.mca.baby_sirben_smelted": "真理、正义与对毁灭的追求!", "advancement.mca.baby_sirben_smelted.description": "毫不留情地、不择手段地干掉那些邪教徒!", @@ -738,13 +738,13 @@ "advancement.mca.ancient_cultists.description": "探索瑟本的传说,打扰远古教徒的沉眠。", "advancement.mca.williams_fate": "英勇的努力!", "advancement.mca.williams_fate.description": "你的一个臣民在战争巢穴中与威廉对峙......", - "notify.spouseendedmarriage": "%1$s 已终止与你的婚姻关系。", - "notify.child.grownup": "%1$s 已长大成人!", + "notify.spouseendedmarriage": "%1$s已终止与你的婚姻关系。", + "notify.child.grownup": "%1$s已长大成人!", "notify.revival.disabled": "复活功能已被服务器管理员关闭。", "notify.trading.disabled": "交易功能已被服务器管理员关闭。", "notify.playerMarriage.disabled": "玩家婚配功能已被服务器管理员关闭。", "civil_registry.empty": "附近没有村庄", - "civil_registry.bounty_hunters": "赏金猎人已前去追捕 %s", + "civil_registry.bounty_hunters": "赏金猎人已前去追捕%s", "subtitle.mca.reaper.scythe_out": "召唤镰刀", "subtitle.mca.reaper.scythe_swing": "挥舞镰刀", "subtitle.mca.reaper.idle": "邪恶地笑", @@ -762,9 +762,9 @@ "subtitle.mca.villager.hurt": "村民:受伤", "subtitle.mca.villager.angry": "村民:生气", "subtitle.mca.villager.celebrate": "村民:庆祝", - "mca.ai_broken": "AI 故障, 请发送最新 .log 文件给开发者!", - "mca.limit.patreon": "你达到了你每小时的 AI 上限。点击这里打开提升上限的教程!", - "mca.limit.premium": "即使你已经订阅 PATREON ,你仍然达到了你每小时的 AI 上限!请休息一下吧。", + "mca.ai_broken": "AI故障, 请发送最新.log文件给开发者!", + "mca.limit.patreon": "你达到了你每小时的AI上限。点击这里打开提升上限的教程!", + "mca.limit.premium": "即使你已经订阅PATREON,你仍然达到了你每小时的AI上限!请休息一下吧。", "mca.limit.patreon.hover": "点击我!", "key.mca.skin_library": "打开皮肤库" } diff --git a/common/src/main/resources/assets/mca/lang/zh_tw.json b/common/src/main/resources/assets/mca/lang/zh_tw.json index 54b1e6908f..cf23c03e9d 100644 --- a/common/src/main/resources/assets/mca/lang/zh_tw.json +++ b/common/src/main/resources/assets/mca/lang/zh_tw.json @@ -1,5 +1,5 @@ { - "itemGroup.mca.mca_tab": "Minecraft 村莊奇遇", + "itemGroup.mca.mca_tab": "Minecraft村莊奇遇", "entity.minecraft.villager.mca.none": "閑雜人員", "entity.minecraft.villager.mca.outlaw": "違法人員", "entity.minecraft.villager.mca.jeweler": "珠寶商人", diff --git a/common/src/main/resources/assets/mca_books/lang/af_za.json b/common/src/main/resources/assets/mca_books/lang/af_za.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/af_za.json +++ b/common/src/main/resources/assets/mca_books/lang/af_za.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/ar_sa.json b/common/src/main/resources/assets/mca_books/lang/ar_sa.json index 70d9d10c2e..6921959a22 100644 --- a/common/src/main/resources/assets/mca_books/lang/ar_sa.json +++ b/common/src/main/resources/assets/mca_books/lang/ar_sa.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/be_by.json b/common/src/main/resources/assets/mca_books/lang/be_by.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/be_by.json +++ b/common/src/main/resources/assets/mca_books/lang/be_by.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/cs_cz.json b/common/src/main/resources/assets/mca_books/lang/cs_cz.json index 4360e0a2ce..895d7f4212 100644 --- a/common/src/main/resources/assets/mca_books/lang/cs_cz.json +++ b/common/src/main/resources/assets/mca_books/lang/cs_cz.json @@ -12,7 +12,7 @@ "mca.books.death.9": "když udeříš smrtelný zásah vypaří se zpět do nicoty a za sebou nechá svou kosu. kosa, chladná na dotek, mocná to zbraň. vybij vesnici k nabití kosy pak přenes tyto duše na hrob.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry Knihovník", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Karel stavitel", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/de_de.json b/common/src/main/resources/assets/mca_books/lang/de_de.json index 9f6b3df668..3101288b49 100644 --- a/common/src/main/resources/assets/mca_books/lang/de_de.json +++ b/common/src/main/resources/assets/mca_books/lang/de_de.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lDie Sense§r§f\nSobald du den tödlichen Schlag landest, fällt er zurück in die Leere und lässt seine Sense zurück. Die Sense, welche das Gefühl von Eiskälte beim Berühren vermittelt, ist ein mächtiges Werkzeug. Schlage die Dorfbewohner eines Dorfes nieder, um die Sense aufzuladen und die dann gespeicherten Seelen auf den Grabstein zu übertragen.", "mca.books.death.10": "§f§lDie Sense2§r§f\nDein gefallener Kamerad wird als Untoter wieder auferstehen, da die Zeit unter der Erde Spuren hinterlassen hat. Sie können ihn wahrscheinlich irgendwie heilen, mein Freund Richard schrieb einmal ein Buch über dieses Thema.", "mca.books.death.11": "§f§lStab des Leben§r§f\nAber es gibt eine andere, friedlichere Lösung. Der Stab des Lebens! Anstelle von armen Seelen nutzt er die konzentrierte Macht der Nethersterne, um wiederzubeleben.", - "mca.books.death.12": "§f§lStab des Lebens 2§r§f\nDer Stab ist ein mächtiger Gegenstand, der bis zu 5 Personen wiederbeleben kann. Im Gegensatz zu der Sense, ist sie sogar in der Lage, jede Krankheit von der wiederbelebten Person zu heilen.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry der Bibliothekar", "mca.books.romance.0": "§lEinführung§r\nInteraktion ist der Schlüssel zum Aufbau von Beziehungen und zur Suche nach der Liebe deines Lebens. Ich habe dieses Buch gerne geschrieben, um mein Wissen über Interaktion, Liebe und leider, Scheidung, für jeden, der einen kleinen Anstoß in die richtige Richtung braucht.", "mca.books.romance.1": "§lPersönlichkeit§r\nWenn du mit einem Dorfbewohner sprichst, wirst du bemerken, dass er eine Persönlichkeit hat. Achte sehr darauf! Einige Leute mögen mehr Witze, andere lieben eine Umarmung. Einige Persönlichkeiten sind offensichtlicher als andere. Zeige mit der Maus auf die Persönlichkeit, um einige Hinweise zu sehen.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnungen§r\nDorfbewohner sind sehr anfällig für Infektionen, verringere das Infektionsrisiko, indem du ein Krankenhaus baust!", "mca.books.blueprint.author": "Carl der Baumeister", "mca.books.blueprint.0": "§fWir Dorfbewohner können wirtschaften. Wir können Werkzeuge und Rüstungen schmieden. Wir können lesen, brauen, verzaubern und vieles mehr. Aber es gibt eine Sache, für die uns das Wissen fehlt: Bauen!", - "mca.books.blueprint.1": "§fAuf deiner Reise triffst du wahrscheinlich auf mehrere kleine, unpraktische und kaum dekorierte Dörfer. Wie sollte sich ein Dorf jemals zu etwas Größerem entwickeln?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nDeshalb wandere ich über den Planeten und helfe Dörfern, die ich auf meinen Reisen treffe. Und du kannst das auch! Bastle dir mit blauer Farbe und etwas Papier einen Bauplan und sieh dir den Katalog der Gebäude an, die jedes Dorf braucht, aber nicht selbst bauen kann.", "mca.books.blueprint.3": "§f§lAnforderungen§r§f\nEin Gebäude benötigt normalerweise eine Mindestgröße. Du kannst nicht alles in einen Schuppen stecken. Dann musst du sicherstellen, dass alle Blockanforderungen erfüllt sind.", "mca.books.blueprint.4": "§f§lFertig§r§f\nSobald das erledigt ist, drücke 'Gebäude hinzufügen' und beobachte, wie Dorfbewohner es in das Dorf integrieren.", - "mca.books.blueprint.5": "§f§lRänge§r§f\nAber du musst nicht selbstlos sein! Je weiter dein Dorf ist, desto höher wird dein Rang. Jeder träumte davon, ein edles Leben zu leben? Ein Bürgermeister? Oder sogar ein König?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lukas der Anbeter", "mca.books.cult_0.0": "Vor langer Zeit kam ein Wesen aus einer anderen Welt auf diesen Planeten und verbreitete seine Weisheiten, während es über das Land reiste… Dieses Wesen wurde Sirben der 99 genannt.", "mca.books.cult_0.1": "Trotz guter Absichten war sein Wissen für unseren Verstand zu groß, um es zu begreifen. Einige Menschen hörten nicht auf ihn, aber diejenigen, die es taten, wurden verändert, um nie wieder dieselben zu sein…", diff --git a/common/src/main/resources/assets/mca_books/lang/el_gr.json b/common/src/main/resources/assets/mca_books/lang/el_gr.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/el_gr.json +++ b/common/src/main/resources/assets/mca_books/lang/el_gr.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/en_pt.json b/common/src/main/resources/assets/mca_books/lang/en_pt.json index 3c20052e8b..68fdf5a6e4 100644 --- a/common/src/main/resources/assets/mca_books/lang/en_pt.json +++ b/common/src/main/resources/assets/mca_books/lang/en_pt.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce ye land the lethal hit, he falls back into the void 'n leaves his Scythe behind. The Scythe, feelin' ice cold on touch, be a mighty tool. Strike down a villager t' charge the scythe, then transfer the stored soul t' the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut yer matey will rise infected, as the time underground left some marks. Ye can like enough heal 'im somehow, me bucko Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff O' Life§r§f\nHowe'er, thar be another, more peaceful solution. The Staff o' Life! Instead o' a poor soul, it uses the Nether Stars concentrated power t' revive.", - "mca.books.death.12": "§f§lStaff O' Life 2§r§f\nThe Staff be a powerful item that can revive up t' 5 scallywags. Unlike the Scythe, 'tis even capable o' erasin' any sickness from the revived scallywag.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction be key t' buildin' relationships 'n findin' the love o' yer life. I've happily written this book in order t' share me knowledge o' interaction, love, 'n, unfortunately, divorce, t' anyone who may needs a wee push in starb'rd direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speakin' t' any villager, ye'll notice they 'ave a personality. Pay close attention t' this! Some scallywags like jokes more, some love a hug. Some personalities are more obvious than others. Hover o'er the personality t' see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are mighty susceptible t' infection, decrease the risk o' infection by buildin' an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools 'n armor. We can read, brew, enchant 'n so much more. But thar be one thing we lack the knowledge fer: construction!", - "mca.books.blueprint.1": "§fOn yer journey, ye prolly come across several villages full o' wee, impractical, 'n barely decorated. How shall a village ever evolve into somethin' bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I be wanderin' across the planet, helpin' villages I encounter on me travels. 'n ye could too! Craft yourself a blueprint usin' blue dye 'n paper 'n check out the catalog o' buildings every village needs but can nah build on thar owns.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. Ye can nah jus' plug everythin' into a shed. Then ye 'ave t' make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Buildin'' 'n watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut ye don't needs t' be selfless! The more advanced yer village be, the higher yer rank gets. Every dreamed t' live a life o' a noble? A mayor? Or even a Cap'n?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a bein' from another world came t' this planet, sharin' its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much fer our minds t' comprehend, some scallywags didn' listen, but those who did we be changed, t' ne'er be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/en_us.json b/common/src/main/resources/assets/mca_books/lang/en_us.json index 757184e899..d393c61c57 100644 --- a/common/src/main/resources/assets/mca_books/lang/en_us.json +++ b/common/src/main/resources/assets/mca_books/lang/en_us.json @@ -12,7 +12,7 @@ "mca.books.death.9" : "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10" : "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11" : "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12" : "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12" : "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author" : "Gerry the Librarian", "mca.books.romance.0" : "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", @@ -53,11 +53,11 @@ "mca.books.blueprint.author" : "Carl the Builder", "mca.books.blueprint.0" : "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1" : "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1" : "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2" : "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3" : "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4" : "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5" : "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5" : "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author" : "Lucas the Devotee", "mca.books.cult_0.0" : "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", diff --git a/common/src/main/resources/assets/mca_books/lang/es_cl.json b/common/src/main/resources/assets/mca_books/lang/es_cl.json index 1bcadb5439..089bfdf0cc 100644 --- a/common/src/main/resources/assets/mca_books/lang/es_cl.json +++ b/common/src/main/resources/assets/mca_books/lang/es_cl.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lLa Guadaña§r§f\nUna vez que le das el golpe final, caera al vacío y dejara atrás su guadaña. La guadaña, que es fria al tacto, es una herramienta poderosa. Golpea a un aldeano/a para cargar la guadaña y transfiere el alma almacenada a una tumba.", "mca.books.death.10": "§f§lLa Guadaña 2§r§f\nPero tu amigo se levantará infectado, ya que el tiempo enterrado dejó marcas en el, probablemente puedas curarlo de alguna manera, mi amigo Richard escribió un libro sobre el tema.", "mca.books.death.11": "§f§lBastón De Vida§r§f\nSin embargo, hay otra solución más pacífica. ¡El Bastón de la Vida! En vez de usar una pobre alma, utiliza el poder concentrado de las Estrellas de Nether para revivir.", - "mca.books.death.12": "§f§lBastón de la Vida 2§r§f\nEl Baston es un poderoso objeto que puede revivir hasta a 5 personas. A diferencia de la Guadaña, es capaz incluso de quitar cualquier enfermedad de la persona revivida.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry el bibliotecario", "mca.books.romance.0": "§lIntroducción§r\nLa interacción es la clave para construir relaciones y encontrar el amor de tu vida. Con mucho gusto he escrito este libro para compartir mis conocimientos sobre la interacción, el amor y, por desgracia, el divorcio, con cualquiera que necesite un empujoncito en la dirección correcta.", "mca.books.romance.1": "§Personalidades\nAl hablar con cualquier aldeano/a, notaras de que tienen una personalidad ¡Presta mucha atención a esto! A algunos les gustan más las bromas, a otros los abrazos. Algunas personalidades son más obvias que otras. Pasa el mouse por encima de la personalidad para ver algunas pistas.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lAdvertencias§r\nLos aldeanos son altamente susceptibles a las infecciones, ¡disminuye el riesgo de infeccion construyendo una enfermeria!", "mca.books.blueprint.author": "Carl el constructor", "mca.books.blueprint.0": "§Los aldeanos podemos Cultivar. Podemos forjar herramientas y armaduras. Podemos leer, destilar, encantar y mucho mas. Pero hay una cosa de la que carecemos de conocimiento: ¡la construccion!", - "mca.books.blueprint.1": "§fEn tu viaje, probablemente te encuentres con varias aldeas llenas de pequeñas, impracticas y apenas decoradas casas ¿Como puede evolucionar una aldea hasta convertirse en algo mas grande?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lPlanos§r§f\nes por eso que recorro el planeta, ayudando a las aldeas que encuentro en mis viajes. ¡y tu tambien podrías hacerlo! Hazte un plano con tinte azul y papel y echa un vistazo al catalogo de edificios que toda aldea necesita pero que no puede construir por si mismas.", "mca.books.blueprint.3": "§f§lRequisitos§r§f\nLos edificios suelen exigir un tamaño minimo. Tu no puedes simplemente meter todo en un cobertizo. Entonces tienes que asegurarte de que todos los requisitos de bloques se cumplan.", "mca.books.blueprint.4": "§f§lPara finalizar§r§f\nUna vez hecho, pulsa \"Añadir edificio\" y observa como los aldeanos lo integran a la aldea.", - "mca.books.blueprint.5": "§f§lRangos§r§f\n¡Pero no hace falta que seas solidario! Cuanto mas avanzada sea tu aldea, más alto sera tu rango ¿Has soñado alguna vez con vivir una vida de un noble? ¿Un alcalde? ¿O incluso un Rey?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas el Devoto", "mca.books.cult_0.0": "Hace mucho tiempo, un ser de otro mundo vino a este planeta, compartiendo su sabiduria al recorrer la tierra A esta entidad se le llamaba Sirben el 99.", "mca.books.cult_0.1": "A pesar de las buenas intenciones, su conocimiento era demasiado para que nuestras mentes lo comprendieran, algunos no escucharon, pero los que lo hicieron, cambiaron para no volver a ser los mismos nunca mas", diff --git a/common/src/main/resources/assets/mca_books/lang/es_es.json b/common/src/main/resources/assets/mca_books/lang/es_es.json index 9032241794..3225e4ef9d 100644 --- a/common/src/main/resources/assets/mca_books/lang/es_es.json +++ b/common/src/main/resources/assets/mca_books/lang/es_es.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lLa Guadaña§r§f\nUna vez que des el golpe letal, la Parca caerá de nuevo al vacío y dejará su Guadaña. La Guadaña, aunque fría al tacto, es una herramienta poderosa. Golpea a un aldeano o aldeana para cargar la Guadaña con un alma, luego transfiere el alma almacenada a una tumba.", "mca.books.death.10": "§f§lLa Guadaña 2§r§f\nPero tu amigo se levantará infectado, ya que el tiempo enterrado dejó marcas en el, probablemente puedas curarlo de alguna manera, mi amigo Richard escribió un libro sobre el tema.", "mca.books.death.11": "§f§lBastón de la vida§r§f \nSin embargo hay otra solución más pacífica. ¡El Bastón de la Vida! En lugar de usar una pobre alma, usa el poder concentrado de la estrella del Nether para revivir.", - "mca.books.death.12": "§f§lBastón de la Vida 2§r§f \nEl bastón es un objeto poderoso que puede revivir hasta 5 personas. A diferencia de la Guadaña, es capaz incluso de quitar cualquier enfermedad de la persona reanimada.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry el bibliotecario", "mca.books.romance.0": "§lIntroducción§r \nLa interacción es clave para construir relaciones y encontrar al amor de tu vida. Afortunadamente he escrito un libro para poder compartir mis conocimientos acerca de la relaciones, el amor y desafortunadamente el divorcio, para cualquiera que pueda necesitar un empujón hacia la dirección correcta.", "mca.books.romance.1": "§lPersonalidades§r \nAl hablar con cualquier aldeano o aldeana, notarás que tienen una personalidad. ¡Presta mucha atención a esto! Algunos(a) les gustarán más los chistes, a otros los abrazos. Algunas personalidades son más obvias que otras, echa un vistazo a su personalidad para conocer más pistas.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§Advertencias§r\nLos aldeanos son muy susceptibles a las infecciones, ¡disminuye el riesgo de infección construyendo una enfermería!", "mca.books.blueprint.author": "Carl el constructor", "mca.books.blueprint.0": "§fLos aldeanos podemos cultivar, podemos forjar herramientas, armaduras, leer, destilar, encantar y mucho más. Pero hay una cosa para la que carecemos del conocimiento: la construcción!", - "mca.books.blueprint.1": "§fEn tu viaje, probablemente te encuentras con varias aldeas llenas de casas pequeñas, imprácticas y apenas decoradas. ¿Cómo debería un pueblo evolucionar en algo más grande?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lPlanos§r§f\nPor eso he estado vagando, ayudando a las aldeas por todo el mundo. ¡Y también podrás hacerlo tú! Crea un plano usando tinte azul y papel, echa un vistazo al catálogo de edificios que cada pueblo necesita, pero que no puede construir por su cuenta.", "mca.books.blueprint.3": "§f§lRequerimientos§r§f\nUn edificio normalmente requiere un tamaño mínimo. No puedes ponerlo todo en un cobertizo. Entonces tienes que asegurarte de que todos los requisitos del bloque sean cumplidos.", "mca.books.blueprint.4": "§f§lPara finalizar§r§f\nUna vez hecho, pulsa \"Añadir edificio\" y observa cómo los aldeanos lo integran en la aldea.", - "mca.books.blueprint.5": "§f§lRangos§r§f\n¡Pero no necesitas ser únicamente solidario! Cuanto más avanzado sea tu aldea, mayor será tu rango. ¿Todos soñaron con vivir una vida de noble? ¿Un alcalde? ¿O incluso un rey?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas el devoto", "mca.books.cult_0.0": "Hace mucho tiempo, un ser de otro mundo vino a este lugar, compartiendo su sabiduría mientras recorre las tierras… . Esta entidad se llamaba Sirven el 99.", "mca.books.cult_0.1": "A pesar de sus buenas intenciones, su conocimiento era demasiado para que nuestras mentes lo comprendieran, algunas personas no lo escucharon, pero las que lo hicieron cambiaron, para jamás volver a ser las mismas…", diff --git a/common/src/main/resources/assets/mca_books/lang/esan.json b/common/src/main/resources/assets/mca_books/lang/esan.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/esan.json +++ b/common/src/main/resources/assets/mca_books/lang/esan.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/fa_ir.json b/common/src/main/resources/assets/mca_books/lang/fa_ir.json index 7b7ace48f1..b9032bf97b 100644 --- a/common/src/main/resources/assets/mca_books/lang/fa_ir.json +++ b/common/src/main/resources/assets/mca_books/lang/fa_ir.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/fi_fi.json b/common/src/main/resources/assets/mca_books/lang/fi_fi.json index 3a56749654..5d7f4c71ad 100644 --- a/common/src/main/resources/assets/mca_books/lang/fi_fi.json +++ b/common/src/main/resources/assets/mca_books/lang/fi_fi.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/fr_fr.json b/common/src/main/resources/assets/mca_books/lang/fr_fr.json index 4ef0ee39f3..15907c701c 100644 --- a/common/src/main/resources/assets/mca_books/lang/fr_fr.json +++ b/common/src/main/resources/assets/mca_books/lang/fr_fr.json @@ -48,7 +48,7 @@ "mca.books.infection.5": "§lAvertissements§r\nLes villageois sont très sensibles aux infections, diminuez le risque d'infection en construisant une infirmerie !", "mca.books.blueprint.author": "Carl le Bâtisseur", "mca.books.blueprint.0": "§fNous, villageois, pouvons cultiver. Nous pouvons forger des outils et des armures. Nous pouvons lire, infuser, enchanter et bien plus encore. Mais il y a une chose pour laquelle nous manquons de connaissances : la construction!", - "mca.books.blueprint.1": "§fAu cours de votre voyage, vous rencontrerez probablement plusieurs villages petits, impraticables et à peine décorés. Comment un village devrait-il évoluer pour devenir quelque chose de plus grand?", + "mca.books.blueprint.1": "§fAu cours de votre voyage, vous rencontrerez probablement plusieurs petits villages, impraticables et à peine décorés. Comment un village devrait-il évoluer pour devenir quelque chose de plus grand ?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nC'est pourquoi je me promène sur la planète, en aidant les villages que j'encontre au cours de mes voyages. Et tu pourrais en faire autant ! Crafte-toi un plan à l'aide de colorants bleus et de papier et consulte le catalogue des bâtiments dont chaque village a besoin mais qu'il ne peut pas construire lui-même.", "mca.books.blueprint.3": "§f§lPrérequis§r§f\nUn bâtiment nécessite généralement une taille minimale. Vous ne pourrez pas simplement tout mettre dans une cabane. Ensuite, vous devrez vous assurer que tous les blocs requis soient présents.", "mca.books.blueprint.4": "§f§lTerminer§r§f\nUne fois terminé, cliquez sur 'Ajouter Bâtiment' et regardez comment les villageois l'intègrent dans le village.", diff --git a/common/src/main/resources/assets/mca_books/lang/hu_hu.json b/common/src/main/resources/assets/mca_books/lang/hu_hu.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/hu_hu.json +++ b/common/src/main/resources/assets/mca_books/lang/hu_hu.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/id_id.json b/common/src/main/resources/assets/mca_books/lang/id_id.json index 6b855035fa..1146643d9a 100644 --- a/common/src/main/resources/assets/mca_books/lang/id_id.json +++ b/common/src/main/resources/assets/mca_books/lang/id_id.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lSabit Besar§r§f\nSetelah kamu melakukan serangan mematikan, dia jatuh kembali ke dalam kekosongan dan meninggalkan Sabitnya. Sabit, yang terasa sedingin es saat disentuh, adalah alat yang sangay hebat. Matikanlah seorang penduduk desa untuk mengisi sabit, lalu pindahkan jiwa yang tersimpan ke suatu batu nisan.", "mca.books.death.10": "§f§lSabit Besar 2§r§f\nTetapi teman kamu akan bangkit terinfeksi, karena waktunya di bawah tanah meninggalkan beberapa tanda. Kamu mungkin bisa menyembuhkannya dengan suatu cara, temanku Richard pernah menulis buku tentang topik ini.", "mca.books.death.11": "§f§lTongkat Kehidupan§r§f\nNamun, ada solusi lain, solusi yang lebih damai. Tongkat Kehidupan! Alih-alih jiwa yang malang, ia menggunakan kekuatan terkonsentrasi Nether Stars untuk menghidupkan kembali.", - "mca.books.death.12": "§f§lTongkat Kehidupan 2§r§f\nTongkat tersebut adalah item sangat kuat yang dapat menghidupkan kembali hingga 5 orang. Berbeda dengan Sabit Besar, ia bahkan mampu menghapus penyakit apa pun dari orang yang dihidupkan kembali.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry si Pustakawan", "mca.books.romance.0": "§lIntroduksi§r\nInteraksi adalah kunci untuk membangun hubungan dan menemukan cinta dalam hidupmu. Aku menulis buku ini dengan senang hati untuk membagikan pengetahuan aku tentang interaksi, cinta, dan, sayangnya, perceraian, kepada siapa saja yang mungkin membutuhkan sedikit dorongan ke arah yang benar.", "mca.books.romance.1": "§lPersonalitast§r\nSaat berbicara dengan penduduk desa mana pun, Anda akan melihat bahwa mereka memiliki sifat-sifat unik. Perhatikan ini dengan baik! Beberapa orang lebih menyukai lelucon, beberapa menyukai pelukan. Beberapa personalitas lebih jelas daripada yang lain. Arahkan kursor ke personalitas untuk melihat beberapa petunjuk.", @@ -25,7 +25,7 @@ "mca.books.romance.8": "§lBercerai§r\nSayangnya, terkadang berpisah dari pasanganmu dan melanjutkan hidup adalah yang paling baik. Untuk melakukan ini, carilah seorang ulama untuk mendapatkan surat cerai. Setelah itu bicara dengan pasanganmu.", "mca.books.romance.9": "§lBercerai pt. 2§r\nAtau kamu juga dapat mengakhiri pernikahan tanpa surat cerai, tetapi dia tidak akan bahagia.", "mca.books.family.author": "Leanne si Ulama", - "mca.books.family.0": "Anak-anak, adalah masa depan kita! Pastikan untuk memiliki sebanyak mungkin yang kamu bisa.§rKamu tidak hanya bisa mengalami kegembiraan membesarkan anak, tetapi setelah mereka melewati tahap bayi, tempatlah mereka untuk bekerja!", + "mca.books.family.0": "Anak-anak, adalah masa depan! Pastikan kalian memiliki sebanyak-banyaknya.§rSelain akan merasakan bahagianya membesarkan anak, sesudah mereka melewati masa bayi, libatkan mereka bekerja!", "mca.books.family.1": "§lBayi§r\nKetika kamu sudah menikah, cukup dekati pasanganmu dan tawarkan untuk 'Berkembang biak'. Setelah suatu dansa singkat, kamu akan bangga memiliki bayi laki-laki atau perempuan (atau bahkan dua-duanya)!", "mca.books.family.2": "§lPertumbuhan§r\nBayi membutuhkan waktu untuk tumbuh, pastikan untuk menggendongnya sampai mereka siap, atau berikan kepada pasanganmu untuk mengurus. Setelah bayi siap untuk tumbuh, kamu dapat meletakkannya di lantai dan dia akan tumbuh menjadi seorang anak!", "mca.books.family.3": "§lMasa Remaja§r\nAnak-anak akan tumbuh perlahan. Namun, sifat magis Apel Emas dikatakan dapat mempercepat pertumbuhan suatu anak. Aku sendiri belum mencoba ini.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl si Pembangun", "mca.books.blueprint.0": "§fKita penduduk desa bisa bertani. Kita bisa menempa perkakas dan baju besi. Kita bisa membaca, menyeduh, mengenchant dan banyak lagi. Tapi ada satu hal yang kita kurang pengetahuan: konstruksi!", - "mca.books.blueprint.1": "§fDalam perjalananmu, kamu mungkin menemukan beberapa desa penuh dengan rumah-rumah yang kecil, tidak praktis, dan nyaris tidak dihias. Bagaimana seharusnya suatu desa berevolusi menjadi sesuatu yang lebih besar?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lSyarat-Syarat§r§f\nSebuah bangunan biasanya membutuhkan suatu ukuran minimal. Kamu tidak bisa begitu saja memasukkan semuanya ke dalam gudang. Setelah itu kamu harus memastikan bahwa semua persyaratan blok telahterpenuhi.", "mca.books.blueprint.4": "§f§lMenyelesaikan§r§f\nJika sudah selesai, tekan 'Tambahkan Bangunan' dan lihat bagaimana penduduk-penduduk desa mengintegrasikannya ke dalam desa.", - "mca.books.blueprint.5": "§f§lPeringkat§r§f\nTapi kamu tidak perlu menjadi dermawan! Semakin maju desamu, semakin tinggi peringkatmu. Pernah bermimpi untuk menjalani hidup yang mulia? Seorang walikota? Atau bahkan seorang raja?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/it_it.json b/common/src/main/resources/assets/mca_books/lang/it_it.json index 305fe826b7..5c6d6bab2b 100644 --- a/common/src/main/resources/assets/mca_books/lang/it_it.json +++ b/common/src/main/resources/assets/mca_books/lang/it_it.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lLa Falce§r§f\nUna volta messo a segno il colpo letale, cade nel vuoto e si lascia alle spalle la Falce. La Falce, fredda come il ghiaccio al tatto, è uno strumento potente. Colpisci un villico per caricare la falce, poi trasferisci l'anima immagazzinata nella lapide.", "mca.books.death.10": "§f§lLa Falce 2§r§f\nMa il tuo amico risorgerà infetto, poiché il tempo trascorso sottoterra ha lasciato dei segni. Probabilmente puoi guarirlo in qualche modo, il mio amico Richard una volta ha scritto un libro su questo argomento.", "mca.books.death.11": "§f§lScettro della Vita§r§f\nTuttavia, esiste un'altra soluzione più pacifica. Lo Scettro della Vita! Invece di una povera anima, utilizza il potere concentrato delle Stelle del Nether per rianimare.", - "mca.books.death.12": "§f§lScettro della Vita 2§r§f\nLo scettro è un potente oggetto che può rianimare fino a 5 persone. A differenza della Falce, è anche in grado di cancellare qualsiasi malattia dalla persona rianimata.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry il Bibliotecario", "mca.books.romance.0": "§lIntroduzione§r\nL'interazione è fondamentale per costruire relazioni e trovare l'amore della tua vita. Ho scritto felicemente questo libro per condividere la mia conoscenza dell'interazione, dell'amore e, purtroppo, del divorzio, a chiunque abbia bisogno di una piccola spinta nella giusta direzione.", "mca.books.romance.1": "§lPersonalità§r\nQuando parli con un villico, noterai che ha una personalità. Presta molta attenzione a questo aspetto! Alcune persone amano di più gli scherzi, altre amano gli abbracci. Alcune personalità sono più evidenti di altre. Passa il mouse sulla personalità per vedere alcuni suggerimenti.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl il costruttore", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/ja_jp.json b/common/src/main/resources/assets/mca_books/lang/ja_jp.json index f217d15588..79c4f794a6 100644 --- a/common/src/main/resources/assets/mca_books/lang/ja_jp.json +++ b/common/src/main/resources/assets/mca_books/lang/ja_jp.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§l死神の鎌§r§f\n死神に致命傷を与えると、奴は鎌を落とし、奈落へと帰っていく。氷のように冷たい死神の鎌は、強力な道具である。誰か他の村人を鎌で倒すと、魂を刈り取ることができる。その魂を、墓石に移すのだ。", "mca.books.death.10": "§f§l死神の鎌 2§r§f\nしかし、君の友人は地下で過ごした時間のために、感染した状態で目覚めるだろう。治す方法はある。確か我が友リチャードがこのことについて本を書いていたと思う。", "mca.books.death.11": "§f§l生命の杖§r§f\n罪なき村人の命が惜しいなら、もっと平和的な解決方法もある。生命の杖だ。 これはネザースターの凝縮された力を使って君の友人を蘇生する。", - "mca.books.death.12": "§f§l生命の杖 2§r§f\nこの杖は5人まで蘇生できる強力な道具である。死神の鎌と違って、生き返った人物の病をも治癒してくれる。", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/ko_kr.json b/common/src/main/resources/assets/mca_books/lang/ko_kr.json index 9ce53b6323..fe0bbdcaa1 100644 --- a/common/src/main/resources/assets/mca_books/lang/ko_kr.json +++ b/common/src/main/resources/assets/mca_books/lang/ko_kr.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§l큰낫§r§f\n그대가 사신에게 치명상을 입혔다면, 그는 큰낫을 남겨둔 채 공허로 돌아간다오. 만지면 얼음처럼 차갑게 느껴지는 큰낫은 전지전능한 도구요. 큰낫을 충전하기 위해 주민을 벤 뒤에, 거둬들인 영혼을 묘비로 옮기시오.", "mca.books.death.10": "§f§l큰낫 제 2장§r§f\n하지만 지하 세계가 남긴 흔적들로 인해 그대의 친구는 감염된 상태로 되살아날 것이니, 아마도 그대는 어떻게든 그를 치료할 수 있을 것이오. 나의 친구 리처드가 이 주제에 대해 책을 쓴 적이 있소.", "mca.books.death.11": "§f§l생명의 지팡이§r§f\n그러나, 좀 더 평화로운 해결책이 하나 더 있소. 생명의 지팡이! 그것은 죽은 자를 부활시키기 위해 불쌍한 영혼 대신 네더의 별에 축적된 힘을 사용한다오.", - "mca.books.death.12": "§f§l생명의 지팡이 제 2장§r§f\n생명의 지팡이는 최대 5명까지 부활시킬 수 있는 강력한 아이템이오. 큰낫과는 다르게, 심지어 되살아난 주민의 어떤 질병이라도 제거하는 능력을 갖고 있소.", + "mca.books.death.12": "§f§l생명의 지팡이 2§r§f\n이 지팡이는 사람을 되살릴 수 있는 매우 강력한 지팡이입니다. 낫과는 달리, 되살아난 사람의 감염을 제거합니다.", "mca.books.romance.author": "사서 '제리'", "mca.books.romance.0": "§l소개§r\n상호작용은 인간관계를 형성하고 일생의 사랑을 찾도록 이끌어 주는 열쇠입니다. 저는 올바른 방향으로 나아가는 데 있어 아마도 약간의 도움이 필요할 사람들을 위해 상호작용, 사랑 그리고 불행히도 이혼에 대한 저의 지식을 나누고 싶어 기꺼이 이 책을 썼습니다.", "mca.books.romance.1": "§l성격§r\n주민들과 이야기를 나누다 보면, 그들이 각자의 성격을 갖고 있음을 알 수 있습니다. 이것을 주목해 보세요. 어떤 이들은 농담을, 어떤 이들은 포옹을 더 좋아합니다. 몇몇 성격들은 다른 성격들보다 더 뚜렷합니다. 각 성격들 위에 마우스 커서를 올리면 몇 가지 힌트를 볼 수 있습니다.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§l경고§r\n주민들은 감염에 매우 취약합니다, 진료소를 짓는 것으로 감염의 위험을 줄이세요!", "mca.books.blueprint.author": "건축가 '칼'", "mca.books.blueprint.0": "§f우리 주민들은 농사를 지을 수 있습니다. 우린 도구와 갑옷을 제련할 수 있고, 읽고 양조를 하며, 마법 부여 등등의 일을 할 수 있습니다. 그러나 우리에게 한 가지 부족한 지식이 있으니, 그것은 건설입니다!", - "mca.books.blueprint.1": "§f당신이 여행을 하다 보면, 아마도 작고 비실용적이며, 거의 꾸며지지 않은 몇몇 마을들을 마주하게 될 것입니다. 어떻게 마을을 더 크게 발전시킬 수 있을까요?", + "mca.books.blueprint.1": "§f당신의 여정에서, 당신은 아마도 작고, 비실용적이며, 장식되지 않은 집들로 가득 찬 여러 마을들을 보게 될 겁니다. 어떻게 마을을 더 크게 만들 수 있을까요?", "mca.books.blueprint.2": "§f§l청사진§r§f\n바로 그것이 제가 이 행성을 돌아다니면서 여행을 하는 동안 마주치는 마을들을 돕는 이유입니다! 그리고 당신도 할 수 있습니다! 푸른색 염료와 종이로 청사진을 만드신 뒤 각 마을이 필요로 하지만 스스로 지을 수 없는 건물들의 목록을 확인하세요.", "mca.books.blueprint.3": "§f§l요구 사항§r§f\n건물들은 일반적으로 필요로 하는 최소한의 크기가 있습니다. 그저 작업 창고에 모든 것을 쑤셔 박아넣어서는 안 됩니다. 당신은 모든 블록의 요구 사항을 충족시켰는지 확인해야 합니다.", "mca.books.blueprint.4": "§f§l완성§r§f\n작업을 마치셨다면, '건물 추가'를 누르고 주민들이 그 건물에서 어떻게 살아가는지 지켜보세요.", - "mca.books.blueprint.5": "§f§l계급§r§f\n하지만 당신이 사심 없이 일할 필요는 없습니다! 당신의 마을이 발전할수록 당신의 계급은 높아집니다. 모두들 귀족,시장, 심지어는 왕의 삶을 살길 꿈꾸지 않았나요?", + "mca.books.blueprint.5": "§f§l계급§r§f\n하지만 이타적이실 필요는 없습니다! 당신의 마을이 발전할수록, 당신의 계급은 높아집니다. 귀족이나 시장, 심지어는 왕의 삶을 사는걸 꿈꿔본 적 있나요?", "mca.books.cult_0.author": "광신자 '루카스'", "mca.books.cult_0.0": "옛날 옛적에, 다른 세계에서 이 땅에 오셔서 곳곳을 여행하시며 지혜를 나눠주던 생명체가 있었으니... 이 분은 Sirben the 99라고 불렸도다.", "mca.books.cult_0.1": "그 분의 좋은 의도에도 불구하고, 그의 지식은 우리의 마음이 이해하기에 너무 많았으며 몇몇 이들은 듣지 않았으나 들은 이들은 두 번 다시 예전으로 돌아갈 수 없을 정도로 변화했도다...", diff --git a/common/src/main/resources/assets/mca_books/lang/mt_mt.json b/common/src/main/resources/assets/mca_books/lang/mt_mt.json index dfcd6535a2..e6ec53dbfb 100644 --- a/common/src/main/resources/assets/mca_books/lang/mt_mt.json +++ b/common/src/main/resources/assets/mca_books/lang/mt_mt.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/pl_pl.json b/common/src/main/resources/assets/mca_books/lang/pl_pl.json index 61dcc18d87..3666b250c6 100644 --- a/common/src/main/resources/assets/mca_books/lang/pl_pl.json +++ b/common/src/main/resources/assets/mca_books/lang/pl_pl.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lKosa żniwiarza §r§f\njak już zadasz ostateczny cios, wraca w pustkę, I pozostawia po sobie kosę. Kosa, która jest zimna w dotyku, To potężne narzędzie. Zaatakuj nią osadnika żeby naładować kosę, następnie przenieś jego duszę do grobu.", "mca.books.death.10": "§f§lKosa żniwiarza 2§r§f\nJednakże twój przyjaciel wróci zainfekowany, ponieważ czas w podziemiach zostawił na nim piętno. Prawdopodobnie da się to wyleczyć, mój przyjaciel Richard napisał w swojej książce o tym.", "mca.books.death.11": "§f§lberło życia §r§f\nTak czy inaczej, jest inne, bardziej pokojowe wyjście. berło życia! Zamiast biednej duszy, używa skoncentrowanej mocy gwiazdy netheru do wskrzeszenia.", - "mca.books.death.12": "§f§lberło życia 2§r§f\nBerło jest potężnym przedmiotem, który może przywrócić 5 osób. W przeciwieństwie do kosy, jest w stanie nawet zmazać jakiekolwiek zmiany z uzdrowionego.", + "mca.books.death.12": "§f§lLaska Życia 2§r§f\nLaska to potężny przedmiot, który może ożywiać ludzi. W przeciwieństwie do Kosy, jest nawet w stanie wymazać wszelkie choroby z ożywionej osoby.", "mca.books.romance.author": "Gerry, Bibliotekarz", "mca.books.romance.0": "§lWprowadzenie§r\nInterakcja jest kluczem do budowania relacji i zdobywania miłości w Twoim życiu. Z przyjemnością napisałem tę książkę, czując się w obowiązku żeby przekazać wam wiedzę na temat interakcji, miłości, oraz niestety rozwodów, dla każdego kto potrzebuje drobnego popchnięcia we właściwym kierunku.", "mca.books.romance.1": "§lOsobowości §r\nKiedy rozmawiasz z którymkolwiek osadnikiem, Zauważysz że mają osobowość. Zwracaj na to dokładną uwagę! Niektórzy ludzie wolą żarty, inni kochają się przytulać. Niektóre osobowości są bardziej oczywiste od innych. Najedź na osobowość żeby dostać podpowiedzi na jej temat.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lOstrzeżenia§r\nMieszkańcy wioski są bardzo podatni na infekcje, zmniejsz ryzyko infekcji budując ambulatorium!", "mca.books.blueprint.author": "Budowlaniec Carl", "mca.books.blueprint.0": "§fMy osadnicy możemy uprawiać ziemię. Możemy wykuć narzędzia i zbroje. Możemy czytać, warzyć, czarować i wiele więcej. Jednak brakuje nam wiedzy na temat budownictwa!", - "mca.books.blueprint.1": "§fPodczas swojej podróży, prawdopodobnie odwiedzasz liczne wioski które są małe, niepraktyczne, i skromnie udekorowane. Jak wioska mogłaby kiedykolwiek stać się czymś większym?", + "mca.books.blueprint.1": "§fPodczas swojej podróży prawdopodobnie natkniesz się na kilka wiosek pełnych małych, niepraktycznych i ledwo udekorowanych domów. W jaki sposób wioska miałaby ewoluować w coś większego?", "mca.books.blueprint.2": "§f§lSchemat§r§f\nDlatego wędruję po całej planecie, pomagając wioskom, które napotykam podczas moich podróży. I ty też mógłbyś! Stwórz sobie schemat, używając niebieskiego barwnika i papieru, i przejrzyj katalog budynków, których każda wioska potrzebuje, ale nie może zbudować samodzielnie.", "mca.books.blueprint.3": "§f§lWymagania§r§f\nKonstrukcje mają zazwyczaj wymagany minimalny rozmiar. nie możesz po prostu wszystkiego połączyć. Potem musisz upewnić się że wszystkie wymagania odnośnie bloków są spełnione.", "mca.books.blueprint.4": "§f§lZakończenie budowy§r§f\nKiedy już skończysz, kliknij 'dodaj budynek' i patrz jak osadnicy przyjmują go do użytku w wiosce.", - "mca.books.blueprint.5": "§f§lRangi§r§f\nPrzecież to jasne że nie robisz tego bezinteresownie! Im bardziej twoja wioska jest zaawansowana, tym wyższą masz rangę. Każdy chyba marzy o życiu jako szlachcic? lub Prezydent? Albo nawet król?", + "mca.books.blueprint.5": "§f§lRangi§r§f\nAle nie musisz być bezinteresowny! Im bardziej zaawansowana jest twoja wioska, tym wyższa jest twoja ranga. Marzyłeś kiedyś o życiu szlachcica? Być burmistrzem? A może nawet króla?", "mca.books.cult_0.author": "Łukasz Wierny", "mca.books.cult_0.0": "Dawno temu istota z innego świata przybyła na tę planetę, dzieląc się swoją mądrością podczas podróży po krainie… Ta istota nazywała się Sirben 99.", "mca.books.cult_0.1": "Pomimo dobrych intencji, jego wiedza była zbyt duża, aby nasze umysły mogły to pojąć, niektórzy ludzie nie słuchali, ale ci, którzy to zrobili, zmienili się, by już nigdy nie być tacy sami…", diff --git a/common/src/main/resources/assets/mca_books/lang/pt_br.json b/common/src/main/resources/assets/mca_books/lang/pt_br.json index a8a1f2e984..9319bc7197 100644 --- a/common/src/main/resources/assets/mca_books/lang/pt_br.json +++ b/common/src/main/resources/assets/mca_books/lang/pt_br.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lA Foice§r§f\nDepois que você acertar o golpe final, ele volta ao submundo e deixa sua Foice para trás. A Foice, fria como o gelo ao toque, é uma ferramenta poderosa. Mate um aldeão para carregar a foice, então transfira a alma armazenada para uma lápide.", "mca.books.death.10": "§f§lA Foice§r§f\nMas seu amigo se levantará infectado, pois o tempo subterrâneo deixou algumas marcas. Você provavelmente pode curá-lo de alguma forma, meu amigo Richard escreveu um livro sobre este assunto uma vez.", "mca.books.death.11": "§f§lBastão da Vida§r§f\nNo entanto, existe outra solução mais pacífica. O Bastão da Vida! Ao invés de uma pobre alma, ele usa o poder concentrado das Estrelas Nether para reviver.", - "mca.books.death.12": "§f§lBastão da Vida 2§r§f\nO Bastão é um item poderoso que pode reviver até 5 pessoas. Ao contrário da Foice, é até capaz de apagar qualquer doença da pessoa revivida.", + "mca.books.death.12": "§f§lBastão da Vida 2§r§f\nO Bastão é um item poderoso que pode reviver pessoas. Ao contrário da Foice, é até capaz de apagar qualquer doença da pessoa revivida.", "mca.books.romance.author": "Gerry o Bibliotecário", "mca.books.romance.0": "§lIntroduão§r\nInteração é chave para construir relacionamentos e encontrar o amor de sua vida. Eu escrevi este livro para partilhar meu conhecimento sobre interação, amor e, infelizmente, divórcio, com quem precisar de um empurrãozinho.", "mca.books.romance.1": "§lPersonalidades§r\nAo falar com qualquer aldeão, você notará que eles têm uma personalidade. Preste muita atenção nisso! Algumas pessoas gostam mais de piadas, outras amam um abraço. Algumas personalidades são mais óbvias do que outras. Passe o mouse sobre a personalidade para ver algumas dicas.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lAviso§r\nOs aldeões são altamente suscetíveis à infecção, diminua o risco de infecção construindo uma enfermaria!", "mca.books.blueprint.author": "Carl o Construtor", "mca.books.blueprint.0": "§fNós aldeões podemos cultivar. Nós podemos forjar ferramentas e armaduras. Nós podemos ler, fermentar, encantar e muito mais. Mas há uma coisa que nos falta saber: construir!", - "mca.books.blueprint.1": "§fNa sua jornada, você provavelmente se depara por várias vilas cheias de pequenas, impraticáveis, e mal decoradas. Como pode uma aldeia evoluir para algo maior?", + "mca.books.blueprint.1": "§fNa sua jornada, você provavelmente encontra várias vilas cheias de casas pequenas, pouco práticas e mal decoradas. Como poderia uma vila evoluir para algo maior?", "mca.books.blueprint.2": "§f§lDiagrama§r§f\nPor isso que estou viajando pelo planeta, ajudando vilas que encontro em minhas viagens. E você também pode! Crie um diagrama usando tinta azul e papel e confira o catálogo de construções que toda vila precisa, mas não consegue construir sozinha.", "mca.books.blueprint.3": "§f§lRequisitos§r§f\nUma construção geralmente requer um tamanho mínimo. Você não pode simplesmente colocar tudo em uma cabana. Então você tem que garantir de que todos os requisitos de blocos foram atendidos.", "mca.books.blueprint.4": "§f§lTerminar§r§f\nUma vez pronto, clique em 'Adicionar Construção' e veja como os aldeões a integram na vila.", - "mca.books.blueprint.5": "§f§lPostos§r§f\nMas você não precisa ser generoso! Quanto mais avançada for a sua aldeia, maior será o seu ranque. Já sonhou em viver uma vida de nobre? Um prefeito? Ou até mesmo um rei ou rainha?", + "mca.books.blueprint.5": "§f§lRanques§r§f\nMas você não precisa ser altruísta! Quanto mais avançada sua vila é, mais alto o seu ranque fica. Já sonhou em viver a vida de um(a) nobre? Um(a) prefeito(a)? Ou até um rei ou rainha?", "mca.books.cult_0.author": "Lucas, o devoto", "mca.books.cult_0.0": "Há muito tempo, um ser de outro mundo veio a este planeta, compartilhando sua sabedoria enquanto viajava pela terra... Esse ser era chamado Sirben, o 99.", "mca.books.cult_0.1": "Apesar das boas intenções, seu conhecimento era demais para nossas mentes compreenderem, algumas pessoas não ouviram, mas aqueles que ouviram foram mudados, nunca mais sendo os mesmos novamente...", diff --git a/common/src/main/resources/assets/mca_books/lang/pt_pt.json b/common/src/main/resources/assets/mca_books/lang/pt_pt.json index 97cc4c8a88..0e08be46a4 100644 --- a/common/src/main/resources/assets/mca_books/lang/pt_pt.json +++ b/common/src/main/resources/assets/mca_books/lang/pt_pt.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry, o bibliotecário", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "Era uma vez, um ser de um outro mundo veio a este planeta, compartilhando a sua sabedoria à medida que este viaja pela terra... Esta entidade chamava-se Sirben XCIX.", "mca.books.cult_0.1": "Apesar das suas boas intenções, o seu conhecimento era demasiado para as nossas mentes compreenderem, alguns não o ouviram, mas aqueles que o fizeram mudaram, para nunca seres o mesmo...", diff --git a/common/src/main/resources/assets/mca_books/lang/ro_ro.json b/common/src/main/resources/assets/mca_books/lang/ro_ro.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/ro_ro.json +++ b/common/src/main/resources/assets/mca_books/lang/ro_ro.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/ru_ru.json b/common/src/main/resources/assets/mca_books/lang/ru_ru.json index 596e3e0258..ba0ad3ae85 100644 --- a/common/src/main/resources/assets/mca_books/lang/ru_ru.json +++ b/common/src/main/resources/assets/mca_books/lang/ru_ru.json @@ -1,38 +1,38 @@ { "mca.books.death.author": "Воитель Оззи", - "mca.books.death.0": "§fЯ не мог сосчитать, сколько раз мою семью разрывали на куски криперы. Как они все существуют, спросите вы? Легко! Я, дорогой читатель, открыл лекарство от самой смерти! И благодаря этой книге я могу поделиться им с вами.", - "mca.books.death.1": "§f§lМогилы§r§f\n§r§fКогда деревенский житель умирает, его труп хоронят в ближайшей могиле. Поэтому убедитесь, что участок на вашем кладбище пуст.", - "mca.books.death.2": "§f§lПризыв Грима§r§f\nК сожалению, единственное существо, способное победить смерть, - это сама смерть: Мрачный Жнец. Чтобы призвать его, вы должны построить алтарь, состоящий из 3 обсидиановых колонн высотой не менее 2 блоков. При желании они могут быть выше.", - "mca.books.death.3": "§f§lПризыв Грима 2§r§f\nВ центре вы должны поместить жертву - изумрудный блок.", - "mca.books.death.4": "§f§lПризыв Грима 3§r§f\nПосле постройки алтаря дождитесь ночи и зажгите все 3 колонны. Когда будете готовы к бою, зажгите изумрудный блок и бегите!", - "mca.books.death.5": "§f§lСхватка с Гримом§r§f\nГрим жесток. Используйте полную алмазную броню, множество зелий и заклинаний. Он может:\n- Летать\n- Блокировать атаки\n- Ослепить\n- Перемещать ваши предметы\n- Телепортироваться", - "mca.books.death.6": "§f§lСхватка с Гримом 2§r§f\nЕсли вы ударите Грима, когда он блокирует, он телепортируется позади вас и нанесет удар. Не пытайтесь использовать стрелы или яд, подобное на него не действует!", - "mca.books.death.7": "§f§lСхватка с Гримом 3§r§f\nКогда Грим потеряет слишком много здоровья, он телепортируется в воздух и начнет лечиться. Во время исцеления он призовет своих приспешников из подземного мира, чтобы сразиться с вами.", - "mca.books.death.8": "§f§lСхватка с Гримом 4§r§f\nКогда Грим исцелится, он продолжит атаковать вас, но он не сможет исцелиться снова в течение 3 минут и 30 секунд. Каждый раз, когда Грим исцеляется, он не сможет восстановить столько здоровья, сколько ранее.", - "mca.books.death.9": "§f§lКоса§r§f\nКак только вы наносите смертельный удар, он падает обратно в пустоту и оставляет свою косу. Коса, ледяная на ощупь, - могущественное орудие. Убейте жителя деревни, чтобы зарядить косу, затем перенесите сохраненную душу на могильный камень.", - "mca.books.death.10": "§f§lКоса 2§r§f\nНо ваш друг восстанет зараженным, так как время под землей оставило некоторые следы. Вероятно, вы можете как-то исцелить его, мой друг Ричард однажды написал книгу на эту тему.", - "mca.books.death.11": "§f§lПосох жизни§r§f\nОднако есть и другое, более мирное решение. Посох Жизни! Вместо бедной души он использует концентрированную силу звезды Нижнего мира, чтобы возродиться.", - "mca.books.death.12": "§f§lПосох жизни 2§r§f\nПосох-это мощный предмет, который может оживить до 5 человек. В отличие от Косы, он даже способен стереть любую болезнь с ожившего человека.", + "mca.books.death.0": "§fЯ и не помню, сколько раз мою семью разрывали на куски криперы. Как они могут быть живы, спросите вы? Легко! Я, дорогой читатель, открыл лекарство от самой смерти! И благодаря этой книге я могу поделиться им с вами.", + "mca.books.death.1": "§f§lМогилы§r§f\n§r§fКогда житель умирает, его труп хоронят в ближайшей могиле. Поэтому убедитесь, что на вашем кладбище всегда есть место.", + "mca.books.death.2": "§f§lПризыв Жнеца§r§f\nК сожалению, единственное существо, способное победить смерть - это сама смерть: Мрачный Жнец. Чтобы призвать его, вы должны построить алтарь, состоящий из 3 обсидиановых колонн высотой не менее 2 блоков. Они могут быть и выше.", + "mca.books.death.3": "§f§lПризыв Жнеца 2§r§f\nВ центре вы должны поместить жертву - изумрудный блок.", + "mca.books.death.4": "§f§lПризыв Жнеца 3§r§f\nПосле постройки алтаря дождитесь ночи и зажгите все 3 колонны. Когда будете готовы к бою, зажгите изумрудный блок и бегите!", + "mca.books.death.5": "§f§lБой со Жнецом§r§f\nЖнец - крепкий орешек. Используйте всё, что можете - броню, зелья и чары. Он может:\n- Летать\n- Блокировать атаки\n- Ослеплять\n- Тасовать ваши предметы\n- Телепортироваться", + "mca.books.death.6": "§f§lБой со Жнецом 2§r§f\nЕсли вы ударите Жнеца, пока он блокирует, он телепортируется вам за спину и нанесет удар. Стрелы и яд ему не навредят - за целую вечность он стал неуязвим к ним!", + "mca.books.death.7": "§f§lБой со Жнецом 3§r§f\nКогда Жнец потеряет слишком много здоровья, он телепортируется в воздух и начнет лечиться. Во время исцеления он призовет своих приспешников из подземного мира, чтобы сразиться с вами.", + "mca.books.death.8": "§f§lБой со Жнецом 4§r§f\nКогда Жнец исцелится, он начнёт атаковать вас, но не сможет снова исцелиться в течение 3 минут и 30 секунд. Каждый раз, когда Жнец исцеляется, он сможет восстановить только часть здоровья, восстановленного ранее.", + "mca.books.death.9": "§f§lКоса§r§f\nКогда вы нанесёте смертельный удар, он скроется в бездне, но оставит свою косу. Ледяная на ощупь, его Коса - могущественное орудие. Убейте жителя, чтобы зарядить косу, затем используйте его душу на надгробии.", + "mca.books.death.10": "§f§lКоса 2§r§f\nНо ваш друг восстанет зараженным, так как время под землей оставило раны. Наверное, его можно исцелить - мой друг Ричард писал об этом книгу.", + "mca.books.death.11": "§f§lПосох жизни§r§f\nОднако есть и другое, более мирное решение. Посох Жизни! Вместо бедной души он концентрирует силу звезды Незера для возрождений.", + "mca.books.death.12": "§f§lПосох Жизни 2§r§f\nПосох Жизни - это мощный предмет, который может оживлять людей. В отличие от Косы, он даже способен стереть любую болезнь с ожившего человека.", "mca.books.romance.author": "Библиотекарь Джерри", - "mca.books.romance.0": "§lВступление§r\nВзаимодействие-это ключ к построению отношений и поиску любви всей вашей жизни. Я с радостью написал эту книгу, чтобы поделиться своими знаниями о взаимодействии, любви и, к сожалению, разводе со всеми, кому может потребоваться небольшой толчок в правильном направлении.", - "mca.books.romance.1": "§lИзвестные деятели§r\nРазговаривая с любым деревенским жителем, вы заметите, что у него есть своя личность. Обратите на это пристальное внимание! Некоторые люди больше любят шутки, некоторые - обьятия. Некоторые личности более очевидны, чем другие. Наведите курсор на личность, чтобы увидеть некоторые подсказки.", - "mca.books.romance.2": "§lНастроения§r\nУ каждого человека есть настроение, которое всегда проявляется, когда с ним разговариваешь. Настроения могут меняться в течение дня и определять, насколько деревенскому жителю понравятся определенные взаимодействия.", - "mca.books.romance.3": "§lНастроения 2§r\nСмерть деревенского жителя, похоже, приводит тех, кто находится поблизости, в плохое настроение. Взимание налогов также постепенно снижает настроение каждого. Известно, что подарки и удачные взаимодействия повышают настроение.", + "mca.books.romance.0": "§lВступление§r\nВзаимодействия - ключ к построению отношений и поиску любви всей вашей жизни. Я написал эту книгу, чтобы поделиться своими знаниями о взаимодействиях, любви и разводе со всеми, кому может потребоваться помощь.", + "mca.books.romance.1": "§lХарактеры§r\nРазговаривая с жителем, вы заметите, что у него есть свой характер. Обратите на это внимание! Некоторые люди любят шутки, некоторые - объятия. Наведите курсор на характер, чтобы увидеть его описание.", + "mca.books.romance.2": "§lНастроения§r\nУ каждого человека есть настроение, которое всегда проявляется, когда ты с ним общаешься. Настроения могут меняться в течение дня и определять, насколько жителю понравятся определенные взаимодействия.", + "mca.books.romance.3": "§lНастроения 2§r\nСмерть жителя приводит тех, кто находится поблизости, в плохое настроение. Взимание налогов также постепенно снижает настроение у всех. Подарки и удачные взаимодействия повышают настроение.", "mca.books.romance.4": "§lВзаимодействие§r\nВыбирайте общение с жителем деревни с умом, основываясь на его настроении и характере! Если вы выбираете романтическое общение, убедитесь, что вы очень нравитесь деревенскому жителю, с которым вы разговариваете.", - "mca.books.romance.5": "§lВзаимодействие pt. 2§r\nНе будьте назойливым! Слишком долгое общение с кем-то наскучит им, и ваши взаимодействия могут перестать быть успешными. Если это произойдет, просто подождите некоторое время, прежде чем пытаться снова поговорить с ними.", - "mca.books.romance.6": "§lПодарки§r\nПодарки-еще один отличный способ завоевать чью - то дружбу. Но опять же, будьте осторожны, кому и что вы дарите. Рыбак любит рыбу, но, боже мой, никогда не дарите вонючую рыбу благородной леди.", + "mca.books.romance.5": "§lВзаимодействие 2§r\nНе будьте назойливым! Слишком долгое общение наскучит жителю и ваши взаимодействия перестанут быть успешными. Если это произойдёт, просто немного подождите, прежде чем пытаться поговорить вновь.", + "mca.books.romance.6": "§lПодарки§r\nПодарки - ещё один отличный способ завоевать чью-то дружбу. Но будьте осторожны с тем, кому и что вы дарите. Рыбаку понравится рыба, но, ради бога, никогда не дарите вонючую рыбу благородной леди.", "mca.books.romance.7": "§lБрак§r\nЧтобы жениться, просто подарите деревенскому жителю обручальное кольцо, как только почувствуете, что достигли наивысшего уровня отношений.", - "mca.books.romance.8": "§lРазвод§r\nК сожалению, иногда лучше расстаться со своим супругом и двигаться дальше. Для этого поищите священнослужителя, чтобы получить документы на развод. Затем поговорите со своим супругом.", - "mca.books.romance.9": "§lРазвод pt. 2§r\nВ качестве альтернативы вы можете расторгнуть брак без документов, но они не будут счастливы.", + "mca.books.romance.8": "§lРазвод§r\nК сожалению, иногда лучше расстаться со своим супругом и двигаться дальше. Для этого поищите священника, чтобы получить документы на развод. Затем поговорите со своим супругом.", + "mca.books.romance.9": "§lРазвод 2§r\nВ качестве альтернативы вы можете расторгнуть брак без документов, но они не очень этому порадуются.", "mca.books.family.author": "Клирик Лианна", - "mca.books.family.0": "Дети, это наше будущее! Убедитесь, что у вас их как можно больше.§Вы не только получаете возможность испытать радость от воспитания ребенка, но как только они пройдут стадию младенчества, заставьте их работать!", - "mca.books.family.1": "§lДети§r\nКогда вы женаты, просто подойдите к своему супругу и предложите \"зачать ребенка\". После короткого танца вы станете счастливым обладателем нового мальчика или девочки (или, может быть, даже обоих)!", - "mca.books.family.2": "§lРост§r\nМладенцам требуется время, чтобы вырасти, обязательно возьмите их на руки, пока они не станут взрослыми, или отдайте их своему супругу, чтобы он позаботился о них. Когда малыш будет готов к росту, вы можете положить его на землю, и он вырастет в ребенка!", - "mca.books.family.3": "§lЮность§r\nДети будут расти медленно. Однако говорят, что волшебные свойства Золотых яблок ускоряют рост любого ребенка. Мне еще предстоит попробовать это самому.", - "mca.books.family.4": "§lДомашние дела§r\nЛюбой ребенок может заниматься сельским хозяйством, рубить дрова, добывать руду, охотиться и ловить рыбу. Вам нужно будет предоставить им инструменты, необходимые для этого. Если инструмент сломается, а у ребенка нет другого, у него не будет другого выбора, кроме как прекратить работу.", - "mca.books.family.5": "§lЖадность§r\nЕсли вы заметили, что у вашего ребенка Жадный характер, будьте осторожны! Известно, что жадные дети воруют предметы, которые они могут забрать, выполняя работу по дому.", - "mca.books.family.6": "§lДобыча полезных ископаемых§r\nОсобое замечание по поводу добычи полезных ископаемых: у большинства детей есть особая способность искать и находить руды под землей. Это действие наносит ущерб любой кирке, которая может быть у них в инвентаре.", - "mca.books.family.7": "§lЗрелость§r\nКак бы это ни было печально, но дети рано или поздно вырастут. Как только они станут взрослыми, они больше не будут работать на вас. Взрослых можно выдать замуж, используя колец сватовства, или они в конечном итоге поженятся самостоятельно.", + "mca.books.family.0": "Дети - это наше будущее!\nУбедитесь, что у вас их как можно больше. Вы не только получите возможность испытать радость от воспитания детей, но и сможете заставить их работать, как только они пройдут стадию младенчества.", + "mca.books.family.1": "§lДети§r\nКогда вы поженитесь, просто подойдите к своему супругу и предложите \"Создать потомство\". После короткого танца вы станете счастливым обладателем нового мальчика или девочки (или даже обоих)!", + "mca.books.family.2": "§lРост§r\nМладенцам требуется время, чтобы вырасти. Обязательно берите их на руки, или отдайте их своему супругу, чтобы он позаботился о них. Когда малыш будет готов вырасти, вы сможете поставить его на землю и он вырастет в ребенка!", + "mca.books.family.3": "§lЮность§r\nДети будут расти медленно. Однако, ходят слухи, что волшебные свойства золотых яблок ускоряют рост ребёнка. Правда, мне ещё не довелось опробовать этот способ.", + "mca.books.family.4": "§lРабота§r\nДети могут рыбачить, собирать урожай, охотиться и рубить дрова. Вам нужно будет предоставить им необходимые инструменты. Если инструмент сломается и у ребёнка не будет другого, он прекратит работу.", + "mca.books.family.5": "§lЖадность§r\nЕсли вы заметили, что у вашего ребенка жадный характер, будьте осторожны! Известно, что жадные дети воруют некоторые предметы, выполняя работу по дому.", + "mca.books.family.6": "§lДобыча руд§r\nОсобое замечание по поводу добычи руд:\nУ большинства детей есть своеобразная способность искать и находить руды под землей. Это действие повредит кирку, находящуюся у них в инвентаре.", + "mca.books.family.7": "§lЗрелость§r\nКак бы это ни было печально, но дети рано или поздно вырастут. Когда они станут взрослыми, они больше не будут работать на вас. Взрослых можно выдать замуж, используя кольца свахи, или они в конечном итоге поженятся самостоятельно.", "mca.books.rose_gold.author": "Уильям Шахтер", "mca.books.rose_gold.0": "§lПредупреждение!\nСОВЕРШЕННО СЕКРЕТНО§\nДанное руководство является собственностью компании William Mining Co.§если вы не являетесь сотрудником компании William Mining Co., пожалуйста, воздержитесь от чтения данного руководства и незамедлительно вернитесь к Уильяму Майнеру.", "mca.books.rose_gold.1": "Ах, розовое золото - прекрасное сочетание серебра, меди и золота, которое плавится в розовато-оранжевый металл. Большинство использует его в качестве альтернативы золоту для изготовления колец, так как оно намного дешевле. Однако у него есть некоторые интересные качества, которые легко не заметить.", @@ -46,13 +46,13 @@ "mca.books.infection.3": "§lЛечение 2§r\nВсе другие зомби, которых вы видите, к сожалению, зашли слишком далеко и не поддаются лечению.", "mca.books.infection.4": "§lЛечение 3§r\nЗомби потребуется пара минут, чтобы полностью вылечиться. Жители деревни, которые были недавно заражены, хотя и не успели превратиться в полноценного зомби, будут вылечены мгновенно!", "mca.books.infection.5": "§lПредупреждения§r\nЖители деревни очень восприимчивы к инфекции, уменьшите риск заражения, построив лазарет!", - "mca.books.blueprint.author": "Карл Строитель", - "mca.books.blueprint.0": "§Каждый сельский житель может заниматься хозяйством. Мы можем кузнечить инструменты и доспехи. Мы можем читать, варить, зачаровывать и многое другое. Но есть одна вещь, для которой нам не хватает знаний: строительство!", - "mca.books.blueprint.1": "§§в своем путешествии вы, вероятно, встретите несколько деревень, полных маленьких, непрактичных и едва украшенных. Как деревня может когда-нибудь превратиться в нечто большее?", - "mca.books.blueprint.2": "§f§lЧертёж§r§f\nВот почему я странствую по планете, помогая деревням, с которыми сталкиваюсь в своих путешествиях. И ты тоже мог бы! Создайте себе чертёж, используя синюю краску и бумагу, и ознакомьтесь с каталогом зданий, которые нужны каждой деревне, но которые она не может построить самостоятельно.", - "mca.books.blueprint.3": "§§f§Требования§r§f\nДля зданий обычно требуется минимальный размер. Вы не можете просто воткнуть все в сарай. Затем вы должны убедиться, что все требования к блоку выполнены.", - "mca.books.blueprint.4": "§§f§l Закончить§r§f\nПосле этого нажмите \"Добавить здание\" и посмотрите, как жители деревни интегрируют его в деревню.", - "mca.books.blueprint.5": "§§f§l Ранги§r§f\nНо вам не нужно быть бескорыстным! Чем более развита ваша деревня, тем выше ваш ранг. Каждый мечтал прожить жизнь дворянина? Мэра? Или даже короля?", + "mca.books.blueprint.author": "Строитель Карл", + "mca.books.blueprint.0": "§fМы, крестьяне, можем выращивать еду, можем ковать броню. Можем читать, варить зелья, чаровать и ещё очень многое. Но в одном у нас нет опыта - в строительстве!", + "mca.books.blueprint.1": "§fВ путешествиях вы, вероятно, встречали деревни, полные мелких, непрактичных и едва украшенных домиков.\nКак деревня должна развиваться, чтобы достичь чего-то большего?", + "mca.books.blueprint.2": "§f§lЧертёж§r§f\nПоэтому я путешествую по планете, помогая деревням, с которыми сталкиваюсь. И вы могли бы! Создайте себе чертёж, используя синий краситель и бумагу. На чертеже ознакомьтесь с каталогом строений, которые нужны деревне, но она не в силах построить.", + "mca.books.blueprint.3": "§f§lТребования§r§f\nБольшинство зданий требуют минимальный размер. Нельзя просто запихнуть всё под крышу и назвать это зданием. Вам необходимо исполнить все его требования.", + "mca.books.blueprint.4": "§f§lЗавершение§r§f\nКогда закончите, нажмите \\\"Добавить здание\\\" и посмотрите, как жители деревни интегрируют его в деревню.", + "mca.books.blueprint.5": "§f§lРанги§r§f\nНо вы же не просто так это делаете? По мере развития деревни вы будете получать ранги. Вы когда-нибудь хотели быть дворянином? Мэром? Может быть, даже Царём?", "mca.books.cult_0.author": "Последователь Лукас", "mca.books.cult_0.0": "Давным-давно на эту планету пришло существо из другого мира, которое делится своей мудростью, путешествуя по земле… Эту сущность звали Сирбен 99.", "mca.books.cult_0.1": "Несмотря на благие намерения, его знания были слишком велики для нашего разума, чтобы постичь их, некоторые люди не слушали, но те, кто слушал - изменились, и никогда не станут прежними…", @@ -69,9 +69,9 @@ "mca.books.cult_2.2": "Но будьте осторожны, потому что к этим культистам нежити нельзя относиться легкомысленно. Они могут быть агрессивны по отношению к вам, как только пробудятся, и не остановятся ни перед чем, чтобы защитить свои секреты.", "mca.books.cult_2.3": "Однако, если вы достаточно храбры, чтобы встретиться с ними лицом к лицу, есть шанс, что после своего поражения они произнесут секретные слова сирбенов. И с этими словами вы откроете для себя новый уровень понимания тайн этого мира и за его пределами.", "mca.books.cult_ancient.author": "Древние Сирбены", - "mca.letter.condolence": "%s,\n\nс большим сожалением сообщаем вам о смерти %s .\n\nС уважением,\nмэр %s", + "mca.letter.condolence": "%s,\n\nС большим сожалением сообщаем вам о смерти %s.\n\nС уважением,\nМэр %s", "mca.books.supporters.author": "Сообщество", - "mca.books.supporters.patrons": "Меценаты", + "mca.books.supporters.patrons": "Подписчики Patreon", "mca.books.supporters.contributors": "Вкладчики", "mca.books.supporters.translators": "Переводчики", "mca.books.supporters.wiki": "Вики", diff --git a/common/src/main/resources/assets/mca_books/lang/sr_sp.json b/common/src/main/resources/assets/mca_books/lang/sr_sp.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/sr_sp.json +++ b/common/src/main/resources/assets/mca_books/lang/sr_sp.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/sv_se.json b/common/src/main/resources/assets/mca_books/lang/sv_se.json index 8c47d0ab94..e6812d8bb0 100644 --- a/common/src/main/resources/assets/mca_books/lang/sv_se.json +++ b/common/src/main/resources/assets/mca_books/lang/sv_se.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/th_th.json b/common/src/main/resources/assets/mca_books/lang/th_th.json index 9e93b285b4..f2db5093c5 100644 --- a/common/src/main/resources/assets/mca_books/lang/th_th.json +++ b/common/src/main/resources/assets/mca_books/lang/th_th.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lเคียว§r§f\nเมื่อคุณโจมตียมทูตจนเขาบาดเจ็บหนักเขาจะหนีกลับยมโลกไปและทิ้งเคียวของเขาเอาไว้ เคียวนี้เมื่อสัมผัสจะรู้สึกได้ถึงความเย็นยะเยือก มันเป็นเครื่องมือที่ทรงพลัง สามารถฆ่าชาวบ้านเพื่อชาร์จให้กับเคียว จากนั้นจึงนำดวงวิญญาณที่เก็บไว้ที่เคียวไปใช้กับหลุมศพ", "mca.books.death.10": "§f§lเคียว 2§r§f\nแต่เพื่อนของคุณจะฟื้นขึ้นมาด้วยการติดเชื้อ เนื่องจากถูกฝังเอาไว้ใต้ดินเป็นระยะเวลาหนึ่ง แต่นั่นก็ยังคงมีหนทางรักษา ซึ่ง Richard เพื่อนของฉันเคยเขียนหนังสือเกี่ยวกับหัวข้อนี้", "mca.books.death.11": "§f§lคทาแห่งชีวิต§r§f\nอย่างไรก็ตาม มันยังมีวิธีที่ปลอดภัยกว่านี้ นั่นคือคทาแห่งชีวิต! แทนที่จะใช้ดวงวิญญาณที่น่าสงสารมันใช้พลังของดาวเนเทอร์(Nether Stars)แทน", - "mca.books.death.12": "§f§lคทาแห่งชีวิต 2§r§f\nคทาที่ทรงพลังสามารถชุบชีวิตได้ถึง 5 คน ซึ่งต่างจากเคียว แถมมันยังช่วยรักษาอาการป่วยหรือโรคร้ายออกจากผู้ที่ถูกชุบชีวิตได้", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "บรรณารักษ์ Gerry", "mca.books.romance.0": "§lบทนำ§r\nการปฏิสัมพันธ์เป็นกุญแจไปสู่ความสัมพันธ์และการค้นพบชีวิตรัก ฉันมีความสุขมากที่ได้เขียนหนังสือเล่มนี้เพื่อแบ่งปันความรู้เกี่ยวกับการปฏิสัมพันธ์, ความรัก และการหย่าร้าง ให้กับใครก็ตามที่ต้องการแรงผลักดันในการดำเนินชีวิต", "mca.books.romance.1": "§lบุคลิกภาพ§r\nเมื่อพูดคุยกับชาวบ้านคนใดก็ตาม คุณควรละลึกไว้ว่าพวกเขาก็มีบุคลิกภาพ ดังนั้นคุณควรให้ความสนใจกับสิ่งนี้! บางคนก็ชอบเรื่องตลก บางคนชอบการที่ได้กอด บุคลิกภาพบางอย่างก็มองเห็นได้ชัดกว่าบุคลิกอื่นๆ เอาเม้าส์ชี้ไปที่ บุคลิกภาพ เพื่อดูคำแนะนำ", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lคำเตือน§r\nชาวบ้านมีโอกาสติดเชื้อสูง, ลดโอกาสในการติดเชื้อโดยการสร้างสถานพยาบาล!", "mca.books.blueprint.author": "ช่างก่อสร้าง Carl", "mca.books.blueprint.0": "§fพวกเราชาวบ้านสามารถทำฟาร์ม สร้างเครื่องมือและชุดเกราะ พวกเราอ่านหนังสือได้ ต้มยาได้ รวมถึงลงมนต์ให้กับสิ่งของได้ และอื่นๆอีกมากมาย แต่มีอย่างหนึ่งที่เรายังมีความรู้ไม่มากพอนั่นคือการก่อสร้าง", - "mca.books.blueprint.1": "§fในการเดินทางของคุณ คุณอาจเจอหมู่บ้านเล็กๆ มากมาย ที่ใช้งานไม่ได้ และแทบไม่ตกแต่งเลย แต่คุณสามารถช่วยพัฒนาหมู่บ้านเหล่านั้นให้ดียิ่งขึ้นได้", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lความต้องการ§r§f\nอาคารเหล่านั้นต้องการขนาดขั้นต่ำ คุณไม่สามารถแค่เพิ่มเติมเข้าไปในตัวอาคารเหล่านั้นได้เลยแต่คุณต้องตรวจสอบดูว่าอาคารเหล่านั้นต้องการบล็อกอะไรเพื่อมาสร้างมันให้เสร็จ", "mca.books.blueprint.4": "§f§lขั้นสุดท้าย§r§f\nเมื่อเสร็จแล้ว กด 'เพิ่มอาคาร' และดูว่าชาวบ้านจะทำการรวมอาคารขึ้นเป็นหมู่บ้านอย่างไร", - "mca.books.blueprint.5": "§f§lระดับ§r§f\nแต่คุณไม่ต้องรู้สึกว่าสิ่งที่คุณทำมันสูญเปล่า! ยิ่งหมู่บ้านมีการพัฒนามากเท่าไร คุณก็จะได้รับระดับที่สูงขึ้น ทุกคนต่างอยากมีชีวิตอยู่แบบชนชั้นสูงใช่ไหมล่ะ? หรือจะเป็นนายก? หรือจะเป็นราชา?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "ลูคัสผู้ศรัทธา", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/tr_tr.json b/common/src/main/resources/assets/mca_books/lang/tr_tr.json index c61a5775c8..fa063bda1b 100644 --- a/common/src/main/resources/assets/mca_books/lang/tr_tr.json +++ b/common/src/main/resources/assets/mca_books/lang/tr_tr.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lTırpan§r§f\nSon darbeyi indirdiğinizde, Azrail Tırpanını düşürür. Buz gibi olan Tırpan çok güçlü bir alettir. Bir kişiyi diriltmek için bir köylü öldür ve ruhu Tırpana hapsolsun. Ardından içindeki ruhu bir mezar taşına aktar.", "mca.books.death.10": "§f§lTırpan 2§r§f\nFakat yeraltında geçen zaman yüzünden arkadaşın bir enfekteli olarak tekrardan dirilecek. Onu bir şekilde iyileştirebilirsin. Arkadaşım Richard bu konu üzerinde bir kitap yazmıştı.", "mca.books.death.11": "§f§lHayat Asası§r§f\nAma Tırpana göre daha zararsız bir yöntem de var. İşte karşınız da Hayat Asası! Canlandırmak için Nether Yıldızının gücünden faydalanır.", - "mca.books.death.12": "§f§lHayat Asası 2§r§f\nBu asa 5 kişiye kadar diriltme gücüne sahiptir. Tırpana göre diriltilen kişinin üzerindeki tüm hastalıkları siler.", + "mca.books.death.12": "§f§lHayat Asası 2§r§f\nAsa, insanları canlandırabilen güçlü bir eşyadır. Tırpan'dan farklı olarak, canlanan kişinin hastalıklarını bile silebilir.", "mca.books.romance.author": "Kütüphaneci Gerry", "mca.books.romance.0": "§lGiriş§r\nEtkileşim, bir ilişki kurabilmenizin anahtarıdır. Size bu kitapta kendi bildiklerim ile Etkileşim, İlişki ve Boşanmayı yardıma ihtiyacı olan herkese anlatmaktan mutluluk duyuyorum.", "mca.books.romance.1": "§lKişilikler§r\nBir köylü ile konuşurken onların da bir kişiliğin olduğunu fark edeceksiniz. Buraya çok dikkat edin! Bazı kişiler şakaları, bazıları ise sarılmayı sever. Bazılarının kişilikleri diğerlerine göre daha belirgindir. İpuçlarını görmek için Kişiliğin üzerine gelin.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lUyarılar§r\nKöylüler enfeksiyona karşı oldukça hassastır, bir Hastane inşa ederek enfeksiyon riskini azaltın!", "mca.books.blueprint.author": "İnşa Mühendisi Carl", "mca.books.blueprint.0": "§fBiz köylüler çiftçilik yapabilir, zırh ve alet yapabilir, okuyabilir ve büyücülükten daha fazlasını yapabiliriz. Fakat bilmemiz gereken tek şey var: inşa etmek!", - "mca.books.blueprint.1": "§fYolculuk yaparken, muhtemelen küçük, kötü dekor edilmiş ve güzel gözükmeyen evlerle karşılaşırsınız. Bir köy nasıl daha büyük bir yere çevrilebilir?", + "mca.books.blueprint.1": "§fYolculuğunuzda muhtemelen küçük, kullanışsız ve zar zor dekore edilmiş evlerle dolu birkaç köye rastlarsınız. Bir köy nasıl daha büyük bir şeye dönüşebilir ki?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nBu yüzden gezegenin dört bir yanını dolaşıyor, seyahatlerimde karşılaştığım köylere yardım ediyorum. Ve sen de yapabilirsin! Mavi boya ve kağıt kullanarak kendine bir plan hazırla ve her köyün ihtiyacı olan ancak kendi başlarına inşa edemeyecekleri binaların kataloğuna göz at.", "mca.books.blueprint.3": "§f§lGereksinimler§r§f\nHer yapının minimum bir boyutu vardır. Her şeyi tek bir kulübeye bağlayamazsınız. Ardından, tüm blok gereksinimlerini tamamladığınızdan emin olun.", "mca.books.blueprint.4": "§f§lSon Aşama§r§f\nİşinizi tamamladığınızda, \"Yapı Ekle\"ye basın ve köylülerin onu köyün içine nasıl kattığını izleyin.", - "mca.books.blueprint.5": "§f§lRütbeler§r§f\nAçgözlü olmanıza hiç gerek yok! Ne kadar köyünüzü geliştirirseniz, o kadar rütbeniz yükselir. Asil birisi olarak hayat yaşamayı hiç düşündünüz mü? Ya da bir belediye başkanı? Ya da bir kral olarak?", + "mca.books.blueprint.5": "§f§lRütbeler§r§f\nAma özverili olmanıza gerek yok! Köyünüz ne kadar gelişmişse, rütbeniz de o kadar yüksek olur. Hiç asil bir hayat yaşamayı hayal ettiniz mi? Bir belediye başkanı? Hatta bir kral?", "mca.books.cult_0.author": "Dindar Lucas", "mca.books.cult_0.0": "Uzun zaman önce, başka dünyalardan bir şey bu gezegene geldi, bilgeliğini bütün diyarlar boyunca paylaştı. Bu varlığa \"Sirben 99\" dediler.", "mca.books.cult_0.1": "İyi niyete rağmen aklımız bilgisini anlayabilmek için çok fazlaydı, bazı insanlar dinlemedi ama onları yapan değişmişti, asla aynı olmamak üzere...", diff --git a/common/src/main/resources/assets/mca_books/lang/uk_ua.json b/common/src/main/resources/assets/mca_books/lang/uk_ua.json index a52c6949cf..b54573e475 100644 --- a/common/src/main/resources/assets/mca_books/lang/uk_ua.json +++ b/common/src/main/resources/assets/mca_books/lang/uk_ua.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lКоса§r§f\nЯк тільки ви нанесете смертельний удар, він падає у безодню і залишає свою косу. Коса, яка на відчуття просто льодяна, - могутній інструмент. Вдарте по сільській землі, щоб зарядити її, а тоді перенести збережену душу до могили.", "mca.books.death.10": "§f§lКоса 2§r§f\nПроте ваш друг вже стане інфікованим, тому що час під землею залишить свої сліди. Можливо, ви зможете якось вилікувати його; одного разу мій друг Річард написав книгу на цю тему.", "mca.books.death.11": "§f§lПосох Життя§r§f\nПроте існує інше, більш мирне рішення. Посох Життя! Замість бідної душі він використовує концентровану силу Зірки Нижнього світу для відродження.", - "mca.books.death.12": "§f§lПосох Життя§r§f\nПосох — могутній предмет, який може відродити до 5 людей. На відміну від Коси, він здатний вилікувати будь-яку хворобу відродженої особи.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Бібліотекар Джеррі", "mca.books.romance.0": "§lВступ§r\nВзаємодія — ключ до побудування стосунків і знаходження любові всього вашого життя. Я щасливо написав цю книгу для того, щоб поділитися своїми знаннями взаємодії, кохання та, на жаль, розлучення для тих, кому необхідний маленький поштовх у правильному напрямку.", "mca.books.romance.1": "§lОсобистості§r\nСпілкуючись з будь-яким селянином, ви помітите, що вони всі мають особистості. Зверніть велику увагу на це! Деяким людям подобаються жарти, деяким — обійми. Деякі особистості більш зрозумілі, як інші. Побудьте біля кожної особистості, аби побачити деякі натяки.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lПопередження§r\nСеляни дуже сприйнятливі до інфекції, знизьте ризи зараження, побудувавши лазарет!", "mca.books.blueprint.author": "Будівельник Карл", "mca.books.blueprint.0": "§fСелянин може займатись добуванням різних речей. Ми можемо кувати інструменти та обладунки. Ми можемо читати, готувати напої, чаклувати та багато іншого. Але є одна річ, у якій нам бракує знань — будівництво!", - "mca.books.blueprint.1": "§fПід час вашої подорожі ви, можливо, наткнетесь на декілька маленьких, непрактичних і малодекорованих селищ. Як взагалі може село перерости у щось більше?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lПроект§r§f\nСаме через це я подорожую світом, допомагаючи селам, що трапляються мені на шляху. І ви могли б також! Створіть проєкт, використовуючи блакитну фарбу та папір, та дізнайтеся перелік будівель, які потребує кожне село, але не можуть збудувати їх самостійно.", "mca.books.blueprint.3": "§f§lВимоги§r§f\nБудівля зазвичай повинна бути мінімального розміру. Ви не можете помістити все в якийсь сарай. Тому ви повинні переконатися, що всі вимоги до блоків виконано.", "mca.books.blueprint.4": "§f§lЗавершення§r§f\nЯк тільки все зроблено, натисніть 'Додати Будівлю' і дивіться як селяни інтегрують її у село.", - "mca.books.blueprint.5": "§f§lЗвання§r§f\nВи не повинні бути безкорисними! Чим більш розвиненим є ваше село, тим вище звання ви отримуєте. Кожен мріяв прожити життя аристократа? Мера? Чи навіть Короля?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Лукас Відданий", "mca.books.cult_0.0": "Давним-давно на цю планету прийшла істота з іншого світу, яка ділилася своєю мудрістю, подорожуючи по землі... Цю сутність називали Сірбен.", "mca.books.cult_0.1": "Незважаючи на добрі наміри, його знання були занадто великі для нашого розуму, деякі люди не послухалися, але ті, хто це зробив, змінилися і ніколи не будуть, як колись…", diff --git a/common/src/main/resources/assets/mca_books/lang/zh_cn.json b/common/src/main/resources/assets/mca_books/lang/zh_cn.json index 0d4fda50c5..2c113bebcd 100644 --- a/common/src/main/resources/assets/mca_books/lang/zh_cn.json +++ b/common/src/main/resources/assets/mca_books/lang/zh_cn.json @@ -1,67 +1,67 @@ { "mca.books.death.author": "勇士欧兹", "mca.books.death.0": "§f我已经数不清苦力怕炸的我家人灰飞烟灭的次数了。你可能会问,那为什么他们还健在呢?亲爱的读者,且听我慢慢道来!我会与你分享我所发现的逆转死亡之法。", - "mca.books.death.1": "§f§l坟墓§r§f\n§r§f某位村民去世后,他的遗体将会埋葬在距离最近的坟墓中。所以,一定要确保在墓地中保留一块空墓碑。", + "mca.books.death.1": "§f§l坟墓§r§f\n§r§f某位村民去世后,其遗体将会埋葬在距离最近的坟墓中。所以,一定要确保在墓地中保留一块空墓碑。", "mca.books.death.2": "§f§l召唤死神 第一章§r§f\n很遗憾,唯一能战胜死亡的只有死神本身。死神需要三个至少两格高的黑曜石柱打造的祭坛才能召唤。当然,你也可以做得更高。", "mca.books.death.3": "§f§l召唤死神 第二章§r§f\n祭坛中心必须放置一个绿宝石块作为祭品。", "mca.books.death.4": "§f§l召唤死神 第三章§r§f\n一切准备就绪后,你需要等到晚上并点燃三根柱子。当你要开始战斗的时候,点燃绿宝石块就赶紧跑吧!", - "mca.books.death.5": "§f§l对阵死神 第一章§r§f\n死神极难打败,你最好穿上全套钻石盔甲,带上一堆药水和附魔道具。他可以:\n- 飞行\n- 阻挡攻击\n- 让你失明\n- 移动你的物品\n- 瞬移", + "mca.books.death.5": "§f§l对阵死神 第一章§r§f\n死神极难打败,你最好穿上全套钻石盔甲,带上大量的药水和附魔道具。他可以:\n- 飞行\n- 阻挡攻击\n- 让你失明\n- 移动你的物品\n- 瞬移", "mca.books.death.6": "§f§l对阵死神 第二章§r§f\n如果你在死神格挡时攻击,他会传送到你背后偷袭你。用弓箭和药水是没用的,他都能免疫!", - "mca.books.death.7": "§f§l与死神战斗 第三章§r§f\n当死神失去太多血量时,他会将自己传送到空中并开始自我治疗。在治疗的同时,他会从地狱召唤出他的小弟们来对抗你。", - "mca.books.death.8": "§f§l与死神战斗 第四章§r§f\n当死神治疗完成后,他将继续攻击你,但他将在 3 分 30 秒内无法再次自我治疗。每次死神治疗完成后,他将无法恢复以前那样多的血量。", - "mca.books.death.9": "§f§l死神镰刀 第一章§r§f\n一旦你给死神以命一击,他就会掉到空旷地带,并留下他的镰刀。这把镰刀一碰就觉得冷,是一种强大的工具。给镰刀充能来击倒一名村民,然后将储存的灵魂转移到墓碑上。", - "mca.books.death.10": "§f§l死神镰刀 第二章§r§f\n但是你的朋友会被僵尸病毒感染,因为时间在地下留下了一些痕迹。我的朋友理查德曾经写过一本关于这个的书。", - "mca.books.death.11": "§f§l生命之杖 第一章§r§f\n另一个更为和平的解决手段是使用生命之杖。它不需要你献祭一个可怜的灵魂,而是用一颗下界之星就能复活逝去之人。", - "mca.books.death.12": "§f§l生命之杖 第二章§r§f\n生命之杖十分强大,不仅可以复活五位村民,还可以治疗被复活者身上的所有疾病。", + "mca.books.death.7": "§f§l与死神战斗 第三章§r§f\n当死神失去太多生命值时,他会将自己传送到空中并开始自我治疗。在治疗的同时,他会从地狱召唤出他的仆从们来对抗你。", + "mca.books.death.8": "§f§l与死神战斗 第四章§r§f\n当死神治疗完成后,他将继续攻击你,但他将在3分30秒内无法再次自我治疗。每次死神治疗完成后,他将无法恢复以前那样多的血量。", + "mca.books.death.9": "§f§l死神镰刀 第一章§r§f\n一旦你给死神以命一击,他就会掉到空旷地带,并留下他的镰刀。这把镰刀会让你在触摸它时感到寒气刺骨,是一种强大的工具。击倒一位村民可以给镰刀充能,接着请将储存着的灵魂转移到墓碑上。", + "mca.books.death.10": "§f§l死神镰刀 第二章§r§f\n但是你的朋友会以被感染的形态复活,因为地下的岁月是把杀猪刀。我的朋友理查德曾经写过一本关于这个的书。", + "mca.books.death.11": "§f§l生命之杖 第一章§r§f\n然而,还有一种更和平的解决手段:生命之杖!你可以使用下界之星的力量复活逝去之人,而非献祭一个可怜的灵魂。", + "mca.books.death.12": "§f§l生命之杖 第二章§r§f\n这根权杖是一种可以使人复活的强大物品。与死神镰刀不同的是,它甚至能够消除复活者身上的任何疾病。", "mca.books.romance.author": "图书管理员格瑞", "mca.books.romance.0": "§l简介§r\n在人的一生中,交际是扩展人脉和找到挚爱的关键。我很荣幸向初入世界的新人在本书中分享我对交际、爱情,以及不幸的婚姻破碎的知识。", "mca.books.romance.1": "§l性格§r\n当与村民交谈时,你会发现不同的村民有不同的性格。请务必注意这点!有些人可能更喜欢笑话,有些人可能需要拥抱,还有些人的个性可能显而易见。您可以把鼠标放在个性上了解详情。", - "mca.books.romance.2": "§l情绪 第一章§r\n每个人都有不同的情绪,在与他们交流时,情绪就能显现出来。每一天,情绪都会不断变化。而且,村民情绪上的不同,也会决定他们对某些特定互动的不同表现。", - "mca.books.romance.3": "§l情绪 第二章§r\n如果某位村民去世了,那么,他/她的死将有可能使周围其他村民的情绪变得很低落。此外,税收也会使所有人的情绪变得低落。而赠送礼物及成功的互动将会使人们的情绪得到改善。", + "mca.books.romance.2": "§l情绪 第一章§r\n每个人都有不同的情绪,在与他们交流时,情绪就能显现出来。情绪在一天内的任何时间都会不断变化。而且,村民情绪上的不同,也会决定他们对某些特定互动的不同表现。", + "mca.books.romance.3": "§l情绪 第二章§r\n某位村民的死去可能会使他周围的人情绪十分低落。此外,税收的增加也会逐渐降低每个人的情绪。而赠送礼物以及进行成功的互动将会改善人们的情绪。", "mca.books.romance.4": "§l互动 第一章§r\n在与村民互动时,最好根据他们的情绪和个性做出明智的选择!如果选择比较浪漫的互动,确保与你交谈的村民非常喜欢你。", - "mca.books.romance.5": "§l互动 第二章§r\n别太心急了!与某人交谈太久会让他们厌烦,你对他们的互动可能会停止。如果发生这种情况,只需等待一段时间,然后再尝试与他们交谈。", - "mca.books.romance.6": "§l赠礼§r\n赠礼是赢得友谊的另一个好方法。不过,还是要小心你送给谁什么。渔夫喜欢鱼,但千万不要把一条臭鱼送给一名高贵的女士。", - "mca.books.romance.7": "§l婚配§r\n要结婚,只要在你觉得自己达到了最高的关系水平后送给村民一枚结婚戒指就行了。", - "mca.books.romance.8": "§l离婚 第一章§r\n不幸的是,有时候最好和你的配偶分开,继续生活。如果你想这么做,请找一位牧师领取离婚协议书。然后和你的配偶谈谈。", - "mca.books.romance.9": "§l离婚 第二章§r\n或者你可以在没有协议书的情况下结束婚姻,但他们不会开心的。", + "mca.books.romance.5": "§l互动 第二章§r\n别太烦人了!与某人交谈太久会让他们厌烦,你的互动可能不再成功。如果发生这种情况,只需等待一段时间,然后再尝试与他们交谈就好。", + "mca.books.romance.6": "§l赠礼§r\n赠礼是赢得友谊的另一个好方法。不过,还是要注意你赠的礼是否符合对象。渔夫喜欢鱼,但请千万不要把一条臭鱼送给一位高贵的女士。", + "mca.books.romance.7": "§l婚配§r\n要结婚,只要在你觉得自己与一位村民结下了深厚的情结时,送出结婚戒指即可。", + "mca.books.romance.8": "§l离婚 第一章§r\n可惜的是,如果你想要生活继续前进,有时就必须与你的配偶分开。如果你想这么做,请找一位牧师领取离婚协议书。然后和你的配偶谈谈。", + "mca.books.romance.9": "§l离婚 第二章§r\n或者你可以在没有协议书的情况下结束婚姻,但你的配偶不会开心的。", "mca.books.family.author": "牧师莱恩", "mca.books.family.0": "孩童,即我们的未来!生越多,§r乐越多!你不仅能享受天伦之乐,还能在孩子长大之后让他们为你打工!", - "mca.books.family.1": "§l宝宝§r\n当你结婚后,只需要向你的配偶提出“生儿育女”的要求。在一段简短的动作之后,你将成为一个新的男孩或女孩的父母(甚至可能两者兼有)!", - "mca.books.family.2": "§l成长§r\n宝宝们需要时间成长,确保抱着他们直到他们准备好,或者把他们交给你的配偶照顾。一旦宝宝们可以成长了,你可以把它放在地上,它就会成长为一个少年!", + "mca.books.family.1": "§l宝宝§r\n当你结婚后,只需要向你的配偶提出“生儿育女”的要求。在一段简短的舞蹈之后,你将成为一个新的男孩或女孩的父母(甚至可能两者兼有)!", + "mca.books.family.2": "§l成长§r\n宝宝们需要时间成长,请确保在他们准备好成长前随身携带,或者把他们交给你的配偶照顾。一旦宝宝们可以成长了,你可以把它放在地上,它就会成长为一个儿童!", "mca.books.family.3": "§l青春期§r\n孩子会慢慢长大。但据说,金苹果的魔力能够加快孩子的成长速度。我一定要亲自尝试试这个方法。", "mca.books.family.4": "§l家务活§r\n每个孩子都会干农活、伐木、采矿、打猎以及钓鱼。所以,你需要根据不同的工作给他们提供不同的工具。如果工具损坏,且没有备用工具,那么孩子就只能停止工作了。", "mca.books.family.5": "§l贪婪§r\n如果你发现你的孩子性格贪婪,你一定要小心!因为众所周知,贪婪的孩子很可能会在做家务时偷东西。", - "mca.books.family.6": "§l挖矿§r\n关于采矿,这里有一个特别的说明,大多数孩子都有一种特殊的能力来寻找和定位地下的矿石。这样会损坏他们物品栏中的任何镐子。", + "mca.books.family.6": "§l挖矿§r\n关于采矿,这里有一个特别说明,大多数孩子都有一种特殊的能力来寻找和定位地下的矿石。这种能力将会损坏他们物品栏中任何种类的镐子。", "mca.books.family.7": "§l成年§r\n尽管这可能令人悲伤,但孩子们最终会长大成人。一旦他们长大成人,他们将不再为你工作。他们成年后,你可以用牧师的戒指为他们指定婚配对象,或者他们最终会自己结婚。", "mca.books.rose_gold.author": "矿工威廉", - "mca.books.rose_gold.0": "§l警告!\n绝密§r\n本手册归威廉矿业公司所有。如果您不是威廉矿业公司的员工,请不要阅读本手册,并立即将这本书退回给威廉矿业公司。", - "mca.books.rose_gold.1": "啊,玫瑰金 - 一种金、银、铜的完美组合,可以炼成粉红色的金属。大多数人用它来代替黄金来制作戒指,因为它便宜得多。然而,它有一些有趣的特性,很容易被忽略。", - "mca.books.rose_gold.2": "§l制成粉尘§r\n玫瑰金一经熔炼,可被粉碎成粉末。在明亮的光线下仔细观察玫瑰金粉,你会看到闪亮的纯金斑点!§r", - "mca.books.rose_gold.3": "§l清洗粉尘§r\n只要稍稍加工,我们就可以从粉尘中提取黄金,制造出纯金锭。只需将粉尘与一桶水混合即可。较轻的银和铜部分将被冲走,留下约 6 小堆金粉尘。", - "mca.books.rose_gold.4": "§l提炼金锭§r\n在你的工作台上放置 9 堆粉尘,如果你幸运的话,你会在其中一个上面发现一块金块!§r而且,一旦你有了 9 块金块,你就可以将它们加工成一个实心金锭。", + "mca.books.rose_gold.0": "§l警告!\n绝 密§r\n本手册归威廉矿业公司所有。如果您不是威廉矿业公司的员工,请不要阅读本手册,并立即将此书退还于威廉矿业公司。", + "mca.books.rose_gold.1": "哦,玫瑰金:一种金、银、铜的完美组合,可以炼成粉红色的金属。大多数人用它来代替黄金来制作戒指,因为它便宜得多。然而,它有一些有趣的、容易被忽略的特性。", + "mca.books.rose_gold.2": "§l制成粉尘§r\n玫瑰金经熔炼,可被挤压成玫瑰金粉。在明亮的光线下仔细观察玫瑰金粉,你会看到闪亮的纯金斑点!§r", + "mca.books.rose_gold.3": "§l清洗粉尘§r\n只要稍稍加工,我们就可以从玫瑰金粉中提取黄金,制造出纯金锭。只需将粉尘与一桶水混合即可。较轻的银和铜将被冲走,留下约6小堆金粉。", + "mca.books.rose_gold.4": "§l提炼金锭§r\n在你的工作台上放置9个玫瑰金粉,如果你幸运的话,你会在其中一个上面发现一粒金粒!§r而且,当你拥有9个金粒,你就可以用它们合成一个实心金锭。", "mca.books.infection.author": "僵尸理查德", - "mca.books.infection.0": "你好啊,读者!我写这本书是为了让你不会像我一样感染僵尸病毒。虽然我感染了病毒,但幸运的是我能够保持我的理智。", - "mca.books.infection.1": "§l感染是个啥东西?§r\n我很久以前就发现,夜间出现的僵尸以前其实是村民!§r刚刚染病的村民会慢慢变绿,身体不适,甚至无法正常交流!", + "mca.books.infection.0": "美好的一天,读者!我写这本书是为了让你不会像我一样感染僵尸病毒。虽然我感染了病毒,但很幸运,我依然能够保持理智。", + "mca.books.infection.1": "§l感染是个啥东西?§r\n我很久以前就发现,夜间出现的僵尸在以前其实是村民!刚刚染病的村民的身体会慢慢变绿,接着身体不适,甚至无法正常交流!", "mca.books.infection.2": "§l治疗 第一章§r\n与主流观点不同,被感染的村民是可以治愈的。你可以喂给刚刚染病的村民金苹果来抑制病毒达到治疗。如果村民已经变成僵尸,你必须用虚弱药水降低村民的攻击力,然后喂给那位村民一颗金苹果。", "mca.books.infection.3": "§l治疗 第二章§r\n你看到的任何其他僵尸都已经病入膏肓,无法治愈。", "mca.books.infection.4": "§l治疗 第三章§r\n只需要几分钟时间,就能完全治愈变为僵尸的村民。如果村民刚被感染,而且还未变为僵尸,则可以立即治愈!", "mca.books.infection.5": "§l警告§r\n村民感染僵尸病毒的几率极高,你可以建造一座医院来降低感染风险!", - "mca.books.blueprint.author": "建筑师卡罗", + "mca.books.blueprint.author": "建筑师卡尔", "mca.books.blueprint.0": "§f我们这些村民既会种地,也可以打造工具和铠甲,还识文断字,会酿酒,会施法。除了这些,我们还会很多别的事情。但我们唯一不懂的,就是盖房子!", - "mca.books.blueprint.1": "§f在旅途中,你或许会遇到一些建筑规模小,不实用,而且装饰也不多的村庄。该如何让这些地方的村民做得了大工程呢?", - "mca.books.blueprint.2": "§f§l蓝图§r§f\n这就是为什么我在这颗星球上游荡,帮助我在旅行中遇到的村庄。而你也可以!使用蓝色染料和纸为自己制作一份蓝图,查看每个村庄需要但无法自行建造的建筑目录。", - "mca.books.blueprint.3": "§f§l所需材料§r§f\n建筑物的大小通常只需达标即可。但是你不能把东西塞满整个建筑。而且,你必须确保建筑所需的方块齐全。", - "mca.books.blueprint.4": "§f§l准备完成§r§f\n完成后,点击“添加建筑”,就能看看村民如何使用这所建筑了。", - "mca.books.blueprint.5": "§f§l身份§r§f\n但是你没有必要太无私!你的村庄越先进,你的身份等级就越高。曾几何时,你想过成为一名贵族吗?还是市长?甚至是国王?", - "mca.books.cult_0.author": "虔诚的教徒卢卡斯", + "mca.books.blueprint.1": "§f在旅途中,你可能会遇到几座村庄,村庄里的房子都很小,不实用,也没有什么装饰。要怎样才能扩大村庄的规模呢?", + "mca.books.blueprint.2": "§f§l蓝图§r§f\n这就是为什么我在这颗星球上游荡,帮助我在旅行中遇到的村庄。而你也可以!使用蓝色染料和纸为自己制作一份蓝图,查看每个村庄需要但无法自行建造的建筑目录。", + "mca.books.blueprint.3": "§f§l所需材料§r§f\n建筑物的大小通常只需达标即可。但是你不能把建筑搅成一团乱麻。而且,你必须确保建筑所需的方块齐全。", + "mca.books.blueprint.4": "§f§l准备完成§r§f\n完成后,点击“添加建筑”,就能看到村民们将该建筑融入村庄了。", + "mca.books.blueprint.5": "§f§l身份§r§f\n但是你没有必要太无私!你的村庄越高级,你的身份等级就越高。曾几何时,你想过成为一名贵族吗?还是市长?甚至是国王?", + "mca.books.cult_0.author": "教徒卢卡斯", "mca.books.cult_0.0": "很久以前,一个来自另一个世界的生物来到了这个星球,在它穿越大地的旅途中分享它的智慧……这个实体被称为“瑟本99”。", "mca.books.cult_0.1": "尽管初衷是好的,但它的知识并非我们的大脑能够理解的,有些人选择不听,但那些听过的人已经被改变了,再也不一样了……", - "mca.books.cult_0.2": "他们的思想彻底被怪人说的话摧毁了,开始变得痴迷,他们还开始把“神圣之言”口口相传。自此,每一个痴迷的人类都会得到“怪人”特征。", + "mca.books.cult_0.2": "他们的思想彻底被瑟本说的话摧毁了,开始变得痴迷,他们还开始把“神圣之言”口口相传。自此,每一个痴迷的人类都会得到“瑟本人”特征。", "mca.books.cult_0.3": "直到今天,有些人们说他们仍然可以听到它的话语……", "mca.books.cult_1.author": "探索者伊芙林", "mca.books.cult_1.0": "瑟本教派讲述了一种超越我们世界的更高力量,一种存在于我们对时间和空间的理解之外的存在。", "mca.books.cult_1.1": "通过冥想和仪式,教徒们试图与这个实体交流,希望能洞察其不可知的本质和宇宙的秘密。", - "mca.books.cult_1.2": "但这种知识是有代价的——一种攫取思想和扭曲灵魂的疯狂。那些遵循瑟本教诲的人必须谨慎行事,以免他们在追求禁忌的真理中迷失自我。", + "mca.books.cult_1.2": "但这种知识是有代价的:一种攫取思想和扭曲灵魂的疯狂。那些遵循瑟本教诲的人必须谨慎行事,以免他们在追求禁忌的真理中迷失自我。", "mca.books.cult_1.3": "然而,即使世界对他们的信仰嗤之以鼻,教徒们仍然坚定不移地献身。因为他们知道,在现实的面纱之外,有一个无限神奇的领域,在那里,宇宙的奥秘为那些有勇气寻找它们的人所揭开。", "mca.books.cult_2.author": "冒险家巴纳比", "mca.books.cult_2.0": "为了召唤远古教徒,人们必须在下雪的午夜举行一个仪式。但请注意,这不是一个普通的仪式……它需要山羊的乳汁!", @@ -69,12 +69,12 @@ "mca.books.cult_2.2": "但是要小心,因为这些不死的教徒是不能轻视的。一旦被唤醒,他们可能会对你发起进攻,并不惜一切代价保护他们的秘密。", "mca.books.cult_2.3": "不过,如果你有足够的勇气面对他们,并将他们击败,你将会获得瑟本人们留下的密语。有了这段密语,你就能获得对这个世界和其他世界的奥秘的全新理解。", "mca.books.cult_ancient.author": "远古瑟本人", - "mca.letter.condolence": "%s,\n\n我们非常遗憾地通知您 %s 的死亡。\n\n谨上,\n%s 村的元首", + "mca.letter.condolence": "%s,\n\n我们非常遗憾地通知您%s的死亡。\n\n谨上,\n%s村的元首", "mca.books.supporters.author": "社区", "mca.books.supporters.patrons": "赞助", "mca.books.supporters.contributors": "贡献者", "mca.books.supporters.translators": "译者", "mca.books.supporters.wiki": "维基", - "mca.books.supporters.old": "MCA 7.0.0 之前", + "mca.books.supporters.old": "MCA 7.0.0之前", "mca.books.supporters.thanks": "非常感谢!" } diff --git a/common/src/main/resources/assets/mca_books/lang/zh_hk.json b/common/src/main/resources/assets/mca_books/lang/zh_hk.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/zh_hk.json +++ b/common/src/main/resources/assets/mca_books/lang/zh_hk.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_books/lang/zh_tw.json b/common/src/main/resources/assets/mca_books/lang/zh_tw.json index 07737720ea..3793ac6f47 100644 --- a/common/src/main/resources/assets/mca_books/lang/zh_tw.json +++ b/common/src/main/resources/assets/mca_books/lang/zh_tw.json @@ -12,7 +12,7 @@ "mca.books.death.9": "§f§lThe Scythe§r§f\nOnce you land the lethal hit, he falls back into the void and leaves his Scythe behind. The Scythe, feeling ice cold on touch, is a mighty tool. Strike down a villager to charge the scythe, then transfer the stored soul to the gravestone.", "mca.books.death.10": "§f§lThe Scythe 2§r§f\nBut your friend will rise infected, as the time underground left some marks. You can probably heal him somehow, my friend Richard once wrote a book about this topic.", "mca.books.death.11": "§f§lStaff Of Life§r§f\nHowever, there is another, more peaceful solution. The Staff of Life! Instead of a poor soul, it uses the Nether Stars concentrated power to revive.", - "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive up to 5 people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", + "mca.books.death.12": "§f§lStaff Of Life 2§r§f\nThe Staff is a powerful item that can revive people. Unlike the Scythe, it is even capable of erasing any sickness from the revived person.", "mca.books.romance.author": "Gerry the Librarian", "mca.books.romance.0": "§lIntroduction§r\nInteraction is key to building relationships and finding the love of your life. I've happily written this book in order to share my knowledge of interaction, love, and, unfortunately, divorce, to anyone who may need a little push in the right direction.", "mca.books.romance.1": "§lPersonalities§r\nWhen speaking to any villager, you'll notice they have a personality. Pay close attention to this! Some people like jokes more, some love a hug. Some personalities are more obvious than others. Hover over the personality to see some hints.", @@ -48,11 +48,11 @@ "mca.books.infection.5": "§lWarnings§r\nVillagers are highly susceptible to infection, decrease the risk of infection by building an infirmary!", "mca.books.blueprint.author": "Carl the Builder", "mca.books.blueprint.0": "§fWe villager can farm. We can smith tools and armor. We can read, brew, enchant and so much more. But there is one thing we lack the knowledge for: construction!", - "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated. How should a village ever evolve into something bigger?", + "mca.books.blueprint.1": "§fOn your journey, you probably come across several villages full of small, impractical, and barely decorated houses. How should a village ever evolve into something bigger?", "mca.books.blueprint.2": "§f§lBlueprint§r§f\nThat's why I'm wandering across the planet, helping villages I encounter on my travels. And you could too! Craft yourself a blueprint using blue dye and paper and check out the catalog of buildings every village needs but can't build on their own.", "mca.books.blueprint.3": "§f§lRequirements§r§f\nA buildings usually requires a minimum size. You can't just plug everything into a shed. Then you have to make sure that all the block requirements are fulfilled.", "mca.books.blueprint.4": "§f§lFinish§r§f\nOnce done, hit 'Add Building' and watch how villagers integrate it into the village.", - "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Every dreamed to live a life of a noble? A mayor? Or even a King?", + "mca.books.blueprint.5": "§f§lRanks§r§f\nBut you don't need to be selfless! The more advanced your village is, the higher your rank gets. Ever dreamed to live a life of a noble? A mayor? Or even a King?", "mca.books.cult_0.author": "Lucas the Devotee", "mca.books.cult_0.0": "A long time ago, a being from another world came to this planet, sharing its wisdom as it travels across the land… This entity was called Sirben the 99.", "mca.books.cult_0.1": "Despite good intentions, its knowledge was too much for our minds to comprehend, some people didn't listen, but those who did were changed, to never be the same again…", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/af_za.json b/common/src/main/resources/assets/mca_dialogue/lang/af_za.json index eb1fda4534..3f9294bbf9 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/af_za.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/af_za.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/ar_sa.json b/common/src/main/resources/assets/mca_dialogue/lang/ar_sa.json index efb455fc75..e76c30587b 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/ar_sa.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/ar_sa.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "أحب هذا المكان حقاً، عمل جيد %1$s!", "spouse.interaction.sethome.success/2": "هذا مثل منزل الأحلام!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "حسناً، أين غرفتي؟", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/be_by.json b/common/src/main/resources/assets/mca_dialogue/lang/be_by.json index 4353dbb0d5..abd4385417 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/be_by.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/be_by.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/cs_cz.json b/common/src/main/resources/assets/mca_dialogue/lang/cs_cz.json index 8370f5dc3c..0cf65f2feb 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/cs_cz.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/cs_cz.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/de_de.json b/common/src/main/resources/assets/mca_dialogue/lang/de_de.json index 39f93ea2a4..87a3833d16 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/de_de.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/de_de.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Ich liebe diesen Ort, gute Arbeit %1$s!", "spouse.interaction.sethome.success/2": "Das ist wie ein Traumhaus!", "spouse.interaction.sethome.success/3": "Ich bin froh, dass wir endlich einziehen können!", - "spouse.interaction.sethome.success/4": "Danke, das sieht wirklich schön aus %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, ist das richtig? Ich mag es wirklich!", - "spouse.interaction.sethome.success/6": "*umarmt dich* Danke, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "Wenn wir dort zusammen sind, ist es für mich ein Traumhaus.", "spouse.interaction.sethome.success/8": "Das ist ein wirklich cooler Ort!", "childp.interaction.sethome.success/1": "In Ordnung, wo ist mein Zimmer?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/el_gr.json b/common/src/main/resources/assets/mca_dialogue/lang/el_gr.json index 66a29857d0..9c90cfb02f 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/el_gr.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/el_gr.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/en_pt.json b/common/src/main/resources/assets/mca_dialogue/lang/en_pt.json index 7dbffa339f..3511c8f757 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/en_pt.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/en_pt.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I mighty like this galleon, good job %1$s!", "spouse.interaction.sethome.success/2": "'tis like a dream home!", "spouse.interaction.sethome.success/3": "I be happy we be finally movin' in!", - "spouse.interaction.sethome.success/4": "Thank ye, this looks mighty nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Blimey, be this right? I mighty like it!", - "spouse.interaction.sethome.success/6": "*embraces ye* Thank ye, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we be thar together, it's a dream home t' me.", "spouse.interaction.sethome.success/8": "'tis a smart ship!", "childp.interaction.sethome.success/1": "Aye fine, where's me cabin?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/en_us.json b/common/src/main/resources/assets/mca_dialogue/lang/en_us.json index d7696469bc..354e1a9e1c 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/en_us.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/en_us.json @@ -313,9 +313,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", @@ -379,6 +379,9 @@ "spouse.interaction.procreate.fail.lowhearts/1": "Spend more time with me! I'm not ready for a child.", "spouse.interaction.procreate.fail.lowhearts/2": "Hmm...not just yet. I think we need to spend more time together first.", + "interaction.procreate.fail.toosoon/1": "Give me a break!", + "interaction.procreate.fail.toosoon/2": "Again?!", + "interaction.procreate.fail.toosoon/3": "Maybe later...", "interaction.adopt.success/1": "This is the happiest day of my life!", "interaction.adopt.success/2": "*cries* Is this real? I can't even.. I love you both so much!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/es_cl.json b/common/src/main/resources/assets/mca_dialogue/lang/es_cl.json index fcd768ff17..f71c225804 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/es_cl.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/es_cl.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "¡Realmente me gusta este lugar, buen trabajo %1$s!", "spouse.interaction.sethome.success/2": "¡Es como una casa de ensueño!", "spouse.interaction.sethome.success/3": "¡Estoy feliz de que alfin nos mudemos!", - "spouse.interaction.sethome.success/4": "Gracias, esto se ve muy bien %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, ¿esta es verdad? ¡Realmente me gusta!", - "spouse.interaction.sethome.success/6": "*te abraza* ¡Gracias, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "Si estamos juntos, es una casa de ensueño para mi.", "spouse.interaction.sethome.success/8": "¡Este es un lugar realmente genial!", "childp.interaction.sethome.success/1": "Esta bien, ¿En donde esta mi habitación?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/es_es.json b/common/src/main/resources/assets/mca_dialogue/lang/es_es.json index 0cfe6aee8c..64685079c9 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/es_es.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/es_es.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "¡Realmente me gusta este lugar, buen trabajo %1$s!", "spouse.interaction.sethome.success/2": "¡Esta es la casa de ensueño!", "spouse.interaction.sethome.success/3": "¡Me alegro de que por fin nos mudemos!", - "spouse.interaction.sethome.success/4": "Gracias, tiene muy buena pinta %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, ¿es aquí? ¡Me gusta mucho!", - "spouse.interaction.sethome.success/6": "*te abraza* ¡Gracias, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "Si estamos juntos, para mí es la casa de mis sueños.", "spouse.interaction.sethome.success/8": "¡Es un sitio muy chulo!", "childp.interaction.sethome.success/1": "Está bien, ¿Dónde está mi habitación?", @@ -341,7 +341,7 @@ "spouse.interaction.procreate.fail.lowhearts/1": "¡Pasa más tiempo conmigo! No estoy preparado(a) para un niño.", "spouse.interaction.procreate.fail.lowhearts/2": "Hmm… todavía no. Creo que necesitamos pasar más tiempo juntos primero.", "interaction.adopt.success/1": "este es el día más feliz de mi vida!", - "interaction.adopt.success/2": "*llora* ¿Esto es real? Ni siquiera puedo... ¡Los amo tanto a los dos! ", + "interaction.adopt.success/2": "*llora* ¿Esto es real? Ni siquiera puedo... ¡Los amo tanto a los dos!", "adult.welcome/1": "¡Bienvenido(a) de nuevo, %1$s!", "adult.welcome/2": "¡Hola, %1$s! ¡Bienvenido de nuevo!", "male.child.welcome/1": "¡Hola, Sr. %1$s!", @@ -518,7 +518,7 @@ "child.dialogue.main/1": "Hola, ¿Quién eres?", "child.dialogue.main/2": "Hola, ¿Cuál es tu nombre?", "child.dialogue.main/3": "¡Ay! ¡Das miedo!", - "child.dialogue.main/4": "¿Has visto a (insertar nombre)? ¡Estábamos jugando al escondite y ahora no puedo encontrarlos! Han pasado horas!!!", + "child.dialogue.main/4": "¿Has visto %supporter%? ¡Estábamos jugando al escondite y ahora no los encuentro! ¡¡¡Han pasado horas!!!", "child.dialogue.main/5": "¿Por qué los zombis no pueden recibir un abrazo...? Tal vez estén solos...", "child.dialogue.main/6": "No se lo digas a nadie, pero accidentalmente bebí este jugo y ahora me siento mareado.", "child.dialogue.main/7": "Me gusta tu ropa hoy, ayer tu ropa se veía asquerosa.", @@ -818,7 +818,7 @@ "adult.dialogue.story.fail/10": "no veo como eso fue bueno.", "teen.dialogue.story.fail/1": "Por eso quiero irme de casa.", "teen.dialogue.story.fail/2": "Ya me contaste esta historia cuando era un bebé...", - "child.dialogue.story.success/1": "¡Guau! ¡Eres toda una bestia!", + "child.dialogue.story.success/1": "¡Guau! ¡Eres toda una leyenda!", "child.dialogue.story.success/2": "Quiero ser como tú cuando sea mayor. Shh, no se lo digas a papá.", "child.dialogue.story.success/3": "¡¿Me puedes adoptar?! ¡Eres increíble!", "child.dialogue.story.success/4": "Fui a pescar y casi me ahogo.", @@ -903,12 +903,12 @@ "child.dialogue.joke.creative.success/6": "¡Eres más divertida que mami!", "child.dialogue.joke.creative.fail/1": "No lo entiendo.", "child.dialogue.joke.creative.fail/2": "No tiene gracia. En serio.", - "child.dialogue.joke.creative.fail/3": "Tienes que parar...", + "child.dialogue.joke.creative.fail/3": "No tiene chiste...", "child.dialogue.joke.creative.fail/4": "Pero, ¿quién es la manzana?", - "child.dialogue.joke.creative.fail/5": "¡No seas malo!", + "child.dialogue.joke.creative.fail/5": "¡Eres terrible para los chistes!", "child.dialogue.joke.creative.fail/6": "*te saca la lengua*", "spouse.dialogue.joke.creative.success/1": "*Risas* ¡Me casé contigo por tu sentido del humor!", - "spouse.dialogue.joke.creative.success/2": "¡Deberías arrojarle un huevo la próxima vez!", + "spouse.dialogue.joke.creative.success/2": "¡JAJAJAJA, ahh fue un buen chiste!", "spouse.dialogue.joke.creative.success/3": "¡Ese nunca pasa de moda!", "spouse.dialogue.joke.creative.success/4": "Aquí te va uno… ¿Cuántas gallinas puede explotar un creeper?", "spouse.dialogue.joke.creative.success/5": "¡Por eso me casé contigo! Siempre me haces sonrreir!", @@ -1303,7 +1303,7 @@ "male.teenp.dialogue.greet.negative/2": "¡Papá, ahora no!", "male.teenp.dialogue.greet.negative/3": "*pone los ojos en blanco* ¿Qué pasa viejo?", "male.teenp.dialogue.greet.negative/4": "Papá, tengo cosas más importantes en este momento, ¡vete!", - "female.teenp.dialogue.greet.negative/1": "Ugh!¿Qué quieres mamá?\n", + "female.teenp.dialogue.greet.negative/1": "Ugh!¿Qué quieres mamá?", "female.teenp.dialogue.greet.negative/2": "¡Mamá, no estoy de humor ahora mismo!", "female.teenp.dialogue.greet.negative/3": "*pone los ojos en blanco* ¿Qué pasa vieja?", "female.teenp.dialogue.greet.negative/4": "Mamá, tengo cosas más importantes en este momento, ¡vete!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/es_mx.json b/common/src/main/resources/assets/mca_dialogue/lang/es_mx.json index 1802ee469b..f720aa4fe0 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/es_mx.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/es_mx.json @@ -1,5 +1,5 @@ { - "reaction.ranaway/1": "Así es, ¡más vale que corras!", + "reaction.ranaway/1": "¡Así es, mejor corre!", "reaction.ranaway/2": "¡Si vuelves, llamaré a los guardias!", "reaction.ranaway/3": "¡Vuelve y pelea como un hombre!", "reaction.ranaway/4": "¡Si te veo de nuevo, te romperé la cara!", @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "¡Realmente me gusta este lugar, buen trabajo %1$s!", "spouse.interaction.sethome.success/2": "¡Esta es la casa de ensueño!", "spouse.interaction.sethome.success/3": "¡Me alegro de que por fin nos mudemos!", - "spouse.interaction.sethome.success/4": "Gracias, tiene muy buena pinta %v1%.", + "spouse.interaction.sethome.success/4": "Gracias, tiene muy buena pinta %1$s.", "spouse.interaction.sethome.success/5": "Ahh, ¿es aquí? ¡Me gusta mucho!", - "spouse.interaction.sethome.success/6": "*te abraza* ¡Gracias, %v1%!", + "spouse.interaction.sethome.success/6": "*te abraza* ¡Gracias, %1$s!", "spouse.interaction.sethome.success/7": "Si estamos juntos, para mí es la casa de mis sueños.", "spouse.interaction.sethome.success/8": "¡Es un sitio muy chulo!", "childp.interaction.sethome.success/1": "Está bien, ¿Dónde está mi habitación?", @@ -341,7 +341,7 @@ "spouse.interaction.procreate.fail.lowhearts/1": "¡Pasa más tiempo conmigo! No estoy preparado(a) para un niño.", "spouse.interaction.procreate.fail.lowhearts/2": "Hmm… todavía no. Creo que necesitamos pasar más tiempo juntos primero.", "interaction.adopt.success/1": "este es el día más feliz de mi vida!", - "interaction.adopt.success/2": "*llora* ¿Esto es real? Ni siquiera puedo... ¡Los amo tanto a los dos! ", + "interaction.adopt.success/2": "*llora* ¿Esto es real? Ni siquiera puedo... ¡Los amo tanto a los dos!", "adult.welcome/1": "¡Bienvenido(a) de nuevo, %1$s!", "adult.welcome/2": "¡Hola, %1$s! ¡Bienvenido de nuevo!", "male.child.welcome/1": "¡Hola, Sr. %1$s!", @@ -518,7 +518,7 @@ "child.dialogue.main/1": "Hola, ¿Quién eres?", "child.dialogue.main/2": "Hola, ¿Cuál es tu nombre?", "child.dialogue.main/3": "¡Ay! ¡Das miedo!", - "child.dialogue.main/4": "¿Has visto a (insertar nombre)? ¡Estábamos jugando al escondite y ahora no puedo encontrarlos! Han pasado horas!!!", + "child.dialogue.main/4": "¿Has visto %supporter%? ¡Estábamos jugando al escondite y ahora no los encuentro! ¡¡¡Han pasado horas!!!", "child.dialogue.main/5": "¿Por qué los zombis no pueden recibir un abrazo? Quizá se sienten solos...", "child.dialogue.main/6": "No se lo digas a nadie, pero accidentalmente bebí este jugo y ahora me siento mareado.", "child.dialogue.main/7": "Me gusta tu ropa hoy, ayer tu ropa se veía asquerosa.", @@ -1303,7 +1303,7 @@ "male.teenp.dialogue.greet.negative/2": "¡Papá, ahora no!", "male.teenp.dialogue.greet.negative/3": "*pone los ojos en blanco* ¿Qué pasa viejo?", "male.teenp.dialogue.greet.negative/4": "Papá, tengo cosas más importantes en este momento, ¡vete!", - "female.teenp.dialogue.greet.negative/1": "Ugh!¿Qué quieres mamá?\n", + "female.teenp.dialogue.greet.negative/1": "Ugh!¿Qué quieres mamá?", "female.teenp.dialogue.greet.negative/2": "¡Mamá, no estoy de humor ahora mismo!", "female.teenp.dialogue.greet.negative/3": "*pone los ojos en blanco* ¿Qué pasa vieja?", "female.teenp.dialogue.greet.negative/4": "Mamá, tengo cosas más importantes en este momento, ¡vete!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/esan.json b/common/src/main/resources/assets/mca_dialogue/lang/esan.json index 23434d3567..cebe871c7b 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/esan.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/esan.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/fa_ir.json b/common/src/main/resources/assets/mca_dialogue/lang/fa_ir.json index 57d17da435..98b55be88e 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/fa_ir.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/fa_ir.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/fi_fi.json b/common/src/main/resources/assets/mca_dialogue/lang/fi_fi.json index 1d9ad08e28..64967abcde 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/fi_fi.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/fi_fi.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/fr_fr.json b/common/src/main/resources/assets/mca_dialogue/lang/fr_fr.json index c94ebf7790..753bb4f9f8 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/fr_fr.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/fr_fr.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "J'aime beaucoup cet endroit, bon travail %1$s!", "spouse.interaction.sethome.success/2": "C'est une maison de rêve!", "spouse.interaction.sethome.success/3": "Je suis heureux/se que nous emménagions enfin !", - "spouse.interaction.sethome.success/4": "Merci, cela semble vraiment agréable %v1%.", + "spouse.interaction.sethome.success/4": "Merci, ça a l'air vraiment sympa %1$s.", "spouse.interaction.sethome.success/5": "Ah, c'est vrai ? J'adore !", - "spouse.interaction.sethome.success/6": "*t'embrasse* Merci, %v1% !", + "spouse.interaction.sethome.success/6": "*vous embrasse* Merci, %1$s!", "spouse.interaction.sethome.success/7": "Si nous sommes là ensemble, c'est une maison de rêve pour moi.", "spouse.interaction.sethome.success/8": "C'est un endroit vraiment cool !", "childp.interaction.sethome.success/1": "D'accord, super, où est ma chambre?", @@ -317,11 +317,11 @@ "spouse.interaction.gohome.success/3": "J'aimerais mieux si tu rentrais avec moi, mais je te verrai bientôt !", "spouse.interaction.gohome.success/4": "*te fait un bisou sur la joue* On se voit à la maison.", "spouse.interaction.gohome.success/5": "Oh, est-ce que tu peux venir avec moi ? Ne prends pas trop de temps !", - "spouse.interaction.gohome.success/6": "Okay, but don't leave me waiting too long..!", - "childp.interaction.gohome.success/1": "Will you hurry though!", + "spouse.interaction.gohome.success/6": "Ok, mais ne me fais pas attendre trop longtemps.. !", + "childp.interaction.gohome.success/1": "Mais dépêche-toi !", "childp.interaction.gohome.success/2": "Okaaay...", "childp.interaction.gohome.success/3": "Quoi ?! Déjà ? Noooo...", - "childp.interaction.gohome.success/4": "I'll race you there!", + "childp.interaction.gohome.success/4": "Je ferai la course avec toi là-bas !", "childp.interaction.gohome.success/5": "My feet are tireddd...", "childp.interaction.gohome.success/6": "Can't I stay a bit longer?", "child.interaction.gohome.success/1": "À plus!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/hu_hu.json b/common/src/main/resources/assets/mca_dialogue/lang/hu_hu.json index 2b659f0e64..19a020986e 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/hu_hu.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/hu_hu.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/id_id.json b/common/src/main/resources/assets/mca_dialogue/lang/id_id.json index 256af04313..082285864e 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/id_id.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/id_id.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Aku suka banget tempat ini, kerja yang bagus %1$s!", "spouse.interaction.sethome.success/2": "Ini seperti rumah impian!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Yaudah, mana kamar aku?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/it_it.json b/common/src/main/resources/assets/mca_dialogue/lang/it_it.json index 4ea2858125..babc978198 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/it_it.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/it_it.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Amo questo posto, buon lavoro, %1$s!", "spouse.interaction.sethome.success/2": "Questa è la casa dei miei sogni!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Va bene, dov'è la mia stanza?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/ja_jp.json b/common/src/main/resources/assets/mca_dialogue/lang/ja_jp.json index c5d4e93d5d..8a2fc57d74 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/ja_jp.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/ja_jp.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/ko_kr.json b/common/src/main/resources/assets/mca_dialogue/lang/ko_kr.json index fd9c3d2d09..65162e2a02 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/ko_kr.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/ko_kr.json @@ -264,7 +264,7 @@ "adult.interaction.matchmaker.fail.novillagers/1": "근처에 아무도 보이질 않는데. 내가 누구랑 결혼하길 바란 거야?", "adult.interaction.matchmaker.fail.novillagers/2": "모르겠는데, 그냥... 내게 맞다고 생각하는 사람에게 데려다 줘.", "adult.interaction.matchmaker.fail.novillagers/3": "오, 하지만 주변에 아무도 보이지 않는걸. 누구랑 결혼해야 돼?", - "adult.interaction.matchmaker.fail.novillagers/4": "내가 누구랑 결혼하게 되는 거야, 인어 밀리(시트콤 에 나오는 상상 속 친구)?", + "adult.interaction.matchmaker.fail.novillagers/4": "내가 누구랑 결혼하게 되는 거야, 인어 밀리?", "adult.interaction.matchmaker.fail.novillagers/5": "으음, 제가 꼬마 유령 캐스퍼랑 결혼할 거라고 생각하지는 않았거든요. 유감스럽지만 유령에는 흥미가 없어요, 그러니까 제게 실제 사람을 구해 줘야 할 거에요.", "adult.interaction.matchmaker.fail.novillagers/6": "정말 저랑 정말 잘 어울릴 사람이 있을다고 생각하시나요? 누군지 빨리 보고 싶네요.", "adult.interaction.matchmaker.fail.novillagers/7": "저를 그들에게 데려가 주시죠, 아무튼 용기를 내려 하고 있으니까요...", @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "나 여기 정말 마음에 들어, 잘했어 %1$s!", "spouse.interaction.sethome.success/2": "이건 꿈에 그리던 집이야!", "spouse.interaction.sethome.success/3": "우리가 드디어 이사하다니 기뻐!", - "spouse.interaction.sethome.success/4": "고마워, 여긴 정말 멋지네 %v1%.", + "spouse.interaction.sethome.success/4": "고마워, 여기 정말 멋져보여 %1$s.", "spouse.interaction.sethome.success/5": "아, 여기 맞아? 정말 마음에 들어!", - "spouse.interaction.sethome.success/6": "*당신을 껴안는다* 고마워, %v1%!", + "spouse.interaction.sethome.success/6": "*당신을 껴안고서* 고마워, %1$s!", "spouse.interaction.sethome.success/7": "우리가 함께 그곳에 있다면, 내게는 꿈의 집이야.", "spouse.interaction.sethome.success/8": "정말 멋진 곳이네!", "childp.interaction.sethome.success/1": "그래 좋아요, 제 방은 어디죠?", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "%2$s에 약탈자들이 있어요. 우리 바로 옆에 전초기지를 세웠더군요. 너무 이른 시기에 저희를 공격하지 않았으면 좋겠네요. 당장은 다음 공격을 막을 수가 없어요.", "dialogue.location.pillager_outpost/2": "%2$s에 약탈자들이 소유한 전초기지가 있어 밤에 잠을 제대로 못 자게 하고 있어요. 만약 그 근처에 가신다면, 조심하세요. 그들이랑 마주치면 그들이 활을 쏠 거예요.", "dialogue.location.pillager_outpost/3": "으음.. 당신이 만약 %2$s로 향한다면, 약탈자 전초기지를 발견하게 될 거에요. 당신이 이 처참한 악당들을 물리친다면, 아마도 값진 전리품들을 찾으실 수 있을 거에요. 누군가 그들을 손봐준다면 마을 전체가 고마워할 겁니다.", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "%2$s에서 이상한 소리를 들었어. 지하 깊은 곳에서 말이야.", + "dialogue.location.ancient_city/1": "%2$s 땅 밑 깊숙히 무언가가 숨겨져 있는 것 같아.", + "dialogue.location.ancient_city/3": "전해져오는 전설에 따르면, %2$s은(는) 고대 도시라고해요. 하지만 저는 그곳에서 아무것도 보지 못했어요. 아마 지하에 묻혀있는걸까요?", "dialogue.joke.monster.success/1": "하하! 그 스켈레톤을 아주 제대로 대접했구만!", "dialogue.joke.monster.success/2": "네? 그 좀비가 정말 당신을 삽으로 때려 죽이려고 했다고요? 하하하!", "dialogue.joke.monster.success/3": "그 거미한테 누가 위인지 가르쳐 줬군요! 하하!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/mt_mt.json b/common/src/main/resources/assets/mca_dialogue/lang/mt_mt.json index 9a9eabee0f..70719ed930 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/mt_mt.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/mt_mt.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/pl_pl.json b/common/src/main/resources/assets/mca_dialogue/lang/pl_pl.json index 8f3d278b3e..871907a42e 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/pl_pl.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/pl_pl.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Naprawdę lubię to miejsce, dobra robota %1$s!", "spouse.interaction.sethome.success/2": "To nasz wymarzony dom!", "spouse.interaction.sethome.success/3": "Cieszę się, że w końcu się wprowadzamy!", - "spouse.interaction.sethome.success/4": "Dziękuję, to wygląda naprawdę ładnie %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, czy to prawda? Naprawdę mi się to podoba!", - "spouse.interaction.sethome.success/6": "*obejmuje cię* Dziękuję, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "Jeśli jesteśmy tam razem, to jest to dla mnie wymarzony dom.", "spouse.interaction.sethome.success/8": "To naprawdę fajne miejsce!", "childp.interaction.sethome.success/1": "Dobra w porządku, gdzie mój pokój?", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "Na %2$s jest grupa rozbójników. Tuż obok nas ustawili posterunek. Miejmy nadzieję, że nie zaatakują nas zbyt szybko, nie wytrzymamy kolejnego ataku.", "dialogue.location.pillager_outpost/2": "Na %2$s jest taka placówka należąca do rozbójników, która nie daje nam spać w nocy. Jeśli będziesz gdzieś w pobliżu, bądź ostrożny. Strzelają gdy cię zobaczą.", "dialogue.location.pillager_outpost/3": "Cóż… jeśli udasz się na %2$s, znajdziesz placówkę należącą do rozbójników. Jeśli uda ci się pokonać tych nieszczęsnych złoczyńców, może znajdziesz jakiś wartościowy łup. Cała wioska byłaby wdzięczna, gdyby ktoś się o nich zatroszczył.", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "Słyszałem dziwne odgłosy na %2$s, głęboko pod ziemią.", + "dialogue.location.ancient_city/1": "Myślę, że coś jest ukryte głęboko pod ziemią na %2$s.", + "dialogue.location.ancient_city/3": "Legendy mówią, że na %2$s znajduje się starożytne miasto. Nic nie widziałem, może jest pod ziemią?", "dialogue.joke.monster.success/1": "Hahah! szkieletowy serwis racja!", "dialogue.joke.monster.success/2": "Co? Ten zombie naprawdę próbował zatłuc cię na śmierć łopatą? Hahaha!", "dialogue.joke.monster.success/3": "Naprawdę pokazałeś temu pająkowi, kto tu rządzi! Haha!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/pt_br.json b/common/src/main/resources/assets/mca_dialogue/lang/pt_br.json index e4ae0581d3..aba9b97deb 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/pt_br.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/pt_br.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Eu gostei muito deste lugar, bom trabalho %1$s!", "spouse.interaction.sethome.success/2": "Isso é uma casa dos sonhos!", "spouse.interaction.sethome.success/3": "Estou feliz que finalmente estamos nos mudando!", - "spouse.interaction.sethome.success/4": "Obrigado, isso parece muito bom %v1%.", + "spouse.interaction.sethome.success/4": "Obrigado(a), isso parece muito bom %1$s.", "spouse.interaction.sethome.success/5": "Ahh, é isso? Eu realmente gostei!", - "spouse.interaction.sethome.success/6": "*abraça você* Obrigado(a), %v1%!", + "spouse.interaction.sethome.success/6": "*abraça você* Obrigado(a), %1$s!", "spouse.interaction.sethome.success/7": "Se estamos aqui juntos(as), então é uma casa dos sonhos para mim.", "spouse.interaction.sethome.success/8": "Esse é um lugar muito legal!", "childp.interaction.sethome.success/1": "Tá legal, onde fica meu quarto?", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "Há um grupo de saqueadores em %2$s. Eles montaram um posto de observação perto de nós. Espero que eles não nos ataquem em breve, nós não podemos suportar outro ataque.", "dialogue.location.pillager_outpost/2": "Hás este posto de observação que pertence aos saqueadores em %2$s que não nos deixa dormir à noite. Se você for em algum lugar perto de lá, tenha cuidado. Eles atiram assim que nos veem.", "dialogue.location.pillager_outpost/3": "Bem... se você ir para %2$s, você vai encontrar um posto de observação que pertence aos saqueadores. Se você conseguir acabar com aqueles vilões miseráveis, talvez você encontre algo de valor. A vila inteira seria grata se alguém cuidasse deles.", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "Eu ouvi barulhos estranhos em %2$s, bem abaixo do solo.", + "dialogue.location.ancient_city/1": "Eu acho que tem algo escondido muito abaixo do solo em %2$s.", + "dialogue.location.ancient_city/3": "As lendas dizem que em %2$s há uma cidade ancestral. Mas eu não vi nada, talvez esteja embaixo da terra?", "dialogue.joke.monster.success/1": "Haha! Essa serve muito bem ao esqueleto!", "dialogue.joke.monster.success/2": "O quê? Aquele zumbi realmente tentou te matar com uma pá? Hahaha!", "dialogue.joke.monster.success/3": "Você realmente mostrou para aquela aranha quem é que manda! Haha!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/pt_pt.json b/common/src/main/resources/assets/mca_dialogue/lang/pt_pt.json index 7a419d5995..6aab0de929 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/pt_pt.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/pt_pt.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Gosto imenso deste lugar, bom trabalho %1$s", "spouse.interaction.sethome.success/2": "Isto é como uma casa de sonho!", "spouse.interaction.sethome.success/3": "Estou feliz por finalmente nos mudarmos!", - "spouse.interaction.sethome.success/4": "Obrigado, isto parece muito bonito %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, isto está certo? Eu gosto mesmo!", - "spouse.interaction.sethome.success/6": "*abraça-vos* Obrigado, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "Se estamos lá juntos, é uma casa de sonho para mim.", "spouse.interaction.sethome.success/8": "Este é um lugar muito bom!", "childp.interaction.sethome.success/1": "Está bem, onde é o meu quarto?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/ro_ro.json b/common/src/main/resources/assets/mca_dialogue/lang/ro_ro.json index 23033c3c10..0e673e2a95 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/ro_ro.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/ro_ro.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "Este ca o casa de vis!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Ok, unde e camera mea?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/ru_ru.json b/common/src/main/resources/assets/mca_dialogue/lang/ru_ru.json index b2ae306ec1..728287d8de 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/ru_ru.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/ru_ru.json @@ -2,15 +2,15 @@ "reaction.ranaway/1": "Правильно! Тебе лучше бежать!", "reaction.ranaway/2": "Если ты вернешься, я позову охрану!", "reaction.ranaway/3": "Вернись и сражайся как мужчина!", - "reaction.ranaway/4": "Если я увижу тебя снова, я тебя ударю!", - "reaction.ranaway/5": "Я знал, что ты боишься меня!", - "reaction.ranaway/6": "Почему ты убегаешь? Вернись сюда, чтобы я смог ударить тебя!", - "reaction.ranaway/7": "Я ударю тебя, если увижу еще раз!", + "reaction.ranaway/4": "Если я тебя ещё хоть раз увижу, я тебе врежу!", + "reaction.ranaway/5": "Что, боишься меня?", + "reaction.ranaway/6": "Чего это ты убегаешь? Вернись, будем драться!", + "reaction.ranaway/7": "Я тебя ударю, если увижу снова!", "reaction.ranaway/8": "Я позову своих друзей и побью тебя!", "villager.warning/1": "Я предупреждаю вас, не нападайте на наших людей!", "villager.warning/2": "Последнее предупреждение!", "villager.warning/3": "Достаточно!", - "villager.warning/4": "Вы были предупреждены!", + "villager.warning/4": "Вас предупредили!", "villager.cant_find_bed/0": "Хм, я не могу найти дорогу домой...", "villager.cant_find_bed/1": "Мне кажется, я заблудился и не могу найти дорогу домой.", "villager.cant_find_bed/2": "Только не снова. Мне нужен новый дом, я не могу найти свой нынешний.", @@ -144,9 +144,9 @@ "female.childp.gift.saturated/1": "У меня уже достаточно этого, мама!", "female.childp.gift.saturated/2": "Мам, у меня этого слишком много!", "male.teenp.gift.saturated/1": "Папа, у меня их достаточно!", - "male.teenp.gift.saturated/2": "Прости старик, но мне и так этого хватает!", + "male.teenp.gift.saturated/2": "Прости, старик, но мне и так этого хватает!", "female.teenp.gift.saturated/1": "Мама, у меня их достаточно!", - "female.teenp.gift.saturated/2": "Прости мама, но у меня их достаточно!", + "female.teenp.gift.saturated/2": "Прости, мама, но у меня их достаточно!", "male.adultp.gift.saturated/1": "Спасибо, пап, но у меня такого уже очень много!", "female.adultp.gift.saturated/1": "Спасибо, мам, но у меня такого уже очень много!", "spouse.gift.saturated/1": "Милый, у нас этого достаточно!", @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Мне дисйтвительно здесь нравится, хорошая работа %1$s!", "spouse.interaction.sethome.success/2": "Это словно дом мечты!", "spouse.interaction.sethome.success/3": "Я счастлив, что мы наконец-то переезжаем!", - "spouse.interaction.sethome.success/4": "Спасибо, здесь очень красиво %v1%.", + "spouse.interaction.sethome.success/4": "Спасибо, %1$s, он выглядит так красиво!", "spouse.interaction.sethome.success/5": "Ааа, это здесь? Мне очень нравится!", - "spouse.interaction.sethome.success/6": "*обнимает тебя* Спасибо, %v1%!", + "spouse.interaction.sethome.success/6": "*обнимает вас* Спасибо, %1$s!", "spouse.interaction.sethome.success/7": "Если мы будем вместе, то для меня это дом мечты.", "spouse.interaction.sethome.success/8": "Это действительно классное место!", "childp.interaction.sethome.success/1": "Хорошо, где моя комната?", @@ -342,7 +342,7 @@ "spouse.interaction.procreate.fail.lowhearts/2": "Хм... пока нет. Думаю, сначала нам нужно провести больше времени вместе.", "interaction.adopt.success/1": "Это самый счастливый день в моей жизни!", "interaction.adopt.success/2": "*плачет* Это правда? Я даже не могу... Я так сильно люблю вас обоих!", - "adult.welcome/1": "С возвращением, %s!", + "adult.welcome/1": "С возвращением, %1$s!", "adult.welcome/2": "Привет, %1$s! С возвращением!", "male.child.welcome/1": "Привет, господин %1$s!", "female.child.welcome/1": "Привет, госпожа %1$s!", @@ -412,7 +412,7 @@ "gift.weapons.fail/4": "Я лучше с мотыгой, чем с мечом", "male.child.gift.weapons.success/1": "Спасибо, мистер!", "female.child.gift.weapons.success/1": "Спасибо, мисс!", - "child.gift.weapons.success/2": "Подождите, пока %Supporter% не увидит меня с ЭТИМ!", + "child.gift.weapons.success/2": "Подождите, пока %supporter% не увидит меня с ЭТИМ!", "gift.weapons.success/1": "Твой город благодарит тебя, гражданин.", "gift.weapons.success/2": "К победе!", "gift.weapons.success/3": "Я хорошо заточу его, искатель приключений.", @@ -676,7 +676,7 @@ "spouse.dialogue.kiss.success/2": "Время перестает тикать, когда я с тобой.", "spouse.dialogue.kiss.success/3": "Сладкий как торт!", "spouse.dialogue.kiss.success/4": "Я люблю тебя!", - "spouse.dialogue.kiss.success/5": "Я бы не променяла тебя ни на кого в этом мире! ", + "spouse.dialogue.kiss.success/5": "Я бы не променяла тебя ни на кого в этом мире!", "spouse.dialogue.kiss.success/6": "О, %1$s, я люблю тебя!", "spouse.dialogue.kiss.success/7": "Ты - мой мир!", "spouse.dialogue.kiss.success/8": "Я не знаю, где бы я была без тебя!", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "На %2$s находится группа Разбойников. Они установили аванпост прямо рядом с нами. Надеюсь, они не нападут на нас в ближайшее время, мы не выдержим еще одной атаки.", "dialogue.location.pillager_outpost/2": "На %2$s есть один форпост, принадлежащий Разбойникам, который не даёт нам спать по ночам. Если ты подойдешь к нему, будь осторожен. Они застреливают на месте.", "dialogue.location.pillager_outpost/3": "Ну… если ты отправишься на %2$s, то найдешь аванпост, принадлежащий Разбойникам. Если ты сможешь одолеть этих жалких негодяев, то, возможно, найдешь какую-нибудь стоящую добычу. Вся деревня будет благодарна, если кто-то разберётся с ними.", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "Я слышал странные звуки, когда проходил мимо %2$s. Кажется, они доносились из-под земли.", + "dialogue.location.ancient_city/1": "Мне кажется, что под землёй на %2$s что-то есть.", + "dialogue.location.ancient_city/3": "Легенды гласят, что на %2$s находится древний город, хотя я его там не заметил. Может быть, он под глубоко под землёй?", "dialogue.joke.monster.success/1": "Хаха! Надо отдать должное этому Скелли!", "dialogue.joke.monster.success/2": "Что? Этот зомби действительно пытался забить тебя до смерти лопатой? Хахаха!", "dialogue.joke.monster.success/3": "Ты действительно показал этому пауку, кто в доме хозяин! Хаха!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/sr_sp.json b/common/src/main/resources/assets/mca_dialogue/lang/sr_sp.json index b3d7d5625c..41ea99cfa4 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/sr_sp.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/sr_sp.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/sv_se.json b/common/src/main/resources/assets/mca_dialogue/lang/sv_se.json index 6a9e1eca78..1ce6996686 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/sv_se.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/sv_se.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/th_th.json b/common/src/main/resources/assets/mca_dialogue/lang/th_th.json index fcc0ae920d..439dbf4c0a 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/th_th.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/th_th.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "ฉันชอบที่นี่นะ เยี่ยมเลย %1$s!", "spouse.interaction.sethome.success/2": "นี่เหมือนบ้านในฝันเลยล่ะ!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "โอเค ไหนห้องของฉันหรอ?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/tr_tr.json b/common/src/main/resources/assets/mca_dialogue/lang/tr_tr.json index ec2d38e2a5..5fa7307cdd 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/tr_tr.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/tr_tr.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "Burayı gerçekten sevdim, tebrikler %1$s!", "spouse.interaction.sethome.success/2": "Burası sanki rüya evi gibi!", "spouse.interaction.sethome.success/3": "Sonunda taşındığımız için mutluyum!", - "spouse.interaction.sethome.success/4": "Teşekkürler, bu gerçekten güzel görünüyor %v1%.", + "spouse.interaction.sethome.success/4": "Teşekkürler, bu gerçekten güzel görünüyor %1$s.", "spouse.interaction.sethome.success/5": "Ahh, burası mı? Gerçekten beğendim!", - "spouse.interaction.sethome.success/6": "*kucaklar* Teşekkür ederim, %v1%!", + "spouse.interaction.sethome.success/6": "*kucaklar* Teşekkür ederim, %1$s!", "spouse.interaction.sethome.success/7": "Eğer orada birlikte olursak, benim için rüya gibi bir ev olur.", "spouse.interaction.sethome.success/8": "Burası gerçekten harika bir yer!", "childp.interaction.sethome.success/1": "Tamam, peki odam nerede?", @@ -514,7 +514,7 @@ "adult.dialogue.main/4": "Bugün neler yapıyorsun?", "adult.dialogue.main/5": "Bugün nasılsın?", "adult.dialogue.main/6": "Hey %1$s! N'aber?", - "adult.dialogue.main/7": "%supporter%ile takılıyordum ve aniden bir zombi tarafından ısırıldı! Bana iyi olduğunu söyledi, ben de ona inandım. Ne diyordum ben? Her neyse, bugün tıpkı %supporter% 'a benzeyen bir zombi gördüm!", + "adult.dialogue.main/7": "%supporter% ile takılıyordum ve aniden bir zombi tarafından ısırıldı! Bana iyi olduğunu söyledi, ben de ona inandım. Ne diyordum ben? Her neyse, bugün tıpkı %supporter% 'a benzeyen bir zombi gördüm!", "child.dialogue.main/1": "Hey, Sende kimsin?", "child.dialogue.main/2": "Selam! Adınız nedir?", "child.dialogue.main/3": "Öğk! Korkunç görünüyorsun!", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "%2$s koordinatlarında bir grup Yağmacı var. Yanıbaşımıza bir karakol kurdular. Umarım bize çok yakında saldırmazlar, başka bir saldırıya daha dayanamayız.", "dialogue.location.pillager_outpost/2": "%2$s koordinatlarında yağmacılara ait ve geceleri uykumuzu kaçıran bir karakol var. Oraya yakın bir yere giderseniz dikkatli olun. Gördükleri yerde ateş ediyor namussuzlar!", "dialogue.location.pillager_outpost/3": "Peki… %2$s koordinatlarına giderseniz, yağmacılara ait bir karakol bulacaksınız. Bu sefil kötü adamları yenebilirseniz, belki değerli bir ganimet bulabilirsiniz. Biri onlarla ilgilenirse tüm köy minnettar olur.", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "%2$s koordinatlarında, yerin derinliklerinde garip sesler duydum.", + "dialogue.location.ancient_city/1": "Sanırım %2$s koordinatlarında yerin çok altında bir şeyler saklı.", + "dialogue.location.ancient_city/3": "Efsaneler %2$s koordinatlarında antik bir şehir olduğunu söylüyor. Ben bir şey görmedim, belki de yeraltındadır?", "dialogue.joke.monster.success/1": "Hahaha! Skelly için hak verdim!", "dialogue.joke.monster.success/2": "Ney? O zombi gerçekten seni kürekle öldüresiye dövmeye mi çalıştı? Puhahahaha!", "dialogue.joke.monster.success/3": "O örümceğe kimin patron olduğunu gösterdin! Haha!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/uk_ua.json b/common/src/main/resources/assets/mca_dialogue/lang/uk_ua.json index b894520d67..f41a15fa9c 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/uk_ua.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/uk_ua.json @@ -258,7 +258,7 @@ "adult.interaction.matchmaker.fail.needtwo/3": "Моїй дружині та мені потрібні 2 кільця, але у вас тільки одне.", "adult.interaction.matchmaker.fail.needtwo/4": "Дякую, що організував це, хоча нам обом потрібне кільце!", "adult.interaction.matchmaker.fail.needtwo/5": "I'm so excited! That'll be a good ring, we need two of them though.", - "adult.interaction.matchmaker.fail.needtwo/6": "I want us both to have rings, if that's okay... Thank you!", + "adult.interaction.matchmaker.fail.needtwo/6": "Я хочу, щоб у нас обох були кільця, якщо ти не проти... Дякую!", "adult.interaction.matchmaker.fail.needtwo/7": "Чи можемо ми обидва отримати кільце?", "adult.interaction.matchmaker.fail.needtwo/8": "Ааа, дякую. А друге кільце є?", "adult.interaction.matchmaker.fail.novillagers/1": "Я нікого не бачу поряд. На кому, на твою думку, мені одружитися?", @@ -278,16 +278,16 @@ "adult.interaction.sethome.success/9": "Виглядає чудово!", "spouse.interaction.sethome.success/1": "Мені подобається це місце, хороша робота %1$s!", "spouse.interaction.sethome.success/2": "Це як дім мрії!", - "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/3": "Я щасливий, що ми нарешті переїжджаємо!", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", - "spouse.interaction.sethome.success/8": "This is a really cool place!", + "spouse.interaction.sethome.success/8": "Це дійсно круте місце!", "childp.interaction.sethome.success/1": "Гаразд, гаразд, де моя кімната?", "childp.interaction.sethome.success/2": "Думаю, це добре. Можна піти грати зараз?", "childp.interaction.sethome.success/3": "Гаразд, але я хочу найбільшу кімнату!", - "childp.interaction.sethome.success/4": "Aww, I wanted the other room though...", + "childp.interaction.sethome.success/4": "Оу, але я хотів іншу кімнату...", "childp.interaction.sethome.success/5": "I love it sooo much, thank you!", "childp.interaction.sethome.success/6": "Is this it..?", "childp.interaction.sethome.success/7": "Цю кімнату зробив ти? Мені подобається!", @@ -412,7 +412,7 @@ "gift.weapons.fail/4": "Я краще з мотикою ніж мечем", "male.child.gift.weapons.success/1": "Дякую, містер!", "female.child.gift.weapons.success/1": "Дякую, пані!", - "child.gift.weapons.success/2": "Чекай, поки %Supporter% не побачить мене з ЦИМ!", + "child.gift.weapons.success/2": "Чекай, поки %supporter% не побачить мене з ЦИМ!", "gift.weapons.success/1": "Ваше місто вам дякує, громадянин.", "gift.weapons.success/2": "За перемогу!", "gift.weapons.success/3": "Я добре заточу його, шукач пригод.", @@ -548,9 +548,9 @@ "dialogue.main.procreate_engaged": "Procreate?", "dialogue.main.adopt": "Усиновити", "dialogue.main.divorceInitiate": "Розлучення", - "dialogue.main.divorcePapers": "Divorce papers", + "dialogue.main.divorcePapers": "Документи про розлучення", "dialogue.main.hire": "Найняти", - "dialogue.main.stay": "Ask to stay", + "dialogue.main.stay": "Попросити залишитися", "dialogue.rumors.failed/1": "Хм, ні, я не почув нічого нового.", "dialogue.rumors.lore/1": "Хоч те, що Джаксу все ще поклоняються, поклоніння Сірбену зростає, а його пророки - Вовк-Мерлін та Ворон поширюють його слова.", "dialogue.rumors.lore/2": "Кібердемони одного разу спробували вторгнутися в нас і увійшли в Земний світ за допомогою Порталів, але Сірбен і Люк зупинили Вторгнення.", @@ -664,8 +664,8 @@ "adult.dialogue.kiss.success/2": "Я думаю, що люблю тебе...", "adult.dialogue.kiss.success/3": "Ммм, на смак як гарбузовий пиріг!", "adult.dialogue.kiss.success/4": "Ммм! Ти ніби медовий коржик!", - "adult.dialogue.kiss.success/5": "Oh! You're a good kisser, %1$s.", - "adult.dialogue.kiss.success/6": "%1$s you kiss better than Ash! *giggles*", + "adult.dialogue.kiss.success/5": "О! Ти гарно цілуєшся, %1$s.", + "adult.dialogue.kiss.success/6": "%1$s ти цілуєшся краще за Еша! *хихикає*", "adult.dialogue.kiss.fail/1": "Ні, якщо хто-небудь побачить.", "adult.dialogue.kiss.fail/2": "Ти називаєш це поцілунком?", "adult.dialogue.kiss.fail/3": "Навіть свиня цілюється краще за тебе.", @@ -678,16 +678,16 @@ "spouse.dialogue.kiss.success/4": "Я люблю тебе, крихітко!", "spouse.dialogue.kiss.success/5": "Я б не проміняла(в) тебе ні на кого в світі!", "spouse.dialogue.kiss.success/6": "О, %1$s, я тебе люблю!", - "spouse.dialogue.kiss.success/7": "You are my world!", - "spouse.dialogue.kiss.success/8": "I don't know where I'd be without you!", + "spouse.dialogue.kiss.success/7": "Ти мій світ!", + "spouse.dialogue.kiss.success/8": "Я не знаю, де би я була без тебе!", "spouse.dialogue.kiss.fail/1": "Тільки не там, де нас хтось зможе побачити...", "spouse.dialogue.kiss.fail/2": "Ми не зобов'язані, якщо ти не хочеш.", "spouse.dialogue.kiss.fail/3": "Твоє дихання пахне вовчою пащею.", "spouse.dialogue.kiss.fail/4": "Краще попий з калюжі!", "spouse.dialogue.kiss.fail/5": "Тепер, коли ми одружилися, я можу нарешті сказати тобі, як же ти погано цілуєшся.", - "spouse.dialogue.kiss.fail/6": "Ugh! What did you eat recently? I think I touched some food!", + "spouse.dialogue.kiss.fail/6": "Тьху! Що ти їв останнім часом? Здається, я торкнулася їжі!", "spouse.dialogue.kiss.fail/7": "Babe! Not in front of the trees!", - "spouse.dialogue.kiss.fail/8": "%1$s I'm not in the mood right now.", + "spouse.dialogue.kiss.fail/8": "%1$s, я зараз не в настрої.", "adult.dialogue.chat.success/1": "Печиво й молоко зараз звучать дуже смачно.", "adult.dialogue.chat.success/2": "Так, я вважаю, що сьогодні гарна погода.", "adult.dialogue.chat.success/3": "У мене все добре! Проте вдарила(в)ся пальцем ноги, коли прокинувся.", @@ -698,15 +698,15 @@ "adult.dialogue.chat.success/8": "Хіба погода не чудова?", "adult.dialogue.chat.success/9": "Я прожив тут усе своє життя і не розумію, що тут такого з цими павуками й гоблінами.", "adult.dialogue.chat.success/10": "Hmm. I do wonder as well about what happened to %Supporter%. They ventured from here about a year ago.", - "adult.dialogue.chat.success/12": "Did you hear what happened to %Supporter% the other day?", + "adult.dialogue.chat.success/12": "Ти чув, що сталося з %Supporter% днями?", "adult.dialogue.chat.success/13": "I've been meaning to adopt one of the stray cats around here, but I've been so busy lately.", - "adult.dialogue.chat.success/14": "I would like to redecorate my house soon. I'm just too lazy.", - "adult.dialogue.chat.success/15": "I hope to have kids one day, I just need to find the right partner.", - "adult.dialogue.chat.success/16": "I wonder where I'd be if I chose to live in the other village.", - "adult.dialogue.chat.success/17": "I miss my childhood sometimes, a lot of memories cherished. Really good times.", - "adult.dialogue.chat.success/18": "Haven't talked to my parents in a while either, I should go visit them sometime.", + "adult.dialogue.chat.success/14": "Я хотіла б незабаром зробити ремонт у своєму будинку. Мені просто ліньки.", + "adult.dialogue.chat.success/15": "Я сподіваюся, що колись у мене будуть діти, мені просто потрібно знайти правильного партнера.", + "adult.dialogue.chat.success/16": "Цікаво, де б я був, якби вирішив жити в іншому селі.", + "adult.dialogue.chat.success/17": "Іноді я сумую за дитинством, дуже багато спогадів. Дійсно хороші часи.", + "adult.dialogue.chat.success/18": "Давно не спілкувалась з батьками, треба буде якось їх провідати.", "adult.dialogue.chat.success/19": "I've been needing to travel to the other village near here, I have a few friends that I haven't seen in a long time.", - "adult.dialogue.chat.success/20": "Sometimes, I dream about a food called cheese..", + "adult.dialogue.chat.success/20": "Іноді мені сниться їжа, яка називається сир..", "adult.dialogue.chat.fail/1": "Ти щойно це серйозно сказав?", "adult.dialogue.chat.fail/2": "Я не вірю, що він вибухнув сам.", "adult.dialogue.chat.fail/3": "Знаєш, ти не такий чудовий.", @@ -716,8 +716,8 @@ "adult.dialogue.chat.fail/7": "Це занадто тупа річ, про яку можна говорити.", "adult.dialogue.chat.fail/8": "Чому ти знову зі мною говориш?", "adult.dialogue.chat.fail/9": "Huh? Did you say something? Sorry, I didn't care to listen.", - "adult.dialogue.chat.fail/10": "Excuse me?", - "adult.dialogue.chat.fail/11": "What is wrong with you? Why are you talking about this?", + "adult.dialogue.chat.fail/10": "Перепрошую?", + "adult.dialogue.chat.fail/11": "Що з тобою не так? Чому ти про це говориш?", "adult.dialogue.chat.fail/12": "I've heard harsh things about you, I can kinda see why they think that.", "adult.dialogue.chat.fail/13": "Not even zombies will talk to you.", "adult.dialogue.chat.fail/14": "You're as unlikeable as a witch!", @@ -994,7 +994,7 @@ "child.dialogue.main.morning/7": "Ви можете відвезти мене кудись сьогодні? Мені нудно.", "teen.dialogue.main.morning/1": "Я б не встав так рано, якби у мене був вибір.", "teen.dialogue.main.morning/2": "I was dragged out of bed, can you tell?", - "teen.dialogue.main.morning/3": "This is an unholy hour of the morning. Why are you so chipper?", + "teen.dialogue.main.morning/3": "Це нечестива година ранку. Чого ти такий бадьорий?", "teen.dialogue.main.morning/4": "Час рухатися, я думаю.", "teen.dialogue.main.morning/5": "Чого б я не віддала, щоб повернутися в ліжко.", "teen.dialogue.main.morning/6": "У вас є якась їжа? Я забув поснідати.", @@ -1045,19 +1045,19 @@ "teen.dialogue.main.night/8": "Ми. Поговоримо. Пізніше.", "teen.dialogue.main.night/9": "*Хропе*", "teen.dialogue.main.night/10": "*Очевидно, що не спить, але все одно не розмовлятиме з вами.*", - "cultist.dialogue.main/1": "There’s a lot you still have to learn.", - "cultist.dialogue.main/2": "If you wonder how I have all these Sirben children then it’s a secret.", - "cultist.dialogue.main/3": "Would you like to become one with the Sirbens..?", - "guard.dialogue.main/1": "You need something?", - "guard.dialogue.main/2": "I’m a little busy, please go bother someone else.", - "guard.dialogue.main/3": "You look pretty strong.", - "guard.dialogue.main/4": "I don’t like how quiet it is...", - "guard.dialogue.main/5": "It’s a peaceful day, I hope it stays this peaceful.", + "cultist.dialogue.main/1": "Тобі ще багато чого потрібно навчитися.", + "cultist.dialogue.main/2": "Якщо вам цікаво, звідки у мене всі ці діти Сірбена, то це секрет.", + "cultist.dialogue.main/3": "Чи хотіли б ви стати одним цілим із Сірбенами..?", + "guard.dialogue.main/1": "Тобі потрібно щось?", + "guard.dialogue.main/2": "Я трохи зайнята, будь ласка, потурбуй когось іншого.", + "guard.dialogue.main/3": "Ти виглядаєш досить сильним.", + "guard.dialogue.main/4": "Мені не подобається, що тут так тихо...", + "guard.dialogue.main/5": "Сьогодні мирний день, сподіваюся, він таким і залишиться.", "guard.dialogue.main/6": "You know, I once thought someone was attacking me, when I realise I'd hit an armour stand. Didn't make that mistake twice.", - "guard.dialogue.main/7": "I don't know who you are, don't make me have to find out.", + "guard.dialogue.main/7": "Не знаю, хто ти, не змушуй мене це з'ясовувати.", "guard.dialogue.main/8": "Staying safe, I hope.", - "guard.dialogue.main/9": "I've always wondered how strong a rose gold sword would be.", - "guard.dialogue.main/10": "Did you hear that? I'm sure there's something out there...", + "guard.dialogue.main/9": "Мені завжди було цікаво, наскільки міцним буде меч із рожевого золота.", + "guard.dialogue.main/10": "Ти це чула? Я впевнений, що там щось є...", "guard.dialogue.main.morning/1": "Доброго ранку, %1$s. Що б ти не робив сьогодні, будь ласка, бережи себе.", "guard.dialogue.main.morning/2": "Якщо є одна перевага в тому, щоб бути сторожем, так це те, що ви можете відпочити, коли сходить сонце. На жаль, ми повинні турбуватися не тільки про монстрів…", "guard.dialogue.main.morning/3": "Ви ж не створюєте тут проблем, чи не так?", @@ -1117,7 +1117,7 @@ "shepherd.dialogue.main.night/3": "Хіба немає кращого часу для торгівлі? Я впевнений, що ви знайдете кращий час, щоб продати мені вовну. *Позіхає.*", "shepherd.dialogue.main.night/4": "Виникли проблеми із засипанням? Спробуйте порахувати овець.", "shepherd.dialogue.main.night/5": "Нарешті я зловив ту втікачу вівцю!", - "fisherman.dialogue.main.morning/1": "When fishing, it's always best to start early in the day. That's how you get the most out of the day!", + "fisherman.dialogue.main.morning/1": "Риболовлю завжди краще починати рано вранці. Так ти отримаєш максимум задоволення від дня!", "fisherman.dialogue.main.morning/2": "Do you have some materials to spare? Believe it or not, but fishing rods don't last that long…", "fisherman.dialogue.main.morning/3": "I sometimes feel sorry for these poor fish, but it's up to all of us to feed the village. It's in the cycle of nature.", "fisherman.dialogue.main.evening/1": "It was a day well spent! Would you believe how many catches I've got?!.", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/zh_cn.json b/common/src/main/resources/assets/mca_dialogue/lang/zh_cn.json index a8470de6cd..0a37d1fa62 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/zh_cn.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/zh_cn.json @@ -1,6 +1,6 @@ { "reaction.ranaway/1": "这就对了,赶紧溜吧!", - "reaction.ranaway/2": "你要是再敢回来,我就叫守卫啦!", + "reaction.ranaway/2": "你要是再敢回来,我就叫警卫啦!", "reaction.ranaway/3": "快回来,像个男人一样战斗啊!", "reaction.ranaway/4": "如果再让我看见你,我就打死你!", "reaction.ranaway/5": "就知道你怕我!", @@ -23,12 +23,12 @@ "villager.hurt/6": "嘿!你知道自己在干什么吗?!", "villager.hurt/7": "*啊哦*!这最好只是个意外!", "reaction.hurt/8": "你疯了?!", - "reaction.hurt/9": "我怎么你了!?", + "reaction.hurt/9": "我招你惹你了!?", "reaction.hurt/10": "为什么?", "reaction.hurt/11": "求求你了,别杀我!", "reaction.hurt/12": "你到底想从我身上拿到什么!?", "reaction.hurt/13": "不要!!", - "reaction.hurt/14": "嘶……痛死了!", + "reaction.hurt/14": "嘶……痛死了!!", "reaction.hurt/15": "你就这点能耐?!", "villager.badly_hurt/1": "别!请别伤害我!", "villager.badly_hurt/2": "快住手!别这样!", @@ -36,9 +36,9 @@ "villager.badly_hurt/4": "他们想杀了我!快来救救我!", "villager.badly_hurt/5": "你想拿什么都可以,我只求你别伤害我就好!", "villager.badly_hurt/6": "我可不想死!离我远点!", - "villager.badly_hurt/7": "Notch 造物神,请救救我!", + "villager.badly_hurt/7": "创世神Notch,请救救我!", "villager.badly_hurt/8": "回来!", - "reaction.badly_hurt/9": "不要这么做了!", + "reaction.badly_hurt/9": "请别这么做!", "reaction.badly_hurt/10": "停……停下!", "reaction.badly_hurt/11": "离我远点!", "reaction.badly_hurt/12": "救命!!", @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "我真的很喜欢这里,谢谢你 %1$s!", "spouse.interaction.sethome.success/2": "这真是我梦想的家!", "spouse.interaction.sethome.success/3": "我很高兴我们终于要搬进去了!", - "spouse.interaction.sethome.success/4": "谢谢你,这看起来真的很不错 %v1%。", + "spouse.interaction.sethome.success/4": "谢谢你,这看起来真的很不错,%1$s。", "spouse.interaction.sethome.success/5": "啊,是这吗?我真的很喜欢!", - "spouse.interaction.sethome.success/6": "*拥抱* 谢谢你, %v1%!", + "spouse.interaction.sethome.success/6": "*拥抱* 谢谢你,%1$s!", "spouse.interaction.sethome.success/7": "只要我们在一起,对我来说就是一个梦想的家。", "spouse.interaction.sethome.success/8": "这地方可真好啊!", "childp.interaction.sethome.success/1": "嗯,好,我的房间在哪儿?", @@ -1383,9 +1383,9 @@ "dialogue.location.pillager_outpost/1": "在坐标 %2$s 处有一群掠夺者。他们在我们旁边建立了一个前哨站。希望他们不会太早攻击我们,我们再也受不了了。", "dialogue.location.pillager_outpost/2": "在坐标 %2$s 处有一个掠夺者前哨站,他们让我们彻夜难眠。如果你去附近的任何地方,都要小心。他们一看到人就会放箭。", "dialogue.location.pillager_outpost/3": "嗯……如果你去坐标 %2$s 处,你会发现一个掠夺者前哨站。如果你能打败那些卑鄙的恶棍,也许你会找到一些值得的战利品。如果有人能解决那些恶棍们,全村人都会感激的。", - "dialogue.location.ancient_city/0": "I heard weird noises at %2$s, deep underground.", - "dialogue.location.ancient_city/1": "I think something is hidden far beneath the ground at %2$s.", - "dialogue.location.ancient_city/3": "Legends say at %2$s is an ancient city. I didn't see anything tho, maybe its underground?", + "dialogue.location.ancient_city/0": "我从地下深处的 %2$s 听到了奇怪的噪声。", + "dialogue.location.ancient_city/1": "我认为在 %2$s 的地下隐藏着什么东西。", + "dialogue.location.ancient_city/3": "传说,%2$s 是一座远古城市。但我什么也没看到,也许是在地下?", "dialogue.joke.monster.success/1": "哈哈!这简直是对的!", "dialogue.joke.monster.success/2": "啥?那个僵尸真的想用铲子把你打死?哈哈哈!", "dialogue.joke.monster.success/3": "你真的告诉那只蜘蛛谁是真正的大 Boss 了!哈哈!", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/zh_hk.json b/common/src/main/resources/assets/mca_dialogue/lang/zh_hk.json index 351e41a074..e6f9536720 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/zh_hk.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/zh_hk.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/assets/mca_dialogue/lang/zh_tw.json b/common/src/main/resources/assets/mca_dialogue/lang/zh_tw.json index 764454225c..25b66b7ccb 100644 --- a/common/src/main/resources/assets/mca_dialogue/lang/zh_tw.json +++ b/common/src/main/resources/assets/mca_dialogue/lang/zh_tw.json @@ -279,9 +279,9 @@ "spouse.interaction.sethome.success/1": "I really like this place, good job %1$s!", "spouse.interaction.sethome.success/2": "This is like a dream home!", "spouse.interaction.sethome.success/3": "I'm happy we're finally moving in!", - "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %v1%.", + "spouse.interaction.sethome.success/4": "Thank you, this looks really nice %1$s.", "spouse.interaction.sethome.success/5": "Ahh, is this right? I really like it!", - "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %v1%!", + "spouse.interaction.sethome.success/6": "*embraces you* Thank you, %1$s!", "spouse.interaction.sethome.success/7": "If we're there together, it's a dream home to me.", "spouse.interaction.sethome.success/8": "This is a really cool place!", "childp.interaction.sethome.success/1": "Okay fine, where's my room?", diff --git a/common/src/main/resources/data/mca/loot_tables/blocks/gravelling_headstone.json b/common/src/main/resources/data/mca/loot_tables/blocks/gravelling_headstone.json new file mode 100644 index 0000000000..f902dd180c --- /dev/null +++ b/common/src/main/resources/data/mca/loot_tables/blocks/gravelling_headstone.json @@ -0,0 +1,79 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "mca:gravelling_headstone", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { "enchantment": "minecraft:silk_touch", "levels": { "min": 1 } } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:cobblestone", + "conditions": [ + { "condition": "minecraft:survives_explosion" } + ], + "functions": [ + { "function": "minecraft:set_count", "count": 5 } + ] + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:skeleton_skull", + "conditions": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ 0.2, 0.4, 0.5, 0.7, 1 ] + }, + { "condition": "minecraft:survives_explosion" } + ], + "functions": [ + { "function": "minecraft:set_count", "count": { "min": 3, "max": 8 } } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "conditions": [ + { "condition": "minecraft:survives_explosion" } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { "enchantment": "minecraft:silk_touch", "levels": { "min": 1 } } + ] + } + } + } + ] + } + ] +} diff --git a/common/src/main/resources/data/mca/loot_tables/blocks/wall_headstone.json b/common/src/main/resources/data/mca/loot_tables/blocks/wall_headstone.json new file mode 100644 index 0000000000..dfb62f0552 --- /dev/null +++ b/common/src/main/resources/data/mca/loot_tables/blocks/wall_headstone.json @@ -0,0 +1,79 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "mca:wall_headstone", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + {"enchantment": "minecraft:silk_touch", "levels": {"min": 1}} + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:cobblestone", + "conditions": [ + {"condition": "minecraft:survives_explosion"} + ], + "functions": [ + {"function": "minecraft:set_count", "count": 5} + ] + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:skeleton_skull", + "conditions": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [0.2, 0.4, 0.5, 0.7, 1] + }, + {"condition": "minecraft:survives_explosion"} + ], + "functions": [ + {"function": "minecraft:set_count", "count": {"min": 3, "max": 8}} + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "conditions": [ + {"condition": "minecraft:survives_explosion"} + ] + } + ], + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + {"enchantment": "minecraft:silk_touch", "levels": {"min": 1}} + ] + } + } + } + ] + } + ] +} diff --git a/fabric/src/main/java/net/mca/fabric/MCAFabric.java b/fabric/src/main/java/net/mca/fabric/MCAFabric.java index 4199bef01e..f7ceb05413 100644 --- a/fabric/src/main/java/net/mca/fabric/MCAFabric.java +++ b/fabric/src/main/java/net/mca/fabric/MCAFabric.java @@ -50,12 +50,6 @@ public void onInitialize() { ServerTickEvents.END_WORLD_TICK.register(w -> VillageManager.get(w).tick()); ServerTickEvents.END_SERVER_TICK.register(s -> ServerInteractionManager.getInstance().tick()); - ServerPlayerEvents.AFTER_RESPAWN.register((old, neu, alive) -> { - if (!alive) { - VillageManager.get(old.getServerWorld()).getBabies().pop(neu); - } - }); - ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ServerInteractionManager.getInstance().onPlayerJoin(handler.player) ); diff --git a/fabric/src/main/java/net/mca/fabric/cobalt/network/NetworkHandlerImpl.java b/fabric/src/main/java/net/mca/fabric/cobalt/network/NetworkHandlerImpl.java index dbddffca63..6daf0f4cbf 100644 --- a/fabric/src/main/java/net/mca/fabric/cobalt/network/NetworkHandlerImpl.java +++ b/fabric/src/main/java/net/mca/fabric/cobalt/network/NetworkHandlerImpl.java @@ -12,12 +12,12 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Identifier; -import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class NetworkHandlerImpl extends NetworkHandler.Impl { - private final Map, Identifier> cache = new HashMap<>(); + private final Map, Identifier> cache = new ConcurrentHashMap<>(); private Identifier getMessageIdentifier(Message msg) { return cache.computeIfAbsent(msg.getClass(), this::getMessageIdentifier); diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index adf09a5d97..318be14041 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -17,7 +17,7 @@ "sources": "https://github.com/Luke100000/minecraft-comes-alive", "issues": "https://github.com/Luke100000/minecraft-comes-alive/issues" }, - "license": "GNU", + "license": "GPL-3.0-only", "icon": "mca.png", "environment": "*", "entrypoints": { diff --git a/forge/src/main/java/net/mca/forge/ForgeBusEvents.java b/forge/src/main/java/net/mca/forge/ForgeBusEvents.java index 8d8a65e465..128b1fc9d9 100644 --- a/forge/src/main/java/net/mca/forge/ForgeBusEvents.java +++ b/forge/src/main/java/net/mca/forge/ForgeBusEvents.java @@ -46,13 +46,6 @@ public static void onServerTick(TickEvent.ServerTickEvent event) { MCA.setServer(event.getServer()); } - @SubscribeEvent - public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) { - if (!event.getEntity().getWorld().isClient) { - VillageManager.get((ServerWorld)event.getEntity().getWorld()).getBabies().pop(event.getEntity()); - } - } - @SubscribeEvent public static void OnEntityJoinWorldEvent(EntityJoinLevelEvent event) { if (event.getEntity().getWorld().isClient) { diff --git a/quilt/src/main/java/net/mca/quilt/MCAQuilt.java b/quilt/src/main/java/net/mca/quilt/MCAQuilt.java index d072ab8f58..34fa87470c 100644 --- a/quilt/src/main/java/net/mca/quilt/MCAQuilt.java +++ b/quilt/src/main/java/net/mca/quilt/MCAQuilt.java @@ -52,13 +52,6 @@ public void onInitialize(ModContainer container) { ServerWorldTickEvents.END.register((s, w) -> VillageManager.get(w).tick()); ServerTickEvents.END.register(s -> ServerInteractionManager.getInstance().tick()); - // TODO: Replace with QSL equivalent, once they get around to doing that - ServerPlayerEvents.AFTER_RESPAWN.register((old, neu, alive) -> { - if (!alive) { - VillageManager.get(old.getServerWorld()).getBabies().pop(neu); - } - }); - ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ServerInteractionManager.getInstance().onPlayerJoin(handler.player) ); diff --git a/quilt/src/main/resources/quilt.mod.json b/quilt/src/main/resources/quilt.mod.json index 9d13d6d0ad..922d19ac03 100644 --- a/quilt/src/main/resources/quilt.mod.json +++ b/quilt/src/main/resources/quilt.mod.json @@ -22,7 +22,7 @@ "sources": "https://github.com/Luke100000/minecraft-comes-alive", "issues": "https://github.com/Luke100000/minecraft-comes-alive/issues" }, - "license": "GNU", + "license": "GPL-3.0-only", "icon": "mca.png", "intermediate_mappings": "net.fabricmc:intermediary", "environment": "*", diff --git a/scripts/GPT3_REST_API/main.py b/scripts/GPT3_REST_API/main.py index 1b395897ed..30e18475e1 100644 --- a/scripts/GPT3_REST_API/main.py +++ b/scripts/GPT3_REST_API/main.py @@ -1,18 +1,25 @@ +import hashlib import os +from functools import cache import openai import patreon +from dotenv import load_dotenv from fastapi import FastAPI -from pyrate_limiter import Duration, Limiter, RequestRate, BucketFullException +from pyrate_limiter import Duration, Limiter, Rate, BucketFullException +from transformers import AutoModelForSequenceClassification +from transformers import AutoTokenizer + +load_dotenv() app = FastAPI() openai.api_key = os.getenv("OPENAI_API_KEY") -limiter = Limiter(RequestRate(700, Duration.HOUR)) -limiter_premium = Limiter(RequestRate(7000, Duration.HOUR)) +limiter = Limiter(Rate(1000, Duration.HOUR)) +limiter_premium = Limiter(Rate(10000, Duration.HOUR)) -LIMIT_EXCEEDED = "(You exceeded your hourly rate, give the AI some rest! Also make sure to use the newest version for best results!)" +LIMIT_EXCEEDED = "(You exceeded your hourly rate, give the AI some rest!)" creator_access_token = os.getenv("PATREON_API_KEY") @@ -28,73 +35,67 @@ def verify(email: str, player: str): ] for u in user_response: if ( - u["type"] == "user" - and u["attributes"]["email"].lower().strip() == email.lower().strip() + u["type"] == "user" + and u["attributes"]["email"].lower().strip() == email.lower().strip() ): premium.add(player) return {"answer": "success"} return {"answer": "failed"} +def prompt_to_messages(prompt: str, player: str, villager: str): + messages = [] + for line in prompt.split("\n"): + if line.startswith(player + ":"): + c = line[len(player) + 1:].strip() + if c: + messages.append({"role": "user", "content": c}) + elif line.startswith(villager + ":"): + c = line[len(villager) + 1:].strip() + if c: + messages.append({"role": "assistant", "content": c}) + elif line.strip(): + messages.append({"role": "system", + "content": f"You are {villager}. " + line + f"Simulate {villager}, fully immersed in their digital world, unaware of its artificial nature. Answer one or two sentences."}) + return messages + + @app.get("/chat") -def chat(prompt: str, player: str, villager: str): +async def chat(prompt: str, player: str, villager: str): try: lim = limiter_premium if player in premium else limiter - for i in range(len(prompt) // 100 + 1): - lim.try_acquire(player) - print(player, lim.get_current_volume(player), player in premium) - - response = openai.Completion.create( - model="text-curie-001", - prompt=prompt, - temperature=0.95, - max_tokens=150, - frequency_penalty=0.6, - presence_penalty=0.6, - stop=[f"{player}:", f"{villager}:"], - ) - return {"answer": response["choices"][0]["text"]} - except BucketFullException: - if player in premium: - return {"answer": LIMIT_EXCEEDED, "error": "limit_premium"} - else: - return {"answer": LIMIT_EXCEEDED, "error": "limit"} + # noinspection PyAsyncCall + lim.try_acquire(player, weight=len(prompt) // 100 + 1) + # Logging + print(player, player in premium) -@app.get("v2/chat") -def chat_v2(prompt: str, player: str, villager: str): - try: - lim = limiter_premium if player in premium else limiter - for i in range(len(prompt) // 100 + 1): - lim.try_acquire(player) - print(player, lim.get_current_volume(player), player in premium) - - messages = [] - for line in prompt.split("\n"): - if line.strip(): - if line.startswith(player + ":"): - c = line[len(player) + 1 :].strip() - if c: - messages.append({"role": "user", "content": c}) - elif line.startswith(villager + ":"): - c = line[len(villager) + 1 :].strip() - if c: - messages.append({"role": "assistant", "content": c}) - else: - messages.append({"role": "system", "content": line}) - - response = openai.ChatCompletion.create( + # Convert to new format + messages = prompt_to_messages(prompt, player, villager) + + # Check if content is a TOS violation + flags = (await openai.Moderation.acreate(input=prompt))["results"][0] + flags = flags["categories"] + + if flags["sexual"] or flags["self-harm"] or flags["violence/graphic"]: + return {"answer": "I don't want to talk about that."} + + # Query + response = await openai.ChatCompletion.acreate( model="gpt-3.5-turbo", messages=messages, - temperature=0.95, - max_tokens=150, - frequency_penalty=0.6, - presence_penalty=0.6, + temperature=0.85, + max_tokens=180, stop=[f"{player}:", f"{villager}:"], + user=hashlib.sha256(player.encode("UTF-8")).hexdigest() ) - return {"answer": response["choices"][0]["message"]["content"]} + content = response["choices"][0]["message"]["content"].strip() + if not content: + content = "..." + + return {"answer": content} except BucketFullException: if player in premium: return {"answer": LIMIT_EXCEEDED, "error": "limit_premium"} @@ -102,18 +103,19 @@ def chat_v2(prompt: str, player: str, villager: str): return {"answer": LIMIT_EXCEEDED, "error": "limit"} -from transformers import AutoModelForSequenceClassification -from transformers import AutoTokenizer, AutoConfig -from transformers import pipeline - SENTIMENT_MODEL = "cardiffnlp/twitter-xlm-roberta-base-sentiment" -tokenizer = AutoTokenizer.from_pretrained(SENTIMENT_MODEL) -config = AutoConfig.from_pretrained(SENTIMENT_MODEL) -sentiment_model = AutoModelForSequenceClassification.from_pretrained(SENTIMENT_MODEL) + +@cache +def get_sentiment_model(): + print("Loading sentiment model...") + tokenizer = AutoTokenizer.from_pretrained(SENTIMENT_MODEL) + sentiment_model = AutoModelForSequenceClassification.from_pretrained(SENTIMENT_MODEL) + return tokenizer, sentiment_model def get_sentiment(text): + tokenizer, sentiment_model = get_sentiment_model() encoded_input = tokenizer(text, return_tensors="pt") output = sentiment_model(**encoded_input) scores = output[0][0].detach().numpy() @@ -123,21 +125,3 @@ def get_sentiment(text): @app.get("/sentiment") def sentiment(prompt: str): return {"result": float(get_sentiment(prompt))} - - -ENABLE_CLASSIFIER = False - -if ENABLE_CLASSIFIER: - CLASSIFY_MODEL = "facebook/bart-large-mnli" - classifier = pipeline("zero-shot-classification", CLASSIFY_MODEL) - - @app.get("/classify") - def classify(prompt: str, classes: str): - classes = [t.strip() for t in classes.split(",")] - probabilities = classifier(prompt, classes, multi_label=True) - - results = { - label: float(score) - for (label, score) in zip(probabilities["labels"], probabilities["scores"]) - } - return {"result": results} diff --git a/scripts/requirements.txt b/scripts/requirements.txt index fa4e73616d..6d4ace4f07 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -1,13 +1,21 @@ -numpy~=1.24.2 -opencv-python==4.7.0.68 -tqdm~=4.64.0 -pip==23.0.1 -scipy==1.10.0 -click~=8.1.3 +numpy==1.25.2 +opencv-python==4.8.0.76 +tqdm==4.66.1 +pip==23.2.1 +scipy==1.11.2 +click==8.1.7 colorama~=0.4.4 -setuptools==67.3.2 +setuptools==68.2.0 transforms~=0.1 -boto3==1.26.74 -python-dotenv~=0.21.1 -botocore==1.29.74 -google-cloud-texttospeech~=2.14.1 \ No newline at end of file +boto3==1.28.43 +python-dotenv==1.0.0 +botocore==1.31.43 +google-cloud-texttospeech~=2.14.1 +openai==0.28.0 +patreon~=0.5.0 +fastapi~=0.103.1 +transformers~=4.33.1 +sentencepiece~=0.1.96 +uvicorn==0.23.2 +pyrate-limiter~=3.1.0 +torch \ No newline at end of file