diff --git a/build.gradle b/build.gradle index 3e94e520..dde96abf 100644 --- a/build.gradle +++ b/build.gradle @@ -437,91 +437,76 @@ project(':cleanroom') { installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated" //installer "com.cleanroommc:bouncepad:$props.bouncepad_version" - installer "top.outlands:foundation:0.13.6" - installer 'org.burningwave:jvm-driver:8.15.0' - installer 'io.github.toolfactory:jvm-driver:9.7.0' + installer "top.outlands:foundation:0.13.11" + installer 'org.burningwave:jvm-driver:8.16.1' + installer 'io.github.toolfactory:jvm-driver:9.7.1' installer 'io.github.toolfactory:narcissus:1.0.7' installer 'org.javassist:javassist:3.30.2-GA' installer "zone.rong:imaginebreaker:2.1" installer 'com.ibm.icu:icu4j:75.1' - installer 'org.jline:jline:3.25.0' - // TODO: Move scala away from being defaulted when installing (download on-demand?) - /* - installer 'org.scala-lang:scala-actors-migration_2.11:1.1.0' - installer 'org.scala-lang:scala-compiler:2.11.1' - // We change the version so old installs don't break, as our clone of the jar is different the maven central - installer 'org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2_mc' - installer 'org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2_mc' - - installer 'org.scala-lang:scala-library:2.11.1' - installer 'org.scala-lang:scala-parser-combinators_2.11:1.0.1' - installer 'org.scala-lang:scala-reflect:2.11.1' - installer 'org.scala-lang:scala-swing_2.11:1.0.1' - installer 'org.scala-lang:scala-xml_2.11:1.0.2' - - installer 'com.typesafe.akka:akka-actor_2.12:2.8.5' - installer 'com.typesafe:config:1.4.3' - */ + installer 'org.jline:jline:3.27.0' + installer 'org.jline:jline-native:3.27.0' + installer 'lzma:lzma:0.0.1' installer 'java3d:vecmath:1.5.2' installer 'net.sf.trove4j:trove4j:3.0.3' - installer 'org.apache.maven:maven-artifact:3.9.5' + installer 'org.apache.maven:maven-artifact:3.9.7' installer 'net.sf.jopt-simple:jopt-simple:5.0.4' - installer 'org.apache.commons:commons-lang3:3.14.0' - installer 'org.apache.commons:commons-compress:1.26.1' + installer 'org.apache.commons:commons-lang3:3.17.0' + installer 'org.apache.commons:commons-compress:1.27.1' installer 'org.apache.httpcomponents:httpclient:4.5.14' installer 'org.apache.httpcomponents:httpcore:4.4.16' - installer 'com.github.oshi:oshi-core:6.5.0' - installer 'net.java.dev.jna:jna:5.14.0' - installer 'net.java.dev.jna:jna-platform:5.14.0' - installer 'it.unimi.dsi:fastutil:8.5.13' - installer 'commons-codec:commons-codec:1.16.0' - installer 'commons-io:commons-io:2.16.1' - installer 'commons-logging:commons-logging:1.3.1' - installer 'com.google.guava:guava:33.1.0-jre' + installer 'com.github.oshi:oshi-core:6.6.4' + installer 'net.java.dev.jna:jna:5.15.0' + installer 'net.java.dev.jna:jna-platform:5.15.0' + installer 'it.unimi.dsi:fastutil:8.5.14' + installer 'commons-codec:commons-codec:1.17.1' + installer 'commons-io:commons-io:2.17.0' + installer 'commons-logging:commons-logging:1.3.4' + installer 'com.google.guava:guava:33.3.0-jre' installer 'com.google.guava:failureaccess:1.0.2' - installer 'com.google.code.gson:gson:2.10.1' + installer 'com.google.code.gson:gson:2.11.0' installer 'com.google.code.findbugs:jsr305:3.0.2' // Netty - installer 'io.netty:netty-codec:4.1.109.Final' - installer 'io.netty:netty-buffer:4.1.109.Final' - installer 'io.netty:netty-common:4.1.109.Final' - installer 'io.netty:netty-handler:4.1.109.Final' - installer 'io.netty:netty-resolver:4.1.109.Final' - installer 'io.netty:netty-transport:4.1.109.Final' - installer 'io.netty:netty-transport-native-unix-common:4.1.109.Final' - installer 'io.netty:netty-transport-classes-epoll:4.1.109.Final' - installer 'io.netty:netty-transport-native-epoll:4.1.109.Final' - installer 'io.netty:netty-codec-http:4.1.109.Final' - installer 'io.netty:netty-codec-http2:4.1.109.Final' - installer 'io.netty:netty-codec-dns:4.1.109.Final' - installer 'io.netty:netty-resolver-dns:4.1.109.Final' + installer "io.netty:netty-codec:$props.netty_version" + installer "io.netty:netty-buffer:$props.netty_version" + installer "io.netty:netty-common:$props.netty_version" + installer "io.netty:netty-handler:$props.netty_version" + installer "io.netty:netty-resolver:$props.netty_version" + installer "io.netty:netty-transport:$props.netty_version" + installer "io.netty:netty-transport-native-unix-common:$props.netty_version" + installer "io.netty:netty-transport-classes-epoll:$props.netty_version" + installer "io.netty:netty-transport-native-epoll:$props.netty_version" + installer "io.netty:netty-codec-http:$props.netty_version" + installer "io.netty:netty-codec-http2:$props.netty_version" + installer "io.netty:netty-codec-dns:$props.netty_version" + installer "io.netty:netty-resolver-dns:$props.netty_version" // installer 'io.netty:netty-all:4.1.93.Final' // TODO: Unpin in 1.18.1 or when Mojang bumps the Log4J version - installer 'org.apache.logging.log4j:log4j-api:2.23.1' - installer 'org.apache.logging.log4j:log4j-core:2.23.1' - installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.23.1' - installer 'org.slf4j:slf4j-api:2.0.13' - installer 'jakarta.annotation:jakarta.annotation-api:2.1.1' + installer 'org.apache.logging.log4j:log4j-api:2.24.0' + installer 'org.apache.logging.log4j:log4j-core:2.24.0' + installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.24.0' + installer 'org.slf4j:slf4j-api:2.0.16' + installer 'jakarta.annotation:jakarta.annotation-api:3.0.0' installer 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2' - installer 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.1' - installer 'jakarta.activation:jakarta.activation-api:2.1.2' + installer 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.2' + installer 'jakarta.activation:jakarta.activation-api:2.1.3' installer 'org.glassfish.corba:glassfish-corba-omgapi:4.2.5' installer 'org.openjdk.nashorn:nashorn-core:15.4' // Mixin - installer 'com.cleanroommc:sponge-mixin:0.19.7+mixin.0.8.5' - installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.3.6') + installer 'com.cleanroommc:sponge-mixin:0.20.6+mixin.0.8.7' + installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.4.1') - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1' - testImplementation 'org.junit.vintage:junit-vintage-engine:5.10.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.0' + testImplementation 'org.junit.vintage:junit-vintage-engine:5.11.0' testImplementation 'org.opentest4j:opentest4j:1.3.0' // Needed for junit 5 - testImplementation 'org.hamcrest:hamcrest:2.2' // Needs advanced matching for list order + testImplementation 'org.hamcrest:hamcrest:3.0' // Needs advanced matching for list order // CatServer installer 'com.googlecode.json-simple:json-simple:1.1.1' diff --git a/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/Util.groovy b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/Util.groovy index a7c3b3a7..4ff247f8 100644 --- a/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/Util.groovy +++ b/buildSrc/src/main/groovy/com/cleanroommc/gradle/helpers/tasks/Util.groovy @@ -151,7 +151,7 @@ class Util { "https://maven.minecraftforge.net/", "https://repo.maven.apache.org/maven2/", "https://libraries.minecraft.net/", - "https://maven.outlands.top/releases/" + "https://maven.arcseekers.com/releases/" ] try { return urlList.stream().map(original -> original + path) diff --git a/gradle.properties b/gradle.properties index 37d11bab..56db14db 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ installer_tools_version = 1.4.1 # Libraries asm_version = 9.7 asm_deprecated = 7.1 -bouncepad_version = 0.4.40-cursed +netty_version = 4.1.113.Final lwjgl_version = 3.3.4-27-CLEANROOM # Sets default memory used for Gradle commands. Can be overridden by user or command line properties. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d184210..1e2fbf0d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch index 5867815a..ec39a11a 100644 --- a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch @@ -199,7 +199,7 @@ { p_78273_1_ = p_78273_1_.substring(0, p_78273_1_.length() - 1); } -@@ -725,9 +738,95 @@ +@@ -725,9 +738,96 @@ public List func_78271_c(String p_78271_1_, int p_78271_2_) { @@ -225,6 +225,7 @@ + list.add(line.toString()); + fed = i + 1; + line.delete(0, line.length()).append(format); ++ prevFormat = format.length(); + lineWidth = 0; + widths[0] = lineWidth; + formats[0] = format.toString(); @@ -264,7 +265,7 @@ + } + widths[i - fed] = lineWidth; + formats[i - fed] = format.toString(); -+ if (lineWidth >= p_78271_2_) { ++ if (lineWidth > p_78271_2_) { + if (BreakIteratorHolder.BREAK_ITERATOR.isBoundary(i)) { + icui = i; + } else { @@ -278,7 +279,7 @@ + lineWidth = func_78263_a(current); + } else { + d = icui - fed; -+ if (line.charAt(d + prevFormat - 1) == '§') d++; ++ if (line.charAt(d + prevFormat - 2) == '§') d++; + list.add(line.substring(0, d + prevFormat)); + temp = line.substring(d + prevFormat); + fed += d; @@ -296,7 +297,7 @@ String func_78280_d(String p_78280_1_, int p_78280_2_) { int i = this.func_78259_e(p_78280_1_, p_78280_2_); -@@ -746,6 +845,7 @@ +@@ -746,6 +846,7 @@ } } @@ -304,7 +305,7 @@ private int func_78259_e(String p_78259_1_, int p_78259_2_) { int i = p_78259_1_.length(); -@@ -844,6 +944,26 @@ +@@ -844,6 +945,26 @@ public boolean func_78260_a() { return this.field_78294_m; diff --git a/patches/minecraft/net/minecraft/crash/CrashReport.java.patch b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch index 0e0773e5..84f2caef 100644 --- a/patches/minecraft/net/minecraft/crash/CrashReport.java.patch +++ b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch @@ -1,11 +1,6 @@ --- before/net/minecraft/crash/CrashReport.java +++ after/net/minecraft/crash/CrashReport.java -@@ -9,18 +9,26 @@ - import java.io.Writer; - import java.lang.management.ManagementFactory; - import java.lang.management.RuntimeMXBean; -+import java.lang.reflect.Method; - import java.nio.charset.StandardCharsets; +@@ -13,6 +13,9 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -14,10 +9,8 @@ +import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import net.minecraft.util.ReportedException; import net.minecraft.world.gen.layer.IntCache; -+import net.minecraftforge.fml.relauncher.MixinBooterPlugin; import net.minecraftforge.fml.relauncher.Side; - import net.minecraftforge.fml.relauncher.SideOnly; - import org.apache.commons.io.IOUtils; +@@ -21,6 +24,9 @@ import org.apache.commons.lang3.ArrayUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -27,7 +20,7 @@ public class CrashReport { -@@ -28,7 +36,7 @@ +@@ -28,7 +34,7 @@ private final String field_71513_a; private final Throwable field_71511_b; private final CrashReportCategory field_85061_c = new CrashReportCategory(this, "System Details"); diff --git a/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java b/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java index 4e369e6b..636e7799 100644 --- a/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java +++ b/src/main/java/com/cleanroommc/common/ConfigAnytimeContainer.java @@ -1,6 +1,7 @@ package com.cleanroommc.common; import com.google.common.eventbus.EventBus; +import net.minecraftforge.common.ForgeEarlyConfig; import net.minecraftforge.fml.common.DummyModContainer; import net.minecraftforge.fml.common.LoadController; import net.minecraftforge.fml.common.ModMetadata; @@ -14,7 +15,7 @@ public ConfigAnytimeContainer() { meta.modId = "configanytime"; meta.name = "ConfigAnytime"; meta.description = "Allows Forge configurations to be setup at any point in time."; - meta.version = "3.0"; + meta.version = ForgeEarlyConfig.CONFIG_ANY_TIME_VERSION; meta.authorList.add("Rongmario"); } diff --git a/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java b/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java index 1a7853dd..65c0c3d1 100644 --- a/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java +++ b/src/main/java/com/cleanroommc/hackery/enums/EnumHackery.java @@ -4,6 +4,7 @@ import jdk.internal.reflect.ReflectionFactory; import net.minecraftforge.fml.common.FMLLog; import org.apache.commons.lang3.ArrayUtils; +import top.outlands.foundation.boot.JVMDriverHolder; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -77,7 +78,7 @@ public static > T addEnumEntry(Class enumClass, String enum return addEnumEntry(enumClass, enumName, new Class[0], new Object[0]); } - + @SuppressWarnings("unchecked") public static > T addEnumEntry(Class enumClass, String enumName, Class[] parameterTypes, Object[] parameterValues) { if (parameterTypes.length != parameterValues.length) { throw new IllegalArgumentException("The amount of parameter types must be the same as the parameter values."); @@ -89,7 +90,7 @@ public static > T addEnumEntry(Class enumClass, String enum MethodHandle handle = MethodHandles.lookup().unreflectConstructor(constructor); Method m = enumClass.getMethod("values"); Object o = m.invoke(enumClass); - T instance = (T) handle.invokeWithArguments(ArrayUtils.addAll(new Object[]{enumName, ((Object[]) o).length}, parameterValues)); + T instance = (T) handle.withVarargs(false).invokeWithArguments(ArrayUtils.addAll(new Object[]{enumName, ((Object[]) o).length}, parameterValues)); Field nameField = Enum.class.getDeclaredField("name"); nameField.setAccessible(true); diff --git a/src/main/java/net/minecraftforge/common/ForgeEarlyConfig.java b/src/main/java/net/minecraftforge/common/ForgeEarlyConfig.java index f9928440..07090c48 100644 --- a/src/main/java/net/minecraftforge/common/ForgeEarlyConfig.java +++ b/src/main/java/net/minecraftforge/common/ForgeEarlyConfig.java @@ -13,8 +13,13 @@ public class ForgeEarlyConfig { public static boolean OPENGL_SRGB_CONTEXT = false; public static boolean OPENGL_DOUBLEBUFFER = true; public static boolean OPENGL_CONTEXT_NO_ERROR = false; + @Config.Comment("Only use this if you have custom glfw natives") + public static boolean FORCE_WAYLAND = false; + public static boolean DECORATED = true; public static boolean INPUT_INVERT_WHEEL = false; public static double INPUT_SCROLL_SPEED = 1.0; public static String X11_CLASS_NAME = "minecraft"; public static String COCOA_FRAME_NAME = "minecraft"; + public static String CONFIG_ANY_TIME_VERSION = "3.0"; + public static String[] LOADING_PLUGIN_BLACKLIST = new String[] { "com.cleanroommc.configanytime.ConfigAnytimePlugin", "zone.rong.mixinbooter.MixinBooterPlugin"}; } diff --git a/src/main/java/net/minecraftforge/common/ForgeModContainer.java b/src/main/java/net/minecraftforge/common/ForgeModContainer.java index 488d7226..153d5fe9 100644 --- a/src/main/java/net/minecraftforge/common/ForgeModContainer.java +++ b/src/main/java/net/minecraftforge/common/ForgeModContainer.java @@ -425,20 +425,21 @@ private static ArrayList setupHudConfig(String categoryName) } if (FMLCommonHandler.instance().getSide().isClient()) { - GuiIngameForge.renderVignette = values[0]; - GuiIngameForge.renderHelmet = values[1]; - GuiIngameForge.renderPortal = values[2]; - GuiIngameForge.renderHotbar = values[3]; - GuiIngameForge.renderCrosshairs = values[4]; - GuiIngameForge.renderBossHealth = values[5]; - GuiIngameForge.renderHealth = values[6]; - GuiIngameForge.renderArmor = values[7]; - GuiIngameForge.renderFood = values[8]; - GuiIngameForge.renderHealthMount = values[9]; - GuiIngameForge.renderAir = values[10]; - GuiIngameForge.renderExperiance = values[11]; - GuiIngameForge.renderJumpBar = values[12]; - GuiIngameForge.renderObjective = values[13]; + //`GuiIngameForge` class is client-only + GuiIngameForge.renderVignette = values[0]; + GuiIngameForge.renderHelmet = values[1]; + GuiIngameForge.renderPortal = values[2]; + GuiIngameForge.renderHotbar = values[3]; + GuiIngameForge.renderCrosshairs = values[4]; + GuiIngameForge.renderBossHealth = values[5]; + GuiIngameForge.renderHealth = values[6]; + GuiIngameForge.renderArmor = values[7]; + GuiIngameForge.renderFood = values[8]; + GuiIngameForge.renderHealthMount = values[9]; + GuiIngameForge.renderAir = values[10]; + GuiIngameForge.renderExperiance = values[11]; + GuiIngameForge.renderJumpBar = values[12]; + GuiIngameForge.renderObjective = values[13]; } return order; diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index c0e84d2b..0e6877ba 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -19,6 +19,7 @@ package net.minecraftforge.common; +import com.cleanroommc.common.CleanroomVersion; import net.minecraftforge.fml.common.FMLLog; import net.minecraftforge.fml.common.ICrashCallable; import net.minecraftforge.fml.common.Loader; @@ -83,7 +84,7 @@ public static void addGrassSeed(SeedEntry seed) */ public static void initialize() { - FMLLog.log.info("MinecraftForge v{} Initialized", ForgeVersion.getVersion()); + FMLLog.log.info("Cleanroom v{} Initialized", CleanroomVersion.BUILD_VERSION); OreDictionary.getOreName(0); diff --git a/src/main/java/net/minecraftforge/common/config/ConfigManager.java b/src/main/java/net/minecraftforge/common/config/ConfigManager.java index e5170ad0..279a4d7c 100644 --- a/src/main/java/net/minecraftforge/common/config/ConfigManager.java +++ b/src/main/java/net/minecraftforge/common/config/ConfigManager.java @@ -395,7 +395,7 @@ public static void register(Class configClass) { modConfigClasses.add(configClass); File configDir = new File(Launch.minecraftHome, "config"); String name = config.name(); - File configFile = new File(configDir, Strings.isNullOrEmpty(name) ? config.modid() : name + ".cfg"); + File configFile = new File(configDir, (Strings.isNullOrEmpty(name) ? config.modid() : name) + ".cfg"); Configuration cfg = CONFIGS.get(configFile.getAbsolutePath()); if (cfg == null) { cfg = new Configuration(configFile); diff --git a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java index 72716963..7f2e6842 100644 --- a/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java +++ b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java @@ -196,7 +196,7 @@ public void handleMouseInput(int mouseX, int mouseY) throws IOException int scroll = Mouse.getEventDWheel(); if (scroll != 0) { - this.scrollDistance += (float)((-1 * scroll / 120.0F) * this.slotHeight / 2); + this.scrollDistance += (float)((-1 * scroll) * this.slotHeight / 2); } } diff --git a/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java index 9573f232..9e603a3c 100644 --- a/src/main/java/net/minecraftforge/fml/common/Loader.java +++ b/src/main/java/net/minecraftforge/fml/common/Loader.java @@ -48,6 +48,7 @@ import net.minecraftforge.fml.common.LoaderState.ModState; import net.minecraftforge.fml.common.ModContainer.Disableable; import net.minecraftforge.fml.common.ProgressManager.ProgressBar; +import net.minecraftforge.fml.common.asm.FMLSanityChecker; import net.minecraftforge.fml.common.discovery.ASMDataTable; import net.minecraftforge.fml.common.discovery.ContainerType; import net.minecraftforge.fml.common.discovery.ModCandidate; @@ -373,8 +374,8 @@ private ModDiscoverer identifyMods(List additionalContainers) mods.add(minecraft); // Add in the MCP mod container mods.add(new InjectedModContainer(mcp,new File("minecraft.jar"))); - mods.add(new InjectedModContainer(new ConfigAnytimeContainer(), new File("minecraft.jar"))); - mods.add(new InjectedModContainer(new CleanroomContainer(), new File("minecraft.jar"))); + mods.add(new InjectedModContainer(new ConfigAnytimeContainer(), FMLSanityChecker.fmlLocation)); + mods.add(new InjectedModContainer(new CleanroomContainer(), FMLSanityChecker.fmlLocation)); for (String cont : injectedContainers) { ModContainer mc; diff --git a/src/main/java/net/minecraftforge/fml/common/MixinContainer.java b/src/main/java/net/minecraftforge/fml/common/MixinContainer.java index ed465790..c940ed5d 100644 --- a/src/main/java/net/minecraftforge/fml/common/MixinContainer.java +++ b/src/main/java/net/minecraftforge/fml/common/MixinContainer.java @@ -1,6 +1,9 @@ package net.minecraftforge.fml.common; import com.google.common.eventbus.EventBus; +import net.minecraftforge.fml.common.asm.FMLSanityChecker; + +import java.io.File; public final class MixinContainer extends DummyModContainer{ public MixinContainer() { @@ -18,4 +21,10 @@ public boolean registerBus(EventBus bus, LoadController controller) { bus.register(this); return true; } + + @Override + public File getSource() + { + return FMLSanityChecker.fmlLocation; + } } diff --git a/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java b/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java index 1c818af1..347e458d 100644 --- a/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java +++ b/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java @@ -114,7 +114,7 @@ else if (fingerprint.equals(FORGEFINGERPRINT)) { String mcPath = codeSource.getLocation().getPath().substring(5); mcPath = mcPath.substring(0, mcPath.lastIndexOf('!')); - mcPath = URLDecoder.decode(mcPath, StandardCharsets.UTF_8.name()); + mcPath = URLDecoder.decode(mcPath, StandardCharsets.UTF_8); mcJarFile = new JarFile(mcPath,true); mcJarFile.getManifest(); JarEntry cbrEntry = mcJarFile.getJarEntry("net/minecraft/client/ClientBrandRetriever.class"); @@ -176,7 +176,7 @@ else if (fingerprint.equals(FORGEFINGERPRINT)) } if (!goodFML) { - FMLLog.log.error("FML appears to be missing any signature data. This is not a good thing"); + FMLLog.log.info("FML appears to be missing any signature data. This is expected, don't worry."); } return null; } diff --git a/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java index 5ef5303d..be9449bd 100644 --- a/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java +++ b/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java @@ -51,14 +51,6 @@ public String getLaunchTarget() @Override public void injectIntoClassLoader(LaunchClassLoader classLoader) { - // The log4j2 queue is excluded so it is correctly visible from the obfuscated - // and deobfuscated parts of the code. Without, the UI won't show anything - classLoader.addClassLoaderExclusion("com.mojang.util.QueueLogAppender"); - - classLoader.addClassLoaderExclusion("org.jline."); - classLoader.addClassLoaderExclusion("com.sun.jna."); - classLoader.addClassLoaderExclusion("net.minecraftforge.server.terminalconsole."); - FMLLaunchHandler.configureForServerLaunch(classLoader, this); FMLLaunchHandler.appendCoreMods(); } diff --git a/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java b/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java index b28d4957..bf86ed47 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java @@ -25,6 +25,7 @@ import net.minecraft.launchwrapper.ITweaker; import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; +import net.minecraftforge.common.ForgeEarlyConfig; import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.fml.common.CertificateHelper; import net.minecraftforge.fml.common.FMLLog; @@ -54,6 +55,7 @@ public class CoreModManager { private static final Attributes.Name COREMODCONTAINSFMLMOD = new Attributes.Name("FMLCorePluginContainsFMLMod"); + private static final Attributes.Name FORCELOADASMOD = new Attributes.Name("ForceLoadAsMod"); private static final Attributes.Name MODTYPE = new Attributes.Name("ModType"); private static String[] rootPlugins = { "net.minecraftforge.fml.relauncher.FMLCorePlugin", "net.minecraftforge.classloading.FMLForgePlugin", "catserver.server.CatCorePlugin" }; private static List ignoredModFiles = Lists.newArrayList(); @@ -350,7 +352,7 @@ private static void discoverCoreMods(File mcDir, LaunchClassLoader classLoader) String configs; String cascadedTweaker; File mods_ver = new File(new File(Launch.minecraftHome, "mods"), ForgeVersion.mcVersion); - boolean containNonMods = false; + boolean containNonMods = false, ignoreMods = false; try { File manifest = new File(coreMod.getAbsolutePath() + ".meta"); @@ -401,8 +403,8 @@ private static void discoverCoreMods(File mcDir, LaunchClassLoader classLoader) handleCascadingTweak(coreMod, jar, cascadedTweaker, classLoader, sortOrder); if (!Strings.isNullOrEmpty(configs)) mixin_configs.addAll(List.of(configs.split(","))); + ignoredModFiles.add(coreMod.getName()); if (!MixinServiceLaunchWrapper.MIXIN_TWEAKER_CLASS.equals(cascadedTweaker)) { - ignoredModFiles.add(coreMod.getName()); continue; } } @@ -415,10 +417,26 @@ private static void discoverCoreMods(File mcDir, LaunchClassLoader classLoader) continue; } fmlCorePlugin = mfAttributes.getValue("FMLCorePlugin"); + for (String plugin : ForgeEarlyConfig.LOADING_PLUGIN_BLACKLIST) { + if (plugin.equals(fmlCorePlugin)) { + ignoreMods = true; + break; + } + } + if (ignoreMods) { + ignoredModFiles.add(coreMod.getName()); + continue; + } if (fmlCorePlugin == null) { // Not a coremod FMLLog.log.debug("Not found coremod data in {}", coreMod.getName()); + if (MixinServiceLaunchWrapper.MIXIN_TWEAKER_CLASS.equals(cascadedTweaker) && (mfAttributes.containsKey(COREMODCONTAINSFMLMOD) || mfAttributes.containsKey(FORCELOADASMOD))) { + FMLLog.log.info("Found FMLCorePluginContainsFMLMod marker in mixin container {}.", + coreMod.getName()); + candidateModFiles.add(coreMod.getName()); + ignoredModFiles.remove(coreMod.getName()); + } continue; } } @@ -442,7 +460,7 @@ private static void discoverCoreMods(File mcDir, LaunchClassLoader classLoader) classLoader.addURL(coreMod.toURI().toURL()); if (!Strings.isNullOrEmpty(configs)) mixin_configs.addAll(List.of(configs.split(","))); - if (!mfAttributes.containsKey(COREMODCONTAINSFMLMOD)) + if (!(mfAttributes.containsKey(COREMODCONTAINSFMLMOD) || mfAttributes.containsKey(FORCELOADASMOD))) { FMLLog.log.trace("Adding {} to the list of known coremods, it will not be examined again", coreMod.getName()); ignoredModFiles.add(coreMod.getName()); @@ -450,6 +468,7 @@ private static void discoverCoreMods(File mcDir, LaunchClassLoader classLoader) FMLLog.log.info("Found FMLCorePluginContainsFMLMod marker in {}.", coreMod.getName()); candidateModFiles.add(coreMod.getName()); + ignoredModFiles.remove(coreMod.getName()); } } catch (MalformedURLException e) diff --git a/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java index 3a0b402d..f0268a97 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java @@ -23,6 +23,7 @@ import java.util.Arrays; import java.util.stream.Collectors; +import com.cleanroommc.common.CleanroomVersion; import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LaunchClassLoader; import net.minecraftforge.fml.common.FMLLog; @@ -95,6 +96,7 @@ private void setupHome() redirectStdOutputToLog(); FMLLog.log.info("Forge Mod Loader version {}.{}.{}.{} for Minecraft {} loading", FMLInjectionData.major, FMLInjectionData.minor, FMLInjectionData.rev, FMLInjectionData.build, FMLInjectionData.mccversion); + FMLLog.log.info("Cleanroom version {}", CleanroomVersion.BUILD_VERSION); FMLLog.log.info("Java is {}, version {}, running on {}:{}:{}, installed at {}", System.getProperty("java.vm.name"), System.getProperty("java.version"), System.getProperty("os.name"), System.getProperty("os.arch"), System.getProperty("os.version"), System.getProperty("java.home")); FMLLog.log.debug("Removing LWJGL2 from Java classpath"); System.setProperty("java.class.path", Arrays.stream(System.getProperty("java.class.path").split(File.pathSeparator)) diff --git a/src/main/java/net/minecraftforge/server/terminalconsole/TerminalConsoleAppender.java b/src/main/java/net/minecraftforge/server/terminalconsole/TerminalConsoleAppender.java index 96410b72..bdfb2c21 100644 --- a/src/main/java/net/minecraftforge/server/terminalconsole/TerminalConsoleAppender.java +++ b/src/main/java/net/minecraftforge/server/terminalconsole/TerminalConsoleAppender.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.PrintStream; import java.io.Serializable; +import java.nio.charset.Charset; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Core; diff --git a/src/main/java/org/lwjgl/Sys.java b/src/main/java/org/lwjgl/Sys.java index a64971e4..0a5aa4f9 100644 --- a/src/main/java/org/lwjgl/Sys.java +++ b/src/main/java/org/lwjgl/Sys.java @@ -8,6 +8,7 @@ import javax.swing.JOptionPane; import javax.swing.UIManager; +import net.minecraftforge.common.ForgeEarlyConfig; import org.lwjgl3.Version; import org.lwjgl3.glfw.GLFW; import org.lwjgl3.system.Configuration; @@ -17,6 +18,9 @@ public class Sys { static { + if (ForgeEarlyConfig.FORCE_WAYLAND && GLFW.glfwPlatformSupported(GLFW.GLFW_PLATFORM_WAYLAND)) { + GLFW.glfwInitHint(GLFW.GLFW_PLATFORM, GLFW.GLFW_PLATFORM_WAYLAND); + } if (Platform.get() == Platform.MACOSX) { Configuration.GLFW_LIBRARY_NAME.set("glfw_async"); Configuration.GLFW_CHECK_THREAD0.set(false); diff --git a/src/main/java/org/lwjgl/input/Mouse.java b/src/main/java/org/lwjgl/input/Mouse.java index 5126c601..472f2f9a 100644 --- a/src/main/java/org/lwjgl/input/Mouse.java +++ b/src/main/java/org/lwjgl/input/Mouse.java @@ -53,6 +53,9 @@ public static void addMoveEvent(double mouseX, double mouseY) { ignoreNextMove--; return; } + float scale = Display.getPixelScaleFactor(); + mouseX *= scale; + mouseY *= scale; dx += (int) mouseX - latestX; dy += Display.getHeight() - (int) mouseY - latestY; latestX = (int) mouseX; @@ -280,7 +283,13 @@ public static void setCursorPosition(int new_x, int new_y) { if (grabbed) { return; } - GLFW.glfwSetCursorPos(Display.getWindow(), new_x, new_y); + // convert back from framebuffer coordinates to screen-space coordinates + float inv_scale = 1.0f / Display.getPixelScaleFactor(); + new_x *= inv_scale; + new_y *= inv_scale; + GLFW.glfwSetCursorPos(Display.getWindow(), new_x * inv_scale, new_y * inv_scale); + // this might lose accuracy, since we just went from fb->screen and this will + // undo that change. Yay floating point numbers! addMoveEvent(new_x, new_y); } diff --git a/src/main/java/org/lwjgl/openal/AL.java b/src/main/java/org/lwjgl/openal/AL.java index 7bb89932..358a5329 100644 --- a/src/main/java/org/lwjgl/openal/AL.java +++ b/src/main/java/org/lwjgl/openal/AL.java @@ -24,12 +24,12 @@ public static void create() throws LWJGLException { } public static void create(String deviceArguments, int contextFrequency, int contextRefresh, - boolean contextSynchronized) { + boolean contextSynchronized) throws LWJGLException { create(deviceArguments, contextFrequency, contextRefresh, contextSynchronized, true); } public static void create(String deviceArguments, int contextFrequency, int contextRefresh, - boolean contextSynchronized, boolean openDevice) { + boolean contextSynchronized, boolean openDevice) throws LWJGLException { IntBuffer attribs = BufferUtils.createIntBuffer(16); attribs.put(org.lwjgl3.openal.ALC10.ALC_FREQUENCY); @@ -51,6 +51,8 @@ public static void create(String deviceArguments, int contextFrequency, int cont long deviceHandle = org.lwjgl3.openal.ALC10.alcOpenDevice(defaultDevice); + if (deviceHandle == 0) throw new LWJGLException("Could not open ALC device"); + alcDevice = new ALCdevice(deviceHandle); final ALCCapabilities deviceCaps = org.lwjgl3.openal.ALC.createCapabilities(deviceHandle); diff --git a/src/main/java/org/lwjgl/opengl/CallbackUtil.java b/src/main/java/org/lwjgl/opengl/CallbackUtil.java index cf0d0cce..17a44af6 100644 --- a/src/main/java/org/lwjgl/opengl/CallbackUtil.java +++ b/src/main/java/org/lwjgl/opengl/CallbackUtil.java @@ -68,14 +68,17 @@ static long createGlobalRef(final Object obj) { * * @return the GlobalRef memory address. */ - private static native long ncreateGlobalRef(Object obj); + private static long ncreateGlobalRef(Object obj) { + return 0; + } /** * Deletes a global reference. * * @param ref the GlobalRef memory address. */ - private static native void deleteGlobalRef(long ref); + private static void deleteGlobalRef(long ref) { + } // --------- [ XXX_debug_output ] --------- @@ -130,7 +133,9 @@ static void unregisterCallbacks(final Object context) { * * @return the callback function address */ - static native long getDebugOutputCallbackARB(); + static long getDebugOutputCallbackARB() { + return 0; + } /** * Associates the current OpenGL context with the specified global reference. If there @@ -150,7 +155,9 @@ static void registerContextCallbackARB(final long userParam) { * * @return the callback function address */ - static native long getDebugOutputCallbackAMD(); + static long getDebugOutputCallbackAMD() { + return 0; + } /** * Associates the current OpenGL context with the specified global reference. If there @@ -170,7 +177,9 @@ static void registerContextCallbackAMD(final long userParam) { * * @return the callback function address */ - static native long getDebugCallbackKHR(); + static long getDebugCallbackKHR() { + return 0; + } /** * Associates the current OpenGL context with the specified global reference. If there diff --git a/src/main/java/org/lwjgl/opengl/Display.java b/src/main/java/org/lwjgl/opengl/Display.java index 42f1a371..519b6062 100644 --- a/src/main/java/org/lwjgl/opengl/Display.java +++ b/src/main/java/org/lwjgl/opengl/Display.java @@ -119,12 +119,11 @@ public static void create() { glfwWindowHint(GLFW_CONTEXT_NO_ERROR, ForgeEarlyConfig.OPENGL_CONTEXT_NO_ERROR ? GLFW_TRUE : GLFW_FALSE); glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, ForgeEarlyConfig.OPENGL_DEBUG_CONTEXT ? GLFW_TRUE : GLFW_FALSE); glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, ForgeEarlyConfig.OPENGL_DEBUG_CONTEXT ? GLFW_TRUE : GLFW_FALSE); + glfwWindowHint(GLFW_DECORATED, ForgeEarlyConfig.DECORATED ? GLFW_TRUE : GLFW_FALSE); glfwWindowHintString(GLFW_X11_CLASS_NAME, ForgeEarlyConfig.X11_CLASS_NAME); glfwWindowHintString(GLFW_COCOA_FRAME_NAME, ForgeEarlyConfig.COCOA_FRAME_NAME); - glfwWindowHint(GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE); // request a non-hidpi framebuffer on Retina displays - // on MacOS Window.handle = glfwCreateWindow(mode.getWidth(), mode.getHeight(), windowTitle, NULL, NULL); if (Window.handle == 0L) { @@ -241,10 +240,11 @@ public void invoke(long window, boolean iconified) { @Override public void invoke(long window, int width, int height) { - boolean minimized = width == 0 && height == 0; - latestResized = true && !minimized; - latestWidth = width; - latestHeight = height; + if (width != 0 && height != 0) { + latestResized = true; + latestWidth = width; + latestHeight = height; + } } }; @@ -323,7 +323,12 @@ public static boolean isVisible() { } public static void setLocation(int new_x, int new_y) { - System.out.println("TODO: Implement Display.setLocation(int, int)"); + if (!displayCreated) { + displayX = new_x; + displayY = new_y; + } else { + GLFW.glfwSetWindowPos(Window.handle, new_x, new_y); + } } public static void setVSyncEnabled(boolean sync) { @@ -419,11 +424,11 @@ public static int getY() { } public static int getWidth() { - return displayWidth; + return displayFramebufferWidth; } public static int getHeight() { - return displayHeight; + return displayFramebufferHeight; } public static int getFramebufferWidth() { @@ -438,6 +443,26 @@ public static String getTitle() { return windowTitle; } + public static float getPixelScaleFactor() { + if (!isCreated()) { + return 1.0f; + } + int[] windowWidth = new int[1]; + int[] windowHeight = new int[1]; + int[] framebufferWidth = new int[1]; + int[] framebufferHeight = new int[1]; + float xScale, yScale; + // via technicality we actually have to divide the framebuffer + // size by the window size here, since glfwGetWindowContentScale + // returns a value not equal to 1 even on platforms where the + // framebuffer size and window size always map 1:1 + glfwGetWindowSize(getWindow(), windowWidth, windowHeight); + glfwGetFramebufferSize(getWindow(), framebufferWidth, framebufferHeight); + xScale = (float)framebufferWidth[0]/windowWidth[0]; + yScale = (float)framebufferHeight[0]/windowHeight[0]; + return Math.max(xScale, yScale); + } + public static void setTitle(String title) { if (getWindow() != 0) { org.lwjgl3.glfw.GLFW.glfwSetWindowTitle(Window.handle, title); @@ -528,6 +553,11 @@ public static void setParent(java.awt.Canvas parent) { // Do nothing as set parent not supported } + public static java.awt.Canvas getParent() { + // Since setParent is not supported, getParent is also expected to return null. + return null; + } + public static void releaseContext() { glfwMakeContextCurrent(0); } diff --git a/src/main/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat b/src/main/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat new file mode 100644 index 00000000..dfc04a4a Binary files /dev/null and b/src/main/resources/META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat differ diff --git a/src/main/resources/assets/forge/lang/en_US.lang b/src/main/resources/assets/forge/lang/en_us.lang similarity index 100% rename from src/main/resources/assets/forge/lang/en_US.lang rename to src/main/resources/assets/forge/lang/en_us.lang diff --git a/src/main/resources/assets/forge/lang/es_es.lang b/src/main/resources/assets/forge/lang/es_es.lang new file mode 100644 index 00000000..06682c27 --- /dev/null +++ b/src/main/resources/assets/forge/lang/es_es.lang @@ -0,0 +1,243 @@ +commands.forge.usage=Usa /forge +commands.forge.usage.tracking=Usa /forge track . Las "te" (Tile entities) son válidas. La duración en segundos debe ser <\= 60. +commands.forge.usage.help=Usa /help [comando] para ver información sobre un comando específico. +commands.forge.tps.summary=%s \: Tiempo medio por tick\: %d ms. TPS medio\: %d +commands.forge.tps.usage=Usa /forge tps [dimensión] +commands.forge.gen.usage=Usa /forge gen [dimensión] [intervalo] +commands.forge.gen.dim_fail=Ha ocurrido un error al intentar cargar el mundo de la dimensión %d. Tarea cancelada. +commands.forge.gen.progress=Progreso de generación\: %d/%d +commands.forge.gen.complete=Se han generado %d nuevos chunks (fuera de %d) en la dimensión %d. +commands.forge.gen.start=Iniciando la generación de %d chunks en una espiral alrededor de %d, &d en la dimensión %d. +commands.forge.entity.usage=Usa /forge entity help para ver más información sobre los subcomandos de entidades. +commands.forge.entity.list.usage=Usa /forge entity list [filtro] [dim] para más información sobre entidades compatibles con el filtro opcional. +commands.forge.entity.list.invalid=Filtro no válido, no sirve con ninguna entidad. Usa /forge entity list para ver una lista correcta +commands.forge.entity.list.invalidworld=No se ha podido cargar el mundo de la dimensión %d. Por favor, elige una dimensión válida. +commands.forge.entity.list.none=No se han encontrado entidades. +commands.forge.entity.list.single.header=Entidad\: %s Total\: %d +commands.forge.entity.list.multiple.header=Total\: %d +commands.forge.setdim.usage=Usa /forge setdim [ ] +commands.forge.setdim.invalid.entity=La entidad seleccionada no es válida (%s). +commands.forge.setdim.invalid.dim=La ID de dimensión especificada no es válida (%d). +commands.forge.setdim.invalid.nochange=La entidad elegida (%s) ya se encuentra en la dimensión especificada (%d). +commands.forge.dimensions.usage=Utiliza /forge dimensions +commands.forge.dimensions.list=Dimensiones registradas actualmente por tipo\: + +commands.forge.tracking.te.enabled=Se ha activado el rastreo de "Tile entity" durante %d segundos. +commands.forge.tracking.entity.enabled=Se ha activado el rastreador de entidades durante %d segundos. +commands.forge.tracking.usage=Usa /forge track help para más información sobre los subcomandos de rastreo. +commands.forge.tracking.start.usage=Usa /forge track start +commands.forge.tracking.reset.usage=Usa /forge track reset +commands.forge.tracking.reset=¡Los datos de tiempo se han reiniciado\! +commands.forge.tracking.te.usage=Usa /forge track te + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d]\: %s +commands.forge.tracking.noData=Aún no se han recogido datos. +commands.tree_base.invalid_cmd=¡Subcomando "%s" no válido\! +commands.tree_base.invalid_cmd.list_subcommands=¡El subcomando "%s" no es válido\! Subcomandos disponibles\: %s +commands.tree_base.available_subcommands=Subcomandos disponibles\: %s +forge.texture.preload.warning=Aviso\: La textura %s no se ha precargado. ¡Causará errores de renderizado\! +forge.client.shutdown.internal=Apagando el servidor interno... +forge.update.newversion=Nueva versión de Forge disponible\: %s +forge.update.beta.1=%sADVERTENCIA\: %sForge Beta +forge.update.beta.2=Pueden surgir problemas mayores, verifica antes de reportar. + +forge.configgui.forgeConfigTitle=Ajustes de Minecraft Forge +forge.configgui.ctgy.forgeGeneralConfig.tooltip=Desde aquí puedes editar los ajustes que contiene forge.cfg. +forge.configgui.ctgy.forgeGeneralConfig=Ajustes generales +forge.configgui.ctgy.forgeClientConfig.tooltip=Ajustes en forge.cfg que solo afectan al cliente local. Ajustes gráficos, normalmente. +forge.configgui.ctgy.forgeClientConfig=Ajustes del cliente +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=Desde aquí puedes editar los ajustes que contiene forgeChunkLoading.cfg. +forge.configgui.ctgy.forgeChunkLoadingConfig=Ajustes del cargador de chunks de Forge +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=Desde aquí puedes definir ajustes específicos para cada mod. Lo que establezcas, sustituirá a los valores predeterminados. +forge.configgui.ctgy.forgeChunkLoadingModConfig=Sustitución de mods +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=Permite definir ajustes específicos a cada mod, de forma que ignore los valores preestablecidos. Un valor de cero en cualquiera de los campos prohíbe al mod modificar la carga de chunks. +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ Añadir nueva sustitución de mod +forge.configgui.ctgy.VersionCheckConfig=Ajustes de comprobación de versiones + +forge.configgui.biomeSkyBlendRange.tooltip=Controla el rango de la transición entre los colores del cielo de cada bioma. +forge.configgui.biomeSkyBlendRange=Rango de transición entre cielos de biomas +forge.configgui.clumpingThreshold.tooltip=Controla el número máximo con el que se preferirá un Packet51 antes que un Packet52. +forge.configgui.clumpingThreshold=Límite de compresión de paquetes +forge.configgui.disableVersionCheck.tooltip=Al activar esta opción se deja de comprobar la versión de Forge. Forge consulta un pequeño archivo json en nuestro servidor para obtener información sobre la versión usada. Para más detalles puedes consultar la sección ForgeVersion en nuestro repositorio de Github. +forge.configgui.disableVersionCheck=Desactivar comprobación de la versión de Forge +forge.configgui.dimensionUnloadQueueDelay=Retardo para descargar una dimensión +forge.configgui.dimensionUnloadQueueDelay.tooltip=El tiempo en ticks que el servidor tardará en descargar (dejar de tener cargada) una dimensión. Puede ser útil al cargar y descargar dimensiones; por ejemplo, al lanzar objetos a través de un portal varias veces por segundo. +forge.configgui.enableGlobalConfig=Activar ajustes globales +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=Al activar esta opción se fuerza la detención si más de un líquido intenta ocupar el mismo bloque al mismo tiempo. +forge.configgui.forceDuplicateFluidBlockCrash=Forzar detención en duplicación de bloque líquido +forge.configgui.fullBoundingBoxLadders.tooltip=Al establecer esta opción en "true" se comprobará la colisión de la entidad en una caja para escaleras de mano en lugar del bloque en el que se encuentre. Provoca diferencias notables en su funcionamiento, por lo que por defecto se usa el original. +forge.configgui.fullBoundingBoxLadders=Escaleras de mano con área de colisión al máximo +forge.configgui.removeErroringEntities.tooltip=Al activar esta opción se elimina cualquier entidad que muestre un error en su método de actualización en vez de cerrar el servidor e informar en el registro de cuelgues. AVISO\: PUEDE CAUSAR ERRORES IRREVERSIBLES. USAR CON PRECAUCIÓN, NO NOS HACEMOS RESPONSABLES DE DAÑOS CAUSADOS. +forge.configgui.removeErroringEntities=Eliminar entidades con errores +forge.configgui.removeErroringTileEntities.tooltip=Al activar esta opción se elimina cualquier "Tile entity" que muestre un error en su método de actualización en vez de cerrar el servidor e informar en el registro de errores. AVISO\: PUEDE CAUSAR ERRORES IRREVERSIBLES. USAR CON PRECAUCIÓN, NO NOS HACEMOS RESPONSABLES DE DAÑOS CAUSADOS. +forge.configgui.removeErroringTileEntities=Eliminar "Tile entities" con errores +forge.configgui.sortRecipies.tooltip=Al activar esta opción las recetas de ítems serán ordenadas tras el inicio, mediante el clasificador de Forge. De esta forma se pueden reparar los problemas relacionados con las recetas que usan una misma identificación. SE DEBE REINICIAR MINECRAFT SI HUBO CAMBIOS LOS AJUSTES. +forge.configgui.sortRecipies=Ordenar recetas +forge.configgui.zombieBabyChance.tooltip=Posibilidad de que un zombi (o una subclase) sea un bebé. Permite modificar la mecánica de generación de la criatura. +forge.configgui.zombieBabyChance=Probabilidad de zombi bebé +forge.configgui.zombieBaseSummonChance.tooltip=Posibilidad de generación de zombis. Permite modificar la mecánica de generación de la criatura. +forge.configgui.zombieBaseSummonChance=Probabilidad de invocación de zombis +forge.configgui.stencilbits=Búfer Stencil de OpenGL +forge.configgui.replaceBuckets=Usar el modelo para cubos de Forge +forge.configgui.forgeCloudsEnabled=Usar el renderizado de nubes de Forge +forge.configgui.forgeCloudsEnabled.tooltip=Permite cargar la geometría de las nubes con tu GPU para agilizar el renderizado. +forge.configgui.forgeLightPipelineEnabled=Iluminación pipeline de Forge +forge.configgui.disableStairSlabCulling=Corregir error de escaleras/losas. +forge.configgui.zoomInMissingModelTextInGui=Ampliar zoom en los textos de modelo ausentes en la interfaz +forge.configgui.disableStairSlabCulling.tooltip=Activa esta opción si puedes ver a través de los bloques ubicados junto a escaleras o a losas. +forge.configgui.alwaysSetupTerrainOffThread=Forzar renderizado de chunks +forge.configgui.alwaysSetupTerrainOffThread.tooltip=Permite que Forge controle el comportamiento de la carga de chunks mediante el hilo de ejecución. De esta forma el rendimiento del juego aumentaría significativamente, no obstante, podría ralentizar el renderizado. Esta función no está recomendada para equipos con bajo nivel de procesamiento. +forge.configgui.allowEmissiveItems=Renderizar emisividad en objetos +forge.configgui.allowEmissiveItems.tooltip=Permite detectar las partes emisivas de un bloque y renderizarlo apropiadamente. De esta forma, los objetos que normalmente emiten luz, también lo harán cuando se encuentren en la mano de un jugador. Eso sí, ten en cuenta que puede afectar ligeramente al rendimiento. +forge.configgui.selectiveResourceReloadEnabled=Activar carga de recursos selectiva +forge.configgui.selectiveResourceReloadEnabled.tooltip=Al activarse permite recargar ciertas funciones con mayor velocidad, como por ejemplo cambiar el idioma del juego. + +forge.configgui.modID.tooltip=La ID del mod que quieres definir para anular sus ajustes. +forge.configgui.modID=ID del mod +forge.configgui.asyncChunkLoading=Carga de chunks desincronizada +forge.configgui.asyncChunkLoading.tooltip=Cargar los chunks desincrodizadamente reduce la carga del servidor. Al desactivarse puede que se solucionen problemas relacionados con la carga de chunks. +forge.configgui.dormantChunkCacheSize.tooltip=Los chunks que no se hayan cargado pueden conservarse en caché latente para cargarlos más rápido la próxima vez. Especifica el tamaño (en chunks) de la memoria caché aquí. +forge.configgui.dormantChunkCacheSize=Tamaño de caché latente de chunks +forge.configgui.enableModOverrides.tooltip=Actívalo para permitir personalizar los ajustes de cada mod. +forge.configgui.enableModOverrides=Activar control de mods +forge.configgui.maximumChunksPerTicket.tooltip=Este es el número máximo de chunks que un solo ticket puede forzar. +forge.configgui.maximumChunksPerTicket=Límite de chunks por ticket +forge.configgui.maximumTicketCount.tooltip=Este es el número de solicitudes para cargar chunks que un mod puede hacer. +forge.configgui.maximumTicketCount=Límite de ticket por mod +forge.configgui.playerTicketCount.tooltip=El número de tickets que un jugador se puede asignar en vez de un mod. Esto se aplica de forma general a todos los mods, pero depende de ellos que se cumpla. +forge.configgui.playerTicketCount=Límite de ticket por jugador +forge.configgui.logCascadingWorldGeneration=Informe al generar mundos con Cascading +forge.configgui.logCascadingWorldGeneration.tooltip=Realiza un registro sobre los errores que aparezcan al generar un mundo con Cascading. +forge.configgui.fixVanillaCascading=Corregir efecto "Vanilla cascading" +forge.configgui.fixVanillaCascading.tooltip=Se corrigen varios errores relacionados con la sobrecarga de chunks en la generación de mundos vanilla. Con esta opción REEMPLAZA al generador de mundo original. Por favor, si encuentras diferencias entre ambos, no las reportes. + +fml.config.sample.basicDouble.tooltip=Una propiedad de dobles sin límites definidos. +fml.config.sample.basicDouble=Doble sin límites +fml.config.sample.basicInteger.tooltip=Una propiedad de números enteros sin límites definidos. +fml.config.sample.basicInteger=Número entero sin límites +fml.config.sample.basicString.tooltip=Una propiedad básica de las cadenas (o Strings) es que puedes escribir de todo en la caja de texto. +fml.config.sample.basicString=Cadena básica +fml.config.sample.booleanList.tooltip=Una lista booleana sin longitud máxima, se puede aumentar o reducir. +fml.config.sample.booleanList=Lista booleana básica +fml.config.sample.booleanListFixed.tooltip=Un lista booleana con una longitud fija de 8. +fml.config.sample.booleanListFixed=Lista booleana de longitud fija +fml.config.sample.booleanListMax.tooltip=Una lista booleana con una longitud fija de 10. +fml.config.sample.booleanListMax=Lista booleana de longitud fija +fml.config.sample.boundedDouble.tooltip=Una propiedad de dobles con límites definidos. +fml.config.sample.boundedDouble=Doble limitado +fml.config.sample.boundedInteger.tooltip=Una propiedad de números enteros con límites definidos. +fml.config.sample.boundedInteger=Número entero limitado +fml.config.sample.chatColorPicker.tooltip=Una propiedad especial que te permite seleccionar un código de color la fuente. +fml.config.sample.chatColorPicker=Selector de color del chat +fml.config.sample.ctgy.lists.tooltip=Proporciona una variedad de controles matriz para trastear. +fml.config.sample.ctgy.lists=Controles de matriz +fml.config.sample.ctgy.numbers.tooltip=Proporciona un listado de los controles numéricos para trastear. +fml.config.sample.ctgy.numbers=Controles numéricos +fml.config.sample.ctgy.strings.tooltip=Proporciona un listado de los distintos tipos de controles de cadenas para trastear. +fml.config.sample.ctgy.strings=Controles de cadenas +fml.config.sample.cycleString.tooltip=Una propiedad de las Strings (o cadenas) que muestra una lista de valores válidos modificables. +fml.config.sample.cycleString=Ciclo de valor de cadena +fml.config.sample.doubleList.tooltip=Una lista de dobles sin longitud máxima, se puede aumentar o reducir. +fml.config.sample.doubleList=Lista básica de dobles +fml.config.sample.doubleListBounded.tooltip=Una lista de dobles con límite de valores específicos. +fml.config.sample.doubleListBounded=Lista de dobles con límite de valores +fml.config.sample.doubleListFixed.tooltip=Una lista de dobles con una longitud fija de 10. +fml.config.sample.doubleListFixed=Lista con una longitud fija de dobles +fml.config.sample.doubleListMax.tooltip=Una lista de dobles con una longitud máxima de 15. +fml.config.sample.doubleListMax=Lista de dobles de longitud máxima +fml.config.sample.imABoolean.tooltip=Sí, eso es prácticamente todo... soy un control booleano. +fml.config.sample.imABoolean=Soy un booleano +fml.config.sample.imADouble.tooltip=Hay dos como yo. O quizás estoy trabajando para la CIA y para la KGB. No estoy seguro. +fml.config.sample.imADouble=Soy un doble +fml.config.sample.imAString.tooltip=¡Ahhh\! Ya entendí, flaco. Vos querés que anunciemos tu jabón en polvo, ¿no? ¡A laburar\!\n<*Tío, ¿que jabones ni que leches? ¡qué son cadenas\!*> \nCadenas, jabones, ¿cuál es la diferencia? Acá vendemos de todo. \n<*Bien. Bueno, pues resulta que tengo cadenas pa' dar y regalar, 122.000 millas para ser exacto. Las heredé y he estado pensando en anunciarlas para venderlas...*> \nChe... ¡esto va a ser un éxito\! ¿Quién no quiere cadenas? ¡Va a ser lo más vendido de la Argentina y de España\! \n<*Sólo hay un problema...*> \n¡¡Shhhhh\!\! Ya tenemos el eslogan de la campaña\: ¡¡CADENAS, CADENITAS\!\! ¡¡PARA EL NIÑO Y LA ABUELITA\!\! +fml.config.sample.imAString=Soy una cadena +fml.config.sample.imAnInteger.tooltip=¿He dicho ya que soy un número entero? Vaya... ¡parece que sí\! +fml.config.sample.imAnInteger=Soy un número entero +fml.config.sample.integerList.tooltip=Una lista de números enteros sin longitud máxima, se puede aumentar o reducir. +fml.config.sample.integerList=Lista básica de números enteros +fml.config.sample.integerListBounded.tooltip=Una lista de números enteros con límite de valores específicos. +fml.config.sample.integerListBounded=Lista de números enteros con valores limitados +fml.config.sample.integerListFixed.tooltip=Una lista de números enteros con una longitud fija de 10. +fml.config.sample.integerListFixed=Lista de números enteros de longitud fija +fml.config.sample.integerListMax.tooltip=Una lista de números enteros con una longitud máxima de 15. +fml.config.sample.integerListMax=Lista de números enteros de longitud fija +fml.config.sample.modIDSelector.tooltip=Una propiedad especial que te permite seleccionar la ID de un mod instalado. Existen decenas de posibilidades que podrías tener al alcance de tu mano utilizando un simple y pequeño código personalizado\: seleccionar biomas, entidades, objetos, etc. +fml.config.sample.modIDSelector=Selector de IDs de mods +fml.config.sample.patternString.tooltip=Una propiedad de cadenas que es validada utilizando un objeto patrón. +fml.config.sample.patternString=Patrón de cadenas validado +fml.config.sample.sliderDouble.tooltip=Una propiedad de dobles con límites definidos usando un control deslizante. +fml.config.sample.sliderDouble=Deslizante de dobles +fml.config.sample.sliderInteger.tooltip=Una propiedad de números enteros con límites definidos usando un control deslizante. +fml.config.sample.sliderInteger=Deslizante de núm. entero +fml.config.sample.stringList.tooltip=Una lista básica de cadenas no validadas. +fml.config.sample.stringList=Lista de cadena básica +fml.config.sample.stringListFixed.tooltip=Una lista de cadenas con una longitud fija de 7. +fml.config.sample.stringListFixed=Lista de cadenas con longitud fija +fml.config.sample.stringListMax.tooltip=Una lista de cadenas que tiene una longitud máxima de 15. +fml.config.sample.stringListMax=Lista de cadenas de longitud máxima +fml.config.sample.stringListPattern.tooltip=Una lista de cadenas que validan cada valor utilizando un objeto patrón. +fml.config.sample.stringListPattern=Lista de cadenas validadas con un patrón +fml.config.sample.stringListCustom=Lista de entradas personalizadas +fml.config.sample.title=Aquí puedes trastear con el comportamiento de los ajustes. Los cambios no se guardarán. + +fml.configgui.applyGlobally=Aplicar globalmente +fml.configgui.confirmRestartMessage=Lo entiendo +fml.configgui.gameRestartRequired=Uno o más ajustes modificados requieren que Minecraft sea reiniciado para aplicar los cambios. +fml.configgui.gameRestartTitle=Necesitas reiniciar Minecraft +fml.configgui.sampletext=Texto de ejemplo +fml.configgui.tooltip.addNewEntryAbove=Añadir una nueva entrada encima +fml.configgui.tooltip.applyGlobally=Aplicar, deshacer cambios o reiniciar los ajustes globalmente. +fml.configgui.tooltip.removeEntry=Eliminar entrada +fml.configgui.tooltip.resetAll=Se reinicia todo a los valores predeterminados. Si pulsas la casilla "Aplicar globalmente", los valores de las pantallas secundarias también se reiniciarán. +fml.configgui.tooltip.resetToDefault=Por defecto +fml.configgui.tooltip.undoAll=Se deshacen todos los cambios. Si pulsas la casilla "Aplicar globalmente", los cambios realizados a las pantallas secundarias también se desharán. +fml.configgui.tooltip.undoChanges=Deshacer cambios +fml.configgui.tooltip.default=[por defecto\: %s] +fml.configgui.tooltip.defaultNumeric=[rango\: %s ~ %s, por defecto\: %s] + +forge.controlsgui.shift=MAYÚS + %s +forge.controlsgui.control=CTRL + %s +forge.controlsgui.control.mac=CMD + %s +forge.controlsgui.alt=ALT + %s + +fml.menu.mods=Mods +fml.menu.mods.normal=Normal +fml.menu.mods.search=Buscar\: +fml.menu.modoptions=Opciones de mods... + +item.forge.bucketFilled.name=Cubo de %s + +fml.messages.mod.missing.dependencies=%s depende de mods que no están instalados. +fml.messages.mod.missing.dependencies.fix=Instala los siguientes mods o elimina %s. +fml.messages.mod.missing.dependencies.compatibility=Se requiere la dependencia correcta para el mod %s\: +fml.messages.mod.missing.dependencies.missing=ausente +fml.messages.mod.missing.dependencies.compatible.with=Solo compatible con %s +fml.messages.mod.missing.dependencies.requires=Requiere %s +fml.messages.mod.missing.dependencies.you.have=tienes %s +fml.messages.mod.missing.dependencies.see.log=Mira "%s" para ver información técnica. +fml.messages.mod.missing.dependencies.multiple=Algunos mods dependen de otros mods, pero no están instalados. +fml.messages.mod.missing.dependencies.multiple.issues=Se requieren las dependencias de los siguientes mods\: +fml.messages.mod.missing.multiple=Se han detectado %s errores al cargar Minecraft +fml.messages.mod.wrongminecraft=Los siguientes mods no son compatibles con la versión %s de Minecraft +fml.messages.mod.wrongminecraft.requirement=%s (%s) requiere la versión %s de Minecraft +fml.messages.mod.wrongminecraft.fix=Busca una actualización para %s o elimínalo +fml.messages.mod.wrongminecraft.fix.multiple=Busca una actualización para los siguientes mods o elimínalos +fml.messages.version.restriction.any=cualquiera +fml.messages.version.restriction.lower.inclusive=%s o superior +fml.messages.version.restriction.lower.exclusive=superior a %s +fml.messages.version.restriction.upper.inclusive=%s o inferior +fml.messages.version.restriction.upper.exclusive=inferior a %s +fml.messages.version.restriction.bounded=entre %s y %s +fml.messages.version.restriction.bounded.inclusive=entre %s y %s (incluyéndose) +fml.messages.version.restriction.bounded.exclusive=entre %s y %s (no incluyéndose) +fml.messages.version.restriction.bounded.lowerexclusive=sobre %s, y %s o menos +fml.messages.version.restriction.bounded.upperexclusive=%s o más, y por debajo de %s + +fml.button.continue=Continuar +fml.button.open.mods.folder=Carpeta de mods +fml.button.open.file=Abrir %s + +forge.container.enchant.limitedEnchantability=Habilidad de encantar limitada +attribute.name.generic.reachDistance=Distancia de alcance +attribute.name.forge.swimSpeed=Velocidad de nado + diff --git a/src/main/resources/assets/forge/lang/fr_fr.lang b/src/main/resources/assets/forge/lang/fr_fr.lang new file mode 100644 index 00000000..a2391ea1 --- /dev/null +++ b/src/main/resources/assets/forge/lang/fr_fr.lang @@ -0,0 +1,243 @@ +commands.forge.usage=Utilisez /forge +commands.forge.usage.tracking=Utilisez /forge track . Les types valides sont « te » ("tile entities" ou entités de blocs). La durée en secondes doit être <\= 60. +commands.forge.usage.help=Utilisez help [commande] pour voir les usages d'une commande spécifique. +commands.forge.tps.summary=%s \: moyenne de temps de tick \: %d ms. Moyenne de TPS \: %d +commands.forge.tps.usage=Utilisez /forge tps [dimension] +commands.forge.gen.usage=Utilisez /forge gen [dimension] [intervalle] +commands.forge.gen.dim_fail=Échec du chargement du monde pour la dimension %d. Tâche interrompue. +commands.forge.gen.progress=Progression de la génération \: %d/%d +commands.forge.gen.complete=La génération de %d nouveaux tronçons (sur %d) est terminée pour la dimension %d. +commands.forge.gen.start=La génération de %d tronçons en spirale autour de %d, %d dans la dimension %d a commencé. +commands.forge.entity.usage=Utilisez /forge entity help pour obtenir plus d'informations sur les sous-commandes d'entités. +commands.forge.entity.list.usage=Utilisez /forge entity list [filtre] [dim] pour obtenir des informations d'entités qui correspondent au filtre facultatif. +commands.forge.entity.list.invalid=Le filtre n'est pas valide et ne correspond à aucune entité. Utilisez /forge entity list pour obtenir une liste appropriée +commands.forge.entity.list.invalidworld=Impossible de charger le monde pour la dimension %d. Veuillez sélectionner une dimension valide. +commands.forge.entity.list.none=Aucune entité n'a été trouvée. +commands.forge.entity.list.single.header=Entité \: %s Total \: %d +commands.forge.entity.list.multiple.header=Total \: %d +commands.forge.setdim.usage=Utilisez /forge setdim [ ] +commands.forge.setdim.invalid.entity=L'entité sélectionnée (%s) n'est pas valide. +commands.forge.setdim.invalid.dim=L’ID de la dimension spécifiée (%d) n’est pas valide. +commands.forge.setdim.invalid.nochange=L’entité sélectionnée (%s) est déjà dans la dimension spécifiée (%d). +commands.forge.dimensions.usage=Utilisez /forge dimensions +commands.forge.dimensions.list=Dimensions actuellement enregistrées par type \: + +commands.forge.tracking.te.enabled=Suivi d'entités de blocs activé pendant %d seconde(s). +commands.forge.tracking.entity.enabled=Suivi d'entités activé pendant %d seconde(s). +commands.forge.tracking.usage=Utilisez /forge track help pour obtenir plus d'informations sur les sous-commandes de suivi. +commands.forge.tracking.start.usage=Utilisez /forge track start +commands.forge.tracking.reset.usage=Utilisez /forge track reset +commands.forge.tracking.reset=Les données de minutage ont été effacées \! +commands.forge.tracking.te.usage=Utilisez /forge track te + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d] \: %s +commands.forge.tracking.noData=Aucune donnée n'a encore été enregistrée. +commands.tree_base.invalid_cmd=Sous-commande "%s" non valide \! +commands.tree_base.invalid_cmd.list_subcommands=Sous-commande "%s" non valide \! Sous-commandes disponibles \: %s +commands.tree_base.available_subcommands=Sous-commandes disponibles \: %s +forge.texture.preload.warning=Attention \: La texture %s n'est pas préchargée, cela causera des bugs de rendu \! +forge.client.shutdown.internal=Arrêt du serveur interne... +forge.update.newversion=Nouvelle version de Forge disponible \: %s +forge.update.beta.1=%sAVERTISSEMENT \: %sForge Beta +forge.update.beta.2=Des problèmes majeurs peuvent survenir, vérifiez avant de les signaler. + +forge.configgui.forgeConfigTitle=Configuration de Minecraft Forge +forge.configgui.ctgy.forgeGeneralConfig.tooltip=C'est ici que vous pouvez modifier les paramètres contenus dans le fichier forge.cfg. +forge.configgui.ctgy.forgeGeneralConfig=Paramètres généraux +forge.configgui.ctgy.forgeClientConfig.tooltip=Les paramètres dans le fichier "forge.cfg" qui concernent uniquement le client local. La plupart sont des paramètres graphiques. +forge.configgui.ctgy.forgeClientConfig=Paramètres du client +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=C'est ici que vous pouvez modifier les paramètres contenus dans le fichier forgeChunkLoading.cfg. +forge.configgui.ctgy.forgeChunkLoadingConfig=Paramètres par défaut de Forge Chunk Loader +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=C'est ici que vous pouvez définir les paramètres de remplacement spécifiques aux mods qui seront utilisés au lieu de ceux par défaut. +forge.configgui.ctgy.forgeChunkLoadingModConfig=Remplacements de mods +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=Vous permet de définir les paramètres spécifiques aux mods qui remplaceront ceux par défaut. Une valeur de zéro dans chaque entrée désactive efficacement n'importe quelles capacités de chargement de tronçons pour ce mod. +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ Ajout d'un nouveau remplacement de mod +forge.configgui.ctgy.VersionCheckConfig=Paramètres de vérification de version + +forge.configgui.biomeSkyBlendRange.tooltip=Contrôle l'étendue de fondu de couleur du ciel pour les cieux colorés dans les biomes. +forge.configgui.biomeSkyBlendRange=Étendue de fondu du ciel des biomes +forge.configgui.clumpingThreshold.tooltip=Contrôle le seuil du nombre auquel Packet51 est préféré à Packet52. +forge.configgui.clumpingThreshold=Seuil d'amas de paquets +forge.configgui.disableVersionCheck.tooltip=Mettez ceci à "true" pour désactiver les mécanismes de vérification de la version de Forge. Forge interroge un petit fichier JSON sur notre serveur pour les informations de version. Pour plus de détails, consultez la classe ForgeVersion dans notre GitHub. +forge.configgui.disableVersionCheck=Désactiver la vérification de version de Forge +forge.configgui.dimensionUnloadQueueDelay=Délai pour décharger une dimension +forge.configgui.dimensionUnloadQueueDelay.tooltip=Le serveur attendra le temps indiqué en ticks jusqu'à avoir déchargé la dimension. Cela peut être utile lorsque des dimensions se chargent ou se déchargent rapidement, comme lorsqu'on jette des objets à travers un portail du Nether plusieurs fois par seconde. +forge.configgui.enableGlobalConfig=Activer la configuration globale +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=Mettez ceci à "true" pour forcer un plantage si plus d'un bloc tente de se relier au même fluide. +forge.configgui.forceDuplicateFluidBlockCrash=Forcer le plantage de duplication de bloc de fluide +forge.configgui.fullBoundingBoxLadders.tooltip=Mettez ceci à "true" pour vérifier la boîte de collision de l'entité entière pour les échelles au lieu du simple bloc où elles sont situées. Provoque des différences notables dans les mécanismes ; le comportement par défaut est donc celui en vanilla. +forge.configgui.fullBoundingBoxLadders=Échelles à boîte de collision complète +forge.configgui.removeErroringEntities.tooltip=Mettez ceci à "true" pour retirer n'importe quelle entité qui génère un message d'erreur dans sa méthode de mise à jour au lieu de fermer le serveur et de créer un log de plantage. ATTENTION \: CELA PEUT TOUT CASSER. UTILISEZ AVEC PRÉCAUTION. NOUS NE SOMMES PAS RESPONSABLES DES DÉGÂTS ENGENDRÉS. +forge.configgui.removeErroringEntities=Retirer les entités avec des erreurs +forge.configgui.removeErroringTileEntities.tooltip=Mettez ceci à "true" pour retirer n'importe quelle entité de bloc qui génère un message d'erreur dans sa méthode de mise à jour au lieu de fermer le serveur et de créer un log de plantage. ATTENTION \: CELA PEUT TOUT CASSER. UTILISEZ AVEC PRÉCAUTION. NOUS NE SOMMES PAS RESPONSABLES DES DÉGÂTS ENGENDRÉS. +forge.configgui.removeErroringTileEntities=Retirer les entités de blocs avec des erreurs +forge.configgui.sortRecipies.tooltip=Mettez ceci à "true" pour activer le tri de post-initialisation des recettes de fabrication qui utilisent la trieuse de Forge. Cela peut causer de la désynchronisation sur les recettes en conflits. VOUS DEVEZ REDÉMARRER MINECRAFT SI L'OPTION A ÉTÉ CHANGÉE DEPUIS L'INTERFACE DE CONFIGURATION. +forge.configgui.sortRecipies=Trier les recettes +forge.configgui.zombieBabyChance.tooltip=Chance qu'un zombie (ou une sous-classe) soit un bébé. Permet de changer le mécanisme d'apparition des zombies. +forge.configgui.zombieBabyChance=Chance d'apparition d'un bébé zombie +forge.configgui.zombieBaseSummonChance.tooltip=Chance d'apparition des zombies. Permet de changer le mécanisme d'apparition de renforts de zombies. +forge.configgui.zombieBaseSummonChance=Chance d'apparition d'un zombie +forge.configgui.stencilbits=Activer les bits de stencil d'OpenGL +forge.configgui.replaceBuckets=Utilisez le modèle du seau de Forge +forge.configgui.forgeCloudsEnabled=Utiliser le moteur de rendu des nuages de Forge +forge.configgui.forgeCloudsEnabled.tooltip=Active le téléchargement de la géométrie des nuages vers le processeur graphique pour un rendu plus rapide. +forge.configgui.forgeLightPipelineEnabled=Conduit de lumière de Forge activé +forge.configgui.disableStairSlabCulling=Corriger l'erreur des escaliers et des dalles. +forge.configgui.zoomInMissingModelTextInGui=Agrandir le texte du modèle manquant dans l'interface +forge.configgui.disableStairSlabCulling.tooltip=Activez cette option si vous pouvez voir à travers les blocs en touchant des escaliers ou des dalles avec votre pack de ressources. +forge.configgui.alwaysSetupTerrainOffThread=Forcer le rendu des tronçons dans le fil d'exécution +forge.configgui.alwaysSetupTerrainOffThread.tooltip=Permet à Forge de mettre en file d'attente toutes les mises à jour de tronçons dans le fil d'exécution. Cela peut considérablement augmenter les FPS mais peut aussi causer d'étranges latences dues au rendu. Non recommandé pour les ordinateurs dont le processeur possède un nombre de cœurs insuffisant. +forge.configgui.allowEmissiveItems=Permettre le rendu d'éléments émissifs +forge.configgui.allowEmissiveItems.tooltip=Permet au rendu des éléments d'identifier les blocs et objets qui émettent de la lumière et de les afficher correctement. Cela permet aux blocs qui brillent d'avoir la même apparence sous la forme d'objet. Cela occasionne cependant une très légère baisse de performance. +forge.configgui.selectiveResourceReloadEnabled=Activer le chargement sélectif des ressources +forge.configgui.selectiveResourceReloadEnabled.tooltip=Lorsqu'elle est activée, cette option permet d'exécuter plus rapidement certaines tâches de rechargement telles que le changement de langue. + +forge.configgui.modID.tooltip=L'ID du mod dont vous voulez définir les paramètres de remplacement. +forge.configgui.modID=ID du mod +forge.configgui.asyncChunkLoading=Chargement asynchronisé des tronçons +forge.configgui.asyncChunkLoading.tooltip=Charge les tronçons de manière asynchrone pour les joueurs, réduisant le chargement du serveur. Elle peut être désactivée pour aider à résoudre les problèmes de chargement de tronçons. +forge.configgui.dormantChunkCacheSize.tooltip=Les tronçons déchargés peuvent d'abord être gardés dans une cache mémoire dormante pour des temps de chargement plus rapides. Spécifiez la taille (en tronçons) de cette cache ici. +forge.configgui.dormantChunkCacheSize=Taille de la mémoire cache dormante des tronçons +forge.configgui.enableModOverrides.tooltip=Activez ce paramètre pour permettre aux paramètres personnalisés par mod d'être définis. +forge.configgui.enableModOverrides=Activer les remplacements de mods +forge.configgui.maximumChunksPerTicket.tooltip=C'est le nombre maximal de tronçons qu'un seul billet peut forcer. +forge.configgui.maximumChunksPerTicket=Limite de tronçons par billet +forge.configgui.maximumTicketCount.tooltip=Ceci est le nombre de requêtes de chargement de tronçons qu'un mod est permis de faire. +forge.configgui.maximumTicketCount=Limite de billets par mod +forge.configgui.playerTicketCount.tooltip=Ceci est le nombre de billets qui peuvent être assignés à un joueur au lieu d'un mod. Ceci est partagé parmi tous les mods et c'est aux mods de l'utiliser. +forge.configgui.playerTicketCount=Limite de billets par joueur +forge.configgui.logCascadingWorldGeneration=Enregistrer la génération du monde en cascade +forge.configgui.logCascadingWorldGeneration.tooltip=Crée un registre des erreurs de chargement de tronçons en cascade pendant la génération du terrain. +forge.configgui.fixVanillaCascading=Corriger "Vanilla Cascading" +forge.configgui.fixVanillaCascading.tooltip=Corrige divers bugs qui provoquent le chargement de tronçons supplémentaires au cours de la génération de mondes en vanilla. Ceci VA remplacer la génération des mondes en vanilla. Ne signalez pas les différences si cette option est activée. + +fml.config.sample.basicDouble.tooltip=Une propriété de doubles sans limites définies. +fml.config.sample.basicDouble=Double non limité +fml.config.sample.basicInteger.tooltip=Une propriété d'entiers sans limites définies. +fml.config.sample.basicInteger=Nombre entier non limité +fml.config.sample.basicString.tooltip=Une propriété de chaîne de base. L'utilisateur peut entrer n'importe quoi dans cette zone de texte. +fml.config.sample.basicString=Chaîne de base +fml.config.sample.booleanList.tooltip=Une liste booléenne sans longueur maximale et qui peut être allongée ou raccourcie. +fml.config.sample.booleanList=Liste booléenne de base +fml.config.sample.booleanListFixed.tooltip=Une liste booléenne qui a une longueur fixe de 8. +fml.config.sample.booleanListFixed=Liste booléenne de longueur fixe +fml.config.sample.booleanListMax.tooltip=Une liste booléenne qui a une longueur maximale de 10. +fml.config.sample.booleanListMax=Liste booléenne de longueur maximale +fml.config.sample.boundedDouble.tooltip=Une propriété de doubles avec des limites définies. +fml.config.sample.boundedDouble=Double délimité +fml.config.sample.boundedInteger.tooltip=Une propriété d'entiers avec des limites définies. +fml.config.sample.boundedInteger=Nombre entier délimité +fml.config.sample.chatColorPicker.tooltip=Une propriété spéciale qui permet à l'utilisateur de sélectionner un code couleur de police. +fml.config.sample.chatColorPicker=Sélecteur de couleur du tchat +fml.config.sample.ctgy.lists.tooltip=Fournit une variété de contrôles de propriétés de tableau avec lesquels jouer. +fml.config.sample.ctgy.lists=Exemple de contrôles de tableau de propriétés +fml.config.sample.ctgy.numbers.tooltip=Fournit une liste des commandes numériques avec lesquels jouer. +fml.config.sample.ctgy.numbers=Exemples de commandes numériques +fml.config.sample.ctgy.strings.tooltip=Fournit une liste des différents contrôles de type chaîne avec lesquels jouer. +fml.config.sample.ctgy.strings=Exemple de contrôles de chaînes +fml.config.sample.cycleString.tooltip=Une propriété de type chaîne contenant une liste définie de valeurs valides qui peuvent être parcourues. +fml.config.sample.cycleString=Chaîne de valeur du cycle +fml.config.sample.doubleList.tooltip=Une liste de doubles sans longueur maximale et qui peut être allongée ou raccourcie. +fml.config.sample.doubleList=Liste de doubles de base +fml.config.sample.doubleListBounded.tooltip=Une liste de doubles avec des limites de valeurs spécifiques. +fml.config.sample.doubleListBounded=Liste de doubles avec limites de valeurs +fml.config.sample.doubleListFixed.tooltip=Une liste de doubles qui a une longueur fixe de 10. +fml.config.sample.doubleListFixed=Liste de doubles de longueur fixe +fml.config.sample.doubleListMax.tooltip=Une liste de doubles qui a une longueur maximale de 15. +fml.config.sample.doubleListMax=Liste de doubles de longueur maximale +fml.config.sample.imABoolean.tooltip=Ouais, c'est à peu près tout... Je suis un contrôle booléen. +fml.config.sample.imABoolean=Je suis un booléen +fml.config.sample.imADouble.tooltip=Il y en a deux de moi. Ou peut-être que je travaille pour la CIA et le KGB. Pas sûr. +fml.config.sample.imADouble=Je suis un double +fml.config.sample.imAString.tooltip=Aaah. Donc, si j'ai bien compris, vous vous voulez qu'on fasse de la publicité pour votre lessive en poudre ? \n<*C'est une chaîne.*> \nChaîne, lessive en poudre, quelle différence ? On peut vendre n'importe quoi.\n<*Tant mieux. Eh bien en fait, j'ai en possession cette grande quantité de chaîne, 196 000 kilomètres pour être exact, dont j'ai hérité, et je me suis dit que si je faisais de la publicité...*> \nMais bien sûr \! Une campagne nationale. Des trucs utiles, des chaînes, il y a pas de problème. \n<*Ah, mais il y a un hic, voyez-vous. En raison d'une mauvaise planification, les 196 000 kilomètres de chaîne sont en réalité découpés en 15250 pièces mesurant chacune 8 centimètres. Ce n'est donc pas très utile.*> \nEt bah voilà notre argument de vente \! CHAÎNETTES INDIVIDUELLES PAS CHÈRES \! DISPONIBLES PARTOUT DANS LE MONDE \! PRÉDÉCOUPÉES, FACILES À MANIPULER, ACHETEZ VOS CHAÎNETTES - LA TAILLE PARFAITE \! +fml.config.sample.imAString=Je suis une chaîne +fml.config.sample.imAnInteger.tooltip=Ai-je dit que je suis un nombre entier ? Oh, je vois. +fml.config.sample.imAnInteger=Je suis un nombre entier +fml.config.sample.integerList.tooltip=Une liste d'entiers sans longueur maximale et qui peut être allongée ou raccourcie. +fml.config.sample.integerList=Liste de nombres entiers de base +fml.config.sample.integerListBounded.tooltip=Une liste d'entiers avec des limites de valeurs spécifiques. +fml.config.sample.integerListBounded=Liste d'entiers avec limites de valeurs +fml.config.sample.integerListFixed.tooltip=Une liste d'entiers qui a une longueur fixe de 10. +fml.config.sample.integerListFixed=Liste d'entiers de longueur fixe +fml.config.sample.integerListMax.tooltip=Une liste d'entiers qui a une longueur maximale de 15. +fml.config.sample.integerListMax=Liste d'entiers de longueur maximale +fml.config.sample.modIDSelector.tooltip=Une propriété spéciale qui permet à l'utilisateur de sélectionner un ID de mod à partir d'une liste de tous les mods installés. Il existe de nombreuses possibilités d'utilisation avec un petit code personnalisé \: sélection de biomes, d'entités, d'objets, de blocs, etc. +fml.config.sample.modIDSelector=Sélecteur d'ID de mods +fml.config.sample.patternString.tooltip=Une propriété de chaînes qui est validée à l'aide d'un objet modèle. +fml.config.sample.patternString=Chaînes validées avec modèle +fml.config.sample.sliderDouble.tooltip=Une propriété de doubles avec des limites définies utilisant un curseur de contrôle. +fml.config.sample.sliderDouble=Curseur de doubles +fml.config.sample.sliderInteger.tooltip=Une propriété d'entiers avec des limites définies utilisant un curseur de contrôle. +fml.config.sample.sliderInteger=Curseur de nombres entiers +fml.config.sample.stringList.tooltip=Une liste de chaînes de base sans validation. +fml.config.sample.stringList=Liste de chaînes de base +fml.config.sample.stringListFixed.tooltip=Une liste de chaînes qui a une longueur fixe de 7. +fml.config.sample.stringListFixed=Liste de chaînes de longueur fixe +fml.config.sample.stringListMax.tooltip=Une liste de chaînes qui a une longueur maximale de 15. +fml.config.sample.stringListMax=Liste de chaînes de longueur maximale +fml.config.sample.stringListPattern.tooltip=Une liste de chaînes qui valide chaque valeur à l'aide d'un objet modèle. +fml.config.sample.stringListPattern=Liste de chaînes validées avec modèle +fml.config.sample.stringListCustom=Liste des entrées personnalisées +fml.config.sample.title=Vous pouvez jouer avec le comportement des paramètres. Les modifications ne sont pas sauvegardées. + +fml.configgui.applyGlobally=Appliquer globalement +fml.configgui.confirmRestartMessage=Je comprends +fml.configgui.gameRestartRequired=Un ou plusieurs paramètres modifiés requiert que Minecraft soit redémarré avant de prendre effet. +fml.configgui.gameRestartTitle=Redémarrage de Minecraft requis +fml.configgui.sampletext=Exemple de texte +fml.configgui.tooltip.addNewEntryAbove=Ajoutez la nouvelle entrée ci-dessus +fml.configgui.tooltip.applyGlobally=Appliquer "Défaire" ou "Par défaut" globalement. +fml.configgui.tooltip.removeEntry=Supprimer l'entrée +fml.configgui.tooltip.resetAll=Tout réinitialiser par défaut. Si la case "Appliquer globalement" est cochée, les valeurs des écrans secondaires seront également réinitialisées. +fml.configgui.tooltip.resetToDefault=Par défaut +fml.configgui.tooltip.undoAll=Annuler toutes les modifications. Si la case "Appliquer globalement" est cochée, les modifications apportées aux écrans secondaires seront également annulées. +fml.configgui.tooltip.undoChanges=Défaire +fml.configgui.tooltip.default=[par défaut \: %s] +fml.configgui.tooltip.defaultNumeric=[portée \: %s ~ %s, par défaut \: %s] + +forge.controlsgui.shift=SHIFT + %s +forge.controlsgui.control=CTRL + %s +forge.controlsgui.control.mac=CMD + %s +forge.controlsgui.alt=ALT + %s + +fml.menu.mods=Mods +fml.menu.mods.normal=Normal +fml.menu.mods.search=Rechercher \: +fml.menu.modoptions=Options de mods... + +item.forge.bucketFilled.name=Seau de %s + +fml.messages.mod.missing.dependencies=%s requiert l'installation de mods dont il dépend. +fml.messages.mod.missing.dependencies.fix=Incluez les mods suivants ou supprimez %s. +fml.messages.mod.missing.dependencies.compatibility=Vous devez inclure les bonnes dépendances pour %s \: +fml.messages.mod.missing.dependencies.missing=manquante(s) +fml.messages.mod.missing.dependencies.compatible.with=Uniquement compatible avec %s +fml.messages.mod.missing.dependencies.requires=Requiert %s +fml.messages.mod.missing.dependencies.you.have=vous avez %s +fml.messages.mod.missing.dependencies.see.log=Voir "%s" pour en savoir plus. +fml.messages.mod.missing.dependencies.multiple=Des dépendances à certains mods sont manquantes. +fml.messages.mod.missing.dependencies.multiple.issues=Vous devez inclure les bonnes dépendances pour les mods suivants \: +fml.messages.mod.missing.multiple=%s erreurs détectées lors du chargement de Minecraft +fml.messages.mod.wrongminecraft=Les mods listés ci-dessous ne peuvent pas fonctionner dans la version %s +fml.messages.mod.wrongminecraft.requirement=%s (%s) requiert la version %s de Minecraft +fml.messages.mod.wrongminecraft.fix=Essayez de trouver une mise à jour ou de supprimer %s +fml.messages.mod.wrongminecraft.fix.multiple=Essayez de trouver une mise à jour ou de supprimer ces mods +fml.messages.version.restriction.any=toutes +fml.messages.version.restriction.lower.inclusive=%s ou plus +fml.messages.version.restriction.lower.exclusive=supérieure à %s +fml.messages.version.restriction.upper.inclusive=%s ou moins +fml.messages.version.restriction.upper.exclusive=inférieure à %s +fml.messages.version.restriction.bounded=entre %s et %s +fml.messages.version.restriction.bounded.inclusive=entre %s et %s (inclus) +fml.messages.version.restriction.bounded.exclusive=entre %s et %s (exclus) +fml.messages.version.restriction.bounded.lowerexclusive=supérieure à %s, et %s ou moins +fml.messages.version.restriction.bounded.upperexclusive=%s ou supérieure, et inférieure à %s + +fml.button.continue=Continuer +fml.button.open.mods.folder=Ouvrir le dossier des mods +fml.button.open.file=Ouvrir %s + +forge.container.enchant.limitedEnchantability=Capacité d'enchantement limitée +attribute.name.generic.reachDistance=Distance de portée +attribute.name.forge.swimSpeed=Vitesse de nage + diff --git a/src/main/resources/assets/forge/lang/ja_jp.lang b/src/main/resources/assets/forge/lang/ja_jp.lang new file mode 100644 index 00000000..93acd988 --- /dev/null +++ b/src/main/resources/assets/forge/lang/ja_jp.lang @@ -0,0 +1,243 @@ +commands.forge.usage=/forge <サブコマンド> を使用してください +commands.forge.usage.tracking=/forge track <種類> <持続時間> を使用してください。種類には「te」(タイルエンティティ)が使用できます。 持続時間は 60 以下の秒で指定してください。 +commands.forge.usage.help=help [command] を使用することで、そのコマンドの使用法を確認できます。 +commands.forge.tps.summary=%s:1ティックあたりの時間:%d ms、1秒あたりのティック数(TPS):%d +commands.forge.tps.usage=/forge tps [dimension] を使用してください +commands.forge.gen.usage=/forge gen <チャンク数> [dimension] [interval] を使用してください +commands.forge.gen.dim_fail=ディメンション %d を読み込めませんでした。処理を終了します。 +commands.forge.gen.progress=生成の進行状況:%d / %d +commands.forge.gen.complete=%d / %d 個のチャンクの生成が終了しました(ディメンション %d)。 +commands.forge.gen.start=%d 個のチャンクの生成を、%d, %d を中心に螺旋状で開始しました(ディメンション %d)。 +commands.forge.entity.usage=エンティティのサブコマンドについての情報を確認するには、/forge entity help を使用してください。 +commands.forge.entity.list.usage=指定フィルターに一致するエンティティについての情報を取得するには、/forge entity list [filter] [dim] を使用してください。 +commands.forge.entity.list.invalid=有効なフィルターではないため、一致するエンティティはありません。/forge entity list を使用し、適切な構文を確認してください +commands.forge.entity.list.invalidworld=ディメンション %d を読み込めませんでした。有効なディメンションを選択してください。 +commands.forge.entity.list.none=指定したエンティティは範囲内にいません。 +commands.forge.entity.list.single.header=エンティティ:%s、合計:%d +commands.forge.entity.list.multiple.header=合計:%d +commands.forge.setdim.usage=/forge setdim <エンティティ> <ディメンション> [ ] を使用してください +commands.forge.setdim.invalid.entity=選択したエンティティ(%s)は無効です。 +commands.forge.setdim.invalid.dim=指定したディメンション ID(%d)は無効です。 +commands.forge.setdim.invalid.nochange=選択したエンティティ(%s)は、すでに指定したディメンション(%d)内に存在します。 +commands.forge.dimensions.usage=/forge dimensions を使用してください +commands.forge.dimensions.list=現在登録されているディメンション(種類別): + +commands.forge.tracking.te.enabled=タイルエンティティのトラッキングを %d 秒間有効にします。 +commands.forge.tracking.entity.enabled=エンティティのトラッキングを %d 秒間有効にしました。 +commands.forge.tracking.usage=トラッキングのサブコマンドについての情報を確認するには、/forge track help を使用してください。 +commands.forge.tracking.start.usage=/forge track start <持続時間> を使用してください +commands.forge.tracking.reset.usage=/forge track reset を使用してください +commands.forge.tracking.reset=タイミングデータを消去しました。 +commands.forge.tracking.te.usage=/forge track te を使用してください + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d]\: %s +commands.forge.tracking.noData=記録されたデータはまだありません。 +commands.tree_base.invalid_cmd=サブコマンド「%s」は有効ではありません +commands.tree_base.invalid_cmd.list_subcommands=サブコマンド「%s」は有効ではありません。次のサブコマンドが使用できます:%s +commands.tree_base.available_subcommands=次のサブコマンドが使用できます:%s +forge.texture.preload.warning=警告:テクスチャ %s がプリロードされませんでした。正常に描画されない恐れがあります。 +forge.client.shutdown.internal=内部サーバーを終了中… +forge.update.newversion=新しいバージョンの Forge がリリースされています:%s +forge.update.beta.1=%s警告:%sForge ベータ +forge.update.beta.2=致命的な不具合は、検証を行ってから報告してください。 + +forge.configgui.forgeConfigTitle=Minecraft Forge 設定 +forge.configgui.ctgy.forgeGeneralConfig.tooltip=forge.cfg での設定を編集できます。 +forge.configgui.ctgy.forgeGeneralConfig=一般設定 +forge.configgui.ctgy.forgeClientConfig.tooltip=ローカルクライアントのみに関係する forge.cfg の設定。主にグラフィック設定を行えます。 +forge.configgui.ctgy.forgeClientConfig=クライアント設定 +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=forgeChunkLoading.cfg での設定を編集できます。 +forge.configgui.ctgy.forgeChunkLoadingConfig=Forge チャンクローダーのデフォルト設定 +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=デフォルトの代わりに使用する Mod 固有の優先設定を定義できます。 +forge.configgui.ctgy.forgeChunkLoadingModConfig=Mod の上書き +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=デフォルトを上書きする Mod 固有の設定を定義できます。いずれかの項目に 0 の値を設定すると、その Mod のチャンク読み込み機能を無効にします。 +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ Mod の上書きを追加 +forge.configgui.ctgy.VersionCheckConfig=バージョンチェック設定 + +forge.configgui.biomeSkyBlendRange.tooltip=バイオームでの色のついた空の混合範囲。 +forge.configgui.biomeSkyBlendRange=バイオームの空の混合範囲 +forge.configgui.clumpingThreshold.tooltip=Packet51 が Packet52 よりも優先される数のしきい値。 +forge.configgui.clumpingThreshold=パケット集約のしきい値 +forge.configgui.disableVersionCheck.tooltip=Forge のバージョンチェック機能を無効にする場合は true に設定します。Forge は、バージョン情報を取得するためにサーバー上にある小さな json ファイルを参照します。詳細については、GitHub の ForgeVersion クラスをご覧ください。 +forge.configgui.disableVersionCheck=Forge のバージョンチェックの無効化 +forge.configgui.dimensionUnloadQueueDelay=ディメンションをアンロードした際の遅延 +forge.configgui.dimensionUnloadQueueDelay.tooltip=サーバーは、ティック単位でディメンションがアンロードされるまで待機するようになります。これは、ネザーポータルへ1秒間に数回アイテムを投げ入れるなど、ディメンションのロード・アンロードを素早く行うときに便利です。 +forge.configgui.enableGlobalConfig=グローバル設定の有効化 +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=複数のブロックが同じ液体にリンクしようとした場合に、強制的にクラッシュさせるには true に設定します。 +forge.configgui.forceDuplicateFluidBlockCrash=液体ブロックの重なりでクラッシュを強制 +forge.configgui.fullBoundingBoxLadders.tooltip=ブロックだけの代わりに、はしごがエンティティ全体の当たり判定をチェックようにするにはこれを true に設定します。挙動が顕著に変化するため、デフォルトではバニラの挙動に設定されています。 +forge.configgui.fullBoundingBoxLadders=はしご全体の当たり判定 +forge.configgui.removeErroringEntities.tooltip=サーバーを閉じてクラッシュログを報告する代わりに、更新メソッドでエラーをスローさせてすべてのエンティティを削除するにはこれを true に設定します。これを使用したことにより問題が発生しても、Forge は一切の責任を負いかねます。 +forge.configgui.removeErroringEntities=不正なエンティティの除去 +forge.configgui.removeErroringTileEntities.tooltip=サーバーを閉じてクラッシュログを報告する代わりに、更新メソッドでエラーをスローさせてすべてのタイルエンティティを削除するにはこれを true に設定します。これを使用したことにより問題が発生しても、Forge は一切の責任を負いかねます。 +forge.configgui.removeErroringTileEntities=不正なタイルエンティティの除去 +forge.configgui.sortRecipies.tooltip=Forge のソーターを使用したクラフトレシピの初期時のソートを有効にするには、true に設定します。これによって競合するレシピに同期ずれが発生する可能性があります。GUI から設定を変更した場合は、Minecraft を再起動する必要があります。 +forge.configgui.sortRecipies=レシピの並び替え +forge.configgui.zombieBabyChance.tooltip=ゾンビ(またはサブクラス)が子供である確率。ゾンビのスポーン方法を変更できます。 +forge.configgui.zombieBabyChance=子供ゾンビの出現率 +forge.configgui.zombieBaseSummonChance.tooltip=ゾンビが連鎖的に出現する確率。ボーナスゾンビの出現頻度を変更できます。 +forge.configgui.zombieBaseSummonChance=ゾンビの出現率 +forge.configgui.stencilbits=GL Stencil Bits の有効化 +forge.configgui.replaceBuckets=Forge モデルのバケツの使用 +forge.configgui.forgeCloudsEnabled=Forge 仕様の雲の描画の使用 +forge.configgui.forgeCloudsEnabled.tooltip=GPU にジオメトリをアップロードすることで、雲の描画を高速化します。 +forge.configgui.forgeLightPipelineEnabled=ブロックのレンダリングパイプラインの有効化 +forge.configgui.disableStairSlabCulling=階段やハーフブロックのカリングの無効化 +forge.configgui.zoomInMissingModelTextInGui=GUI で存在しないモデルテキストの拡大表示 +forge.configgui.disableStairSlabCulling.tooltip=リソースパックの使用中、階段やハーフブロックに触れた際にブロックが透ける場合は、この設定を有効にします。 +forge.configgui.alwaysSetupTerrainOffThread=スレッドチャンクレンダリングの強制 +forge.configgui.alwaysSetupTerrainOffThread.tooltip=すべてのチャンク更新を Chunk Update スレッドのキューに登録できるようにします。fps 値を大幅に向上させる可能性がありますが、描画が著しく遅延するかもしれません。CPU のコア数が少ないコンピュータでは、この設定は推奨されません。 +forge.configgui.allowEmissiveItems=ブロックの発光描画 +forge.configgui.allowEmissiveItems.tooltip=本来発光すべきブロックを検出し、インベントリ内での発光が行われるようにします。設置されている通りの明るさでインベントリ内のブロックが描画されますが、パフォーマンスに多少の影響を与えます。 +forge.configgui.selectiveResourceReloadEnabled=選択的なリソース読み込みの有効化 +forge.configgui.selectiveResourceReloadEnabled.tooltip=有効にすることで、言語変更などの特定の再読み込み動作をすばやく実行できます。 + +forge.configgui.modID.tooltip=上書き設定を定義する Mod ID。 +forge.configgui.modID=Mod ID +forge.configgui.asyncChunkLoading=チャンク読み込みの非同期化 +forge.configgui.asyncChunkLoading.tooltip=プレイヤー付近のチャンクを非同期で読み込むようにし、サーバースレッドの負荷を軽減します。チャンクの読み込みに不具合が発生する場合は無効にしてください。 +forge.configgui.dormantChunkCacheSize.tooltip=チャンクのキャッシュを保持することで、チャンクがアンロードされても読み込む時間が速くなります。ここでは、1つのチャンクで保持するキャッシュサイズを指定できます。 +forge.configgui.dormantChunkCacheSize=休止チャンクのキャッシュサイズ +forge.configgui.enableModOverrides.tooltip=Mod の設定のカスタマイズを定義するにはこの設定を有効にします。 +forge.configgui.enableModOverrides=Mod の上書きの有効化 +forge.configgui.maximumChunksPerTicket.tooltip=1つのチケットが強制できるチャンクの最大数。 +forge.configgui.maximumChunksPerTicket=チケットごとの最大チャンク数 +forge.configgui.maximumTicketCount.tooltip=Mod が要求できるチャンクの読み込み数。 +forge.configgui.maximumTicketCount=Mod チケットの上限 +forge.configgui.playerTicketCount.tooltip=Mod の代わりにプレイヤーが割り当てることができるチケットの数。これは、すべての Mod で共有され、Mod が自由に使用することができます。 +forge.configgui.playerTicketCount=プレイヤーチケットの上限 +forge.configgui.logCascadingWorldGeneration=ワールド生成情報の記録 +forge.configgui.logCascadingWorldGeneration.tooltip=地形データの集計中に起きたカスケードチャンク生成時の問題を記録します。 +forge.configgui.fixVanillaCascading=バニラのカスケード処理の修正 +forge.configgui.fixVanillaCascading.tooltip=バニラワールドの生成において、必要のないチャンクが読み込まれるバグをいくつか修正します。この設定はワールドの生成方式を根本から変更するため、これを有効にしたことによると思われる問題は報告しないでください。 + +fml.config.sample.basicDouble.tooltip=バウンド未定義の倍精度のプロパティ。 +fml.config.sample.basicDouble=バウンド無しの倍精度 +fml.config.sample.basicInteger.tooltip=バウンド未定義の整数のプロパティ。 +fml.config.sample.basicInteger=バウンド無しの整数 +fml.config.sample.basicString.tooltip=通常の文字列のプロパティ。このテキストボックスに何か入力できます。 +fml.config.sample.basicString=通常の文字列 +fml.config.sample.booleanList.tooltip=最大長でない、延長および短縮できるブール値のリスト。 +fml.config.sample.booleanList=通常のブール値リスト +fml.config.sample.booleanListFixed.tooltip=固定長8のブール値のリスト。 +fml.config.sample.booleanListFixed=固定長のブール値リスト +fml.config.sample.booleanListMax.tooltip=最大長10のブール値のリスト。 +fml.config.sample.booleanListMax=最大長のブール値リスト +fml.config.sample.boundedDouble.tooltip=バウンド定義済みの倍精度のプロパティ。 +fml.config.sample.boundedDouble=バウンド有りの倍精度 +fml.config.sample.boundedInteger.tooltip=バウンド定義済みの整数のプロパティ。 +fml.config.sample.boundedInteger=バウンド有りの整数 +fml.config.sample.chatColorPicker.tooltip=フォントのカラーコードの選択が可能になる特別なプロパティ。 +fml.config.sample.chatColorPicker=チャットカラーピッカー +fml.config.sample.ctgy.lists.tooltip=様々な配列プロパティの制御方法を提供します。 +fml.config.sample.ctgy.lists=サンプルの配列制御 +fml.config.sample.ctgy.numbers.tooltip=調整用の数値制御のリストを提供します。 +fml.config.sample.ctgy.numbers=サンプルの数値制御 +fml.config.sample.ctgy.strings.tooltip=異なる文字列タイプを制御するリストを提供します。 +fml.config.sample.ctgy.strings=サンプルの文字列制御 +fml.config.sample.cycleString.tooltip=切り替え可能な有効値のリストを定義する文字列のプロパティ。 +fml.config.sample.cycleString=文字列の値の切り替え +fml.config.sample.doubleList.tooltip=最大長でない、延長および短縮できる倍精度のリスト。 +fml.config.sample.doubleList=通常の倍精度リスト +fml.config.sample.doubleListBounded.tooltip=特定の範囲を持つ倍精度のリスト。 +fml.config.sample.doubleListBounded=範囲を持つ倍精度リスト +fml.config.sample.doubleListFixed.tooltip=固定長10の倍精度のリスト。 +fml.config.sample.doubleListFixed=固定長の倍精度リスト +fml.config.sample.doubleListMax.tooltip=最大長15の倍精度のリスト。 +fml.config.sample.doubleListMax=最大長の倍精度リスト +fml.config.sample.imABoolean.tooltip=なんとなくでいいんだ… 私はブール値の制御器です。 +fml.config.sample.imABoolean=私はブール値です +fml.config.sample.imADouble.tooltip=私は2人います。確かではないですが、もしかしたら CIA と KGB の両方の役割を果たすかもしれません。 +fml.config.sample.imADouble=私は倍精度です +fml.config.sample.imAString.tooltip=ああ、そうだな。つまり君は私達に粉石鹸を宣伝してほしいのか?\n<* 糸だよ *>\n糸と粉石鹸… そこに何の違いがあるんだい?何でも買うとも。\n<* そりゃいいや。ならこの大量の糸、きっかり122,000マイルを相続したんだけれども、これを宣伝できたらと思って… *>\nいいだろう。国中でやらせてもらうよ。良質な素材、良質な糸、問題など起こるはずもないさ。\n<* あぁ、でも思いもよらないことはあるものだよ、きっとね。下手な計画を立てたら、122,000マイルが3インチになってしまうよ。それはよくないなぁ。\n *>\nそうだ、それこそセールスポイントになる!シンプソンの高級糸!世紀の糸!さあ切ろう、とっても便利、シンプソンの特級大帝糸――ちょうどいい長さに! +fml.config.sample.imAString=私は文字列です +fml.config.sample.imAnInteger.tooltip=私が整数だと言いましたか?まあ、そういうことにしておきましょう。 +fml.config.sample.imAnInteger=私は整数です +fml.config.sample.integerList.tooltip=最大長でない、延長および短縮できる整数のリスト。 +fml.config.sample.integerList=通常の整数リスト +fml.config.sample.integerListBounded.tooltip=特定の範囲を持つ整数のリスト。 +fml.config.sample.integerListBounded=範囲を持つ整数リスト +fml.config.sample.integerListFixed.tooltip=固定長10の整数のリスト。 +fml.config.sample.integerListFixed=固定長の整数リスト +fml.config.sample.integerListMax.tooltip=最大長15の整数のリスト。 +fml.config.sample.integerListMax=最大長の整数リスト +fml.config.sample.modIDSelector.tooltip=導入済みの Mod リストから Mod ID の選択を可能にする特別なプロパティ。これは、カスタムコードで使用できることが多いです。カスタムコードには、バイオームの選択、エンティティの選択、アイテムの選択、ブロックの選択などが使用できます。 +fml.config.sample.modIDSelector=Mod ID セレクター +fml.config.sample.patternString.tooltip=パターンオブジェクトを使用して検証された文字列のプロパティ。 +fml.config.sample.patternString=パターン検証済みの文字列 +fml.config.sample.sliderDouble.tooltip=スライダーコントロールを使用した、バウンド定義済みの倍精度のプロパティ。 +fml.config.sample.sliderDouble=倍精度のスライダー +fml.config.sample.sliderInteger.tooltip=スライダーコントロールを使用した、バウンド定義済みの整数のプロパティ。 +fml.config.sample.sliderInteger=整数のスライダー +fml.config.sample.stringList.tooltip=未検証の通常の文字列のリスト。 +fml.config.sample.stringList=通常の文字列リスト +fml.config.sample.stringListFixed.tooltip=固定長7の文字列のリスト。 +fml.config.sample.stringListFixed=固定長の文字列リスト +fml.config.sample.stringListMax.tooltip=最大長15の文字列のリスト。 +fml.config.sample.stringListMax=最大長の文字列リスト +fml.config.sample.stringListPattern.tooltip=パターンオブジェクトを使用して、各々の値を検証する文字列のリスト。 +fml.config.sample.stringListPattern=パターン検証済みの文字列リスト +fml.config.sample.stringListCustom=カスタムエントリーリスト +fml.config.sample.title=これは、設定 GUI の動作の一例です。変更は保存されません。 + +fml.configgui.applyGlobally=全体に適用 +fml.configgui.confirmRestartMessage=わかりました +fml.configgui.gameRestartRequired=変更した設定を適用するには、Minecraft を再起動する必要があります。 +fml.configgui.gameRestartTitle=Minecraft の再起動が必要です +fml.configgui.sampletext=サンプルテキスト +fml.configgui.tooltip.addNewEntryAbove=上に新しいエントリーを追加 +fml.configgui.tooltip.applyGlobally=「変更を元に戻す」や「初期値に戻す」の動作を全体に適用します。 +fml.configgui.tooltip.removeEntry=エントリーを削除 +fml.configgui.tooltip.resetAll=変更した設定を初期値に戻します。「全体に適用」をチェックしている場合、この項目の設定にこの動作が行われます。 +fml.configgui.tooltip.resetToDefault=初期値に戻す +fml.configgui.tooltip.undoAll=すべての変更を元に戻します。「全体に適用」のチェックボックスにチェックがある場合、小画面への変更も元に戻ります。 +fml.configgui.tooltip.undoChanges=変更を元に戻す +fml.configgui.tooltip.default=[初期値:%s] +fml.configgui.tooltip.defaultNumeric=[範囲:%s ~ %s,初期値:%s] + +forge.controlsgui.shift=Shift + %s +forge.controlsgui.control=Ctrl + %s +forge.controlsgui.control.mac=Cmd + %s +forge.controlsgui.alt=Alt + %s + +fml.menu.mods=Mod +fml.menu.mods.normal=通常 +fml.menu.mods.search=検索: +fml.menu.modoptions=Mod 設定… + +item.forge.bucketFilled.name=%s入りバケツ + +fml.messages.mod.missing.dependencies=%s の前提となる Mod が導入されていません。 +fml.messages.mod.missing.dependencies.fix=以下の Mod を導入するか、%s の Mod を外してください。 +fml.messages.mod.missing.dependencies.compatibility=%s を使用するには、以下の Mod を導入してください: +fml.messages.mod.missing.dependencies.missing=未導入 +fml.messages.mod.missing.dependencies.compatible.with=%s のみ互換性あり +fml.messages.mod.missing.dependencies.requires=%s +fml.messages.mod.missing.dependencies.you.have=%s を導入中 +fml.messages.mod.missing.dependencies.see.log=技術的な情報については、「%s」を参照してください。 +fml.messages.mod.missing.dependencies.multiple=一部の Mod が前提とする Mod が導入されていません。 +fml.messages.mod.missing.dependencies.multiple.issues=以下の Mod を使用するには、併記されている Mod を導入してください: +fml.messages.mod.missing.multiple=Minecraft の読み込み中に %s 件のエラーが発生しました +fml.messages.mod.wrongminecraft=以下の Mod は、Minecraft バージョン %s では使用できません +fml.messages.mod.wrongminecraft.requirement=%s(%s)は Minecraft %s で利用できます +fml.messages.mod.wrongminecraft.fix=%s が更新されていないか確認をするか、外してください +fml.messages.mod.wrongminecraft.fix.multiple=これらの Mod が更新されていないか確認をするか、外してください +fml.messages.version.restriction.any=任意 +fml.messages.version.restriction.lower.inclusive=%s 以降が必要 +fml.messages.version.restriction.lower.exclusive=%s より上 +fml.messages.version.restriction.upper.inclusive=%s 以前 +fml.messages.version.restriction.upper.exclusive=%s より下 +fml.messages.version.restriction.bounded=%s から %s +fml.messages.version.restriction.bounded.inclusive=%s から %s まで(両バージョンを含む) +fml.messages.version.restriction.bounded.exclusive=%s から %s まで(両バージョンを除く) +fml.messages.version.restriction.bounded.lowerexclusive=%s より新しく、%s 以下 +fml.messages.version.restriction.bounded.upperexclusive=%s 以上、%s 未満 + +fml.button.continue=続行 +fml.button.open.mods.folder=Mod フォルダーを開く +fml.button.open.file=%s を開く + +forge.container.enchant.limitedEnchantability=エンチャントが付加される確率の上限 +attribute.name.generic.reachDistance=描画距離 +attribute.name.forge.swimSpeed=泳ぐ速度 + diff --git a/src/main/resources/assets/forge/lang/ko_KR.lang b/src/main/resources/assets/forge/lang/ko_kr.lang similarity index 100% rename from src/main/resources/assets/forge/lang/ko_KR.lang rename to src/main/resources/assets/forge/lang/ko_kr.lang diff --git a/src/main/resources/assets/forge/lang/ru_ru.lang b/src/main/resources/assets/forge/lang/ru_ru.lang new file mode 100644 index 00000000..d4c3c755 --- /dev/null +++ b/src/main/resources/assets/forge/lang/ru_ru.lang @@ -0,0 +1,243 @@ +commands.forge.usage=Используйте /forge <подкоманда> +commands.forge.usage.tracking=Используйте /forge track <тип> <длительность>. Допустимые типы — «te» (блоки-сущности). Длительность должна быть <\= 60 секундам. +commands.forge.usage.help=Используйте help [команда] для того, чтобы посмотреть использования этой команды. +commands.forge.tps.summary=%s \: Среднее время такта\: %d мс. Средний TPS\: %d +commands.forge.tps.usage=Используйте /forge tps [измерение] +commands.forge.gen.usage=Используйте /forge gen <количествоЧанков> [измерение] [интервал] +commands.forge.gen.dim_fail=Не удалось загрузить мир для измерения %d, задача прекращена. +commands.forge.gen.progress=Прогресс генерации\: %d/%d +commands.forge.gen.complete=Завершена генерация %d новых чанков (из %d) для измерения %d. +commands.forge.gen.start=Начинается генерация %d чанков в спирали вoкруг %d, %d в измерении %d. +commands.forge.entity.usage=Используйте /forge entity help, чтобы получить больше информации о подкомандах сущностей. +commands.forge.entity.list.usage=Используйте /forge entity list [фильтр] [изм.], чтобы получить информацию о сущности, которая подходит фильтру. +commands.forge.entity.list.invalid=Неверный фильтр, не совпадает ни с какими сущностями. Используйте /forge entity list для правильного списка +commands.forge.entity.list.invalidworld=Не удается загрузить мир для измерения %d. Пожалуйста, выберите правильное измерение. +commands.forge.entity.list.none=Сущности не найдены. +commands.forge.entity.list.single.header=Сущностей\: %s Всего\: %d +commands.forge.entity.list.multiple.header=Всего\: %d +commands.forge.setdim.usage=Используйте /forge setdim <сущность> <измерение> [ ] +commands.forge.setdim.invalid.entity=Выбранная сущность (%s) неверна. +commands.forge.setdim.invalid.dim=Указанный ID измерения (%d) неверен. +commands.forge.setdim.invalid.nochange=Выбранная сущность (%s) уже в указанном измерении (%d). +commands.forge.dimensions.usage=Используйте /forge dimensions +commands.forge.dimensions.list=На данный момент зарегистрированные измерения\: + +commands.forge.tracking.te.enabled=Отслеживание блоков-сущностей включено на %d секунд. +commands.forge.tracking.entity.enabled=Отслеживание сущностей включено на %d секунд. +commands.forge.tracking.usage=Используйте /forge track help, чтобы получить больше информации про подкоманды отслеживания. +commands.forge.tracking.start.usage=Используйте /forge track start <длительность> +commands.forge.tracking.reset.usage=Используйте /forge track reset +commands.forge.tracking.reset=Тайминги очищены\! +commands.forge.tracking.te.usage=Используйте /forge track te + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d]\: %s +commands.forge.tracking.noData=Никакие данные еще не были записаны. +commands.tree_base.invalid_cmd=Неверная подкоманда «%s»\! +commands.tree_base.invalid_cmd.list_subcommands=Неверная подкоманда «%s»\! Доступные подкоманды\: %s +commands.tree_base.available_subcommands=Доступные подкоманды\: %s +forge.texture.preload.warning=Предупреждение\: текстура %s не предзагружена, это вызовет ошибки отрисовки\! +forge.client.shutdown.internal=Остановка внутреннего сервера... +forge.update.newversion=Доступна новая версия Forge\: %s +forge.update.beta.1=%sПРЕДУПРЕЖДЕНИЕ\: %sБета-версия Forge +forge.update.beta.2=Могут возникнуть серьезные проблемы, проверьте их перед отправкой отчета о сбое. + +forge.configgui.forgeConfigTitle=Настройки Minecraft Forge +forge.configgui.ctgy.forgeGeneralConfig.tooltip=Здесь вы можете изменять настройки, хранимые в файле forge.cfg. +forge.configgui.ctgy.forgeGeneralConfig=Основные настройки +forge.configgui.ctgy.forgeClientConfig.tooltip=Параметры в forge.cfg, которые касаются только клиента. В основном это графические настройки. +forge.configgui.ctgy.forgeClientConfig=Настройки клиента +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=Здесь вы можете изменять настройки, хранимые в forgeChunkLoading.cfg. +forge.configgui.ctgy.forgeChunkLoadingConfig=Настройки по умолчанию для загрузчика чанков Forge +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=Здесь вы можете установить настройки переопределения модов, которые будут использоваться вместо параметров по умолчанию. +forge.configgui.ctgy.forgeChunkLoadingModConfig=Переопределение настроек модов +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=Позволяет установить настройки модов, переопределяющие параметры по умолчанию. Значение ноль в любом пункте отключит возможность загрузки чанков для этого мода. +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ добавить новое переопределение +forge.configgui.ctgy.VersionCheckConfig=Настройки проверки версий + +forge.configgui.biomeSkyBlendRange.tooltip=Управляет диапазоном размытия цветного неба в биомах. +forge.configgui.biomeSkyBlendRange=Диапазон смешивания цветов неба +forge.configgui.clumpingThreshold.tooltip=Управляет порогом предпочтения Packet51 перед Packet52. +forge.configgui.clumpingThreshold=Порог объединения пакетов +forge.configgui.disableVersionCheck.tooltip=Установите значение true, чтобы отключить механику проверки версии Forge. Forge запрашивает небольшой JSON-файл с нашего сервера для получения информации о версии. Подробности можно найти в классе ForgeVersion на странице проекта на нашем GitHub. +forge.configgui.disableVersionCheck=Отключить проверку обновлений Forge +forge.configgui.dimensionUnloadQueueDelay=Задержка при выгрузке измерения +forge.configgui.dimensionUnloadQueueDelay.tooltip=Время в тактах, которое сервер будет ждать до выгрузки измерения. Это может быть полезно при быстрой загрузке и выгрузке измерений, например, при бросках предметов через портал в Незер несколько раз в секунду. +forge.configgui.enableGlobalConfig=Включить глобальные настройки +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=Поставьте значение true, чтобы принудительно останавливать игру при попытке связать один тип жидкости более чем с одним блоком. +forge.configgui.forceDuplicateFluidBlockCrash=Принудительная остановка игры при дубле блока жидкости +forge.configgui.fullBoundingBoxLadders.tooltip=Установите значение true для полной проверки столкновений сущностей с лестницами вместо простой проверки на их нахождение в блоке. Вызывает значительные изменения в механике оригинальной игры. +forge.configgui.fullBoundingBoxLadders=Полные области соприкосновения у лестниц +forge.configgui.removeErroringEntities.tooltip=Поставьте значение true, чтобы удалять любую сущность, вызывающую ошибку, из мира вместо полной остановки сервера и сообщения журнала сбоя. БУДЬТЕ ОСТОРОЖНЫ, ЭТО МОЖЕТ СЛОМАТЬ ВСЕ\! ИСПОЛЬЗУЙТЕ С УМОМ. МЫ НЕ НЕСЕМ ОТВЕТСТВЕННОСТИ ЗА УЩЕРБ. +forge.configgui.removeErroringEntities=Удалять ошибочные сущности +forge.configgui.removeErroringTileEntities.tooltip=Поставьте значение true, чтобы удалять любую блок-сущность, вызывающую ошибку, из мира вместо полной остановки сервера и сообщения журнала сбоя. БУДЬТЕ ОСТОРОЖНЫ, ЭТО МОЖЕТ СЛОМАТЬ ВСЕ\! ИСПОЛЬЗУЙТЕ С УМОМ. МЫ НЕ НЕСЕМ ОТВЕТСТВЕННОСТИ ЗА УЩЕРБ. +forge.configgui.removeErroringTileEntities=Удалять блок-сущности, вызывающие ошибки +forge.configgui.sortRecipies.tooltip=Поставьте значение true, чтобы включить сортировку рецептов крафта в фазе пост-инициализации. Может вызвать десинхронизацию у конфликтующих рецептов. НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ MINECRAFT, ЕСЛИ ЭТО БЫЛО ИЗМЕНЕНО ИЗ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА. +forge.configgui.sortRecipies=Сортировать рецепты +forge.configgui.zombieBabyChance.tooltip=Шанс спавна зомби-ребенка (или его подвида). Позволяет изменять механику спавна зомби. +forge.configgui.zombieBabyChance=Шанс спавна зомби-ребенка +forge.configgui.zombieBaseSummonChance.tooltip=Основной шанс спавна зомби. Позволяет изменять механику бонусного шанса при спавне зомби. +forge.configgui.zombieBaseSummonChance=Шанс спавна зомби +forge.configgui.stencilbits=Включить GL Stencil Bits +forge.configgui.replaceBuckets=Использовать модель ведра Forge +forge.configgui.forgeCloudsEnabled=Использовать отрисовку облаков Forge +forge.configgui.forgeCloudsEnabled.tooltip=Включить загрузку геометрии облаков в видеокарте для ускорения отрисовки. +forge.configgui.forgeLightPipelineEnabled=Включить обработку света Forge +forge.configgui.disableStairSlabCulling=Отключить обработку ступенек/плит. +forge.configgui.zoomInMissingModelTextInGui=Увеличить отсутствующие модели текста в пользовательских интерфейсах +forge.configgui.disableStairSlabCulling.tooltip=Включите эту опцию, если вы видите сквозь блоки при прикосновении к ступеням/плитам с вашим пакетом ресурсов. +forge.configgui.alwaysSetupTerrainOffThread=Сила поточной отрисовки чанков +forge.configgui.alwaysSetupTerrainOffThread.tooltip=Включить передачу всех обновлений чанков в поток обновления чанков. Может значительно повысить FPS, но при этом может вызвать странное поведение отрисовки. Не рекомендуется для компьютеров с небольшим числом доступных процессорных ядер. +forge.configgui.allowEmissiveItems=Разрешить отрисовку предметов, излучающих свет +forge.configgui.allowEmissiveItems.tooltip=Разрешить отрисовке предметов определять блоки, излучающие свет и рисовать их должным образом. Это позволяет светящимся блокам выглядеть также, как и в инвентаре, но несильно влияет на производительность. +forge.configgui.selectiveResourceReloadEnabled=Включить выборочную загрузку ресурсов +forge.configgui.selectiveResourceReloadEnabled.tooltip=Когда включено, выполняет некоторые задачи перезагрузки, такие как смена языка, быстрее. + +forge.configgui.modID.tooltip=ID мода, настройки которого Вы хотите переопределить. +forge.configgui.modID=ID мода +forge.configgui.asyncChunkLoading=Асинхронная загрузка чанков +forge.configgui.asyncChunkLoading.tooltip=Загружать чанки асинхронно для игроков, сокращая нагрузку на поток сервера. Может быть выключено, чтобы помочь обнаружению проблем загрузки чанки. +forge.configgui.dormantChunkCacheSize.tooltip=Выгруженные чанки могут быть помещены в кэш для ускорения будущих загрузок. Укажите здесь объем этого кэша (в чанках). +forge.configgui.dormantChunkCacheSize=Размер кэша выгруженных чанков +forge.configgui.enableModOverrides.tooltip=Включите, чтобы позволить определять настройки для модов по отдельности. +forge.configgui.enableModOverrides=Включить переопределение настроек модов +forge.configgui.maximumChunksPerTicket.tooltip=Максимальное количество чанков на один запрос, которые будут загружены по запросу модов. +forge.configgui.maximumChunksPerTicket=Лимит чанков на один запрос +forge.configgui.maximumTicketCount.tooltip=Количество запросов на поддержание чанков в загруженнм состоянии, которое сможет сделать мод. +forge.configgui.maximumTicketCount=Лимит запросов для мода +forge.configgui.playerTicketCount.tooltip=Количество запросов, которые будут присвоены игроку вместо мода. Этот лимит разделяется между всеми модами. +forge.configgui.playerTicketCount=Лимит запросов на игрока +forge.configgui.logCascadingWorldGeneration=Регистрировать журнал каскадированной генерации мира +forge.configgui.logCascadingWorldGeneration.tooltip=Регистрировать ошибки каскадной генерации чанков во время населения местности. +forge.configgui.fixVanillaCascading=Исправить каскадирование из оригинальной игры +forge.configgui.fixVanillaCascading.tooltip=Исправить различные баги в оригинальной генерации мира, которые приводят к загрузке дополнительных чанков. Это ИЗМЕНИТ вашу генерацию мира, в отличие от оригинальной игры. Не сообщайте об изменениях, если это включено. + +fml.config.sample.basicDouble.tooltip=Свойство-число с двойной точностью без определенных границ. +fml.config.sample.basicDouble=Неограниченное число с двойной точностью +fml.config.sample.basicInteger.tooltip=Целочисленное свойство без определенных границ. +fml.config.sample.basicInteger=Неограниченное целое число +fml.config.sample.basicString.tooltip=Обычное строчное свойство. Пользователь может ввести что угодно в этом текстовом поле. +fml.config.sample.basicString=Обычная строка +fml.config.sample.booleanList.tooltip=Логический список без ограничений в размере, и который может быть удлинен или укорочен. +fml.config.sample.booleanList=Основной логический список +fml.config.sample.booleanListFixed.tooltip=Логический список с фиксированной длиной в 8. +fml.config.sample.booleanListFixed=Логический список фиксированной длины +fml.config.sample.booleanListMax.tooltip=Логический список с максимальной длиной в 10. +fml.config.sample.booleanListMax=Макс. длина логического списка +fml.config.sample.boundedDouble.tooltip=Свойство-число с двойной точностью с определенными границами. +fml.config.sample.boundedDouble=Ограниченное число с двойной точностью +fml.config.sample.boundedInteger.tooltip=Целочисленное свойство с определенными границами. +fml.config.sample.boundedInteger=Ограниченное целое число +fml.config.sample.chatColorPicker.tooltip=Особое свойство, которое позволяет игроку выбрать код цвета шрифта. +fml.config.sample.chatColorPicker=Выбор цвета в чате +fml.config.sample.ctgy.lists.tooltip=Позволяет изменять различные свойства-массивы для экспериментов с этим. +fml.config.sample.ctgy.lists=Пример управления массивами +fml.config.sample.ctgy.numbers.tooltip=Позволяет изменять различные числовые свойства для экспериментов с этим. +fml.config.sample.ctgy.numbers=Пример управления числами +fml.config.sample.ctgy.strings.tooltip=Позволяет изменять различные строчные свойства для экспериментов с этим. +fml.config.sample.ctgy.strings=Пример управления строками +fml.config.sample.cycleString.tooltip=Строчное свойство, которое имеет определенный список допустимых значений с возможностью их перечисления. +fml.config.sample.cycleString=Перечислять значения строки +fml.config.sample.doubleList.tooltip=Список чисел с двойной точностью без ограничений по длине. Может быть удлинен или укорочен. +fml.config.sample.doubleList=Обычный список чисел с двойной точностью +fml.config.sample.doubleListBounded.tooltip=Список чисел с двойной точностью с указанными границами значения. +fml.config.sample.doubleListBounded=Список чисел с двойной точностью с ограниченными значениями +fml.config.sample.doubleListFixed.tooltip=Список чисел с двойной точностью с фиксированной длиной в 10. +fml.config.sample.doubleListFixed=Фиксированная длина списка чисел с двойной точностью +fml.config.sample.doubleListMax.tooltip=Список чисел с двойной точностью с максимальной длиной в 15. +fml.config.sample.doubleListMax=Макс. длина списка чисел с двойной точностью +fml.config.sample.imABoolean.tooltip=Да, это уже слишком... Я логическое значение. +fml.config.sample.imABoolean=Я - логический тип данных +fml.config.sample.imADouble.tooltip=Здесь два меня. Или возможно я работаю одновременно на ЦРУ и КГБ. Не уверен. +fml.config.sample.imADouble=Я - число с двойной точностью +fml.config.sample.imAString.tooltip=А. Теперь, я понимаю что вы хотите разрекламировать ваш стиральный порошок. \n<*Строки.*> \nСтроки, стиральный порошок, какая разница? Мы можем продать все что угодно. \n<*Хорошо. Итак, у меня есть большое количество строк, 122 000 миль, если быть точным, которые я унаследовал, и я подумал, что если я разрекламирую их...*> \nКонечно\! Национальная кампания. Полезные штуки, строки, нет проблем. \n<*Ах, но есть загвоздка, видите ли. Из-за плохого планирования, эти 122 000 миль получились длиной в три дюйма. Так что это не очень удобно.*> \nХорошо, это наша точка продажи\! ЛИЧНЫЕ СТРИНГЖЕТЫ СИМПСОНА\! ТЕПЕРЬ В СТРОКАХ\! ГОТОВЫ ДЛЯ ОБРЕЗКИ, ПРОСТЫ В ОБРАЩЕНИИ, ЛИЧНЫЕ ИМПЕРАТОРСКИЕ СТРИНГЖЕТЫ СИМПСОНА - ПРОСТО ПРАВИЛЬНАЯ ДЛИНА\! +fml.config.sample.imAString=Я - строка +fml.config.sample.imAnInteger.tooltip=Разве я сказал, что я целое число? О, я вижу. +fml.config.sample.imAnInteger=Я - целое число +fml.config.sample.integerList.tooltip=Список целых чисел без максимальной длины, и который может быть удлинен или укорочен. +fml.config.sample.integerList=Обычных список целых чисел +fml.config.sample.integerListBounded.tooltip=Cписок целых чисел с указанными границами значений. +fml.config.sample.integerListBounded=Список целых чисел с ограниченными значениями +fml.config.sample.integerListFixed.tooltip=Список целых чисел c фиксированной длиной в 10. +fml.config.sample.integerListFixed=Список целых чисел с фиксированной длиной +fml.config.sample.integerListMax.tooltip=Список целых чисел с макс. длиной в 15. +fml.config.sample.integerListMax=Макс. длина списка целых чисел +fml.config.sample.modIDSelector.tooltip=Особое свойство, которое позволяет пользователю выбрать ID мода из списка всех установленных модов. Есть много возможностей, как это может быть использовано с небольшим пользовательским кодом выбор биомов, сущностей, предметов, блоков и т. д. +fml.config.sample.modIDSelector=Выбор по ID мода +fml.config.sample.patternString.tooltip=Строчное свойство, которое проверяется с помощью элемента-шаблона. +fml.config.sample.patternString=Строка, проверяемая по шаблону +fml.config.sample.sliderDouble.tooltip=Свойство-число с двойной точностью с определенными границам, управляемое ползунком. +fml.config.sample.sliderDouble=Ползунок для чисел с двойной точностью +fml.config.sample.sliderInteger.tooltip=Целочисленное свойство с определенными границами, управляемое ползунком. +fml.config.sample.sliderInteger=Ползунок для целых чисел +fml.config.sample.stringList.tooltip=Обычный список строк без проверки. +fml.config.sample.stringList=Обычный список строк +fml.config.sample.stringListFixed.tooltip=Строчной список с фиксированной длиной в 7. +fml.config.sample.stringListFixed=Список строк фиксированной длины +fml.config.sample.stringListMax.tooltip=Строчной список с макс. длиной в 15. +fml.config.sample.stringListMax=Максимальная длина строчного списка +fml.config.sample.stringListPattern.tooltip=Строчной список, который проверяет каждое значение по шаблону. +fml.config.sample.stringListPattern=Список строк, проверяемых по шаблону +fml.config.sample.stringListCustom=Пользовательский список записей +fml.config.sample.title=Это для игр с настройками поведения пользовательского интерфейса. Изменения не сохраняются. + +fml.configgui.applyGlobally=Применить глобально +fml.configgui.confirmRestartMessage=Я понимаю +fml.configgui.gameRestartRequired=Один или несколько измененных параметров требует перезапуска Minecraft для вступления в силу. +fml.configgui.gameRestartTitle=Требуется перезапуск Minecraft +fml.configgui.sampletext=Пример текста +fml.configgui.tooltip.addNewEntryAbove=Добавить новую запись выше +fml.configgui.tooltip.applyGlobally=Применить "Отменить изменения" или "Восстановить значения по умолчанию" глобально. +fml.configgui.tooltip.removeEntry=Удалить запись +fml.configgui.tooltip.resetAll=Сбросить все к значениям по умолчанию. Если применить глобально, значения на дочерних экранах тоже будут сброшены. +fml.configgui.tooltip.resetToDefault=Восстановить значения по умолчанию +fml.configgui.tooltip.undoAll=Отменить все изменения. Если флажок "Применить глобально" установлен, изменения к дочерним экраны тоже будут отменены. +fml.configgui.tooltip.undoChanges=Отменить изменения +fml.configgui.tooltip.default=[по умолчанию\: %s] +fml.configgui.tooltip.defaultNumeric=[диапазон\: %s ~ %s, по умолчанию\: %s] + +forge.controlsgui.shift=SHIFT + %s +forge.controlsgui.control=CTRL + %s +forge.controlsgui.control.mac=CMD + %s +forge.controlsgui.alt=ALT + %s + +fml.menu.mods=Моды +fml.menu.mods.normal=Обычная +fml.menu.mods.search=Поиск\: +fml.menu.modoptions=Настройки модов... + +item.forge.bucketFilled.name=Ведро %s + +fml.messages.mod.missing.dependencies=Отсутствуют моды, от которых зависит %s. +fml.messages.mod.missing.dependencies.fix=Установите следующие моды или удалите %s. +fml.messages.mod.missing.dependencies.compatibility=Вы должны установить нужные зависимости для %s\: +fml.messages.mod.missing.dependencies.missing=недостающий +fml.messages.mod.missing.dependencies.compatible.with=Совместимо только %s +fml.messages.mod.missing.dependencies.requires=Требует %s +fml.messages.mod.missing.dependencies.you.have=у вас %s +fml.messages.mod.missing.dependencies.see.log=Смотрите «%s» для технической информации. +fml.messages.mod.missing.dependencies.multiple=Некоторым модам нужны другие моды, от которых они зависят. +fml.messages.mod.missing.dependencies.multiple.issues=Вы должны установить нужные зависимости для следующих модов\: +fml.messages.mod.missing.multiple=Было %s ошибок при загрузке Minecraft +fml.messages.mod.wrongminecraft=Моды, перечисленные ниже, не могут быть запущены в Minecraft версии %s +fml.messages.mod.wrongminecraft.requirement=%s (%s) требует Minecraft версии %s +fml.messages.mod.wrongminecraft.fix=Попробуйте найти обновление или удалите %s +fml.messages.mod.wrongminecraft.fix.multiple=Попробуйте найти обновления или удалите эти моды +fml.messages.version.restriction.any=любой +fml.messages.version.restriction.lower.inclusive=%s или выше +fml.messages.version.restriction.lower.exclusive=выше %s +fml.messages.version.restriction.upper.inclusive=%s или ниже +fml.messages.version.restriction.upper.exclusive=ниже %s +fml.messages.version.restriction.bounded=между %s и %s +fml.messages.version.restriction.bounded.inclusive=между %s и %s (включительно) +fml.messages.version.restriction.bounded.exclusive=между %s и %s (исключительно) +fml.messages.version.restriction.bounded.lowerexclusive=выше %s и %s или ниже +fml.messages.version.restriction.bounded.upperexclusive=%s или выше и ниже %s + +fml.button.continue=Продолжить +fml.button.open.mods.folder=Открыть папку c модами +fml.button.open.file=Открыть %s + +forge.container.enchant.limitedEnchantability=Ограничение зачарования +attribute.name.generic.reachDistance=Расстояние +attribute.name.forge.swimSpeed=Скорость плавания + diff --git a/src/main/resources/assets/forge/lang/zh_cn.lang b/src/main/resources/assets/forge/lang/zh_cn.lang new file mode 100644 index 00000000..f9c3956e --- /dev/null +++ b/src/main/resources/assets/forge/lang/zh_cn.lang @@ -0,0 +1,243 @@ +commands.forge.usage=用法:/forge <子命令> +commands.forge.usage.tracking=用法:/forge track <类型> <采样时间>。可追踪的类型有:“te”(方块实体)。采样时间不应超过60秒。 +commands.forge.usage.help=使用/forge help [command]来显示该命令的用法。 +commands.forge.tps.summary=%s:平均游戏刻耗时:%d ms。平均TPS:%d +commands.forge.tps.usage=用法:/forge tps [dimension] +commands.forge.gen.usage=用法:/forge gen <区块数量> [dimension] [interval] +commands.forge.gen.dim_fail=加载维度'%d'失败,任务终止。 +commands.forge.gen.progress=生成进度:%d/%d +commands.forge.gen.complete=已在维度%3$d中生成%1$d/%2$d个新区块。 +commands.forge.gen.start=开始在维度%4$d中以(%2$d, %3$d)为中心螺旋生成%1$d个区块。 +commands.forge.entity.usage=使用/forge entity help显示子命令entity的更多信息。 +commands.forge.entity.list.usage=使用/forge entity list [filter] [dim]筛选符合给定条件的实体信息。 +commands.forge.entity.list.invalid=筛选器无效,无法匹配到任何实体。使用/forge entity list获取合法筛选器列表。 +commands.forge.entity.list.invalidworld=无法加载维度%d。请指定有效维度。 +commands.forge.entity.list.none=找不到实体。 +commands.forge.entity.list.single.header=实体:%s 总数:%d +commands.forge.entity.list.multiple.header=总数:%d +commands.forge.setdim.usage=用法:/forge setdim <实体> <维度> [ ] +commands.forge.setdim.invalid.entity=所选实体(%s)无效。 +commands.forge.setdim.invalid.dim=指定的维度ID(%d)无效。 +commands.forge.setdim.invalid.nochange=所选的实体(%s)已在指定的维度(%d)。 +commands.forge.dimensions.usage=用法:/forge dimensions +commands.forge.dimensions.list=当前已载入的维度,按种类划分: + +commands.forge.tracking.te.enabled=方块实体追踪已启用了%d秒。 +commands.forge.tracking.entity.enabled=实体追踪已启用了%d秒。 +commands.forge.tracking.usage=使用/forge track help显示追踪子命令的更多信息。 +commands.forge.tracking.start.usage=用法:/forge track <采样时间> +commands.forge.tracking.reset.usage=用法:/forge reset +commands.forge.tracking.reset=时间数据已清空! +commands.forge.tracking.te.usage=用法:/forge track te + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d]\: %s +commands.forge.tracking.noData=暂无数据记录。 +commands.tree_base.invalid_cmd=子命令 '%s' 无效! +commands.tree_base.invalid_cmd.list_subcommands=子命令 '%s' 无效!有效子命令:%d +commands.tree_base.available_subcommands=可用子命令:%s +forge.texture.preload.warning=警告:%s材质未被预加载,该问题将会导致渲染错误! +forge.client.shutdown.internal=正在关闭内置服务端... +forge.update.newversion=新的Forge版本已可用\: %s +forge.update.beta.1=%s警告:%sForge为Beta版 +forge.update.beta.2=更新可能会出现重大问题,请在报告前进行确认。 + +forge.configgui.forgeConfigTitle=Minecraft Forge配置 +forge.configgui.ctgy.forgeGeneralConfig.tooltip=你可以在此编辑forge.cfg里的设置。 +forge.configgui.ctgy.forgeGeneralConfig=常规设置 +forge.configgui.ctgy.forgeClientConfig.tooltip=forge.cfg中的设置仅影响客户端,通常为图形设置。 +forge.configgui.ctgy.forgeClientConfig=客户端设置 +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=你可以在此编辑forgeChunkLoading.cfg里的设置。 +forge.configgui.ctgy.forgeChunkLoadingConfig=Forge区块加载器默认设置 +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=你可以在这里自定义指定模组的覆盖设置以替代默认值。 +forge.configgui.ctgy.forgeChunkLoadingModConfig=模组设置覆盖 +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=允许你自定义指定模组中覆盖默认值的设置。取值为0则禁用有关模组的区块加载。 +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ 添加新的模组设置覆盖 +forge.configgui.ctgy.VersionCheckConfig=版本检测设置 + +forge.configgui.biomeSkyBlendRange.tooltip=控制不同生物群系中已着色天空之间的天空混色取值范围. +forge.configgui.biomeSkyBlendRange=生物群系天空混色取值范围 +forge.configgui.clumpingThreshold.tooltip=控制使Packet51优先于Packet52被选择的数字临界值。 +forge.configgui.clumpingThreshold=数据包成簇临界值 +forge.configgui.disableVersionCheck.tooltip=该项为true时会禁用Forge版本检测机制。Forge会在我们的服务器上对比查询一个较小的json文件以获取版本信息。关于更多细节请参阅我们在GitHub上的ForgeVersion类。 +forge.configgui.disableVersionCheck=禁用Forge版本检测 +forge.configgui.dimensionUnloadQueueDelay=维度卸载延时 +forge.configgui.dimensionUnloadQueueDelay.tooltip=服务器在卸载某个维度前的以刻为单位的等待时间。在快速加载或卸载维度的情况下(例如向下界传送门中按一定频率丢物品,迫使其保持加载),适当调整此选项会有所帮助。 +forge.configgui.enableGlobalConfig=启用全局配置 +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=该项为true时会在多个方块试图链接到同一流体时强制崩溃。 +forge.configgui.forceDuplicateFluidBlockCrash=强制重复崩溃的流体方块 +forge.configgui.fullBoundingBoxLadders.tooltip=该项为true时会检测整个实体是否碰到了梯子,而不是检测它们所处方块内。造成了显著的力学识别机制差异,因此默认值为Minecraft原版行为。 +forge.configgui.fullBoundingBoxLadders=对梯子的完全碰撞箱 +forge.configgui.removeErroringEntities.tooltip=该项为true时会移除在更新时出现错误的实体,并非关闭服务端并生成崩溃日志。警告:这可能会产生很严重的后果。请谨慎使用,我们不会对任何损失负责。 +forge.configgui.removeErroringEntities=移除出现错误的实体 +forge.configgui.removeErroringTileEntities.tooltip=该项为true时会移除在更新时出现错误的方块实体,并非关闭服务端并生成崩溃日志。警告:这可能会产生很严重的后果。请谨慎使用,我们不会对任何损失负责。 +forge.configgui.removeErroringTileEntities=移除出现错误的方块实体 +forge.configgui.sortRecipies.tooltip=该项为true时会启用Forge整理器的后初始化合成配方整理。冲突的合成配方可能会不同步。请了解:从配置界面更改后必须重启Minecraft。 +forge.configgui.sortRecipies=整理配方 +forge.configgui.zombieBabyChance.tooltip=小僵尸在所有僵尸(包括僵尸的子类)中的出现概率。更改此项可以修改僵尸生成机制。 +forge.configgui.zombieBabyChance=小僵尸概率 +forge.configgui.zombieBaseSummonChance.tooltip=僵尸召唤的基础生成概率。更改此项可以更改额外生成僵尸的机制。 +forge.configgui.zombieBaseSummonChance=僵尸召唤概率 +forge.configgui.stencilbits=启用GL模版缓冲 +forge.configgui.replaceBuckets=使用Forge的桶模型 +forge.configgui.forgeCloudsEnabled=使用Forge的云渲染 +forge.configgui.forgeCloudsEnabled.tooltip=将云的渲染交由GPU处理以获得更快的渲染速度。 +forge.configgui.forgeLightPipelineEnabled=Forge光照管线已启用 +forge.configgui.disableStairSlabCulling=禁用楼梯/台阶隐藏面剔除 +forge.configgui.zoomInMissingModelTextInGui=放大GUI中的模型缺失提示文本 +forge.configgui.disableStairSlabCulling.tooltip=若您可以在当前资源包环境下透视与楼梯/台阶接触的方块,请启用此选项 +forge.configgui.alwaysSetupTerrainOffThread=强制使用多线程区块渲染 +forge.configgui.alwaysSetupTerrainOffThread.tooltip=启用此选项后,Forge会将所有区块更新加入独立的区块更新线程。此选项或能大幅提升FPS,但同时也有可能产生奇怪的渲染卡顿。不推荐在可用核心数低的电脑上启用此选项。 +forge.configgui.allowEmissiveItems=允许物品渲染发光效果 +forge.configgui.allowEmissiveItems.tooltip=允许物品在渲染时检测并正确绘制带发光效果的纹理。启用此选项允许发光的方块的物品形态有和方块类似的发光效果,但会略微影响性能。 +forge.configgui.selectiveResourceReloadEnabled=启用选择性资源加载 +forge.configgui.selectiveResourceReloadEnabled.tooltip=启用此选项可令某些资源重载过程(例如语言切换)速度更快。 + +forge.configgui.modID.tooltip=你想要定义设置覆盖的Mod ID。 +forge.configgui.modID=Mod ID +forge.configgui.asyncChunkLoading=异步区块加载 +forge.configgui.asyncChunkLoading.tooltip=为玩家异步加载区块,可减轻服务器线程的压力。禁用后对调试区块加载问题有帮助。 +forge.configgui.dormantChunkCacheSize.tooltip=未加载区块会被首先保留在一个未被使用的缓存内以使加载耗时更短. 请在这里明确其大小(单位为区块数). +forge.configgui.dormantChunkCacheSize=休眠区块缓存大小 +forge.configgui.enableModOverrides.tooltip=启用该项设置可自定义一些模组的设置。 +forge.configgui.enableModOverrides=启用模组设置覆盖 +forge.configgui.maximumChunksPerTicket.tooltip=该项为一个可影响最大区块数的单独标签。 +forge.configgui.maximumChunksPerTicket=每个标签内的区块数限制 +forge.configgui.maximumTicketCount.tooltip=该项为一个模组的区块加载请求能够被允许提出的最大数量. +forge.configgui.maximumTicketCount=模组标签数量限制 +forge.configgui.playerTicketCount.tooltip=分配给一个玩家而不是一个模组的最大标签数量。该项对所有模组共享,由不同的模组确定。 +forge.configgui.playerTicketCount=玩家标签数量限制 +forge.configgui.logCascadingWorldGeneration=日志记录层叠世界生成 +forge.configgui.logCascadingWorldGeneration.tooltip=日志记录生成层叠区块时的地形填充问题。 +forge.configgui.fixVanillaCascading=修复原版层叠世界生成问题 +forge.configgui.fixVanillaCascading.tooltip=修复在原版世界生成中导致多余区块被加载问题的一些漏洞。这将会从原版中更改世界生成配置。当此项启用时,请不要反馈发生的问题。 + +fml.config.sample.basicDouble.tooltip=没有限定的双精度浮点数属性。 +fml.config.sample.basicDouble=无界双精度浮点数 +fml.config.sample.basicInteger.tooltip=没有定义边界的整数属性。 +fml.config.sample.basicInteger=未定界整数 +fml.config.sample.basicString.tooltip=基础字符串属性,用户可以输入任意文本。 +fml.config.sample.basicString=基本字符串 +fml.config.sample.booleanList.tooltip=没有限定最大长度的布尔值列表。 +fml.config.sample.booleanList=基础布尔值列表 +fml.config.sample.booleanListFixed.tooltip=固定长度为8的布尔值列表。 +fml.config.sample.booleanListFixed=定长布尔列表 +fml.config.sample.booleanListMax.tooltip=最大长度为10的布尔值列表。 +fml.config.sample.booleanListMax=限长布尔值列表 +fml.config.sample.boundedDouble.tooltip=定义了边界的双精度浮点数属性。 +fml.config.sample.boundedDouble=定界双精度浮点数 +fml.config.sample.boundedInteger.tooltip=定义了边界的整数属性。 +fml.config.sample.boundedInteger=定界整数 +fml.config.sample.chatColorPicker.tooltip=字体颜色的特殊属性可选。 +fml.config.sample.chatColorPicker=聊天颜色选择器 +fml.config.sample.ctgy.lists.tooltip=提供了多种多样的数组属性控件。 +fml.config.sample.ctgy.lists=示例数组控件 +fml.config.sample.ctgy.numbers.tooltip=提供了一系列的数字控件。 +fml.config.sample.ctgy.numbers=示例数字控件 +fml.config.sample.ctgy.strings.tooltip=提供了不同类型的字符串控件。 +fml.config.sample.ctgy.strings=示例字符串控件 +fml.config.sample.cycleString.tooltip=拥有可循环有效值定义表的字符串属性。 +fml.config.sample.cycleString=循环值字符串 +fml.config.sample.doubleList.tooltip=没有限定最大长度的双精度浮点数列表。 +fml.config.sample.doubleList=基础双精度浮点数列表 +fml.config.sample.doubleListBounded.tooltip=有界双精度浮点数组成的列表。 +fml.config.sample.doubleListBounded=有界双精度浮点数列表 +fml.config.sample.doubleListFixed.tooltip=固定长度为10的双精度浮点数列表。 +fml.config.sample.doubleListFixed=定长双精度浮点数列表 +fml.config.sample.doubleListMax.tooltip=最大长度为15的双精度浮点数列表。 +fml.config.sample.doubleListMax=限长双精度浮点数列表 +fml.config.sample.imABoolean.tooltip=是,差不多就是……我是布尔控件。 +fml.config.sample.imABoolean=我是布尔值 +fml.config.sample.imADouble.tooltip=那些是双精度浮点数,我可能既是情报局,又是克格勃。我连自己都搞不清。 +fml.config.sample.imADouble=我是双精度浮点数 +fml.config.sample.imAString.tooltip=嗯。我知道你想让我来推广你的洗衣粉。\n<*只是个字符串。*>\n字符串和洗衣粉又有什么区别?我们什么都可以卖。\n<*好。我继承了一个相当长的字符串,十二万公里长,我觉得我得打个广告……*>\n那是肯定的!规模好比国家运动。好用的字符串,无污染的字符串。\n<*啊,但是有一个问题。你看,因为设计得不好,这十二万公里都挤在三寸长的框里了。所以他根本就没用。*>\n好了,这就是卖点了!辛普森的字符串!秘制独家!质量绝佳!妈妈见了不停夸!爸爸见了笑哈哈!字符串的选择,尽在辛普森家! +fml.config.sample.imAString=我是字符串 +fml.config.sample.imAnInteger.tooltip=我刚才说我是整数?哦,我知道了。 +fml.config.sample.imAnInteger=我是整数 +fml.config.sample.integerList.tooltip=没有限定最大长度的整数列表。 +fml.config.sample.integerList=基础整数列表 +fml.config.sample.integerListBounded.tooltip=有界整数组成的列表。 +fml.config.sample.integerListBounded=有界整数列表 +fml.config.sample.integerListFixed.tooltip=固定长度为10的整数列表。 +fml.config.sample.integerListFixed=定长整数列表 +fml.config.sample.integerListMax.tooltip=最大长度为15的整数列表。 +fml.config.sample.integerListMax=限长整数列表 +fml.config.sample.modIDSelector.tooltip=允许用户从所有已安装的模组中选择一个模组的特殊属性。这个属性也可以稍作修改用于选择:生物群系,实体,物品,方块等。 +fml.config.sample.modIDSelector=Mod ID选择器 +fml.config.sample.patternString.tooltip=验证匹配模式的字符串属性。 +fml.config.sample.patternString=模式验证字符串 +fml.config.sample.sliderDouble.tooltip=使用滑块控件,定义边界的双精度浮点数。 +fml.config.sample.sliderDouble=双精度浮点数滑块 +fml.config.sample.sliderInteger.tooltip=使用滑块控件,定义边界的整数属性。 +fml.config.sample.sliderInteger=整数滑块 +fml.config.sample.stringList.tooltip=没有任何验证的基础字符串列表。 +fml.config.sample.stringList=基础字符串列表 +fml.config.sample.stringListFixed.tooltip=固定长度为7的字符串列表。 +fml.config.sample.stringListFixed=定长字符串列表 +fml.config.sample.stringListMax.tooltip=最大长度为15的字符串列表。 +fml.config.sample.stringListMax=限长字符串列表 +fml.config.sample.stringListPattern.tooltip=验证每个值匹配模式的字符串列表。 +fml.config.sample.stringListPattern=模式验证字符串列表 +fml.config.sample.stringListCustom=自定义条目列表 +fml.config.sample.title=这只是配置界面的示例,不会保存修改结果。 + +fml.configgui.applyGlobally=应用到全局 +fml.configgui.confirmRestartMessage=我知道了 +fml.configgui.gameRestartRequired=有一个或多个设置需要重新启动 Minecraft 才能生效。 +fml.configgui.gameRestartTitle=需要重新启动Minecraft +fml.configgui.sampletext=示例文本 +fml.configgui.tooltip.addNewEntryAbove=在上面添加新条目 +fml.configgui.tooltip.applyGlobally=在全局应用撤消更改或重置为默认值。 +fml.configgui.tooltip.removeEntry=删除条目 +fml.configgui.tooltip.resetAll=重置所有设置为默认值。如果勾选“应用到全局”复选框,子屏幕的也会重置。 +fml.configgui.tooltip.resetToDefault=重置为默认值 +fml.configgui.tooltip.undoAll=撤消所有更改。如果勾选“应用到全局”复选框,子屏幕的更改也将撤消。 +fml.configgui.tooltip.undoChanges=撤消更改 +fml.configgui.tooltip.default=[默认值\: %s] +fml.configgui.tooltip.defaultNumeric=[范围\: %s ~ %s,默认值\: %s] + +forge.controlsgui.shift=SHIFT + %s +forge.controlsgui.control=CTRL + %s +forge.controlsgui.control.mac=CMD + %s +forge.controlsgui.alt=ALT + %s + +fml.menu.mods=模组 +fml.menu.mods.normal=普通 +fml.menu.mods.search=搜索: +fml.menu.modoptions=模组设置 + +item.forge.bucketFilled.name=%s桶 + +fml.messages.mod.missing.dependencies=%s 缺少它所依赖的一个或多个模组。 +fml.messages.mod.missing.dependencies.fix=请安装下列版本的模组,或选择删除 %s。 +fml.messages.mod.missing.dependencies.compatibility=要使用%s,你必须安装正确的依赖项: +fml.messages.mod.missing.dependencies.missing=缺失 +fml.messages.mod.missing.dependencies.compatible.with=仅兼容 %s +fml.messages.mod.missing.dependencies.requires=要求 %s +fml.messages.mod.missing.dependencies.you.have=你安装了%s +fml.messages.mod.missing.dependencies.see.log=参见日志'%s'获取技术信息。 +fml.messages.mod.missing.dependencies.multiple=一些模组缺少依赖模组。 +fml.messages.mod.missing.dependencies.multiple.issues=要使用下列模组,你必须安装正确的依赖项: +fml.messages.mod.missing.multiple=加载Minecraft出现了%s个错误 +fml.messages.mod.wrongminecraft=下列模组无法在Minecraft %s上运行 +fml.messages.mod.wrongminecraft.requirement=%s(%s)只能在%s版本的Minecraft上运行 +fml.messages.mod.wrongminecraft.fix=请尝试更新或删除%s。 +fml.messages.mod.wrongminecraft.fix.multiple=请尝试更新或删除这些模组。 +fml.messages.version.restriction.any=任意版本 +fml.messages.version.restriction.lower.inclusive=%s或更高版本 +fml.messages.version.restriction.lower.exclusive=高于%s的版本 +fml.messages.version.restriction.upper.inclusive=%s或更低版本 +fml.messages.version.restriction.upper.exclusive=低于%s的版本 +fml.messages.version.restriction.bounded=介于%s和%s之间的版本 +fml.messages.version.restriction.bounded.inclusive=%s(含)到 %s(含) +fml.messages.version.restriction.bounded.exclusive=%s(不含)到 %s(不含) +fml.messages.version.restriction.bounded.lowerexclusive=%s(不含)到 %s(含) +fml.messages.version.restriction.bounded.upperexclusive=%s(含)到 %s(不含) + +fml.button.continue=继续 +fml.button.open.mods.folder=打开Mods文件夹 +fml.button.open.file=打开%s + +forge.container.enchant.limitedEnchantability=附魔能力限制 +attribute.name.generic.reachDistance=触及半径 +attribute.name.forge.swimSpeed=游泳速度 + diff --git a/src/main/resources/assets/forge/lang/zh_tw.lang b/src/main/resources/assets/forge/lang/zh_tw.lang new file mode 100644 index 00000000..a7c0b41e --- /dev/null +++ b/src/main/resources/assets/forge/lang/zh_tw.lang @@ -0,0 +1,243 @@ +commands.forge.usage=使用 /forge +commands.forge.usage.tracking=使用 /forge track 。可追蹤的類型為“te”(方塊實體)。採樣時間必須在60秒內。 +commands.forge.usage.help=使用 help [command] 以查看該指令的用途。 +commands.forge.tps.summary=%s:平均一刻時間:%d ms。平均每秒刻數:%d +commands.forge.tps.usage=使用 /forge tps [dimension] +commands.forge.gen.usage=使用 /forge gen [dimension] [interval] +commands.forge.gen.dim_fail=無法載入世界維度 %d,任務終止。 +commands.forge.gen.progress=生成進度:%d/%d +commands.forge.gen.complete=在維度 %3$d 中已生成 %1$d 個新區塊(共 %2$d 個區塊)。 +commands.forge.gen.start=開始在維度 %4$d 中以 (%2$d, %3$d) 為中心螺旋生成 %1$d 個區塊。 +commands.forge.entity.usage=使用 /forge entity help 以顯示實體子命令的更多資訊。 +commands.forge.entity.list.usage=使用 /forge entity list [filter] [dim] 以獲取符合篩選條件的實體資訊。 +commands.forge.entity.list.invalid=篩選器無效,未對應任何實體。使用 /forge entity list 以取得適當的清單 +commands.forge.entity.list.invalidworld=無法載入維度 %d 的世界。請選擇有效的維度。 +commands.forge.entity.list.none=找不到實體。 +commands.forge.entity.list.single.header=實體:%s 總數:%d +commands.forge.entity.list.multiple.header=總數:%d +commands.forge.setdim.usage=使用 /forge setdim [ ] +commands.forge.setdim.invalid.entity=所選擇實體 (%s) 無效。 +commands.forge.setdim.invalid.dim=指定的維度 ID (%d) 無效。 +commands.forge.setdim.invalid.nochange=所選擇的實體 (%s) 已位於指定的維度 (%d)。 +commands.forge.dimensions.usage=使用 /forge dimensions +commands.forge.dimensions.list=目前已記錄的維度類型: + +commands.forge.tracking.te.enabled=方塊實體追蹤已經啟用了 %d 秒。 +commands.forge.tracking.entity.enabled=實體追蹤已經啟用了 %d 秒。 +commands.forge.tracking.usage=使用 /forge track help 以顯示追蹤子命令的更多資訊。 +commands.forge.tracking.start.usage=使用 /forge track start +commands.forge.tracking.reset.usage=使用 /forge track reset +commands.forge.tracking.reset=時間資料已清空! +commands.forge.tracking.te.usage=使用 /forge track te + +commands.forge.tracking.timingEntry=%s - %s [%d, %d, %d]\: %s +commands.forge.tracking.noData=尚無資料記錄。 +commands.tree_base.invalid_cmd=子命令 '%s' 無效! +commands.tree_base.invalid_cmd.list_subcommands=子命令 '%s' 無效!可用的子命令:%s +commands.tree_base.available_subcommands=可用的子命令:%s +forge.texture.preload.warning=警告:材質 %s 未被預載,可能會導致畫面異常! +forge.client.shutdown.internal=正在停止內部伺服器... +forge.update.newversion=新的 Forge 版本已可使用:%s +forge.update.beta.1=%s警告:%sForge為Beta版 +forge.update.beta.2=可能會出現重要問題,請在報告前進行確認。 + +forge.configgui.forgeConfigTitle=Minecraft Forge 設定 +forge.configgui.ctgy.forgeGeneralConfig.tooltip=你可以在此編輯 forge.cfg 內的設定。 +forge.configgui.ctgy.forgeGeneralConfig=通用設定 +forge.configgui.ctgy.forgeClientConfig.tooltip=在 forge.cfg 中的設定只影響用戶端,通常是畫面設定。 +forge.configgui.ctgy.forgeClientConfig=用戶端設置 +forge.configgui.ctgy.forgeChunkLoadingConfig.tooltip=你可以在此編輯 forgeChunkLoading.cfg 內的設定。 +forge.configgui.ctgy.forgeChunkLoadingConfig=Forge 區塊載入器預設設定 +forge.configgui.ctgy.forgeChunkLoadingModConfig.tooltip=你可以在這裡定義模組指定覆蓋設定以取代預設值。 +forge.configgui.ctgy.forgeChunkLoadingModConfig=模組覆蓋設定 +forge.configgui.ctgy.forgeChunkLoadingAddModConfig.tooltip=允許你定義模組指定覆蓋預設值的設定。若值為零將停用該模組的區塊載入。 +forge.configgui.ctgy.forgeChunkLoadingAddModConfig=+ 新增模組覆蓋設定 +forge.configgui.ctgy.VersionCheckConfig=版本檢查設定 + +forge.configgui.biomeSkyBlendRange.tooltip=調整生態域內天空顏色的混合範圍。 +forge.configgui.biomeSkyBlendRange=生態域天空混合範圍 +forge.configgui.clumpingThreshold.tooltip=調整 Packet51 優先於 Packet52 的閥值。 +forge.configgui.clumpingThreshold=封包叢集閥值 +forge.configgui.disableVersionCheck.tooltip=將此設為 true 以停用 Forge 的版本檢查機制。Forge 會下載我們的伺服器上的版本資訊 json 檔。在 github 上的 ForgeVersion class 有更多詳細資訊。 +forge.configgui.disableVersionCheck=停用 Forge 版本檢查 +forge.configgui.dimensionUnloadQueueDelay=維度卸載延遲 +forge.configgui.dimensionUnloadQueueDelay.tooltip=伺服器卸載維度前的等待時間。在快速載入/卸載維度的情況下將有所幫助,例如往地獄傳送門中每秒投入數次物品時。 +forge.configgui.enableGlobalConfig=啟用全域配置 +forge.configgui.forceDuplicateFluidBlockCrash.tooltip=將此設為 true 以在多個方塊嘗試連接到同一個流體時強制崩潰。 +forge.configgui.forceDuplicateFluidBlockCrash=強制崩潰重複的流體方塊 +forge.configgui.fullBoundingBoxLadders.tooltip=將此項設為 true 以檢查整個實體碰撞箱是否接觸到梯子,而非檢查實體所在處的方塊。會導致顯著的機制差異,故預設值為原版行為。 +forge.configgui.fullBoundingBoxLadders=梯子完整碰撞箱 +forge.configgui.removeErroringEntities.tooltip=將此設為 true 以刪除所有在更新時發生錯誤的實體,而非關閉伺服器並產生崩潰記錄。 注意:這可能會搞砸一切,請謹慎使用,我們不對任何損害負責。 +forge.configgui.removeErroringEntities=刪除發生錯誤的實體 +forge.configgui.removeErroringTileEntities.tooltip=將此設為 true 以刪除所有在更新時發生錯誤的方塊實體,而非關閉伺服器並產生崩潰記錄。 注意:這可能會搞砸一切,請謹慎使用,我們不對任何損害負責。 +forge.configgui.removeErroringTileEntities=刪除發生錯誤的方塊實體 +forge.configgui.sortRecipies.tooltip=將此設為 true 以使用 Forge 的後期初始化排序來排序合成配方。可能會使衝突的合成配方不同步。注意:從設定介面更改後必須重啟 Minecraft。 +forge.configgui.sortRecipies=排序合成配方 +forge.configgui.zombieBabyChance.tooltip=殭屍(與衍生怪)是小殭屍的機率。 能更改殭屍出現的機制。 +forge.configgui.zombieBabyChance=小殭屍機率 +forge.configgui.zombieBaseSummonChance.tooltip=殭屍召喚的基礎生成機率。更改此項可以更改殭屍額外生成的機制。 +forge.configgui.zombieBaseSummonChance=殭屍召喚機率 +forge.configgui.stencilbits=啟用 GL 模版位元 +forge.configgui.replaceBuckets=使用 Forge 的桶子模型 +forge.configgui.forgeCloudsEnabled=使用 Forge 的雲渲染 +forge.configgui.forgeCloudsEnabled.tooltip=將雲的渲染交由 GPU 處理以獲得更快的渲染速度。 +forge.configgui.forgeLightPipelineEnabled=Forge 光照管線已啟用 +forge.configgui.disableStairSlabCulling=停用階梯/半磚裁剪。 +forge.configgui.zoomInMissingModelTextInGui=放大介面中的模型遺漏提示文字 +forge.configgui.disableStairSlabCulling.tooltip=若你當前的資源包可透視與階梯/半磚接觸的方塊,請啟用此選項 +forge.configgui.alwaysSetupTerrainOffThread=強制使用多執行緒區塊渲染 +forge.configgui.alwaysSetupTerrainOffThread.tooltip=啟用以讓 Forge 將所有區塊更新列隊於區塊更新執行緒。應能大幅提升 FPS,但也有可能造成奇怪的渲染卡頓。不建議用於可用核心數較少的電腦上。 +forge.configgui.allowEmissiveItems=渲染發光物品 +forge.configgui.allowEmissiveItems.tooltip=使物品渲染時偵測發光材質並正確渲染。這會讓發光方塊與其在物品欄內的亮度相同,但是會稍微影響效能。 +forge.configgui.selectiveResourceReloadEnabled=啟用選擇性資源載入 +forge.configgui.selectiveResourceReloadEnabled.tooltip=啟用時,可以提升如更改語言等特定操作的重新載入速度。 + +forge.configgui.modID.tooltip=你欲定義覆蓋設定的模組 ID。 +forge.configgui.modID=模組 ID +forge.configgui.asyncChunkLoading=非同步區塊載入 +forge.configgui.asyncChunkLoading.tooltip=為玩家非同步載入區塊,可減輕伺服器執行緒載入的負擔。停用有助於除錯區塊載入問題。 +forge.configgui.dormantChunkCacheSize.tooltip=未載入的區塊可以先保存在休眠快取中以節省載入時間。請在這裡指定快取大小(單位為區塊)。 +forge.configgui.dormantChunkCacheSize=休眠區塊的快取大小 +forge.configgui.enableModOverrides.tooltip=啟用這個選項能讓你定義個別模組的設定。 +forge.configgui.enableModOverrides=啟用模組設定覆蓋 +forge.configgui.maximumChunksPerTicket.tooltip=這是一個 ticket 可影響的最大區塊數目。 +forge.configgui.maximumChunksPerTicket=每個 ticket 區塊數量上限 +forge.configgui.maximumTicketCount.tooltip=這是每個模組可要求的區塊載入數量。 +forge.configgui.maximumTicketCount=模組的 ticket 數量上限 +forge.configgui.playerTicketCount.tooltip=分配給一個玩家而非一個模組的最大 ticket 數量。這共享於所有的模組,取決於使用它的模組。 +forge.configgui.playerTicketCount=玩家 tickets 數量上限 +forge.configgui.logCascadingWorldGeneration=記錄世界生成連鎖 +forge.configgui.logCascadingWorldGeneration.tooltip=記錄地形生成過程中出現的區塊生成連鎖。 +forge.configgui.fixVanillaCascading=修復原版世界生成的連鎖問題 +forge.configgui.fixVanillaCascading.tooltip=修復原版世界生成器多餘區塊載入所導致的各種錯誤。這會影響到原版的世界生成器運作方式。請不要回報與原版世界生成不一致的現象。 + +fml.config.sample.basicDouble.tooltip=沒有定義邊界的倍精度浮點屬性。 +fml.config.sample.basicDouble=未定義的倍精度浮點數 +fml.config.sample.basicInteger.tooltip=沒有定義邊界的整數屬性。 +fml.config.sample.basicInteger=未定義的整數 +fml.config.sample.basicString.tooltip=基礎的字串屬性。使用者可以在此文字框內輸入任何內容。 +fml.config.sample.basicString=基本字串 +fml.config.sample.booleanList.tooltip=未限制最大長度的布林值清單,可被延長或縮短。 +fml.config.sample.booleanList=基礎布林值清單 +fml.config.sample.booleanListFixed.tooltip=長度固定為8的布林值清單。 +fml.config.sample.booleanListFixed=定長布林值清單 +fml.config.sample.booleanListMax.tooltip=長度固定為10的布林值清單。 +fml.config.sample.booleanListMax=限長布林值清單 +fml.config.sample.boundedDouble.tooltip=已定義邊界的倍精度浮點屬性。 +fml.config.sample.boundedDouble=已定義的倍精度浮點數 +fml.config.sample.boundedInteger.tooltip=已定義邊界的整數屬性。 +fml.config.sample.boundedInteger=已定義的整數 +fml.config.sample.chatColorPicker.tooltip=讓使用者可以選擇字體色碼的特殊屬性。 +fml.config.sample.chatColorPicker=聊天顏色選擇器 +fml.config.sample.ctgy.lists.tooltip=提供各種可用的屬性組合控制項。 +fml.config.sample.ctgy.lists=範例組合控制項 +fml.config.sample.ctgy.numbers.tooltip=提供可用的一系列數字控制項。 +fml.config.sample.ctgy.numbers=範例數字控制項 +fml.config.sample.ctgy.strings.tooltip=提供可用的各種字串類型控制項。 +fml.config.sample.ctgy.strings=範例字串控制項 +fml.config.sample.cycleString.tooltip=具有可循環有效值定義清單的字串屬性。 +fml.config.sample.cycleString=循環值字串 +fml.config.sample.doubleList.tooltip=未限制最大長度的倍精度浮點數清單,可被延長或縮短。 +fml.config.sample.doubleList=基礎倍精度浮點數清單 +fml.config.sample.doubleListBounded.tooltip=有界倍精度浮點數組成的清單。 +fml.config.sample.doubleListBounded=有界倍精度浮點數清單 +fml.config.sample.doubleListFixed.tooltip=固定長度為10的倍精度浮點數清單。 +fml.config.sample.doubleListFixed=定長倍精度浮點數清單 +fml.config.sample.doubleListMax.tooltip=最大長度為15的倍精度浮點數清單。 +fml.config.sample.doubleListMax=限長倍精度浮點數清單 +fml.config.sample.imABoolean.tooltip=沒錯,差不多是這樣...... 我是布林控制項。 +fml.config.sample.imABoolean=我是布林值 +fml.config.sample.imADouble.tooltip=有兩個我。我可能是屬於 CIA 或 KGB。我也不清楚。 +fml.config.sample.imADouble=我是倍精度浮點數 +fml.config.sample.imAString.tooltip=嗯。我知道你想讓我來推廣你的洗衣粉。\n<*只是個字串。*>\n字串和洗衣粉有什麼區別?我們什麼都可以賣。\n<*好。我繼承了一個相當長的字串,二十萬公里長,我覺得我得打個廣告……*>\n那是一定要的!打到國家電視台。好用的字串,無污染的字串。\n<*啊,但是有一個問題。你看,因為設計得不好,這二十萬公里都擠在兩寸長的框裡了。所以他根本就沒用。*>\n這就是賣點了! 「辛普森字串!秘製獨家!質量絕佳!媽媽見了不停誇!爸爸見了笑哈哈!字串的選擇,就在辛普森!」 +fml.config.sample.imAString=我是字串 +fml.config.sample.imAnInteger.tooltip=我剛才有說我是整數?哦,我知道了。 +fml.config.sample.imAnInteger=我是整數 +fml.config.sample.integerList.tooltip=未限制最大長度的整數清單,可被延長或縮短。 +fml.config.sample.integerList=基礎整數清單 +fml.config.sample.integerListBounded.tooltip=有界整數組成的清單。 +fml.config.sample.integerListBounded=有界整數清單 +fml.config.sample.integerListFixed.tooltip=固定長度為10的整數清單。 +fml.config.sample.integerListFixed=定長整數清單 +fml.config.sample.integerListMax.tooltip=最大長度為15的整數清單。 +fml.config.sample.integerListMax=限長整數清單 +fml.config.sample.modIDSelector.tooltip=允許使用者從所有已安裝模組的列表中選擇一個模組 ID 的特殊屬性。可以稍微修改以用於各種用途,例如:選擇生態域,選擇實體,選擇道具,選擇方塊...等。 +fml.config.sample.modIDSelector=模組 ID 選擇器 +fml.config.sample.patternString.tooltip=利用 Pattern 物件驗證的字串屬性。 +fml.config.sample.patternString=Pattern 驗證字串 +fml.config.sample.sliderDouble.tooltip=使用滑動條控制項定義邊界的倍精度浮點數。 +fml.config.sample.sliderDouble=倍精度浮點數滑動條 +fml.config.sample.sliderInteger.tooltip=使用滑動條控制項定義邊界的整數屬性。 +fml.config.sample.sliderInteger=整數滑動條 +fml.config.sample.stringList.tooltip=基礎字串清單,沒有任何驗證。 +fml.config.sample.stringList=基礎字串清單 +fml.config.sample.stringListFixed.tooltip=固定長度為7的字串清單。 +fml.config.sample.stringListFixed=定長字串清單 +fml.config.sample.stringListMax.tooltip=最大長度為15的字串清單。 +fml.config.sample.stringListMax=限長字串清單 +fml.config.sample.stringListPattern.tooltip=使用 Pattern 物件驗證每個值的字串清單。 +fml.config.sample.stringListPattern=Pattern 驗證字串清單 +fml.config.sample.stringListCustom=自定義條目清單 +fml.config.sample.title=這只是設定界面的行為範例。變更不會被保存。 + +fml.configgui.applyGlobally=適用於全域 +fml.configgui.confirmRestartMessage=我知道了 +fml.configgui.gameRestartRequired=有一個或一個以上的設定需要重新啟動 Minecraft 才能生效。 +fml.configgui.gameRestartTitle=需要重新啟動 Minecraft +fml.configgui.sampletext=範例文字 +fml.configgui.tooltip.addNewEntryAbove=在上面添加新條目 +fml.configgui.tooltip.applyGlobally=全域套用撤銷更改或重設為預設值。 +fml.configgui.tooltip.removeEntry=移除條目 +fml.configgui.tooltip.resetAll=將所有設定重設為預設值。如果勾選適用於全域則子畫面也會重設。 +fml.configgui.tooltip.resetToDefault=重置為預設 +fml.configgui.tooltip.undoAll=將所有變更撤銷。如果勾選適用於全域則子畫面也會重設。 +fml.configgui.tooltip.undoChanges=復原變更 +fml.configgui.tooltip.default=[預設: %s] +fml.configgui.tooltip.defaultNumeric=[範圍: %s ~ %s ,預設: %s] + +forge.controlsgui.shift=SHIFT + %s +forge.controlsgui.control=CTRL + %s +forge.controlsgui.control.mac=CMD + %s +forge.controlsgui.alt=ALT + %s + +fml.menu.mods=模組 +fml.menu.mods.normal=一般 +fml.menu.mods.search=搜尋: +fml.menu.modoptions=模組選項... + +item.forge.bucketFilled.name=%s桶 + +fml.messages.mod.missing.dependencies=%s 缺乏其依存的模組。 +fml.messages.mod.missing.dependencies.fix=請安裝以下模組,或是刪除 %s。 +fml.messages.mod.missing.dependencies.compatibility=你必須為 %s 安裝正確的依存項目: +fml.messages.mod.missing.dependencies.missing=遺漏 +fml.messages.mod.missing.dependencies.compatible.with=僅相容於 %s +fml.messages.mod.missing.dependencies.requires=需要 %s +fml.messages.mod.missing.dependencies.you.have=你擁有 %s +fml.messages.mod.missing.dependencies.see.log=查閱 '%s' 以獲取技術資訊。 +fml.messages.mod.missing.dependencies.multiple=部分模組缺乏其相依的模組。 +fml.messages.mod.missing.dependencies.multiple.issues=你必須為下列模組安裝正確的依存項目: +fml.messages.mod.missing.multiple=載入 Minecraft 時發現了 %s 個錯誤 +fml.messages.mod.wrongminecraft=下列模組無法在 Minecraft 的 %s 版本上運作 +fml.messages.mod.wrongminecraft.requirement=%s (%s) 需要使用 %s 版本的 Minecraft +fml.messages.mod.wrongminecraft.fix=請嘗試更新或刪除 %s。 +fml.messages.mod.wrongminecraft.fix.multiple=請嘗試更新或刪除這些模組。 +fml.messages.version.restriction.any=任意 +fml.messages.version.restriction.lower.inclusive=%s 或更高 +fml.messages.version.restriction.lower.exclusive=高於 %s +fml.messages.version.restriction.upper.inclusive=%s 或更低 +fml.messages.version.restriction.upper.exclusive=低於 %s +fml.messages.version.restriction.bounded=介於 %s 和 %s 之間 +fml.messages.version.restriction.bounded.inclusive=介於 %s 和 %s 之間(含) +fml.messages.version.restriction.bounded.exclusive=介於 %s 和 %s 之間(不含) +fml.messages.version.restriction.bounded.lowerexclusive=高於 %s,以及 %s 或更低 +fml.messages.version.restriction.bounded.upperexclusive=%s 或更高,以及低於 %s + +fml.button.continue=繼續 +fml.button.open.mods.folder=開啟 Mods 資料夾 +fml.button.open.file=開啟 %s + +forge.container.enchant.limitedEnchantability=附魔能力限制 +attribute.name.generic.reachDistance=觸及半徑 +attribute.name.forge.swimSpeed=游泳速度 + diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index c7c45dcf..489d523e 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/log4j2_server.xml b/src/main/resources/log4j2_server.xml index 05215b10..8e89520b 100644 --- a/src/main/resources/log4j2_server.xml +++ b/src/main/resources/log4j2_server.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 00000000..d7895a25 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "Cleanroom Resources", + "pack_format": 3 + } +} \ No newline at end of file