diff --git a/.gitignore b/.gitignore index 98b4d70ee..07ea872af 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,5 @@ docs/ CROSSPLATFORM_PLAN.md .qa/ + +__pycache__/ diff --git a/README.md b/README.md index 21ffdb69c..21529dfd4 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ seed. The master branch targets the current Minecraft version (26.2). Consider supporting development by buying Iris on Spigot. +## Language and localization + +Canonical English is defined in the typed Java catalogs under `core/src/main/java/art/arcane/iris/core/localization`, next to the command, Studio, runtime, and UI surfaces that use it. Iris does not ship an English server translation file; the required Minecraft client asset remains at `assets/irisworldgen/lang/en_us.json`. Complete server bundles and matching client assets are included for German, Spanish, Finnish, French, Hebrew, Italian, Japanese, Korean, Lithuanian, Dutch, Polish, Portuguese, Russian, Turkish, Vietnamese, Simplified Chinese, and Traditional Chinese. Set `language` in Iris settings to select one. A JSON file at `languages/overrides/.json` can override only selected server messages; omitted entries resolve from the bundle and then code-owned English. + ## Platforms | Platform | Artifact | Minecraft | Notes | diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java index a59240a61..b99d25579 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/Iris.java @@ -38,6 +38,7 @@ import art.arcane.iris.core.runtime.TransientWorldCleanupSupport; import art.arcane.iris.core.runtime.WorldRuntimeControlService; import art.arcane.iris.core.lifecycle.WorldLifecycleStaging; import art.arcane.iris.core.link.IrisPapiExpansion; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.core.link.MultiverseCoreLink; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.nms.INMS; @@ -606,6 +607,7 @@ public class Iris extends VolmitPlugin implements Listener, ReloadAware { private void enable() { alreadyDrained.set(false); + IrisLanguage.initialize(); PaperLibBootstrap.install(); SimdSupport.install(); services = new KMap<>(); @@ -1110,9 +1112,11 @@ public class Iris extends VolmitPlugin implements Listener, ReloadAware { configHotloadEngine.processFileChange(file, ignored -> { IrisSettings.invalidate(); IrisSettings.get(); + IrisLanguage.reload(); return true; }, ignored -> Iris.info("Hotloaded settings.json ")); } + IrisLanguage.update(); } private static boolean isSettingsFile(File file) { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java index bac2757e1..41a62cbc2 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDatapack.java @@ -29,42 +29,45 @@ import art.arcane.volmlib.util.director.annotations.Param; import java.util.List; -@Director(name = "datapack", aliases = {"datapacks", "dp"}, description = "Download & manage external datapack imports (Modrinth)") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +@Director(name = "datapack", aliases = {"datapacks", "dp"}, description = "Download & manage external datapack imports (Modrinth)", descriptionKey = "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth") public class CommandDatapack implements DirectorExecutor { - @Director(description = "Download/update every datapack listed in a pack dimension's 'datapackImports' and install it into the world so its structures register like vanilla", aliases = {"pull"}) + @Director(description = "Download/update every datapack listed in a pack dimension's 'datapackImports' and install it into the world so its structures register like vanilla", descriptionKey = "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into", aliases = {"pull"}) public void ingest( - @Param(description = "Restart the server when new datapacks are installed (required for new structures to register and generate)", defaultValue = "false") + @Param(description = "Restart the server when new datapacks are installed (required for new structures to register and generate)", descriptionKey = "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate", defaultValue = "false") boolean restart ) { VolmitSender sender = sender(); - sender.sendMessage(C.GRAY + "Starting datapack ingest..."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_STARTING_DATAPACK_INGEST)); J.a(() -> DatapackIngestService.ingestAll(sender, restart)); } - @Director(description = "List configured datapack imports and their installed versions", aliases = {"ls"}) + @Director(description = "List configured datapack imports and their installed versions", descriptionKey = "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions", aliases = {"ls"}) public void list() { VolmitSender sender = sender(); KList configured = DatapackIngestService.collectConfiguredImports(); List installed = DatapackIngestService.installed(); - sender.sendMessage(C.GREEN + "Configured datapack imports: " + C.WHITE + configured.size()); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_CONFIGURED_DATAPACK_IMPORTS, MessageArgument.untrusted("value", configured.size()))); for (String url : configured) { - sender.sendMessage(C.GRAY + " - " + C.WHITE + url); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_MESSAGE, MessageArgument.untrusted("url", url))); } - sender.sendMessage(C.GREEN + "Installed datapacks: " + C.WHITE + installed.size()); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_INSTALLED_DATAPACKS, MessageArgument.untrusted("value", installed.size()))); for (DatapackIngestService.Entry entry : installed) { - sender.sendMessage(C.GRAY + " - " + C.WHITE + entry.id + C.GRAY + " " + (entry.versionNumber == null ? "?" : entry.versionNumber)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_MESSAGE_2, MessageArgument.untrusted("value", entry.id), MessageArgument.untrusted("value2", (entry.versionNumber == null ? "?" : entry.versionNumber)))); } if (configured.isEmpty()) { - sender.sendMessage(C.YELLOW + "Add Modrinth URLs to a dimension's 'datapackImports' list, then run /iris datapack ingest."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DATAPACK_ADD_MODRINTH_URLS_DIMENSION_S_DATAPACKIMPORTS_LIST_THEN_RUN_IRIS)); } } - @Director(description = "Remove an installed datapack by id (also delete its URL from datapackImports to keep it gone)", aliases = {"rm"}) + @Director(description = "Remove an installed datapack by id (also delete its URL from datapackImports to keep it gone)", descriptionKey = "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep", aliases = {"rm"}) public void remove( - @Param(description = "The datapack id (folder name) shown by /iris datapack list") + @Param(description = "The datapack id (folder name) shown by /iris datapack list", descriptionKey = "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list") String id ) { DatapackIngestService.remove(sender(), id); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java index 79509a722..f72baca17 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandDeveloper.java @@ -64,15 +64,20 @@ import java.util.Enumeration; import java.util.Map; import java.util.TreeMap; -@Director(name = "Developer", origin = DirectorOrigin.BOTH, description = "Iris World Manager", aliases = {"dev"}) +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +@Director(name = "Developer", origin = DirectorOrigin.BOTH, description = "Iris World Manager", descriptionKey = "iris.director.commanddeveloper.director.iris_world_manager", aliases = {"dev"}) public class CommandDeveloper implements DirectorExecutor { - @Director(description = "Get Loaded TectonicPlates Count", origin = DirectorOrigin.BOTH, sync = true) + @Director(description = "Get Loaded TectonicPlates Count", descriptionKey = "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count", origin = DirectorOrigin.BOTH, sync = true) public void EngineStatus() { Iris.service(IrisEngineSVC.class) .engineStatus(sender()); } - @Director(description = "Send a test exception to sentry") + @Director(description = "Send a test exception to sentry", descriptionKey = "iris.director.commanddeveloper.director.send_test_exception_sentry") public void Sentry() { Engine engine = engine(); Exception testException = new Exception("This is a test"); @@ -85,23 +90,23 @@ public class CommandDeveloper implements DirectorExecutor { } } - @Director(description = "Hash generated block output of a fixed area for determinism/identity testing", origin = DirectorOrigin.BOTH) + @Director(description = "Hash generated block output of a fixed area for determinism/identity testing", descriptionKey = "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing", origin = DirectorOrigin.BOTH) public void genhash( - @Param(description = "The world to hash", contextual = true) + @Param(description = "The world to hash", descriptionKey = "iris.director.commanddeveloper.param.world_hash", contextual = true) World world, - @Param(description = "Radius in chunks around the center", defaultValue = "4") + @Param(description = "Radius in chunks around the center", descriptionKey = "iris.director.commanddeveloper.param.radius_chunks_around_center", defaultValue = "4") int radius, - @Param(description = "Center chunk X", defaultValue = "0") + @Param(description = "Center chunk X", descriptionKey = "iris.director.commanddeveloper.param.center_chunk_x", defaultValue = "0") int centerX, - @Param(description = "Center chunk Z", defaultValue = "0") + @Param(description = "Center chunk Z", descriptionKey = "iris.director.commanddeveloper.param.center_chunk_z", defaultValue = "0") int centerZ) { if (world == null) { - sender().sendMessage(C.RED + "World is null."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_WORLD_IS_NULL)); return; } VolmitSender sender = sender(); - sender.sendMessage(C.GREEN + "genhash started: " + ((radius * 2 + 1) * (radius * 2 + 1)) + " chunks..."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DEVELOPER_GENHASH_STARTED_CHUNKS, MessageArgument.untrusted("value", ((radius * 2 + 1) * (radius * 2 + 1))))); J.a(() -> runGenhash(sender, world, radius, centerX, centerZ)); } @@ -122,7 +127,7 @@ public class CommandDeveloper implements DirectorExecutor { snapshot = loaded.getChunkSnapshot(false, false, false); } catch (Throwable e) { Iris.reportError(e); - sender.sendMessage(C.RED + "genhash failed at chunk " + rx + "," + rz + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DEVELOPER_GENHASH_FAILED_AT_CHUNK, MessageArgument.untrusted("rx", rx), MessageArgument.untrusted("rz", rz), MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); return; } long chunkHash = 0L; @@ -172,9 +177,7 @@ public class CommandDeveloper implements DirectorExecutor { Iris.reportError(e); } - sender.sendMessage(C.GREEN + "genhash global=" + C.GOLD + Long.toHexString(globalHash) - + C.GREEN + " chunks=" + (side * side) + " solid=" + solidBlocks - + " in " + Form.duration((long) (M.ms() - startMs), 1)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_DEVELOPER_GENHASH_GLOBAL_CHUNKS_SOLID, MessageArgument.untrusted("value", Long.toHexString(globalHash)), MessageArgument.untrusted("value2", (side * side)), MessageArgument.untrusted("solidBlocks", solidBlocks), MessageArgument.untrusted("value3", Form.duration((long) (M.ms() - startMs), 1)))); Iris.info("genhash world=" + world.getName() + " global=" + Long.toHexString(globalHash) + " chunks=" + (side * side) + " solidBlocks=" + solidBlocks + " -> " + out.getAbsolutePath()); } @@ -185,29 +188,23 @@ public class CommandDeveloper implements DirectorExecutor { return z ^ (z >>> 31); } - @Director(description = "Update the pack of a world (UNSAFE!)", name = "update-world", aliases = "^world") + @Director(description = "Update the pack of a world (UNSAFE!)", descriptionKey = "iris.director.commanddeveloper.director.update_pack_world_unsafe", name = "update-world", aliases = "^world") public void updateWorld( - @Param(description = "The world to update", contextual = true) + @Param(description = "The world to update", descriptionKey = "iris.director.commanddeveloper.param.world_update", contextual = true) World world, - @Param(description = "The pack to install into the world", contextual = true, aliases = "dimension") + @Param(description = "The pack to install into the world", descriptionKey = "iris.director.commanddeveloper.param.pack_install_into_world", contextual = true, aliases = "dimension") IrisDimension pack, - @Param(description = "Make sure to make a backup & read the warnings first!", defaultValue = "false", aliases = "c") + @Param(description = "Make sure to make a backup & read the warnings first!", descriptionKey = "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first", defaultValue = "false", aliases = "c") boolean confirm, - @Param(description = "Should Iris download the pack again for you", defaultValue = "false", name = "fresh-download", aliases = {"fresh", "new"}) + @Param(description = "Should Iris download the pack again for you", descriptionKey = "iris.director.commanddeveloper.param.should_iris_download_pack_again_you", defaultValue = "false", name = "fresh-download", aliases = {"fresh", "new"}) boolean freshDownload ) { if (!confirm) { - sender().sendMessage(new String[]{ - C.RED + "You should always make a backup before using this", - C.YELLOW + "Issues caused by this can be, but are not limited to:", - C.YELLOW + " - Broken chunks (cut-offs) between old and new chunks (before & after the update)", - C.YELLOW + " - Regenerated chunks that do not fit in with the old chunks", - C.YELLOW + " - Structures not spawning again when regenerating", - C.YELLOW + " - Caves not lining up", - C.YELLOW + " - Terrain layers not lining up", - C.RED + "Now that you are aware of the risks, and have made a back-up:", - C.RED + "/iris developer update-world " + world.getName() + " " + pack.getLoadKey() + " confirm=true" - }); + sender().sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_DEVELOPER_UPDATE_WORLD_WARNING, + MessageArgument.untrusted("world", world.getName()), + MessageArgument.untrusted("pack", pack.getLoadKey()) + )); return; } @@ -221,16 +218,16 @@ public class CommandDeveloper implements DirectorExecutor { Iris.service(StudioSVC.class).installIntoWorld(sender(), pack, folder); } - @Director(description = "Test") + @Director(description = "Test", descriptionKey = "iris.director.commanddeveloper.director.test") public void mantle( - @Param(name = "plate", description = "Dump the whole tectonic plate instead of a single section", defaultValue = "false") + @Param(name = "plate", description = "Dump the whole tectonic plate instead of a single section", descriptionKey = "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section", defaultValue = "false") boolean plate, - @Param(name = "name", description = "The dump file id under plugins/Iris/dump (pv..*)", defaultValue = "21474836474") + @Param(name = "name", description = "The dump file id under plugins/Iris/dump (pv..*)", descriptionKey = "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id", defaultValue = "21474836474") String name ) throws Throwable { Engine activeEngine = engine(); if (activeEngine == null) { - sender().sendMessage(C.RED + "Target an Iris world before reading a mantle dump."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_TARGET_IRIS_WORLD_BEFORE_READING_MANTLE_DUMP)); return; } File base = Iris.instance.getDataFile("dump", "pv." + name + ".ttp.lz4b.bin"); @@ -252,29 +249,29 @@ public class CommandDeveloper implements DirectorExecutor { } } - @Director(description = "Test") + @Director(description = "Test", descriptionKey = "iris.director.commanddeveloper.director.test_2") public void packBenchmark( - @Param(description = "The pack to bench", aliases = {"pack"}, defaultValue = "overworld") + @Param(description = "The pack to bench", descriptionKey = "iris.director.commanddeveloper.param.pack_bench", aliases = {"pack"}, defaultValue = "overworld") IrisDimension dimension, - @Param(description = "Radius in regions", defaultValue = "2048") + @Param(description = "Radius in regions", descriptionKey = "iris.director.commanddeveloper.param.radius_regions", defaultValue = "2048") int radius, - @Param(description = "Open GUI while benchmarking", defaultValue = "false") + @Param(description = "Open GUI while benchmarking", descriptionKey = "iris.director.commanddeveloper.param.open_gui_while_benchmarking", defaultValue = "false") boolean gui ) { new IrisPackBenchmarking(dimension, radius, gui); } - @Director(description = "Upgrade to another Minecraft version") + @Director(description = "Upgrade to another Minecraft version", descriptionKey = "iris.director.commanddeveloper.director.upgrade_another_minecraft_version") public void upgrade( - @Param(description = "The version to upgrade to", defaultValue = "latest") DataVersion version) { - sender().sendMessage(C.GREEN + "Upgrading to " + version.getVersion() + "..."); + @Param(description = "The version to upgrade to", descriptionKey = "iris.director.commanddeveloper.param.version_upgrade", defaultValue = "latest") DataVersion version) { + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_UPGRADING, MessageArgument.untrusted("value", version.getVersion()))); ServerConfigurator.installDataPacks(version.get(), false); - sender().sendMessage(C.GREEN + "Done upgrading! You can now update your server version to " + version.getVersion()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_DONE_UPGRADING_YOU_CAN_NOW_UPDATE_YOUR_SERVER_VERSION, MessageArgument.untrusted("value", version.getVersion()))); } - @Director(description = "test") + @Director(description = "test", descriptionKey = "iris.director.commanddeveloper.director.test_3") public void mca ( - @Param(description = "The world folder to scan for .mca region files") String world) { + @Param(description = "The world folder to scan for .mca region files", descriptionKey = "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files") String world) { try { File[] McaFiles = new File(world, "region").listFiles((dir, name) -> name.endsWith(".mca")); for (File mca : McaFiles) { @@ -286,25 +283,25 @@ public class CommandDeveloper implements DirectorExecutor { } - @Director(description = "Delete nearby chunk blocks for regen testing", name = "delete-chunk", aliases = {"dc"}, origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Delete nearby chunk blocks for regen testing", descriptionKey = "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing", name = "delete-chunk", aliases = {"dc"}, origin = DirectorOrigin.PLAYER, sync = true) public void deleteChunk( - @Param(description = "Radius in chunks around your current chunk", defaultValue = "0") + @Param(description = "Radius in chunks around your current chunk", descriptionKey = "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk", defaultValue = "0") int radius ) { if (radius < 0) { - sender().sendMessage(C.RED + "Radius must be 0 or greater."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER)); return; } World world = player().getWorld(); if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "This is not an Iris world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_THIS_IS_NOT_IRIS_WORLD)); return; } PlatformChunkGenerator access = IrisToolbelt.access(world); if (access == null || access.getEngine() == null) { - sender().sendMessage(C.RED + "The engine access for this world is null."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL)); return; } @@ -312,14 +309,12 @@ public class CommandDeveloper implements DirectorExecutor { int centerZ = player().getLocation().getBlockZ() >> 4; int chunks = (radius * 2 + 1) * (radius * 2 + 1); - sender().sendMessage(C.GREEN + "Delete started: " + C.GOLD + chunks + C.GREEN - + " chunk(s) around " + C.GOLD + centerX + "," + centerZ + C.GREEN - + ". Clearing blocks to air."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_DELETE_STARTED_CHUNK_S_AROUND_CLEARING_BLOCKS_AIR, MessageArgument.untrusted("chunks", chunks), MessageArgument.untrusted("centerX", centerX), MessageArgument.untrusted("centerZ", centerZ))); new ChunkClearer(world, access.getEngine(), sender(), centerX, centerZ, radius).start(); } - @Director(description = "Test", aliases = {"ip"}) + @Director(description = "Test", descriptionKey = "iris.director.commanddeveloper.director.test_4", aliases = {"ip"}) public void network() { try { Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); @@ -337,25 +332,25 @@ public class CommandDeveloper implements DirectorExecutor { // --- Regen --- - @Director(name = "regen", aliases = {"rg"}, description = "Delete and regenerate nearby chunks in place using Iris generation", origin = DirectorOrigin.PLAYER, sync = true) + @Director(name = "regen", aliases = {"rg"}, description = "Delete and regenerate nearby chunks in place using Iris generation", descriptionKey = "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation", origin = DirectorOrigin.PLAYER, sync = true) public void regen( - @Param(name = "radius", description = "The radius of nearby chunks", defaultValue = "5") + @Param(name = "radius", description = "The radius of nearby chunks", descriptionKey = "iris.director.commanddeveloper.param.radius_nearby_chunks", defaultValue = "5") int radius ) { if (radius < 0) { - sender().sendMessage(C.RED + "Radius must be 0 or greater."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_2)); return; } World world = player().getWorld(); if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "You must be in an Iris world to use regen."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_YOU_MUST_BE_IRIS_WORLD_USE_REGEN)); return; } Engine engine = IrisToolbelt.access(world).getEngine(); if (engine == null) { - sender().sendMessage(C.RED + "The engine access for this world is null. Generate nearby chunks first."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_GENERATE_NEARBY_CHUNKS_FIRST)); return; } @@ -363,9 +358,7 @@ public class CommandDeveloper implements DirectorExecutor { int centerZ = player().getLocation().getBlockZ() >> 4; int chunks = (radius * 2 + 1) * (radius * 2 + 1); - sender().sendMessage(C.GREEN + "Regen started: " + C.GOLD + chunks + C.GREEN - + " chunk(s) around " + C.GOLD + centerX + "," + centerZ + C.GREEN - + ". Deleting and regenerating in place."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_REGEN_STARTED_CHUNK_S_AROUND_DELETING_REGENERATING_PLACE, MessageArgument.untrusted("chunks", chunks), MessageArgument.untrusted("centerX", centerX), MessageArgument.untrusted("centerZ", centerZ))); Iris.info("Regen run start: world=" + world.getName() + " center=" + centerX + "," + centerZ + " radius=" + radius @@ -374,43 +367,41 @@ public class CommandDeveloper implements DirectorExecutor { new InPlaceChunkRegenerator(world, engine, sender(), centerX, centerZ, radius).start(); } - @Director(name = "goldenhash", aliases = {"gold"}, description = "Generate chunks into buffers (no world writes) and hash blocks+biomes; captures a golden file or verifies against an existing one. Resets mantle in the scanned area - use on disposable test worlds.", origin = DirectorOrigin.BOTH) + @Director(name = "goldenhash", aliases = {"gold"}, description = "Generate chunks into buffers (no world writes) and hash blocks+biomes; captures a golden file or verifies against an existing one. Resets mantle in the scanned area - use on disposable test worlds.", descriptionKey = "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden", origin = DirectorOrigin.BOTH) public void goldenhash( - @Param(description = "The world to scan", contextual = true) + @Param(description = "The world to scan", descriptionKey = "iris.director.commanddeveloper.param.world_scan", contextual = true) World world, - @Param(name = "radius", description = "Radius in chunks around the center", defaultValue = "8") + @Param(name = "radius", description = "Radius in chunks around the center", descriptionKey = "iris.director.commanddeveloper.param.radius_chunks_around_center_2", defaultValue = "8") int radius, - @Param(name = "center-x", description = "Center chunk X", defaultValue = "0") + @Param(name = "center-x", description = "Center chunk X", descriptionKey = "iris.director.commanddeveloper.param.center_chunk_x_2", defaultValue = "0") int centerX, - @Param(name = "center-z", description = "Center chunk Z", defaultValue = "0") + @Param(name = "center-z", description = "Center chunk Z", descriptionKey = "iris.director.commanddeveloper.param.center_chunk_z_2", defaultValue = "0") int centerZ, - @Param(name = "reset-mantle", description = "Delete mantle data in the scan area first for full regeneration from scratch", defaultValue = "true") + @Param(name = "reset-mantle", description = "Delete mantle data in the scan area first for full regeneration from scratch", descriptionKey = "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch", defaultValue = "true") boolean resetMantle, - @Param(name = "threads", description = "Concurrent chunk generations; 1 = strictly serial for order-dependence testing", defaultValue = "8") + @Param(name = "threads", description = "Concurrent chunk generations; 1 = strictly serial for order-dependence testing", descriptionKey = "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing", defaultValue = "8") int threads, - @Param(name = "deep", description = "Also dump full per-chunk non-air blockstates for offline diffing", defaultValue = "false") + @Param(name = "deep", description = "Also dump full per-chunk non-air blockstates for offline diffing", descriptionKey = "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing", defaultValue = "false") boolean deep ) { if (radius < 0) { - sender().sendMessage(C.RED + "Radius must be 0 or greater."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_3)); return; } if (world == null || !IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "Target must be an Iris world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_TARGET_MUST_BE_IRIS_WORLD)); return; } PlatformChunkGenerator access = IrisToolbelt.access(world); if (access == null || access.getEngine() == null) { - sender().sendMessage(C.RED + "The engine access for this world is null."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_2)); return; } int chunks = (radius * 2 + 1) * (radius * 2 + 1); - sender().sendMessage(C.GREEN + "GoldenHash started: " + C.GOLD + chunks + C.GREEN - + " chunk(s) around " + C.GOLD + centerX + "," + centerZ + C.GREEN - + " in buffers (world untouched)."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_DEVELOPER_GOLDENHASH_STARTED_CHUNK_S_AROUND_BUFFERS_WORLD_UNTOUCHED, MessageArgument.untrusted("chunks", chunks), MessageArgument.untrusted("centerX", centerX), MessageArgument.untrusted("centerZ", centerZ))); Iris.info("goldenhash start: world=" + world.getName() + " center=" + centerX + "," + centerZ + " radius=" + radius diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java index bdf4b39ed..cdfe9c10b 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandEdit.java @@ -33,86 +33,89 @@ import java.awt.Desktop; import java.awt.GraphicsEnvironment; -@Director(name = "edit", origin = DirectorOrigin.PLAYER, description = "Edit something") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.volmlib.util.localization.MessageArgument; +@Director(name = "edit", origin = DirectorOrigin.PLAYER, description = "Edit something", descriptionKey = "iris.director.commandedit.director.edit_something") public class CommandEdit implements DirectorExecutor { private boolean noStudio() { if (!sender().isPlayer()) { - sender().sendMessage(C.RED + "Players only!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_PLAYERS_ONLY)); return true; } if (!Iris.service(StudioSVC.class).isProjectOpen()) { - sender().sendMessage(C.RED + "No studio world is open!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_NO_STUDIO_WORLD_IS_OPEN)); return true; } if (!engine().isStudio()) { - sender().sendMessage(C.RED + "You must be in a studio world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_YOU_MUST_BE_STUDIO_WORLD)); return true; } if (GraphicsEnvironment.isHeadless()) { - sender().sendMessage(C.RED + "Cannot open files in headless environments!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANNOT_OPEN_FILES_HEADLESS_ENVIRONMENTS)); return true; } if (!Desktop.isDesktopSupported()) { - sender().sendMessage(C.RED + "Desktop is not supported by this environment!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_DESKTOP_IS_NOT_SUPPORTED_BY_THIS_ENVIRONMENT)); return true; } return false; } - @Director(description = "Edit the biome you specified", aliases = {"b"}, origin = DirectorOrigin.PLAYER) - public void biome(@Param(contextual = false, description = "The biome to edit") IrisBiome biome) { + @Director(description = "Edit the biome you specified", descriptionKey = "iris.director.commandedit.director.edit_biome_you_specified", aliases = {"b"}, origin = DirectorOrigin.PLAYER) + public void biome(@Param(contextual = false, description = "The biome to edit", descriptionKey = "iris.director.commandedit.param.biome_edit") IrisBiome biome) { if (noStudio()) { return; } try { if (biome == null || biome.getLoadFile() == null) { - sender().sendMessage(C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM)); return; } Desktop.getDesktop().open(biome.getLoadFile()); - sender().sendMessage(C.GREEN + "Opening " + biome.getTypeName() + " " + biome.getLoadFile().getName().split("\\Q.\\E")[0] + " in VSCode! "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_OPENING_VSCODE, MessageArgument.untrusted("value", biome.getTypeName()), MessageArgument.untrusted("value2", biome.getLoadFile().getName().split("\\Q.\\E")[0]))); } catch (Throwable e) { Iris.reportError(e); - sender().sendMessage(C.RED + "Cant find the file. Or registrant does not exist"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST)); } } - @Director(description = "Edit the region you specified", aliases = {"r"}, origin = DirectorOrigin.PLAYER) - public void region(@Param(contextual = false, description = "The region to edit") IrisRegion region) { + @Director(description = "Edit the region you specified", descriptionKey = "iris.director.commandedit.director.edit_region_you_specified", aliases = {"r"}, origin = DirectorOrigin.PLAYER) + public void region(@Param(contextual = false, description = "The region to edit", descriptionKey = "iris.director.commandedit.param.region_edit") IrisRegion region) { if (noStudio()) { return; } try { if (region == null || region.getLoadFile() == null) { - sender().sendMessage(C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_2)); return; } Desktop.getDesktop().open(region.getLoadFile()); - sender().sendMessage(C.GREEN + "Opening " + region.getTypeName() + " " + region.getLoadFile().getName().split("\\Q.\\E")[0] + " in VSCode! "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_OPENING_VSCODE_2, MessageArgument.untrusted("value", region.getTypeName()), MessageArgument.untrusted("value2", region.getLoadFile().getName().split("\\Q.\\E")[0]))); } catch (Throwable e) { Iris.reportError(e); - sender().sendMessage(C.RED + "Cant find the file. Or registrant does not exist"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_2)); } } - @Director(description = "Edit the dimension you specified", aliases = {"d"}, origin = DirectorOrigin.PLAYER) - public void dimension(@Param(contextual = false, description = "The dimension to edit") IrisDimension dimension) { + @Director(description = "Edit the dimension you specified", descriptionKey = "iris.director.commandedit.director.edit_dimension_you_specified", aliases = {"d"}, origin = DirectorOrigin.PLAYER) + public void dimension(@Param(contextual = false, description = "The dimension to edit", descriptionKey = "iris.director.commandedit.param.dimension_edit") IrisDimension dimension) { if (noStudio()) { return; } try { if (dimension == null || dimension.getLoadFile() == null) { - sender().sendMessage(C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_3)); return; } Desktop.getDesktop().open(dimension.getLoadFile()); - sender().sendMessage(C.GREEN + "Opening " + dimension.getTypeName() + " " + dimension.getLoadFile().getName().split("\\Q.\\E")[0] + " in VSCode! "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_OPENING_VSCODE_3, MessageArgument.untrusted("value", dimension.getTypeName()), MessageArgument.untrusted("value2", dimension.getLoadFile().getName().split("\\Q.\\E")[0]))); } catch (Throwable e) { Iris.reportError(e); - sender().sendMessage(C.RED + "Cant find the file. Or registrant does not exist"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_3)); } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java index 0ae93436e..edfbcdfec 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandFind.java @@ -50,61 +50,65 @@ import org.bukkit.entity.Player; import org.bukkit.generator.structure.Structure; import org.bukkit.util.StructureSearchResult; -@Director(name = "find", origin = DirectorOrigin.PLAYER, description = "Iris Find commands", aliases = "goto") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +@Director(name = "find", origin = DirectorOrigin.PLAYER, description = "Iris Find commands", descriptionKey = "iris.director.commandfind.director.iris_find_commands", aliases = "goto") public class CommandFind implements DirectorExecutor { - @Director(description = "Find a biome") + @Director(description = "Find a biome", descriptionKey = "iris.director.commandfind.director.find_biome") public void biome( - @Param(description = "The biome to look for") + @Param(description = "The biome to look for", descriptionKey = "iris.director.commandfind.param.biome_look") IrisBiome biome, - @Param(description = "Should you be teleported", defaultValue = "true") + @Param(description = "Should you be teleported", descriptionKey = "iris.director.commandfind.param.should_you_be_teleported", defaultValue = "true") boolean teleport ) { Engine e = engine(); if (e == null) { - sender().sendMessage(C.GOLD + "Not in an Iris World!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_NOT_IRIS_WORLD)); return; } EngineBukkitOps.gotoBiome(e, biome, player(), teleport); } - @Director(description = "Find a region") + @Director(description = "Find a region", descriptionKey = "iris.director.commandfind.director.find_region") public void region( - @Param(description = "The region to look for") + @Param(description = "The region to look for", descriptionKey = "iris.director.commandfind.param.region_look") IrisRegion region, - @Param(description = "Should you be teleported", defaultValue = "true") + @Param(description = "Should you be teleported", descriptionKey = "iris.director.commandfind.param.should_you_be_teleported_2", defaultValue = "true") boolean teleport ) { Engine e = engine(); if (e == null) { - sender().sendMessage(C.GOLD + "Not in an Iris World!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_NOT_IRIS_WORLD_2)); return; } EngineBukkitOps.gotoRegion(e, region, player(), teleport); } - @Director(description = "Find a point of interest.") + @Director(description = "Find a point of interest.", descriptionKey = "iris.director.commandfind.director.find_point_interest") public void poi( - @Param(description = "The type of PoI to look for.") + @Param(description = "The type of PoI to look for.", descriptionKey = "iris.director.commandfind.param.type_poi_look") String type, - @Param(description = "Should you be teleported", defaultValue = "true") + @Param(description = "Should you be teleported", descriptionKey = "iris.director.commandfind.param.should_you_be_teleported_3", defaultValue = "true") boolean teleport ) { Engine e = engine(); if (e == null) { - sender().sendMessage(C.GOLD + "Not in an Iris World!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_NOT_IRIS_WORLD_3)); return; } EngineBukkitOps.gotoPOI(e, type, player(), teleport); } - @Director(description = "Find a structure (a vanilla key like minecraft:village_plains or minecraft:stronghold, or an imported iris structure key)", sync = true) + @Director(description = "Find a structure (a vanilla key like minecraft:village_plains or minecraft:stronghold, or an imported iris structure key)", descriptionKey = "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris", sync = true) public void structure( - @Param(description = "The structure to look for (e.g. minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)", customHandler = StructureHandler.class) + @Param(description = "The structure to look for (e.g. minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)", descriptionKey = "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city", customHandler = StructureHandler.class) String structure ) { VolmitSender commandSender = sender(); @@ -116,7 +120,7 @@ public class CommandFind implements DirectorExecutor { Engine e = engine(); if (e == null) { - commandSender.sendMessage(C.GOLD + "Not in an Iris World!"); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_NOT_IRIS_WORLD)); return; } @@ -143,19 +147,19 @@ public class CommandFind implements DirectorExecutor { } if (nativeStructure == null) { - commandSender.sendMessage(C.RED + "Unknown structure: " + structureKey); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_UNKNOWN_STRUCTURE, MessageArgument.untrusted("structureKey", structureKey))); return; } Player target = player(); if (target == null) { - commandSender.sendMessage(C.GOLD + "Run this in-game to teleport to a structure."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE)); return; } World targetWorld = target.getWorld(); Location origin = target.getLocation(); - commandSender.sendMessage(C.GRAY + "Locating " + structureKey + "..."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_LOCATING, MessageArgument.untrusted("structureKey", structureKey))); J.s(() -> { try { if (!StructureReachability.isReachable(e, structureKey)) { @@ -196,14 +200,14 @@ public class CommandFind implements DirectorExecutor { private void locateIrisStructure(Engine engine, String structure, VolmitSender commandSender) { Player target = player(); if (target == null) { - commandSender.sendMessage(C.GOLD + "Run this in-game to teleport to a structure."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE_2)); return; } World targetWorld = target.getWorld(); Location origin = target.getLocation(); int blockX = origin.getBlockX(); int blockZ = origin.getBlockZ(); - commandSender.sendMessage(C.GRAY + "Locating " + structure + "..."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_LOCATING_2, MessageArgument.untrusted("structure", structure))); J.a(() -> { try { IrisStructureLocator.LocateResult result = @@ -230,17 +234,17 @@ public class CommandFind implements DirectorExecutor { }); } - @Director(description = "Find an object") + @Director(description = "Find an object", descriptionKey = "iris.director.commandfind.director.find_object") public void object( - @Param(description = "The object to look for", customHandler = ObjectHandler.class) + @Param(description = "The object to look for", descriptionKey = "iris.director.commandfind.param.object_look", customHandler = ObjectHandler.class) String object, - @Param(description = "Should you be teleported", defaultValue = "true") + @Param(description = "Should you be teleported", descriptionKey = "iris.director.commandfind.param.should_you_be_teleported_4", defaultValue = "true") boolean teleport ) { Engine e = engine(); if (e == null) { - sender().sendMessage(C.GOLD + "Not in an Iris World!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_NOT_IRIS_WORLD_4)); return; } @@ -248,7 +252,7 @@ public class CommandFind implements DirectorExecutor { if (studioPlayer != null) { try { if (ObjectStudioSaveService.get().teleportTo(studioPlayer, object)) { - sender().sendMessage(C.GREEN + "Object Studio: teleporting to " + object); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_OBJECT_STUDIO_TELEPORTING, MessageArgument.untrusted("object", object))); return; } } catch (Throwable t) { @@ -261,7 +265,7 @@ public class CommandFind implements DirectorExecutor { return; } - sender().sendMessage(C.RED + object + " is not configured in any region/biome object placements."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_FIND_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS, MessageArgument.untrusted("object", object))); } private void prepareStructureTeleport(Player target, World world, VolmitSender commandSender, String structure, @@ -291,8 +295,7 @@ public class CommandFind implements DirectorExecutor { Location destination = new Location(world, at.getBlockX() + 0.5, y, at.getBlockZ() + 0.5); J.runEntity(target, () -> { BukkitPlatform.teleportAsync(target, destination); - commandSender.sendMessage(C.GREEN + "Teleported to " + structure + " @ " - + at.getBlockX() + ", " + y + ", " + at.getBlockZ()); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_FIND_TELEPORTED, MessageArgument.untrusted("structure", structure), MessageArgument.untrusted("value", at.getBlockX()), MessageArgument.untrusted("y", y), MessageArgument.untrusted("value2", at.getBlockZ()))); }); } catch (Throwable t) { sendStructureMessage(target, commandSender, C.RED + "Could not prepare the destination for " + structure + "."); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java index f851d60bb..dea27eb5f 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandIris.java @@ -67,7 +67,13 @@ import static art.arcane.iris.core.service.EditSVC.deletingWorld; import static art.arcane.iris.util.common.misc.ServerProperties.BUKKIT_YML; import static org.bukkit.Bukkit.getServer; -@Director(name = "iris", aliases = {"ir", "irs"}, description = "Basic Command") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.core.localization.RuntimeUiMessages; +@Director(name = "iris", aliases = {"ir", "irs"}, description = "Basic Command", descriptionKey = "iris.director.commandiris.director.basic_command") public class CommandIris implements DirectorExecutor { private CommandStudio studio; private CommandPregen pregen; @@ -85,37 +91,37 @@ public class CommandIris implements DirectorExecutor { String worldNameToCheck = "YourWorldName"; VolmitSender sender = Iris.getSender(); - @Director(description = "Create a new world", aliases = {"c"}) + @Director(description = "Create a new world", descriptionKey = "iris.director.commandiris.director.create_new_world", aliases = {"c"}) public void create( - @Param(aliases = "world-name", description = "The name of the world to create") + @Param(aliases = "world-name", description = "The name of the world to create", descriptionKey = "iris.director.commandiris.param.name_world_create") String name, @Param( aliases = {"dimension", "pack"}, - description = "The dimension/pack to create the world with", + description = "The dimension/pack to create the world with", descriptionKey = "iris.director.commandiris.param.dimension_pack_create_world_with", defaultValue = "default", customHandler = PackDimensionTypeHandler.class ) String type, - @Param(description = "The seed to generate the world with", defaultValue = "1337") + @Param(description = "The seed to generate the world with", descriptionKey = "iris.director.commandiris.param.seed_generate_world_with", defaultValue = "1337") long seed, - @Param(aliases = "main-world", description = "Whether or not to automatically use this world as the main world", defaultValue = "false") + @Param(aliases = "main-world", description = "Whether or not to automatically use this world as the main world", descriptionKey = "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world", defaultValue = "false") boolean main ) { String worldName = IrisWorldStorage.logicalName(IrisWorldStorage.keyFromName(name)); if (worldName.equalsIgnoreCase("iris")) { - sender().sendMessage(C.RED + "You cannot use the world name \"iris\" for creating worlds as Iris uses this directory for studio worlds."); - sender().sendMessage(C.RED + "May we suggest the name \"IrisWorld\" instead?"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_IRIS_CREATING_WORLDS_AS_IRIS)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD)); return; } if (worldName.equalsIgnoreCase("benchmark")) { - sender().sendMessage(C.RED + "You cannot use the world name \"benchmark\" for creating worlds as Iris uses this directory for Benchmarking Packs."); - sender().sendMessage(C.RED + "May we suggest the name \"IrisWorld\" instead?"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_BENCHMARK_CREATING_WORLDS_AS_IRIS)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD_2)); return; } if (IrisWorldStorage.dimensionRoot(worldName).exists()) { - sender().sendMessage(C.RED + "That folder already exists!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_THAT_FOLDER_ALREADY_EXISTS)); return; } @@ -125,15 +131,15 @@ public class CommandIris implements DirectorExecutor { IrisDimension dimension = IrisToolbelt.getDimension(resolvedType); if (dimension == null) { - sender().sendMessage(C.RED + "Could not find or download dimension \"" + resolvedType + "\"."); - sender().sendMessage(C.YELLOW + "Try one of: overworld, vanilla, flat, theend"); - sender().sendMessage(C.YELLOW + "Or download manually: /iris download " + resolvedType); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_COULD_NOT_FIND_DOWNLOAD_DIMENSION, MessageArgument.untrusted("resolvedType", resolvedType))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_TRY_ONE_OVERWORLD_VANILLA_FLAT_THEEND)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_DOWNLOAD_MANUALLY_IRIS_DOWNLOAD, MessageArgument.untrusted("resolvedType", resolvedType))); return; } if (J.isFolia()) { if (stageFoliaWorldCreation(worldName, dimension, seed, main)) { - sender().sendMessage(C.GREEN + "World staging completed. Restart the server to generate/load \"" + worldName + "\"."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_WORLD_STAGING_COMPLETED_RESTART_SERVER_GENERATE_LOAD, MessageArgument.untrusted("worldName", worldName))); } return; } @@ -154,15 +160,15 @@ public class CommandIris implements DirectorExecutor { })); } } catch (Throwable e) { - sender().sendMessage(C.RED + "Exception raised during creation. See the console for more details."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_EXCEPTION_RAISED_DURING_CREATION_SEE_CONSOLE_MORE_DETAILS)); Iris.reportError("Exception raised during world creation for \"" + worldName + "\".", e); worldCreation = false; return; } worldCreation = false; - sender().sendMessage(C.GREEN + "Successfully created your world!"); - if (main) sender().sendMessage(C.GREEN + "Your world will automatically be set as the main world when the server restarts."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SUCCESSFULLY_CREATED_YOUR_WORLD)); + if (main) sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_YOUR_WORLD_WILL_AUTOMATICALLY_BE_SET_AS_MAIN_WORLD_WHEN)); } private boolean updateMainWorld(String newName) { @@ -216,13 +222,13 @@ public class CommandIris implements DirectorExecutor { } private boolean stageFoliaWorldCreation(String name, IrisDimension dimension, long seed, boolean main) { - sender().sendMessage(C.YELLOW + "Runtime world creation is disabled on Folia."); - sender().sendMessage(C.YELLOW + "Preparing world files and bukkit.yml for next startup..."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_RUNTIME_WORLD_CREATION_IS_DISABLED_ON_FOLIA)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_PREPARING_WORLD_FILES_BUKKIT_YML_NEXT_STARTUP)); File worldFolder = IrisWorldStorage.dimensionRoot(name); IrisDimension installed = Iris.service(StudioSVC.class).installIntoWorld(sender(), dimension, worldFolder); if (installed == null) { - sender().sendMessage(C.RED + "Failed to stage world files for dimension \"" + dimension.getLoadKey() + "\"."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_STAGE_WORLD_FILES_DIMENSION, MessageArgument.untrusted("value", dimension.getLoadKey()))); return false; } @@ -232,16 +238,16 @@ public class CommandIris implements DirectorExecutor { if (main) { if (updateMainWorld(name)) { - sender().sendMessage(C.GREEN + "Updated server.properties level-name to \"" + name + "\"."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_UPDATED_SERVER_PROPERTIES_LEVEL_NAME, MessageArgument.untrusted("name", name))); } else { - sender().sendMessage(C.RED + "World was staged, but failed to update server.properties main world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_WORLD_WAS_STAGED_BUT_FAILED_UPDATE_SERVER_PROPERTIES_MAIN_WORLD)); return false; } } - sender().sendMessage(C.GREEN + "Staged Iris world \"" + name + "\" with generator Iris:" + dimension.getLoadKey() + " and seed " + seed + "."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_STAGED_IRIS_WORLD_WITH_GENERATOR_IRIS_SEED, MessageArgument.untrusted("name", name), MessageArgument.untrusted("value", dimension.getLoadKey()), MessageArgument.untrusted("seed", seed))); if (main) { - sender().sendMessage(C.GREEN + "This world is now configured as main for next restart."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_THIS_WORLD_IS_NOW_CONFIGURED_AS_MAIN_NEXT_RESTART)); } return true; } @@ -269,18 +275,18 @@ public class CommandIris implements DirectorExecutor { Iris.info("Registered \"" + logicalWorldName + "\" in bukkit.yml"); return true; } catch (IOException e) { - sender().sendMessage(C.RED + "Failed to update bukkit.yml: " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_UPDATE_BUKKIT_YML, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); Iris.error("Failed to update bukkit.yml!"); Iris.reportError(e); return false; } } - @Director(description = "Teleport to another world", aliases = {"tp"}, sync = true) + @Director(description = "Teleport to another world", descriptionKey = "iris.director.commandiris.director.teleport_another_world", aliases = {"tp"}, sync = true) public void teleport( - @Param(description = "World to teleport to") + @Param(description = "World to teleport to", descriptionKey = "iris.director.commandiris.param.world_teleport") World world, - @Param(description = "Player to teleport", defaultValue = "---", customHandler = NullablePlayerHandler.class) + @Param(description = "Player to teleport", descriptionKey = "iris.director.commandiris.param.player_teleport", defaultValue = "---", customHandler = NullablePlayerHandler.class) Player player ) { if (player == null && sender().isPlayer()) @@ -288,30 +294,33 @@ public class CommandIris implements DirectorExecutor { final Player target = player; if (target == null) { - sender().sendMessage(C.RED + "The specified player does not exist."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SPECIFIED_PLAYER_DOES_NOT_EXIST)); return; } final Location spawn = world.getSpawnLocation(); final Runnable teleportTask = () -> { BukkitPlatform.teleportAsync(target, spawn); - new VolmitSender(target).sendMessage(C.GREEN + "You have been teleported to " + world.getName() + "."); + new VolmitSender(target).sendMessage(C.GREEN + IrisLanguage.text( + RuntimeUiMessages.TELEPORTED_TO_WORLD, + MessageArgument.untrusted("world", world.getName()) + )); }; if (!J.runEntity(target, teleportTask)) { teleportTask.run(); } } - @Director(description = "Print version information") + @Director(description = "Print version information", descriptionKey = "iris.director.commandiris.director.print_version_information") public void version() { - sender().sendMessage(C.GREEN + "Iris v" + Iris.instance.getDescription().getVersion() + " by Volmit Software"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_IRIS_V_BY_VOLMIT_SOFTWARE, MessageArgument.untrusted("value", Iris.instance.getDescription().getVersion()))); } /* /todo - @Director(description = "Benchmark a pack", origin = DirectorOrigin.CONSOLE) + @Director(description = "Benchmark a pack", descriptionKey = "iris.director.commandiris.director.benchmark_pack", origin = DirectorOrigin.CONSOLE) public void packbenchmark( - @Param(description = "Dimension to benchmark") + @Param(description = "Dimension to benchmark", descriptionKey = "iris.director.commandiris.param.dimension_benchmark") IrisDimension type ) throws InterruptedException { @@ -320,11 +329,11 @@ public class CommandIris implements DirectorExecutor { IrisPackBenchmarking.runBenchmark(); } */ - @Director(description = "Print world height information", origin = DirectorOrigin.PLAYER) + @Director(description = "Print world height information", descriptionKey = "iris.director.commandiris.director.print_world_height_information", origin = DirectorOrigin.PLAYER) public void height() { if (sender().isPlayer()) { - sender().sendMessage(C.GREEN + "" + sender().player().getWorld().getMinHeight() + " to " + sender().player().getWorld().getMaxHeight()); - sender().sendMessage(C.GREEN + "Total Height: " + (sender().player().getWorld().getMaxHeight() - sender().player().getWorld().getMinHeight())); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_TO, MessageArgument.untrusted("value", sender().player().getWorld().getMinHeight()), MessageArgument.untrusted("value2", sender().player().getWorld().getMaxHeight()))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_TOTAL_HEIGHT, MessageArgument.untrusted("value", (sender().player().getWorld().getMaxHeight() - sender().player().getWorld().getMinHeight())))); } else { World mainWorld = getServer().getWorlds().get(0); Iris.info(C.GREEN + "" + mainWorld.getMinHeight() + " to " + mainWorld.getMaxHeight()); @@ -332,7 +341,7 @@ public class CommandIris implements DirectorExecutor { } } - @Director(description = "Check access of all worlds.", aliases = {"accesslist"}) + @Director(description = "Check access of all worlds.", descriptionKey = "iris.director.commandiris.director.check_access_all_worlds", aliases = {"accesslist"}) public void worlds() { KList IrisWorlds = new KList<>(); KList BukkitWorlds = new KList<>(); @@ -349,13 +358,13 @@ public class CommandIris implements DirectorExecutor { } if (sender().isPlayer()) { - sender().sendMessage(C.BLUE + "Iris Worlds: "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_IRIS_WORLDS)); for (World IrisWorld : IrisWorlds.copy()) { - sender().sendMessage(C.IRIS + "- " +IrisWorld.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_MESSAGE, MessageArgument.untrusted("value", IrisWorld.getName()))); } - sender().sendMessage(C.GOLD + "Bukkit Worlds: "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_BUKKIT_WORLDS)); for (World BukkitWorld : BukkitWorlds.copy()) { - sender().sendMessage(C.GRAY + "- " +BukkitWorld.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_MESSAGE_2, MessageArgument.untrusted("value", BukkitWorld.getName()))); } } else { Iris.info(C.BLUE + "Iris Worlds: "); @@ -370,37 +379,37 @@ public class CommandIris implements DirectorExecutor { } } - @Director(description = "Remove an Iris world", aliases = {"rm"}, sync = true) + @Director(description = "Remove an Iris world", descriptionKey = "iris.director.commandiris.director.remove_iris_world", aliases = {"rm"}, sync = true) public void remove( - @Param(description = "The world to remove") + @Param(description = "The world to remove", descriptionKey = "iris.director.commandiris.param.world_remove") World world, - @Param(description = "Whether to also remove the folder (if set to false, just does not load the world)", defaultValue = "true") + @Param(description = "Whether to also remove the folder (if set to false, just does not load the world)", descriptionKey = "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world", defaultValue = "true") boolean delete ) { if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "This is not an Iris world. Iris worlds: " + String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS, MessageArgument.untrusted("value", String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())))); return; } - sender().sendMessage(C.GREEN + "Removing world: " + world.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_REMOVING_WORLD, MessageArgument.untrusted("value", world.getName()))); if (!IrisToolbelt.evacuate(world)) { - sender().sendMessage(C.RED + "Failed to evacuate world: " + world.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_EVACUATE_WORLD, MessageArgument.untrusted("value", world.getName()))); return; } if (!WorldLifecycleService.get().unload(world, false)) { - sender().sendMessage(C.RED + "Failed to unload world: " + world.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_UNLOAD_WORLD, MessageArgument.untrusted("value", world.getName()))); return; } try { if (IrisToolbelt.removeWorld(world)) { - sender().sendMessage(C.GREEN + "Successfully removed " + world.getName() + " from bukkit.yml"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SUCCESSFULLY_REMOVED_FROM_BUKKIT_YML, MessageArgument.untrusted("value", world.getName()))); } else { - sender().sendMessage(C.YELLOW + "Looks like the world was already removed from bukkit.yml"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_LOOKS_LIKE_WORLD_WAS_ALREADY_REMOVED_FROM_BUKKIT_YML)); } } catch (IOException e) { - sender().sendMessage(C.RED + "Failed to save bukkit.yml because of " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_SAVE_BUKKIT_YML_BECAUSE, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); Iris.reportError("Failed to remove world \"" + world.getName() + "\" from bukkit.yml.", e); } IrisToolbelt.evacuate(world, "Deleting world"); @@ -414,16 +423,16 @@ public class CommandIris implements DirectorExecutor { int retries = 12; if (deleteDirectory(world.getWorldFolder())) { - sender.sendMessage(C.GREEN + "Successfully removed world folder"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER)); } else { while(true){ if (deleteDirectory(world.getWorldFolder())){ - sender.sendMessage(C.GREEN + "Successfully removed world folder"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER_2)); break; } retries--; if (retries == 0){ - sender.sendMessage(C.RED + "Failed to remove world folder"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_IRIS_FAILED_REMOVE_WORLD_FOLDER)); break; } J.sleep(3000); @@ -446,78 +455,90 @@ public class CommandIris implements DirectorExecutor { return dir.delete(); } - @Director(description = "Toggle debug") + @Director(description = "Toggle debug", descriptionKey = "iris.director.commandiris.director.toggle_debug") public void debug() { boolean to = !IrisSettings.get().getGeneral().isDebug(); IrisSettings.get().getGeneral().setDebug(to); IrisSettings.get().forceSave(); - sender().sendMessage(C.GREEN + "Set debug to: " + to); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SET_DEBUG, MessageArgument.untrusted("to", to))); } - @Director(description = "Download a project.", aliases = "dl") + @Director(description = "Download a project.", descriptionKey = "iris.director.commandiris.director.download_project", aliases = "dl") public void download( - @Param(name = "pack", description = "The pack to download", aliases = "project") + @Param(name = "pack", description = "The pack to download", descriptionKey = "iris.director.commandiris.param.pack_download", aliases = "project") String pack, - @Param(name = "branch", description = "The branch to download from", defaultValue = "stable") + @Param(name = "branch", description = "The branch to download from", descriptionKey = "iris.director.commandiris.param.branch_download_from", defaultValue = "stable") String branch, - @Param(name = "overwrite", description = "Whether or not to overwrite the pack with the downloaded one", aliases = "force", defaultValue = "false") + @Param(name = "overwrite", description = "Whether or not to overwrite the pack with the downloaded one", descriptionKey = "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one", aliases = "force", defaultValue = "false") boolean overwrite ) { if (PackDownloader.isDefaultOverworld(pack)) { - sender().sendMessage(C.GREEN + "Downloading pack: " + pack + " (beta release)" + (overwrite ? " overwriting" : "")); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_DOWNLOADING_PACK_BETA_RELEASE, MessageArgument.untrusted("pack", pack), MessageArgument.trusted("value", overwrite ? IrisLanguage.text(RuntimeUiMessages.DOWNLOAD_OVERWRITE_SUFFIX) : ""))); Iris.service(StudioSVC.class).downloadDefaultOverworld(sender(), overwrite); } else { - sender().sendMessage(C.GREEN + "Downloading pack: " + pack + "/" + branch + (overwrite ? " overwriting" : "")); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_DOWNLOADING_PACK, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("branch", branch), MessageArgument.trusted("value", overwrite ? IrisLanguage.text(RuntimeUiMessages.DOWNLOAD_OVERWRITE_SUFFIX) : ""))); Iris.service(StudioSVC.class).downloadSearch(sender(), "IrisDimensions/" + pack + "/" + branch, overwrite); } ServerConfigurator.installDataPacksIfChanged(true); } - @Director(description = "Get metrics for your world", aliases = "measure", origin = DirectorOrigin.PLAYER) + @Director(description = "Get metrics for your world", descriptionKey = "iris.director.commandiris.director.get_metrics_your_world", aliases = "measure", origin = DirectorOrigin.PLAYER) public void metrics() { if (!IrisToolbelt.isIrisWorld(world())) { - sender().sendMessage(C.RED + "You must be in an Iris world"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_YOU_MUST_BE_IRIS_WORLD)); return; } - sender().sendMessage(C.GREEN + "Sending metrics..."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_SENDING_METRICS)); engine().printMetrics(sender()); } - @Director(description = "Reload configuration file (this is also done automatically)") + @Director(description = "Reload configuration file (this is also done automatically)", descriptionKey = "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically") public void reload() { IrisSettings.invalidate(); IrisSettings.get(); - sender().sendMessage(C.GREEN + "Hotloaded settings"); + boolean localeLoaded = IrisLanguage.reload(); + if (localeLoaded) { + sender().sendMessage(C.GREEN + IrisLanguage.text( + IrisMessages.COMMAND_RELOAD_SUCCESS, + MessageArgument.trusted("locale", IrisLanguage.activeLocale()) + )); + return; + } + sender().sendMessage(C.YELLOW + IrisLanguage.text( + IrisMessages.COMMAND_RELOAD_FAILED, + MessageArgument.untrusted("locale", IrisSettings.get().getGeneral().getLanguage()), + MessageArgument.trusted("activeLocale", IrisLanguage.activeLocale()) + )); } - @Director(description = "Unload an Iris World", origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Unload an Iris World", descriptionKey = "iris.director.commandiris.director.unload_iris_world", origin = DirectorOrigin.PLAYER, sync = true) public void unloadWorld( - @Param(description = "The world to unload") + @Param(description = "The world to unload", descriptionKey = "iris.director.commandiris.param.world_unload") World world ) { if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "This is not an Iris world. Iris worlds: " + String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_2, MessageArgument.untrusted("value", String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())))); return; } - sender().sendMessage(C.GREEN + "Unloading world: " + world.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_UNLOADING_WORLD, MessageArgument.untrusted("value", world.getName()))); try { IrisToolbelt.evacuate(world); boolean unloaded = WorldLifecycleService.get().unload(world, false); if (unloaded) { - sender().sendMessage(C.GREEN + "World unloaded successfully."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_WORLD_UNLOADED_SUCCESSFULLY)); } else { - sender().sendMessage(C.RED + "Failed to unload the world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_UNLOAD_WORLD_2)); } } catch (Exception e) { - sender().sendMessage(C.RED + "Failed to unload the world: " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FAILED_UNLOAD_WORLD_3, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); Iris.reportError("Failed to unload world \"" + world.getName() + "\".", e); } } - @Director(description = "Load an Iris World", origin = DirectorOrigin.PLAYER, sync = true, aliases = {"import"}) + @Director(description = "Load an Iris World", descriptionKey = "iris.director.commandiris.director.load_iris_world", origin = DirectorOrigin.PLAYER, sync = true, aliases = {"import"}) public void loadWorld( - @Param(description = "The name of the world to load") + @Param(description = "The name of the world to load", descriptionKey = "iris.director.commandiris.param.name_world_load") String world ) { String logicalWorldName = IrisWorldStorage.logicalName(IrisWorldStorage.keyFromName(world)); @@ -526,7 +547,7 @@ public class CommandIris implements DirectorExecutor { WorldEngine = logicalWorldName; if (!worldExists) { - sender().sendMessage(C.YELLOW + logicalWorldName + " Doesnt exist on the server."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_DOESNT_EXIST_ON_SERVER, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); return; } @@ -541,45 +562,45 @@ public class CommandIris implements DirectorExecutor { String fileName = file.getName(); if (fileName.endsWith(".json")) { dimension = fileName.substring(0, fileName.length() - 5); - sender().sendMessage(C.BLUE + "Generator: " + dimension); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_GENERATOR, MessageArgument.untrusted("dimension", dimension))); } } } } } else { - sender().sendMessage(C.GOLD + logicalWorldName + " is not an iris world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_IS_NOT_IRIS_WORLD, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); return; } if (dimension == null) { - sender().sendMessage(C.RED + "Could not determine Iris dimension for " + logicalWorldName + "."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_COULD_NOT_DETERMINE_IRIS_DIMENSION, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); return; } - sender().sendMessage(C.GREEN + "Loading world: " + logicalWorldName); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_LOADING_WORLD, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); if (!registerWorldInBukkitYml(logicalWorldName, dimension, null)) { return; } if (J.isFolia()) { - sender().sendMessage(C.YELLOW + "Folia cannot load new worlds at runtime. Restart the server to load \"" + logicalWorldName + "\"."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_FOLIA_CANNOT_LOAD_NEW_WORLDS_AT_RUNTIME_RESTART_SERVER_LOAD, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); return; } Iris.instance.checkForBukkitWorlds(logicalWorldName::equals); - sender().sendMessage(C.GREEN + logicalWorldName + " loaded successfully."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_LOADED_SUCCESSFULLY, MessageArgument.untrusted("logicalWorldName", logicalWorldName))); } - @Director(description = "Evacuate an iris world", origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Evacuate an iris world", descriptionKey = "iris.director.commandiris.director.evacuate_iris_world", origin = DirectorOrigin.PLAYER, sync = true) public void evacuate( - @Param(description = "Evacuate the world") + @Param(description = "Evacuate the world", descriptionKey = "iris.director.commandiris.param.evacuate_world") World world ) { if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "This is not an Iris world. Iris worlds: " + String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_3, MessageArgument.untrusted("value", String.join(", ", getServer().getWorlds().stream().filter(IrisToolbelt::isIrisWorld).map(World::getName).toList())))); return; } - sender().sendMessage(C.GREEN + "Evacuating world" + world.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_IRIS_EVACUATING_WORLD, MessageArgument.untrusted("value", world.getName()))); IrisToolbelt.evacuate(world); } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java index 8efc74ca6..5ec23f2af 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandObject.java @@ -83,13 +83,18 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; -@Director(name = "object", aliases = "o", origin = DirectorOrigin.PLAYER, description = "Iris object manipulation") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.core.localization.RuntimeUiMessages; +@Director(name = "object", aliases = "o", origin = DirectorOrigin.PLAYER, description = "Iris object manipulation", descriptionKey = "iris.director.commandobject.director.iris_object_manipulation") public class CommandObject implements DirectorExecutor { - @Director(description = "Open an object studio world (grid of every object; dimension optional, defaults to all packs)", sync = true) + @Director(description = "Open an object studio world (grid of every object; dimension optional, defaults to all packs)", descriptionKey = "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs", sync = true) public void studio( - @Param(defaultValue = "null", description = "Optional dimension whose object pack to lay out; omit to aggregate objects from every pack", aliases = "dim", customHandler = NullableDimensionHandler.class) + @Param(defaultValue = "null", description = "Optional dimension whose object pack to lay out; omit to aggregate objects from every pack", descriptionKey = "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every", aliases = "dim", customHandler = NullableDimensionHandler.class) IrisDimension dimension, - @Param(defaultValue = "1337", description = "The seed to generate the studio with", aliases = "s") + @Param(defaultValue = "1337", description = "The seed to generate the studio with", descriptionKey = "iris.director.commandobject.param.seed_generate_studio_with", aliases = "s") long seed ) { VolmitSender commandSender = sender(); @@ -130,7 +135,7 @@ public class CommandObject implements DirectorExecutor { } if (hostDimension == null || sources.isEmpty()) { - commandSender.sendMessage(C.RED + "No packs with objects were found on this server."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_OBJECT_NO_PACKS_WITH_OBJECTS_WERE_FOUND_ON_THIS_SERVER)); return; } @@ -140,7 +145,7 @@ public class CommandObject implements DirectorExecutor { if (k != null) totalObjects += k.length; } if (totalObjects == 0) { - commandSender.sendMessage(C.RED + "No objects to place across the selected pack(s)."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_OBJECT_NO_OBJECTS_PLACE_ACROSS_SELECTED_PACK_S)); return; } @@ -151,8 +156,7 @@ public class CommandObject implements DirectorExecutor { String scope = dimension == null ? ("all packs [" + sources.size() + "]") : ("\"" + hostDimension.getName() + "\""); - commandSender.sendMessage(C.GREEN + "Opening Object Studio for " + scope + " (" - + totalObjects + " objects)"); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_OBJECT_OPENING_OBJECT_STUDIO_OBJECTS, MessageArgument.untrusted("scope", scope), MessageArgument.untrusted("totalObjects", totalObjects))); IrisDimension finalHost = hostDimension; try { @@ -176,7 +180,7 @@ public class CommandObject implements DirectorExecutor { }); } catch (Throwable e) { Iris.reportError("Failed to open object studio world \"" + finalHost.getLoadKey() + "\".", e); - commandSender.sendMessage(C.RED + "Failed to open object studio: " + e.getMessage()); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_OBJECT_FAILED_OPEN_OBJECT_STUDIO, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); } } @@ -269,14 +273,14 @@ public class CommandObject implements DirectorExecutor { }; } - @Director(description = "Check the composition of an object") + @Director(description = "Check the composition of an object", descriptionKey = "iris.director.commandobject.director.check_composition_object") public void analyze( - @Param(description = "The object to analyze", customHandler = ObjectHandler.class) + @Param(description = "The object to analyze", descriptionKey = "iris.director.commandobject.param.object_analyze", customHandler = ObjectHandler.class) String object ) { IrisObject o = IrisData.loadAnyObject(object, data()); - sender().sendMessage("Object Size: " + o.getW() + " * " + o.getH() + " * " + o.getD() + ""); - sender().sendMessage("Blocks Used: " + NumberFormat.getIntegerInstance().format(o.getBlocks().size())); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_OBJECT_SIZE, MessageArgument.untrusted("value", o.getW()), MessageArgument.untrusted("value2", o.getH()), MessageArgument.untrusted("value3", o.getD()))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_BLOCKS_USED, MessageArgument.untrusted("value", NumberFormat.getIntegerInstance().format(o.getBlocks().size())))); var queue = o.getBlocks().values(); Map> unsorted = new HashMap<>(); @@ -309,7 +313,7 @@ public class CommandObject implements DirectorExecutor { .sorted().toList(); Set sortedMats = new TreeSet<>(Comparator.comparingInt(materials::get).reversed()); sortedMats.addAll(sortedMatsList); - sender().sendMessage("== Blocks in object =="); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_BLOCKS_OBJECT)); int n = 0; for (Material mat : sortedMats) { @@ -331,35 +335,35 @@ public class CommandObject implements DirectorExecutor { n++; if (n >= 10) { - sender().sendMessage(" + " + (sortedMats.size() - n) + " other block types"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_OTHER_BLOCK_TYPES, MessageArgument.untrusted("value", (sortedMats.size() - n)))); return; } } } - @Director(description = "Shrink an object to its minimum size") - public void shrink(@Param(description = "The object to shrink", customHandler = ObjectHandler.class) String object) { + @Director(description = "Shrink an object to its minimum size", descriptionKey = "iris.director.commandobject.director.shrink_object_its_minimum_size") + public void shrink(@Param(description = "The object to shrink", descriptionKey = "iris.director.commandobject.param.object_shrink", customHandler = ObjectHandler.class) String object) { IrisObject o = IrisData.loadAnyObject(object, data()); - sender().sendMessage("Current Object Size: " + o.getW() + " * " + o.getH() + " * " + o.getD()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_CURRENT_OBJECT_SIZE, MessageArgument.untrusted("value", o.getW()), MessageArgument.untrusted("value2", o.getH()), MessageArgument.untrusted("value3", o.getD()))); o.shrinkwrap(); - sender().sendMessage("New Object Size: " + o.getW() + " * " + o.getH() + " * " + o.getD()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NEW_OBJECT_SIZE, MessageArgument.untrusted("value", o.getW()), MessageArgument.untrusted("value2", o.getH()), MessageArgument.untrusted("value3", o.getD()))); try { o.write(o.getLoadFile()); } catch (IOException e) { - sender().sendMessage("Failed to save object " + o.getLoadFile() + ": " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_FAILED_SAVE_OBJECT, MessageArgument.untrusted("value", o.getLoadFile()), MessageArgument.untrusted("value2", String.valueOf(e.getMessage())))); e.printStackTrace(); } } - @Director(description = "Grow organic branches through the canopy so every leaf survives vanilla decay", + @Director(description = "Grow organic branches through the canopy so every leaf survives vanilla decay", descriptionKey = "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay", origin = DirectorOrigin.BOTH) public void plausibilize( - @Param(description = "Object key, prefix (trees/), or filesystem path", + @Param(description = "Object key, prefix (trees/), or filesystem path", descriptionKey = "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path", customHandler = ObjectTargetHandler.class) String target, - @Param(name = "dryrun", description = "dryrun=true analyzes only, writes nothing", defaultValue = "false") + @Param(name = "dryrun", description = "dryrun=true analyzes only, writes nothing", descriptionKey = "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing", defaultValue = "false") boolean dryRun, - @Param(name = "reach", description = "reach=N max branch length in blocks from existing wood; farther leaf clusters are pinned persistent instead. reach=0 grows unlimited", defaultValue = "12") + @Param(name = "reach", description = "reach=N max branch length in blocks from existing wood; farther leaf clusters are pinned persistent instead. reach=0 grows unlimited", descriptionKey = "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters", defaultValue = "12") int reach ) { IrisData nearest = data(); @@ -368,19 +372,23 @@ public class CommandObject implements DirectorExecutor { targets = resolveFromPacks(target); } if (targets.isEmpty()) { - sender().sendMessage(C.RED + "No objects matched: " + target); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NO_OBJECTS_MATCHED, MessageArgument.untrusted("target", target))); return; } - sender().sendMessage(C.IRIS + "Plausibilize [reach=" + reach + (dryRun ? ", DRY" : "") - + "] queued " + targets.size() + " object(s)"); + sender().sendMessage(IrisLanguage.text( + BukkitCommandMessagesExtended.COMMAND_OBJECT_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S, + MessageArgument.trusted("reach", reach), + MessageArgument.trusted("value", dryRun ? IrisLanguage.text(RuntimeUiMessages.TREE_DRY_SUFFIX) : ""), + MessageArgument.trusted("value2", targets.size()) + )); org.bukkit.command.CommandSender s = sender(); List queued = targets; - J.a(() -> TreePlausibilizeBatch.run(queued, dryRun, reach, nearest, (String line) -> - s.sendMessage(line.startsWith("Done:") || line.startsWith("Totals:") || line.startsWith("[") - ? C.IRIS + line - : C.GRAY + " " + line))); + J.a(() -> TreePlausibilizeBatch.run(queued, dryRun, reach, nearest, (TreePlausibilizeBatch.Output output) -> + s.sendMessage(output.headline() + ? C.IRIS + output.text() + : C.GRAY + " " + output.text()))); } private static List resolveFromPacks(String target) { @@ -408,7 +416,7 @@ public class CommandObject implements DirectorExecutor { return out; } - @Director(description = "Convert .schem files in the 'convert' folder to .iob files.") + @Director(description = "Convert .schem files in the 'convert' folder to .iob files.", descriptionKey = "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files") public void convert () { try { IrisConverter.convertSchematics(sender()); @@ -418,26 +426,26 @@ public class CommandObject implements DirectorExecutor { } - @Director(description = "Get a powder that reveals objects", aliases = "d") + @Director(description = "Get a powder that reveals objects", descriptionKey = "iris.director.commandobject.director.get_powder_that_reveals_objects", aliases = "d") public void dust() { player().getInventory().addItem(WandSVC.createDust()); sender().playSound(Sound.AMBIENT_SOUL_SAND_VALLEY_ADDITIONS, 1f, 1.5f); } - @Director(description = "Contract a selection based on your looking direction", aliases = "-") + @Director(description = "Contract a selection based on your looking direction", descriptionKey = "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction", aliases = "-") public void contract( - @Param(description = "The amount to inset by", defaultValue = "1") + @Param(description = "The amount to inset by", descriptionKey = "iris.director.commandobject.param.amount_inset_by", defaultValue = "1") int amount ) { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage("Hold your wand."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_HOLD_YOUR_WAND)); return; } Location[] b = WandSVC.getCuboid(player()); if (b == null || b[0] == null || b[1] == null) { - sender().sendMessage("No area selected."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NO_AREA_SELECTED)); return; } Location a1 = b[0].clone(); @@ -453,13 +461,13 @@ public class CommandObject implements DirectorExecutor { sender().playSound(Sound.ENTITY_ITEM_FRAME_ROTATE_ITEM, 1f, 0.55f); } - @Director(description = "Set point 1 to look", aliases = "p1") + @Director(description = "Set point 1 to look", descriptionKey = "iris.director.commandobject.director.set_point_1_look", aliases = "p1") public void position1( - @Param(description = "Whether to use your current position, or where you look", defaultValue = "true") + @Param(description = "Whether to use your current position, or where you look", descriptionKey = "iris.director.commandobject.param.whether_use_your_current_position_where_you_look", defaultValue = "true") boolean here ) { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage("Ready your Wand."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_READY_YOUR_WAND)); return; } @@ -479,13 +487,13 @@ public class CommandObject implements DirectorExecutor { } } - @Director(description = "Set point 2 to look", aliases = "p2") + @Director(description = "Set point 2 to look", descriptionKey = "iris.director.commandobject.director.set_point_2_look", aliases = "p2") public void position2( - @Param(description = "Whether to use your current position, or where you look", defaultValue = "true") + @Param(description = "Whether to use your current position, or where you look", descriptionKey = "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2", defaultValue = "true") boolean here ) { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage("Ready your Wand."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_READY_YOUR_WAND_2)); return; } @@ -506,24 +514,24 @@ public class CommandObject implements DirectorExecutor { } } - @Director(description = "Paste an object", sync = true) + @Director(description = "Paste an object", descriptionKey = "iris.director.commandobject.director.paste_object", sync = true) public void paste( - @Param(description = "The object to paste", customHandler = ObjectHandler.class) + @Param(description = "The object to paste", descriptionKey = "iris.director.commandobject.param.object_paste", customHandler = ObjectHandler.class) String object, - @Param(description = "Whether or not to edit the object (need to hold wand)", defaultValue = "false") + @Param(description = "Whether or not to edit the object (need to hold wand)", descriptionKey = "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand", defaultValue = "false") boolean edit, - @Param(description = "The amount of degrees to rotate by", defaultValue = "0") + @Param(description = "The amount of degrees to rotate by", descriptionKey = "iris.director.commandobject.param.amount_degrees_rotate_by", defaultValue = "0") int rotate, - @Param(description = "The factor by which to scale the object placement", defaultValue = "1") + @Param(description = "The factor by which to scale the object placement", descriptionKey = "iris.director.commandobject.param.factor_by_which_scale_object_placement", defaultValue = "1") double scale // , -// @Param(description = "The scale interpolator to use", defaultValue = "none") +// @Param(description = "The scale interpolator to use", descriptionKey = "iris.director.commandobject.param.scale_interpolator_use", defaultValue = "none") // IrisObjectPlacementScaleInterpolator interpolator ) { IrisObject o = IrisData.loadAnyObject(object, data()); double maxScale = Double.max(10 - o.getBlocks().size() / 10000d, 1); if (scale > maxScale) { - sender().sendMessage(C.YELLOW + "Indicated scale exceeds maximum. Downscaled to maximum: " + maxScale); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_INDICATED_SCALE_EXCEEDS_MAXIMUM_DOWNSCALED_MAXIMUM, MessageArgument.untrusted("maxScale", maxScale))); scale = maxScale; } @@ -552,70 +560,70 @@ public class CommandObject implements DirectorExecutor { if (WandSVC.isWand(wand)) { wand = newWand; player().getInventory().setItemInMainHand(wand); - sender().sendMessage("Updated wand for " + "objects/" + o.getLoadKey() + ".iob "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB, MessageArgument.untrusted("value", o.getLoadKey()))); } else { int slot = WandSVC.findWand(player().getInventory()); if (slot == -1) { player().getInventory().addItem(newWand); - sender().sendMessage("Given new wand for " + "objects/" + o.getLoadKey() + ".iob "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_GIVEN_NEW_WAND_OBJECTS_IOB, MessageArgument.untrusted("value", o.getLoadKey()))); } else { player().getInventory().setItem(slot, newWand); - sender().sendMessage("Updated wand for " + "objects/" + o.getLoadKey() + ".iob "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB_2, MessageArgument.untrusted("value", o.getLoadKey()))); } } } else { - sender().sendMessage(C.IRIS + "Placed " + object); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_PLACED, MessageArgument.untrusted("object", object))); } } - @Director(description = "Save an object") + @Director(description = "Save an object", descriptionKey = "iris.director.commandobject.director.save_object") public void save( - @Param(description = "The dimension to store the object in", contextual = true) + @Param(description = "The dimension to store the object in", descriptionKey = "iris.director.commandobject.param.dimension_store_object", contextual = true) IrisDimension dimension, - @Param(description = "The file to store it in, can use / for subfolders") + @Param(description = "The file to store it in, can use / for subfolders", descriptionKey = "iris.director.commandobject.param.file_store_it_can_use_subfolders") String name, - @Param(description = "Overwrite existing object files", defaultValue = "false", aliases = "force") + @Param(description = "Overwrite existing object files", descriptionKey = "iris.director.commandobject.param.overwrite_existing_object_files", defaultValue = "false", aliases = "force") boolean overwrite, - @Param(description = "Use legacy TileState serialization if possible", defaultValue = "true") + @Param(description = "Use legacy TileState serialization if possible", descriptionKey = "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible", defaultValue = "true") boolean legacy ) { IrisObject o = WandSVC.createSchematic(player(), legacy); if (o == null) { - sender().sendMessage(C.YELLOW + "You need to hold your wand!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_YOU_NEED_HOLD_YOUR_WAND)); return; } File file = Iris.service(StudioSVC.class).getWorkspaceFile(dimension.getLoadKey(), "objects", name + ".iob"); if (file.exists() && !overwrite) { - sender().sendMessage(C.RED + "File already exists. Set overwrite=true to overwrite it."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_FILE_ALREADY_EXISTS_SET_OVERWRITE_TRUE_OVERWRITE_IT)); return; } try { o.write(file, sender()); } catch (IOException e) { - sender().sendMessage(C.RED + "Failed to save object because of an IOException: " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_FAILED_SAVE_OBJECT_BECAUSE_IOEXCEPTION, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); Iris.reportError(e); } sender().playSound(Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 1.5f); - sender().sendMessage(C.GREEN + "Successfully object to saved: " + dimension.getLoadKey() + "/objects/" + name); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_SUCCESSFULLY_OBJECT_SAVED_OBJECTS, MessageArgument.untrusted("value", dimension.getLoadKey()), MessageArgument.untrusted("name", name))); } - @Director(description = "Shift a selection in your looking direction") + @Director(description = "Shift a selection in your looking direction", descriptionKey = "iris.director.commandobject.director.shift_selection_your_looking_direction") public void shift( - @Param(description = "The amount to shift by", defaultValue = "1") + @Param(description = "The amount to shift by", descriptionKey = "iris.director.commandobject.param.amount_shift_by", defaultValue = "1") int amount ) { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage("Hold your wand."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_HOLD_YOUR_WAND_2)); return; } Location[] b = WandSVC.getCuboid(player()); if (b == null || b[0] == null || b[1] == null) { - sender().sendMessage("No area selected."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NO_AREA_SELECTED_2)); return; } Location a1 = b[0].clone(); @@ -634,52 +642,52 @@ public class CommandObject implements DirectorExecutor { sender().playSound(Sound.ENTITY_ITEM_FRAME_ROTATE_ITEM, 1f, 0.55f); } - @Director(description = "Undo a number of pastes", aliases = "u") + @Director(description = "Undo a number of pastes", descriptionKey = "iris.director.commandobject.director.undo_number_pastes", aliases = "u") public void undo( - @Param(description = "The amount of pastes to undo", defaultValue = "1") + @Param(description = "The amount of pastes to undo", descriptionKey = "iris.director.commandobject.param.amount_pastes_undo", defaultValue = "1") int amount ) { ObjectSVC service = Iris.service(ObjectSVC.class); int actualReverts = Math.min(service.getUndos().size(), amount); service.revertChanges(actualReverts); - sender().sendMessage(C.BLUE + "Reverted " + actualReverts + C.BLUE +" pastes!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_REVERTED_PASTES, MessageArgument.untrusted("actualReverts", actualReverts))); } - @Director(description = "Gets an object wand and grabs the current WorldEdit selection.", aliases = "we", origin = DirectorOrigin.PLAYER) + @Director(description = "Gets an object wand and grabs the current WorldEdit selection.", descriptionKey = "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection", aliases = "we", origin = DirectorOrigin.PLAYER) public void we() { if (!Bukkit.getPluginManager().isPluginEnabled("WorldEdit")) { - sender().sendMessage(C.RED + "You can't get a WorldEdit selection without WorldEdit, you know."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_YOU_CAN_T_GET_WORLDEDIT_SELECTION_WITHOUT_WORLDEDIT_YOU_KNOW)); return; } Cuboid locs = WorldEditLink.getSelection(sender().player()); if (locs == null) { - sender().sendMessage(C.RED + "You don't have a WorldEdit selection in this world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_YOU_DON_T_HAVE_WORLDEDIT_SELECTION_THIS_WORLD)); return; } sender().player().getInventory().addItem(WandSVC.createWand(locs.getLowerNE(), locs.getUpperSW())); - sender().sendMessage(C.GREEN + "A fresh wand with your current WorldEdit selection on it!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_FRESH_WAND_WITH_YOUR_CURRENT_WORLDEDIT_SELECTION_ON_IT)); } - @Director(description = "Get an object wand", sync = true) + @Director(description = "Get an object wand", descriptionKey = "iris.director.commandobject.director.get_object_wand", sync = true) public void wand() { player().getInventory().addItem(WandSVC.createWand()); sender().playSound(Sound.ITEM_ARMOR_EQUIP_NETHERITE, 1f, 1.5f); - sender().sendMessage(C.GREEN + "Poof! Good luck building!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_POOF_GOOD_LUCK_BUILDING)); } - @Director(name = "x&y", description = "Autoselect up, down & out", sync = true) + @Director(name = "x&y", description = "Autoselect up, down & out", descriptionKey = "iris.director.commandobject.director.autoselect_up_down_out", sync = true) public void xay() { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage(C.YELLOW + "Hold your wand!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_HOLD_YOUR_WAND_3)); return; } Location[] b = WandSVC.getCuboid(player()); if (b == null || b[0] == null || b[1] == null) { - sender().sendMessage("No area selected."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NO_AREA_SELECTED_3)); return; } Location a1 = b[0].clone(); @@ -718,19 +726,19 @@ public class CommandObject implements DirectorExecutor { player().getInventory().setItemInMainHand(WandSVC.createWand(b[0], b[1])); player().updateInventory(); sender().playSound(Sound.ENTITY_ITEM_FRAME_ROTATE_ITEM, 1f, 0.55f); - sender().sendMessage(C.GREEN + "Auto-select complete!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_AUTO_SELECT_COMPLETE)); } - @Director(name = "x+y", description = "Autoselect up & out", sync = true) + @Director(name = "x+y", description = "Autoselect up & out", descriptionKey = "iris.director.commandobject.director.autoselect_up_out", sync = true) public void xpy() { if (!WandSVC.isHoldingWand(player())) { - sender().sendMessage(C.YELLOW + "Hold your wand!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_HOLD_YOUR_WAND_4)); return; } Location[] b = WandSVC.getCuboid(player()); if (b == null || b[0] == null || b[1] == null) { - sender().sendMessage("No area selected."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_NO_AREA_SELECTED_4)); return; } b[0].add(new Vector(0, 1, 0)); @@ -759,6 +767,6 @@ public class CommandObject implements DirectorExecutor { player().getInventory().setItemInMainHand(WandSVC.createWand(b[0], b[1])); player().updateInventory(); sender().playSound(Sound.ENTITY_ITEM_FRAME_ROTATE_ITEM, 1f, 0.55f); - sender().sendMessage(C.GREEN + "Auto-select complete!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_OBJECT_AUTO_SELECT_COMPLETE_2)); } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java index 8f10b576d..f08e96701 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPack.java @@ -25,32 +25,36 @@ import art.arcane.iris.core.pack.PackValidationRegistry; import art.arcane.iris.core.pack.PackValidationResult; import art.arcane.iris.core.pack.PackValidator; import art.arcane.iris.util.common.director.DirectorExecutor; -import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.volmlib.util.director.annotations.Director; import art.arcane.volmlib.util.director.annotations.Param; +import art.arcane.volmlib.util.localization.TextKey; import java.io.File; import java.util.List; -@Director(name = "pack", aliases = {"pk"}, description = "Pack validation and maintenance") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +@Director(name = "pack", aliases = {"pk"}, description = "Pack validation and maintenance", descriptionKey = "iris.director.commandpack.director.pack_validation_maintenance") public class CommandPack implements DirectorExecutor { - @Director(description = "Validate a pack (or all packs) and re-publish results", aliases = {"v"}) + @Director(description = "Validate a pack (or all packs) and re-publish results", descriptionKey = "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results", aliases = {"v"}) public void validate( - @Param(description = "The pack folder name to validate (leave empty for all)", defaultValue = "") + @Param(description = "The pack folder name to validate (leave empty for all)", descriptionKey = "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all", defaultValue = "") String pack ) { VolmitSender s = sender(); File packsRoot = Iris.instance.getDataFolder("packs"); if (!packsRoot.isDirectory()) { - s.sendMessage(C.RED + "packs/ folder not found."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_PACKS_FOLDER_NOT_FOUND)); return; } if (pack == null || pack.isBlank()) { File[] dirs = packsRoot.listFiles(File::isDirectory); if (dirs == null || dirs.length == 0) { - s.sendMessage(C.YELLOW + "No packs to validate."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NO_PACKS_VALIDATE)); return; } int broken = 0; @@ -60,23 +64,23 @@ public class CommandPack implements DirectorExecutor { broken++; } } - s.sendMessage(C.GREEN + "Validation complete. Broken packs: " + broken + "/" + dirs.length); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_VALIDATION_COMPLETE_BROKEN_PACKS, MessageArgument.untrusted("broken", String.valueOf(broken)), MessageArgument.untrusted("value", String.valueOf(dirs.length)))); return; } File target = PackDirectoryResolver.resolveExisting(packsRoot, pack); if (target == null) { - s.sendMessage(C.RED + "Pack '" + pack + "' not found under packs/."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS, MessageArgument.untrusted("pack", String.valueOf(pack)))); return; } runValidate(s, target); } - @Director(description = "Preview or apply unused-resource cleanup", aliases = {"c"}) + @Director(description = "Preview or apply unused-resource cleanup", descriptionKey = "iris.director.commandpack.director.preview_apply_unused_resource_cleanup", aliases = {"c"}) public void cleanup( - @Param(description = "The pack folder name to clean") + @Param(description = "The pack folder name to clean", descriptionKey = "iris.director.commandpack.param.pack_folder_name_clean") String pack, - @Param(description = "preview or apply", defaultValue = "preview") + @Param(description = "preview or apply", descriptionKey = "iris.director.commandpack.param.preview_apply", defaultValue = "preview") String mode ) { VolmitSender s = sender(); @@ -87,43 +91,47 @@ public class CommandPack implements DirectorExecutor { if ("apply".equalsIgnoreCase(mode)) { PackResourceCleanup.ApplyResult result = PackResourceCleanup.apply(packFolder); if (!result.success()) { - s.sendMessage(C.RED + result.error()); - reportPaths(s, result.quarantinedPaths(), "still quarantined"); + s.sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_PACK_CLEANUP_FAILED, + MessageArgument.untrusted("error", String.valueOf(result.error())) + )); + reportPaths(s, result.quarantinedPaths(), BukkitRuntimeMessages.COMMAND_PACK_PATH_STILL_QUARANTINED); return; } if (!result.changed()) { - s.sendMessage(C.GREEN + "No cleanup candidates found for pack '" + pack + "'."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK, MessageArgument.untrusted("pack", String.valueOf(pack)))); return; } - s.sendMessage(C.GREEN + "Quarantined " + result.quarantinedPaths().size() - + " cleanup candidate(s) under " + result.quarantinePath() + "."); - reportPaths(s, result.quarantinedPaths(), "quarantined"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER, MessageArgument.untrusted("size", String.valueOf(result.quarantinedPaths().size())), MessageArgument.untrusted("quarantinePath", String.valueOf(result.quarantinePath())))); + reportPaths(s, result.quarantinedPaths(), BukkitRuntimeMessages.COMMAND_PACK_PATH_QUARANTINED); return; } if (!"preview".equalsIgnoreCase(mode)) { - s.sendMessage(C.RED + "Cleanup mode must be preview or apply."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_CLEANUP_MODE_MUST_BE_PREVIEW_APPLY)); return; } PackResourceCleanup.Preview preview = PackResourceCleanup.preview(packFolder); if (!preview.success()) { - s.sendMessage(C.RED + preview.error()); + s.sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_PACK_CLEANUP_FAILED, + MessageArgument.untrusted("error", String.valueOf(preview.error())) + )); return; } if (!preview.hasCandidates()) { - s.sendMessage(C.GREEN + "No cleanup candidates found for pack '" + pack + "'."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK_2, MessageArgument.untrusted("pack", String.valueOf(pack)))); return; } - s.sendMessage(C.YELLOW + "Cleanup preview for pack '" + pack + "': " - + preview.candidatePaths().size() + " candidate(s). No files were changed."); - reportPaths(s, preview.candidatePaths(), "candidate"); - s.sendMessage(C.GRAY + "Run /iris pack cleanup " + pack + " mode=apply to quarantine these candidates after a fresh scan."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED, MessageArgument.untrusted("pack", String.valueOf(pack)), MessageArgument.untrusted("size", String.valueOf(preview.candidatePaths().size())))); + reportPaths(s, preview.candidatePaths(), BukkitRuntimeMessages.COMMAND_PACK_PATH_CANDIDATE); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RUN_IRIS_PACK_CLEANUP_MODE_APPLY_QUARANTINE_THESE_CANDIDATES_AFTER_FRESH_SCAN, MessageArgument.untrusted("pack", String.valueOf(pack)))); } - @Director(description = "Preview or apply restoration of the latest quarantine", aliases = {"r"}) + @Director(description = "Preview or apply restoration of the latest quarantine", descriptionKey = "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine", aliases = {"r"}) public void restore( - @Param(description = "The pack folder name to restore") + @Param(description = "The pack folder name to restore", descriptionKey = "iris.director.commandpack.param.pack_folder_name_restore") String pack, - @Param(description = "preview or apply", defaultValue = "preview") + @Param(description = "preview or apply", descriptionKey = "iris.director.commandpack.param.preview_apply_2", defaultValue = "preview") String mode ) { VolmitSender s = sender(); @@ -134,69 +142,78 @@ public class CommandPack implements DirectorExecutor { if ("apply".equalsIgnoreCase(mode)) { PackResourceCleanup.RestoreResult result = PackResourceCleanup.restoreLatest(packFolder); if (!result.conflicts().isEmpty()) { - s.sendMessage(C.RED + "Restore refused because " + result.conflicts().size() + " destination(s) already exist."); - reportPaths(s, result.conflicts(), "conflict"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST, MessageArgument.untrusted("size", String.valueOf(result.conflicts().size())))); + reportPaths(s, result.conflicts(), BukkitRuntimeMessages.COMMAND_PACK_PATH_CONFLICT); return; } if (!result.success()) { - s.sendMessage(C.RED + result.error()); + s.sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_PACK_RESTORE_FAILED, + MessageArgument.untrusted("error", String.valueOf(result.error())) + )); return; } if (!result.changed()) { - s.sendMessage(C.YELLOW + "Nothing to restore for pack '" + pack + "'."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NOTHING_RESTORE_PACK, MessageArgument.untrusted("pack", String.valueOf(pack)))); return; } - s.sendMessage(C.GREEN + "Restored " + result.restoredPaths().size() - + " file(s) from " + result.dumpPath() + "."); - reportPaths(s, result.restoredPaths(), "restored"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RESTORED_FILE_S_FROM, MessageArgument.untrusted("size", String.valueOf(result.restoredPaths().size())), MessageArgument.untrusted("dumpPath", String.valueOf(result.dumpPath())))); + reportPaths(s, result.restoredPaths(), BukkitRuntimeMessages.COMMAND_PACK_PATH_RESTORED); return; } if (!"preview".equalsIgnoreCase(mode)) { - s.sendMessage(C.RED + "Restore mode must be preview or apply."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RESTORE_MODE_MUST_BE_PREVIEW_APPLY)); return; } PackResourceCleanup.RestorePreview preview = PackResourceCleanup.previewRestore(packFolder); if (!preview.success()) { - s.sendMessage(C.RED + preview.error()); + s.sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_PACK_RESTORE_FAILED, + MessageArgument.untrusted("error", String.valueOf(preview.error())) + )); return; } if (!preview.hasFiles()) { - s.sendMessage(C.YELLOW + "Nothing to restore for pack '" + pack + "'."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NOTHING_RESTORE_PACK_2, MessageArgument.untrusted("pack", String.valueOf(pack)))); return; } - s.sendMessage(C.YELLOW + "Restore preview for " + preview.dumpPath() + ": " - + preview.filePaths().size() + " file(s). No files were changed."); - reportPaths(s, preview.filePaths(), "file"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED, MessageArgument.untrusted("dumpPath", String.valueOf(preview.dumpPath())), MessageArgument.untrusted("size", String.valueOf(preview.filePaths().size())))); + reportPaths(s, preview.filePaths(), BukkitRuntimeMessages.COMMAND_PACK_PATH_FILE); if (!preview.conflicts().isEmpty()) { - s.sendMessage(C.RED + "Restore is blocked by " + preview.conflicts().size() + " existing destination(s)."); - reportPaths(s, preview.conflicts(), "conflict"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S, MessageArgument.untrusted("size", String.valueOf(preview.conflicts().size())))); + reportPaths(s, preview.conflicts(), BukkitRuntimeMessages.COMMAND_PACK_PATH_CONFLICT); return; } - s.sendMessage(C.GRAY + "Run /iris pack restore " + pack + " mode=apply to restore after a fresh conflict check."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_RUN_IRIS_PACK_RESTORE_MODE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK, MessageArgument.untrusted("pack", String.valueOf(pack)))); } - @Director(description = "Show cached validation status for a pack", aliases = {"s"}) + @Director(description = "Show cached validation status for a pack", descriptionKey = "iris.director.commandpack.director.show_cached_validation_status_pack", aliases = {"s"}) public void status( - @Param(description = "The pack folder name", defaultValue = "") + @Param(description = "The pack folder name", descriptionKey = "iris.director.commandpack.param.pack_folder_name", defaultValue = "") String pack ) { VolmitSender s = sender(); if (pack == null || pack.isBlank()) { if (PackValidationRegistry.snapshot().isEmpty()) { - s.sendMessage(C.YELLOW + "No validation results recorded. Run /iris pack validate first."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST)); return; } PackValidationRegistry.snapshot().forEach((name, result) -> { - String tag = result.isLoadable() ? (C.GREEN + "OK") : (C.RED + "BROKEN"); - s.sendMessage(tag + C.RESET + " " + name - + C.GRAY + " (blocking=" + result.getBlockingErrors().size() - + ", warnings=" + result.getWarnings().size() + ")"); + TextKey key = result.isLoadable() + ? BukkitRuntimeMessages.COMMAND_PACK_STATUS_OK + : BukkitRuntimeMessages.COMMAND_PACK_STATUS_BROKEN; + s.sendMessage(IrisLanguage.text( + key, + MessageArgument.untrusted("pack", name), + MessageArgument.trusted("blocking", result.getBlockingErrors().size()), + MessageArgument.trusted("warnings", result.getWarnings().size()) + )); }); return; } PackValidationResult result = PackValidationRegistry.get(pack); if (result == null) { - s.sendMessage(C.YELLOW + "No validation result for '" + pack + "'. Run /iris pack validate " + pack + "."); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE, MessageArgument.untrusted("pack", String.valueOf(pack)), MessageArgument.untrusted("pack2", String.valueOf(pack)))); return; } reportResult(s, result); @@ -210,50 +227,56 @@ public class CommandPack implements DirectorExecutor { return result; } catch (Throwable e) { Iris.reportError("Pack validation failed for '" + packFolder.getName() + "'", e); - s.sendMessage(C.RED + "Validation of '" + packFolder.getName() + "' failed: " + e.getMessage()); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_VALIDATION_FAILED, MessageArgument.untrusted("name", String.valueOf(packFolder.getName())), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); return null; } } private void reportResult(VolmitSender s, PackValidationResult result) { if (result.isLoadable()) { - s.sendMessage(C.GREEN + "Pack '" + result.getPackName() + "' is loadable." - + C.GRAY + " (warnings=" + result.getWarnings().size() + ")"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_PACK_IS_LOADABLE_WARNINGS, MessageArgument.untrusted("packName", String.valueOf(result.getPackName())), MessageArgument.untrusted("size", String.valueOf(result.getWarnings().size())))); } else { - s.sendMessage(C.RED + "Pack '" + result.getPackName() + "' is BROKEN:"); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_PACK_IS_BROKEN, MessageArgument.untrusted("packName", String.valueOf(result.getPackName())))); for (String reason : result.getBlockingErrors()) { - s.sendMessage(C.RED + " - " + reason); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_MESSAGE, MessageArgument.untrusted("reason", String.valueOf(reason)))); } } int wMax = Math.min(10, result.getWarnings().size()); for (int i = 0; i < wMax; i++) { - s.sendMessage(C.YELLOW + " ! " + result.getWarnings().get(i)); + s.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.COMMAND_PACK_MESSAGE_2, MessageArgument.untrusted("value", String.valueOf(result.getWarnings().get(i))))); } if (result.getWarnings().size() > wMax) { - s.sendMessage(C.GRAY + " ... and " + (result.getWarnings().size() - wMax) + " more warning(s)."); + s.sendMessage(IrisLanguage.text( + BukkitRuntimeMessages.COMMAND_PACK_MORE_WARNING_S, + MessageArgument.trusted("count", result.getWarnings().size() - wMax) + )); } } private File findPack(VolmitSender sender, String pack) { if (pack == null || pack.isBlank()) { - sender.sendMessage(C.RED + "You must specify a pack name."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_PACK_YOU_MUST_SPECIFY_PACK_NAME)); return null; } File packFolder = PackDirectoryResolver.resolveExisting(Iris.instance.getDataFolder("packs"), pack); if (packFolder == null) { - sender.sendMessage(C.RED + "Pack '" + pack + "' not found under packs/."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS, MessageArgument.untrusted("pack", pack))); return null; } return packFolder; } - private void reportPaths(VolmitSender sender, List paths, String label) { + private void reportPaths(VolmitSender sender, List paths, TextKey label) { int max = Math.min(10, paths.size()); for (int i = 0; i < max; i++) { - sender.sendMessage(C.GRAY + " - " + label + ": " + paths.get(i)); + sender.sendMessage(IrisLanguage.text( + BukkitCommandMessages.COMMAND_PACK_MESSAGE, + MessageArgument.untrusted("label", IrisLanguage.text(label)), + MessageArgument.untrusted("value", paths.get(i)) + )); } if (paths.size() > max) { - sender.sendMessage(C.GRAY + " ... and " + (paths.size() - max) + " more."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_PACK_MORE, MessageArgument.untrusted("value", (paths.size() - max)))); } } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java index 9e3b9f6ce..5b888e668 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandPregen.java @@ -31,34 +31,38 @@ import art.arcane.volmlib.util.math.Position2; import org.bukkit.World; import org.bukkit.util.Vector; -@Director(name = "pregen", aliases = "pregenerate", description = "Pregenerate your Iris worlds!") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +@Director(name = "pregen", aliases = "pregenerate", description = "Pregenerate your Iris worlds!", descriptionKey = "iris.director.commandpregen.director.pregenerate_your_iris_worlds") public class CommandPregen implements DirectorExecutor { - @Director(description = "Pregenerate a world") + @Director(description = "Pregenerate a world", descriptionKey = "iris.director.commandpregen.director.pregenerate_world") public void start( - @Param(description = "The radius of the pregen in blocks", aliases = "size") + @Param(description = "The radius of the pregen in blocks", descriptionKey = "iris.director.commandpregen.param.radius_pregen_blocks", aliases = "size") int radius, - @Param(description = "The world to pregen", contextual = true) + @Param(description = "The world to pregen", descriptionKey = "iris.director.commandpregen.param.world_pregen", contextual = true) World world, - @Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", defaultValue = "0,0") + @Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", descriptionKey = "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location", defaultValue = "0,0") Vector center, - @Param(description = "Open the Iris pregen gui", defaultValue = "true") + @Param(description = "Open the Iris pregen gui", descriptionKey = "iris.director.commandpregen.param.open_iris_pregen_gui", defaultValue = "true") boolean gui, - @Param(name = "serial", description = "Generate only one chunk at a time", defaultValue = "false") + @Param(name = "serial", description = "Generate only one chunk at a time", descriptionKey = "iris.director.commandpregen.param.generate_only_one_chunk_at_time", defaultValue = "false") boolean serial ) { if (radius <= 0) { - sender().sendMessage(C.RED + "Pregen radius must be greater than zero blocks."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_PREGEN_RADIUS_MUST_BE_GREATER_THAN_ZERO_BLOCKS)); return; } if (serial && !IrisToolbelt.supportsStrictSerialPregeneration()) { - sender().sendMessage(C.RED + "Strict serial pregeneration requires Paper or a Paper-compatible server."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_STRICT_SERIAL_PREGENERATION_REQUIRES_PAPER_PAPER_COMPATIBLE_SERVER)); return; } try { if (sender().isPlayer() && access() == null) { - sender().sendMessage(C.RED + "The engine access for this world is null!"); - sender().sendMessage(C.RED + "Please make sure the world is loaded & the engine is initialized. Generate a new chunk, for example."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_ENGINE_ACCESS_THIS_WORLD_IS_NULL)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_PLEASE_MAKE_SURE_WORLD_IS_LOADED_ENGINE_IS_INITIALIZED_GENERATE)); } PregenTask task = PregenTask .builder() @@ -76,48 +80,42 @@ public class CommandPregen implements DirectorExecutor { sender().sendMessage(msg); Iris.info(msg); } catch (Throwable e) { - sender().sendMessage(C.RED + "Failed to start pregeneration. See console for details."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_FAILED_START_PREGENERATION_SEE_CONSOLE_DETAILS)); Iris.reportError(e); e.printStackTrace(); } } - @Director(description = "Stop the active pregeneration task", aliases = "x") + @Director(description = "Stop the active pregeneration task", descriptionKey = "iris.director.commandpregen.director.stop_active_pregeneration_task", aliases = "x") public void stop() { if (PregeneratorJob.shutdownInstance()) { String message = C.BLUE + "Pregen stop requested; finishing active work before cancellation."; sender().sendMessage(message); Iris.info(message); } else { - sender().sendMessage(C.YELLOW + "No active pregeneration tasks to stop"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_STOP)); } } - @Director(description = "Pause / continue the active pregeneration task", aliases = {"resume"}) + @Director(description = "Pause / continue the active pregeneration task", descriptionKey = "iris.director.commandpregen.director.pause_continue_active_pregeneration_task", aliases = {"resume"}) public void pause() { if (PregeneratorJob.pauseResume()) { - sender().sendMessage(C.GREEN + "Paused/unpaused pregeneration task, now: " + (PregeneratorJob.isPaused() ? "Paused" : "Running") + "."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_PAUSED_UNPAUSED_PREGENERATION_TASK_NOW, MessageArgument.trusted("value", IrisLanguage.text(PregeneratorJob.isPaused() ? RuntimeUiMessages.STATUS_PAUSED : RuntimeUiMessages.STATUS_RUNNING)))); } else { - sender().sendMessage(C.YELLOW + "No active pregeneration tasks to pause/unpause."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_PAUSE_UNPAUSE)); } } - @Director(description = "Show the active pregeneration status") + @Director(description = "Show the active pregeneration status", descriptionKey = "iris.director.commandpregen.director.show_active_pregeneration_status") public void status() { PregeneratorJob.PregenProgress progress = PregeneratorJob.progressSnapshot(); if (progress == null) { - sender().sendMessage(C.YELLOW + "No active pregeneration task."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASK)); return; } String world = progress.worldName() == null ? "?" : progress.worldName(); - sender().sendMessage(C.GREEN + "Pregen " + C.GOLD + world + C.GREEN + ": " + C.GOLD + Form.f(progress.generated()) + "/" + Form.f(progress.totalChunks()) - + C.GREEN + " (" + C.GOLD + String.format("%.1f", progress.percent()) + "%" + C.GREEN + ")" - + (progress.paused() ? C.YELLOW + " PAUSED" : "")); - sender().sendMessage(C.GREEN + "Speed: " + C.GOLD + Form.f((int) progress.chunksPerSecond()) + "/s" + C.GREEN - + " ETA: " + C.GOLD + Form.duration(progress.eta(), 2) + C.GREEN - + " Elapsed: " + C.GOLD + Form.duration(progress.elapsed(), 2) + C.GREEN - + " Method: " + C.GOLD + progress.method() - + (progress.failed() > 0 ? C.RED + " Failed: " + Form.f(progress.failed()) : "")); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_PREGEN, MessageArgument.untrusted("world", world), MessageArgument.untrusted("value", Form.f(progress.generated())), MessageArgument.untrusted("value2", Form.f(progress.totalChunks())), MessageArgument.untrusted("value3", String.format("%.1f", progress.percent())), MessageArgument.untrusted("value4", (progress.paused() ? C.YELLOW + " PAUSED" : "")))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_PREGEN_SPEED_S_ETA_ELAPSED_METHOD, MessageArgument.untrusted("value", Form.f((int) progress.chunksPerSecond())), MessageArgument.untrusted("value2", Form.duration(progress.eta(), 2)), MessageArgument.untrusted("value3", Form.duration(progress.elapsed(), 2)), MessageArgument.untrusted("value4", progress.method()), MessageArgument.untrusted("value5", (progress.failed() > 0 ? C.RED + " Failed: " + Form.f(progress.failed()) : "")))); } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java index cf9d9de2d..d780eea28 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStructure.java @@ -67,67 +67,71 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -@Director(name = "structure", aliases = {"struct", "str"}, description = "Iris structure tools (index, import, info)") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +@Director(name = "structure", aliases = {"struct", "str"}, description = "Iris structure tools (index, import, info)", descriptionKey = "iris.director.commandstructure.director.iris_structure_tools_index_import_info") public class CommandStructure implements DirectorExecutor { - @Director(description = "Regenerate structure-index.json listing all vanilla, datapack & iris structures", aliases = {"ls"}, origin = DirectorOrigin.BOTH) + @Director(description = "Regenerate structure-index.json listing all vanilla, datapack & iris structures", descriptionKey = "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures", aliases = {"ls"}, origin = DirectorOrigin.BOTH) public void list( - @Param(description = "The dimension whose pack to index", aliases = "dim") + @Param(description = "The dimension whose pack to index", descriptionKey = "iris.director.commandstructure.param.dimension_whose_pack_index", aliases = "dim") IrisDimension dimension ) { IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } File file = StructureIndexService.write(data); - sender().sendMessage(C.GREEN + "Wrote structure index: " + C.WHITE + file.getPath()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_WROTE_STRUCTURE_INDEX, MessageArgument.untrusted("value", file.getPath()))); } - @Director(name = "import", description = "Import EVERY structure - vanilla AND ingested datapacks - into this pack as editable Iris resources, always overwriting. Rebuilds jigsaw structures (villages, outposts, datapack jigsaws) as editable pool/piece graphs, imports every structure template NBT as an object, and assembles the multi-template structures (shipwrecks, ruined portals, ocean ruins, nether fossils). Run after ingesting a datapack and restarting. Regenerate chunks or use a fresh world for the imported copies to place.", aliases = {"import-all", "reimport", "imp", "all"}, origin = DirectorOrigin.BOTH) + @Director(name = "import", description = "Import EVERY structure - vanilla AND ingested datapacks - into this pack as editable Iris resources, always overwriting. Rebuilds jigsaw structures (villages, outposts, datapack jigsaws) as editable pool/piece graphs, imports every structure template NBT as an object, and assembles the multi-template structures (shipwrecks, ruined portals, ocean ruins, nether fossils). Run after ingesting a datapack and restarting. Regenerate chunks or use a fresh world for the imported copies to place.", descriptionKey = "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris", aliases = {"import-all", "reimport", "imp", "all"}, origin = DirectorOrigin.BOTH) public void importAll( - @Param(description = "The dimension whose pack to import into", aliases = "dim") + @Param(description = "The dimension whose pack to import into", descriptionKey = "iris.director.commandstructure.param.dimension_whose_pack_import_into", aliases = "dim") IrisDimension dimension ) { IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_2, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } - sender().sendMessage(C.GREEN + "Importing all vanilla & datapack structures into " + C.WHITE + dimension.getLoadKey() + C.GREEN + " (overwrite)..."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_IMPORTING_ALL_VANILLA_DATAPACK_STRUCTURES_INTO_OVERWRITE, MessageArgument.untrusted("value", dimension.getLoadKey()))); BulkStructureImporter.Report jigsaws = BulkStructureImporter.importAllVanilla(data, StructureImporter.Mode.OVERWRITE, true, sender()); BulkStructureImporter.Report templates = BulkStructureImporter.importAllTemplates(data, StructureImporter.Mode.OVERWRITE, sender()); BulkStructureImporter.Report groups = BulkStructureImporter.importTemplateGroups(data, StructureImporter.Mode.OVERWRITE, sender()); StructureCaptureImporter.Report captured = StructureCaptureImporter.importAllStructures(data, StructureImporter.Mode.OVERWRITE, sender()); int imported = jigsaws.imported() + templates.imported() + groups.imported() + captured.imported(); int failed = jigsaws.failed() + templates.failed() + groups.failed() + captured.failed(); - sender().sendMessage(C.GREEN + "Import complete: " + C.WHITE + imported + C.GREEN + " structures/objects written, " + C.WHITE + failed + C.GREEN + " failed."); - sender().sendMessage(C.GRAY + "Reference them from a biome/region/dimension 'structures' list, or run /iris structure list " + dimension.getLoadKey() + " to refresh the index. Regenerate chunks for changes to take effect."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_IMPORT_COMPLETE_STRUCTURES_OBJECTS_WRITTEN_FAILED, MessageArgument.untrusted("imported", imported), MessageArgument.untrusted("failed", failed))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_REFERENCE_THEM_FROM_BIOME_REGION_DIMENSION_STRUCTURES_LIST_RUN_IRIS, MessageArgument.untrusted("value", dimension.getLoadKey()))); } - @Director(name = "capture", description = "Capture code-generated structures that have no NBT template (swamp huts, igloos, etc.) into editable Iris objects by generating each one in a throwaway scratch world and reading back its blocks. Skips structures that already import as a structure, structures wider/taller than the capture cap (strongholds, mansions, monuments stay vanilla), and anything that will not generate in a flat overworld. Each captured structure becomes a single-piece Iris structure you can place from a biome/region/dimension 'structures' list. Runs automatically as the last pass of /iris structure import.", aliases = {"cap"}, origin = DirectorOrigin.BOTH) + @Director(name = "capture", description = "Capture code-generated structures that have no NBT template (swamp huts, igloos, etc.) into editable Iris objects by generating each one in a throwaway scratch world and reading back its blocks. Skips structures that already import as a structure, structures wider/taller than the capture cap (strongholds, mansions, monuments stay vanilla), and anything that will not generate in a flat overworld. Each captured structure becomes a single-piece Iris structure you can place from a biome/region/dimension 'structures' list. Runs automatically as the last pass of /iris structure import.", descriptionKey = "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos", aliases = {"cap"}, origin = DirectorOrigin.BOTH) public void capture( - @Param(description = "The dimension whose pack to capture into", aliases = "dim") + @Param(description = "The dimension whose pack to capture into", descriptionKey = "iris.director.commandstructure.param.dimension_whose_pack_capture_into", aliases = "dim") IrisDimension dimension ) { IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_3, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } StructureCaptureImporter.Report report = StructureCaptureImporter.importAllStructures(data, StructureImporter.Mode.OVERWRITE, sender()); - sender().sendMessage(C.GRAY + "Captured " + report.imported() + " structures. Place them from a 'structures' list and regenerate chunks. Delete a structures/*.json to re-capture it."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_CAPTURED_STRUCTURES_PLACE_THEM_FROM_STRUCTURES_LIST_REGENERATE_CHUNKS_DELETE, MessageArgument.untrusted("value", report.imported()))); } - @Director(description = "Verify native structure eligibility and locate Iris-placed structures without running blocking native searches.", aliases = {"locateall"}, origin = DirectorOrigin.BOTH, sync = true) + @Director(description = "Verify native structure eligibility and locate Iris-placed structures without running blocking native searches.", descriptionKey = "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native", aliases = {"locateall"}, origin = DirectorOrigin.BOTH, sync = true) public void verify( - @Param(description = "The dimension to verify", aliases = "dim") + @Param(description = "The dimension to verify", descriptionKey = "iris.director.commandstructure.param.dimension_verify", aliases = "dim") IrisDimension dimension, - @Param(description = "Search radius in chunks around the origin (larger is much slower)", defaultValue = "48") + @Param(description = "Search radius in chunks around the origin (larger is much slower)", descriptionKey = "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower", defaultValue = "48") int radius ) { World world = resolveIrisWorld(dimension); if (world == null) { - sender().sendMessage(C.RED + "No loaded Iris world found for " + dimension.getLoadKey() + ". Join or create one first (the search runs against a live world)."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_NO_LOADED_IRIS_WORLD_FOUND_JOIN_CREATE_ONE_FIRST_SEARCH, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } boolean senderIsPlayer = sender() != null && sender().isPlayer(); @@ -138,7 +142,7 @@ public class CommandStructure implements DirectorExecutor { PlatformChunkGenerator access = IrisToolbelt.access(world); Engine engine = access == null ? null : access.getEngine(); if (engine == null) { - sender().sendMessage(C.RED + "The selected Iris world has no active generator engine."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_SELECTED_IRIS_WORLD_HAS_NO_ACTIVE_GENERATOR_ENGINE)); return; } KList structureKeys = new KList<>(); @@ -151,9 +155,7 @@ public class CommandStructure implements DirectorExecutor { } VolmitSender commandSender = sender(); Player target = senderIsPlayer ? player() : null; - commandSender.sendMessage(C.GREEN + "Verifying structures in " + C.WHITE + world.getName() - + C.GREEN + " from " + center.getBlockX() + "," + center.getBlockZ() - + " within " + searchRadius + " chunks..."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STRUCTURE_VERIFYING_STRUCTURES_FROM_WITHIN_CHUNKS, MessageArgument.untrusted("value", world.getName()), MessageArgument.untrusted("value2", center.getBlockX()), MessageArgument.untrusted("value3", center.getBlockZ()), MessageArgument.untrusted("searchRadius", searchRadius))); int centerX = center.getBlockX(); int centerZ = center.getBlockZ(); J.a(() -> runVerification(engine, structureKeys, centerX, centerZ, searchRadius, commandSender, target)); @@ -278,28 +280,28 @@ public class CommandStructure implements DirectorExecutor { && dimensionKey.equals(generator.getEngine().getDimension().getLoadKey()); } - @Director(description = "Resolve an iris structure's jigsaw graph and report piece count & bounds", origin = DirectorOrigin.BOTH) + @Director(description = "Resolve an iris structure's jigsaw graph and report piece count & bounds", descriptionKey = "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds", origin = DirectorOrigin.BOTH) public void info( - @Param(description = "The dimension whose pack holds the structure", aliases = "dim") + @Param(description = "The dimension whose pack holds the structure", descriptionKey = "iris.director.commandstructure.param.dimension_whose_pack_holds_structure", aliases = "dim") IrisDimension dimension, - @Param(description = "The iris structure key to inspect") + @Param(description = "The iris structure key to inspect", descriptionKey = "iris.director.commandstructure.param.iris_structure_key_inspect") String structure ) { IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_4, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } IrisStructure s = data.load(IrisStructure.class, structure, false); if (s == null) { - sender().sendMessage(C.RED + "No iris structure '" + structure + "' in this pack"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK, MessageArgument.untrusted("structure", structure))); return; } StructureAssembler assembler = StructureAssembler.forData( data, s, new IrisPosition(0, 64, 0)); KList pieces = assembler.assemble(new RNG(1234)); if (pieces == null || pieces.isEmpty()) { - sender().sendMessage(C.RED + "Structure '" + structure + "' assembled 0 pieces (check startPool '" + s.getStartPool() + "')"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL, MessageArgument.untrusted("structure", structure), MessageArgument.untrusted("value", s.getStartPool()))); return; } int minX = Integer.MAX_VALUE; @@ -312,24 +314,24 @@ public class CommandStructure implements DirectorExecutor { maxX = Math.max(maxX, p.getMaxX()); maxZ = Math.max(maxZ, p.getMaxZ()); } - sender().sendMessage(C.GREEN + "Structure '" + structure + "': " + C.WHITE + pieces.size() + C.GREEN + " pieces, footprint " + C.WHITE + (maxX - minX + 1) + "x" + (maxZ - minZ + 1) + C.GREEN + " blocks (sample seed 1234)"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234, MessageArgument.untrusted("structure", structure), MessageArgument.untrusted("value", pieces.size()), MessageArgument.untrusted("value2", (maxX - minX + 1)), MessageArgument.untrusted("value3", (maxZ - minZ + 1)))); } - @Director(description = "Assemble and place an iris structure at your location (studio testing)", aliases = {"p"}, origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Assemble and place an iris structure at your location (studio testing)", descriptionKey = "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing", aliases = {"p"}, origin = DirectorOrigin.PLAYER, sync = true) public void place( - @Param(description = "The dimension whose pack holds the structure", aliases = "dim") + @Param(description = "The dimension whose pack holds the structure", descriptionKey = "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2", aliases = "dim") IrisDimension dimension, - @Param(description = "The iris structure key to place") + @Param(description = "The iris structure key to place", descriptionKey = "iris.director.commandstructure.param.iris_structure_key_place") String structure ) { IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_5, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } IrisStructure s = data.load(IrisStructure.class, structure, false); if (s == null) { - sender().sendMessage(C.RED + "No iris structure '" + structure + "' in this pack"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK_2, MessageArgument.untrusted("structure", structure))); return; } Location loc = player().getLocation(); @@ -338,7 +340,7 @@ public class CommandStructure implements DirectorExecutor { RNG rng = new RNG((long) loc.getBlockX() * 341873128712L + loc.getBlockZ()); KList pieces = assembler.assemble(rng); if (pieces == null || pieces.isEmpty()) { - sender().sendMessage(C.RED + "Structure '" + structure + "' assembled 0 pieces"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES, MessageArgument.untrusted("structure", structure))); return; } Map future = new HashMap<>(); @@ -353,7 +355,7 @@ public class CommandStructure implements DirectorExecutor { } p.getObject().place(p.getX(), p.getY(), p.getZ(), placer, config, rng, null, null, data); } - sender().sendMessage(C.GREEN + "Placed '" + structure + "' (" + pieces.size() + " pieces) at your location."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STRUCTURE_PLACED_PIECES_AT_YOUR_LOCATION, MessageArgument.untrusted("structure", structure), MessageArgument.untrusted("value", pieces.size()))); } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java index 2403b3bfb..1d4e64c83 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandStudio.java @@ -26,6 +26,7 @@ import art.arcane.iris.core.gui.NoiseExplorerGUI; import art.arcane.iris.core.gui.VisionGUI; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.project.IrisProject; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.service.BoardSVC; import art.arcane.iris.core.service.StudioSVC; import art.arcane.iris.core.structure.BulkStructureImporter; @@ -99,7 +100,11 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Supplier; -@Director(name = "studio", aliases = {"std", "s"}, description = "Studio Commands") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +@Director(name = "studio", aliases = {"std", "s"}, description = "Studio Commands", descriptionKey = "iris.director.commandstudio.director.studio_commands") public class CommandStudio implements DirectorExecutor { private CommandEdit edit; //private CommandDeepSearch deepSearch; @@ -108,37 +113,37 @@ public class CommandStudio implements DirectorExecutor { return duration.toString().substring(2).replaceAll("(\\d[HMS])(?!$)", "$1 ").toLowerCase(); } - @Director(description = "Open a new studio world", aliases = "o", sync = true) + @Director(description = "Open a new studio world", descriptionKey = "iris.director.commandstudio.director.open_new_studio_world", aliases = "o", sync = true) public void open( - @Param(description = "The dimension pack to open a studio for", aliases = "dim", customHandler = DimensionHandler.class) + @Param(description = "The dimension pack to open a studio for", descriptionKey = "iris.director.commandstudio.param.dimension_pack_open_studio", aliases = "dim", customHandler = DimensionHandler.class) IrisDimension dimension, - @Param(defaultValue = "1337", description = "The seed to generate the studio with", aliases = "s") + @Param(defaultValue = "1337", description = "The seed to generate the studio with", descriptionKey = "iris.director.commandstudio.param.seed_generate_studio_with", aliases = "s") long seed) { - sender().sendMessage(C.GREEN + "Opening studio for the \"" + dimension.getName() + "\" pack (seed: " + seed + ")"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_OPENING_STUDIO_PACK_SEED, MessageArgument.untrusted("value", dimension.getName()), MessageArgument.untrusted("seed", seed))); Iris.service(StudioSVC.class).open(sender(), seed, dimension.getLoadKey()); } - @Director(description = "Import vanilla trees, mushrooms & objects (and structures/jigsaw) from the server into a pack's objects/vanilla folder", aliases = {"importv", "iv"}, origin = DirectorOrigin.BOTH) + @Director(description = "Import vanilla trees, mushrooms & objects (and structures/jigsaw) from the server into a pack's objects/vanilla folder", descriptionKey = "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s", aliases = {"importv", "iv"}, origin = DirectorOrigin.BOTH) public void importvanilla( - @Param(description = "The dimension pack to import vanilla content into", aliases = {"pack", "dim"}, customHandler = DimensionHandler.class) + @Param(description = "The dimension pack to import vanilla content into", descriptionKey = "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into", aliases = {"pack", "dim"}, customHandler = DimensionHandler.class) IrisDimension dimension, - @Param(description = "How many variants to capture per tree/object feature", defaultValue = "3") + @Param(description = "How many variants to capture per tree/object feature", descriptionKey = "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature", defaultValue = "3") int variants, - @Param(description = "Also import vanilla & datapack structures/jigsaw into the pack", defaultValue = "true") + @Param(description = "Also import vanilla & datapack structures/jigsaw into the pack", descriptionKey = "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack", defaultValue = "true") boolean structures ) { if (dimension == null) { - sender().sendMessage(C.RED + "Provide a dimension pack: /iris std importvanilla pack="); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_PROVIDE_DIMENSION_PACK_IRIS_STD_IMPORTVANILLA_PACK_DIMENSION)); return; } IrisData data = dimension.getLoader(); if (data == null) { - sender().sendMessage(C.RED + "Could not resolve the pack for dimension " + dimension.getLoadKey()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_COULD_NOT_RESOLVE_PACK_DIMENSION, MessageArgument.untrusted("value", dimension.getLoadKey()))); return; } VolmitSender sender = sender(); - sender.sendMessage(C.GREEN + "Importing vanilla content into " + C.WHITE + dimension.getLoadKey() + C.GREEN + "..."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_IMPORTING_VANILLA_CONTENT_INTO, MessageArgument.untrusted("value", dimension.getLoadKey()))); FeatureImporter.Report features = FeatureImporter.importAllObjectFeatures(data, variants, sender); int imported = features.imported(); @@ -152,73 +157,72 @@ public class CommandStudio implements DirectorExecutor { failed += jigsaws.failed() + templates.failed() + groups.failed(); } - sender.sendMessage(C.GREEN + "importvanilla complete: " + C.WHITE + imported + C.GREEN + " objects/structures written, " + C.WHITE + failed + C.GREEN + " failed."); - sender.sendMessage(C.GRAY + "Trees/objects are under objects/vanilla/...; reference them from biome object placements."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_IMPORTVANILLA_COMPLETE_OBJECTS_STRUCTURES_WRITTEN_FAILED, MessageArgument.untrusted("imported", imported), MessageArgument.untrusted("failed", failed))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_TREES_OBJECTS_ARE_UNDER_OBJECTS_VANILLA_REFERENCE_THEM_FROM_BIOME)); } - @Director(description = "Open VSCode for a dimension", aliases = {"vsc"}) + @Director(description = "Open VSCode for a dimension", descriptionKey = "iris.director.commandstudio.director.open_vscode_dimension", aliases = {"vsc"}) public void vscode( - @Param(defaultValue = "default", description = "The dimension to open VSCode for", aliases = "dim", customHandler = DimensionHandler.class) + @Param(defaultValue = "default", description = "The dimension to open VSCode for", descriptionKey = "iris.director.commandstudio.param.dimension_open_vscode", aliases = "dim", customHandler = DimensionHandler.class) IrisDimension dimension ) { - sender().sendMessage(C.GREEN + "Opening VSCode for the \"" + dimension.getName() + "\" pack"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_OPENING_VSCODE_PACK, MessageArgument.untrusted("value", dimension.getName()))); Iris.service(StudioSVC.class).openVSCode(sender(), dimension.getLoadKey()); } - @Director(description = "Close an open studio project", aliases = {"x"}, sync = true) + @Director(description = "Close an open studio project", descriptionKey = "iris.director.commandstudio.director.close_open_studio_project", aliases = {"x"}, sync = true) public void close() { VolmitSender commandSender = sender(); if (!Iris.service(StudioSVC.class).isProjectOpen()) { - commandSender.sendMessage(C.RED + "No open studio projects."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_NO_OPEN_STUDIO_PROJECTS)); return; } - commandSender.sendMessage(C.YELLOW + "Closing studio..."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_CLOSING_STUDIO)); Iris.service(StudioSVC.class).close().whenComplete((result, throwable) -> J.s(() -> { if (throwable != null) { - commandSender.sendMessage(C.RED + "Studio close failed: " + throwable.getMessage()); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_STUDIO_CLOSE_FAILED, MessageArgument.untrusted("value", String.valueOf(throwable.getMessage())))); return; } if (result != null && result.failureCause() != null) { - commandSender.sendMessage(C.RED + "Studio close failed: " + result.failureCause().getMessage()); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_STUDIO_CLOSE_FAILED_2, MessageArgument.untrusted("value", String.valueOf(result.failureCause().getMessage())))); return; } if (result != null && result.startupCleanupQueued()) { - commandSender.sendMessage(C.YELLOW + "Studio closed. Remaining world-family cleanup was queued for startup fallback."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_STUDIO_CLOSED_REMAINING_WORLD_FAMILY_CLEANUP_WAS_QUEUED_STARTUP_FALLBACK)); return; } - commandSender.sendMessage(C.GREEN + "Studio closed."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_STUDIO_CLOSED)); })); } - @Director(description = "Toggle your Studio debug scoreboard", aliases = {"board", "sidebar", "sb"}, origin = DirectorOrigin.PLAYER) + @Director(description = "Toggle your Studio debug scoreboard", descriptionKey = "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard", aliases = {"board", "sidebar", "sb"}, origin = DirectorOrigin.PLAYER) public void scoreboard() { Player target = player(); VolmitSender commandSender = sender(); if (!J.runEntity(target, () -> { PlatformChunkGenerator generator = IrisToolbelt.access(target.getWorld()); if (generator == null || !generator.isStudio()) { - commandSender.sendMessage(C.RED + "You must be in a Studio world to toggle the debug scoreboard."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD_TOGGLE_DEBUG_SCOREBOARD)); return; } boolean visible = Iris.service(BoardSVC.class).toggle(target); - commandSender.sendMessage((visible ? C.GREEN : C.YELLOW) - + "Studio debug scoreboard " + (visible ? "enabled." : "disabled.")); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_STUDIO_DEBUG_SCOREBOARD, MessageArgument.trusted("value", visible ? C.GREEN : C.YELLOW), MessageArgument.trusted("value2", IrisLanguage.text(visible ? RuntimeUiMessages.STATUS_ENABLED : RuntimeUiMessages.STATUS_DISABLED)))); })) { - commandSender.sendMessage(C.RED + "Could not update the Studio debug scoreboard right now."); + commandSender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_COULD_NOT_UPDATE_STUDIO_DEBUG_SCOREBOARD_RIGHT_NOW)); } } - @Director(description = "Create a new studio project", aliases = "+", sync = true) + @Director(description = "Create a new studio project", descriptionKey = "iris.director.commandstudio.director.create_new_studio_project", aliases = "+", sync = true) public void create( - @Param(description = "The name of this new Iris Project.", defaultValue = "studio") + @Param(description = "The name of this new Iris Project.", descriptionKey = "iris.director.commandstudio.param.name_this_new_iris_project", defaultValue = "studio") String name, @Param( - description = "Copy the contents of an existing project in your packs folder and use it as a template in this new project.", + description = "Copy the contents of an existing project in your packs folder and use it as a template in this new project.", descriptionKey = "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this", contextual = true, customHandler = NullableDimensionHandler.class ) @@ -239,23 +243,23 @@ public class CommandStudio implements DirectorExecutor { } } - @Director(description = "Get the version of a pack") + @Director(description = "Get the version of a pack", descriptionKey = "iris.director.commandstudio.director.get_version_pack") public void version( - @Param(defaultValue = "default", description = "The dimension get the version of", aliases = "dim", contextual = true, customHandler = DimensionHandler.class) + @Param(defaultValue = "default", description = "The dimension get the version of", descriptionKey = "iris.director.commandstudio.param.dimension_get_version", aliases = "dim", contextual = true, customHandler = DimensionHandler.class) IrisDimension dimension ) { - sender().sendMessage(C.GREEN + "The \"" + dimension.getName() + "\" pack has version: " + dimension.getVersion()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_PACK_HAS_VERSION, MessageArgument.untrusted("value", dimension.getName()), MessageArgument.untrusted("value2", dimension.getVersion()))); } - @Director(description = "Open the noise explorer (External GUI)", aliases = {"nmap"}) + @Director(description = "Open the noise explorer (External GUI)", descriptionKey = "iris.director.commandstudio.director.open_noise_explorer_external_gui", aliases = {"nmap"}) public void noise( - @Param(description = "Optional pack generator to preview", defaultValue = "null", contextual = true) + @Param(description = "Optional pack generator to preview", descriptionKey = "iris.director.commandstudio.param.optional_pack_generator_preview", defaultValue = "null", contextual = true) IrisGenerator generator, - @Param(description = "The seed to preview the generator with", defaultValue = "12345") + @Param(description = "The seed to preview the generator with", descriptionKey = "iris.director.commandstudio.param.seed_preview_generator_with", defaultValue = "12345") long seed ) { if (noGUI()) return; - sender().sendMessage(C.GREEN + "Opening Noise Explorer!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_OPENING_NOISE_EXPLORER)); if (generator == null) { NoiseExplorerGUI.launch(); @@ -266,11 +270,11 @@ public class CommandStudio implements DirectorExecutor { NoiseExplorerGUI.launch(supplier, "Custom Generator"); } - @Director(description = "Show loot if a chest were right here", origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Show loot if a chest were right here", descriptionKey = "iris.director.commandstudio.director.show_loot_if_chest_were_right_here", origin = DirectorOrigin.PLAYER, sync = true) public void loot( - @Param(description = "Fast insertion of items in virtual inventory (may cause performance drop)", defaultValue = "false") + @Param(description = "Fast insertion of items in virtual inventory (may cause performance drop)", descriptionKey = "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop", defaultValue = "false") boolean fast, - @Param(description = "Whether or not to append to the inventory currently open (if false, clears opened inventory)", defaultValue = "true") + @Param(description = "Whether or not to append to the inventory currently open (if false, clears opened inventory)", descriptionKey = "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory", defaultValue = "true") boolean add ) { if (noStudio()) return; @@ -282,7 +286,7 @@ public class CommandStudio implements DirectorExecutor { EngineBukkitOps.addItems(engine(), true, inv, tables, InventorySlotType.STORAGE, player().getWorld(), player().getLocation().getBlockX(), player().getLocation().getBlockY(), player().getLocation().getBlockZ()); } catch (Throwable e) { Iris.reportError(e); - sender().sendMessage(C.RED + "Cannot add items to virtual inventory because of: " + e.getMessage()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_CANNOT_ADD_ITEMS_VIRTUAL_INVENTORY_BECAUSE, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); return; } @@ -298,7 +302,7 @@ public class CommandStudio implements DirectorExecutor { { if (!player.getOpenInventory().getType().equals(InventoryType.CHEST)) { J.csr(ta.get()); - sender.sendMessage(C.GREEN + "Opened inventory!"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_OPENED_INVENTORY)); return; } @@ -309,15 +313,15 @@ public class CommandStudio implements DirectorExecutor { EngineBukkitOps.addItems(engine, true, inv, tables, InventorySlotType.STORAGE, player.getWorld(), player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()); }, fast ? 5 : 35)); - sender().sendMessage(C.GREEN + "Opening inventory now!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_OPENING_INVENTORY_NOW)); player().openInventory(inv); } - @Director(description = "Calculate the chance for each region to generate", origin = DirectorOrigin.PLAYER) - public void regions(@Param(description = "The radius in chunks", defaultValue = "500") int radius) { + @Director(description = "Calculate the chance for each region to generate", descriptionKey = "iris.director.commandstudio.director.calculate_chance_each_region_generate", origin = DirectorOrigin.PLAYER) + public void regions(@Param(description = "The radius in chunks", descriptionKey = "iris.director.commandstudio.param.radius_chunks", defaultValue = "500") int radius) { var engine = engine(); if (engine == null) { - sender().sendMessage(C.RED + "Only works in an Iris world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_ONLY_WORKS_IRIS_WORLD)); return; } var sender = sender(); @@ -329,11 +333,14 @@ public class CommandStudio implements DirectorExecutor { engine.getDimension().getRegions().forEach(key -> data.put(key, new AtomicInteger(0))); var multiBurst = new MultiBurst("Region Sampler"); var executor = multiBurst.burst(radius * radius); - sender.sendMessage(C.GRAY + "Generating data..."); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_GENERATING_DATA)); var loc = player.getLocation(); int totalTasks = d * d; AtomicInteger completedTasks = new AtomicInteger(0); - int c = J.ar(() -> sender.sendProgress((double) completedTasks.get() / totalTasks, "Finding regions"), 0); + int c = J.ar(() -> sender.sendProgress( + (double) completedTasks.get() / totalTasks, + IrisLanguage.text(RuntimeUiMessages.FINDING_REGIONS) + ), 0); new Spiraler(d, d, (x, z) -> executor.queue(() -> { var region = engine.getRegion((x << 4) + 8, (z << 4) + 8); data.computeIfAbsent(region.getLoadKey(), (k) -> new AtomicInteger(0)) @@ -344,43 +351,43 @@ public class CommandStudio implements DirectorExecutor { multiBurst.close(); J.car(c); - sender.sendMessage(C.GREEN + "Done!"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_DONE)); var loader = engine.getData().getRegionLoader(); - data.forEach((k, v) -> sender.sendMessage(C.GREEN + k + ": " + loader.load(k).getRarity() + " / " + Form.f((double) v.get() / totalTasks * 100, 2) + "%")); + data.forEach((k, v) -> sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.COMMAND_STUDIO_MESSAGE, MessageArgument.untrusted("k", k), MessageArgument.untrusted("value", loader.load(k).getRarity()), MessageArgument.untrusted("value2", Form.f((double) v.get() / totalTasks * 100, 2))))); }); } - @Director(description = "Render a world map (External GUI)", aliases = "render") + @Director(description = "Render a world map (External GUI)", descriptionKey = "iris.director.commandstudio.director.render_world_map_external_gui", aliases = "render") public void map( - @Param(name = "world", description = "The world to open the generator for", contextual = true) + @Param(name = "world", description = "The world to open the generator for", descriptionKey = "iris.director.commandstudio.param.world_open_generator", contextual = true) World world ) { if (noGUI()) return; if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage(C.RED + "You need to be in or specify an Iris-generated world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_NEED_BE_SPECIFY_IRIS_GENERATED_WORLD)); return; } VisionGUI.launch(IrisToolbelt.access(world).getEngine()); - sender().sendMessage(C.GREEN + "Opening map!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_OPENING_MAP)); } - @Director(description = "Package a dimension into a compressed format", aliases = "package") + @Director(description = "Package a dimension into a compressed format", descriptionKey = "iris.director.commandstudio.director.package_dimension_into_compressed_format", aliases = "package") public void pkg( - @Param(name = "dimension", description = "The dimension pack to compress", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) + @Param(name = "dimension", description = "The dimension pack to compress", descriptionKey = "iris.director.commandstudio.param.dimension_pack_compress", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) IrisDimension dimension, - @Param(name = "obfuscate", description = "Whether or not to obfuscate the pack", defaultValue = "false") + @Param(name = "obfuscate", description = "Whether or not to obfuscate the pack", descriptionKey = "iris.director.commandstudio.param.whether_not_obfuscate_pack", defaultValue = "false") boolean obfuscate, - @Param(name = "minify", description = "Whether or not to minify the pack", defaultValue = "true") + @Param(name = "minify", description = "Whether or not to minify the pack", descriptionKey = "iris.director.commandstudio.param.whether_not_minify_pack", defaultValue = "true") boolean minify ) { Iris.service(StudioSVC.class).compilePackage(sender(), dimension.getLoadKey(), obfuscate, minify); } - @Director(description = "Profiles the performance of a dimension", origin = DirectorOrigin.PLAYER) + @Director(description = "Profiles the performance of a dimension", descriptionKey = "iris.director.commandstudio.director.profiles_performance_dimension", origin = DirectorOrigin.PLAYER) public void profile( - @Param(description = "The dimension to profile", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) + @Param(description = "The dimension to profile", descriptionKey = "iris.director.commandstudio.param.dimension_profile", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) IrisDimension dimension ) { // Todo: Make this more accurate @@ -405,7 +412,7 @@ public class CommandStudio implements DirectorExecutor { KMap biomeTimings = new KMap<>(); KMap regionTimings = new KMap<>(); - sender().sendMessage("Calculating Performance Metrics for Noise generators"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_CALCULATING_PERFORMANCE_METRICS_NOISE_GENERATORS)); for (NoiseStyle i : NoiseStyle.values()) { CNG c = i.create(new RNG(i.hashCode())); @@ -433,7 +440,7 @@ public class CommandStudio implements DirectorExecutor { fileText.add(""); - sender().sendMessage("Calculating Interpolator Timings..."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_CALCULATING_INTERPOLATOR_TIMINGS)); for (InterpolationMethod i : InterpolationMethod.values()) { IrisInterpolator in = new IrisInterpolator(); @@ -463,7 +470,7 @@ public class CommandStudio implements DirectorExecutor { fileText.add(""); - sender().sendMessage("Processing Generator Scores: "); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_PROCESSING_GENERATOR_SCORES)); KMap> btx = new KMap<>(); @@ -563,7 +570,7 @@ public class CommandStudio implements DirectorExecutor { m += mmm; fileText.add("Average Score: " + m); - sender().sendMessage("Score: " + Form.duration(m, 0)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_SCORE, MessageArgument.untrusted("value", Form.duration(m, 0)))); try { IO.writeAll(report, fileText.toString("\n")); @@ -572,7 +579,7 @@ public class CommandStudio implements DirectorExecutor { e.printStackTrace(); } - sender().sendMessage(C.GREEN + "Done! " + report.getPath()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_DONE, MessageArgument.untrusted("value", report.getPath()))); } private PlatformChunkGenerator resolveProfileGenerator(IrisDimension dimension) { @@ -617,32 +624,32 @@ public class CommandStudio implements DirectorExecutor { return engineDimension.getLoadKey().equalsIgnoreCase(dimension.getLoadKey()); } - @Director(description = "Spawn an Iris entity", aliases = "summon", origin = DirectorOrigin.PLAYER) + @Director(description = "Spawn an Iris entity", descriptionKey = "iris.director.commandstudio.director.spawn_iris_entity", aliases = "summon", origin = DirectorOrigin.PLAYER) public void spawn( - @Param(description = "The entity to spawn") + @Param(description = "The entity to spawn", descriptionKey = "iris.director.commandstudio.param.entity_spawn") IrisEntity entity, - @Param(description = "The location to spawn the entity at", contextual = true) + @Param(description = "The location to spawn the entity at", descriptionKey = "iris.director.commandstudio.param.location_spawn_entity_at", contextual = true) Vector location ) { if (!IrisToolbelt.isIrisWorld(player().getWorld())) { - sender().sendMessage(C.RED + "You have to be in an Iris world to spawn entities properly. Trying to spawn the best we can do."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_HAVE_BE_IRIS_WORLD_SPAWN_ENTITIES_PROPERLY_TRYING_SPAWN)); } entity.spawn(engine(), new Location(world(), location.getX(), location.getY(), location.getZ())); } - @Director(description = "Teleport to the active studio world", aliases = "stp", origin = DirectorOrigin.PLAYER, sync = true) + @Director(description = "Teleport to the active studio world", descriptionKey = "iris.director.commandstudio.director.teleport_active_studio_world", aliases = "stp", origin = DirectorOrigin.PLAYER, sync = true) public void tpstudio() { if (!Iris.service(StudioSVC.class).isProjectOpen()) { - sender().sendMessage(C.RED + "No studio world is open!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN)); return; } if (IrisToolbelt.isIrisWorld(world()) && engine().isStudio()) { - sender().sendMessage(C.RED + "You are already in a studio world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_ARE_ALREADY_STUDIO_WORLD)); return; } - sender().sendMessage(C.GREEN + "Sending you to the studio world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_SENDING_YOU_STUDIO_WORLD)); Player player = player(); IrisWorld studioWorld = Iris.service(StudioSVC.class) .getActiveProject() @@ -653,30 +660,30 @@ public class CommandStudio implements DirectorExecutor { .thenRun(() -> player.setGameMode(GameMode.SPECTATOR)); } - @Director(description = "Update your dimension projects VSCode workspace") + @Director(description = "Update your dimension projects VSCode workspace", descriptionKey = "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace") public void update( - @Param(description = "The dimension to update the workspace of", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) + @Param(description = "The dimension to update the workspace of", descriptionKey = "iris.director.commandstudio.param.dimension_update_workspace", contextual = true, defaultValue = "default", customHandler = DimensionHandler.class) IrisDimension dimension ) { - sender().sendMessage(C.GOLD + "Updating Code Workspace for " + dimension.getName() + "..."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_UPDATING_CODE_WORKSPACE, MessageArgument.untrusted("value", dimension.getName()))); if (new IrisProject(dimension.getLoader().getDataFolder()).updateWorkspace()) { - sender().sendMessage(C.GREEN + "Updated Code Workspace for " + dimension.getName()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_UPDATED_CODE_WORKSPACE, MessageArgument.untrusted("value", dimension.getName()))); } else { - sender().sendMessage(C.RED + "Invalid project: " + dimension.getName() + ". Try deleting the code-workspace file and try again."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_INVALID_PROJECT_TRY_DELETING_CODE_WORKSPACE_FILE_TRY_AGAIN, MessageArgument.untrusted("value", dimension.getName()))); } } - @Director(aliases = "find-objects", description = "Capture an IGenData chunk report for nearby chunks") + @Director(aliases = "find-objects", description = "Capture an IGenData chunk report for nearby chunks", descriptionKey = "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks") public void objects() { if (!IrisToolbelt.isIrisWorld(player().getWorld())) { - sender().sendMessage(C.RED + "You must be in an Iris world"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD)); return; } World world = player().getWorld(); if (!IrisToolbelt.isIrisWorld(world)) { - sender().sendMessage("You must be in an iris world."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD_2)); return; } KList chunks = new KList<>(); @@ -694,7 +701,7 @@ public class CommandStudio implements DirectorExecutor { } new Spiraler(3, 3, (x, z) -> chunks.addIfMissing(world.getChunkAt(x + bx, z + bz))).drain(); - sender().sendMessage("Capturing IGenData from " + chunks.size() + " nearby chunks."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_CAPTURING_IGENDATA_FROM_NEARBY_CHUNKS, MessageArgument.untrusted("value", chunks.size()))); try { File ff = Iris.instance.getDataFile("reports/" + M.ms() + ".txt"); PrintWriter pw = new PrintWriter(ff); @@ -788,7 +795,7 @@ public class CommandStudio implements DirectorExecutor { pw.println(); pw.close(); - sender().sendMessage("Reported to: " + ff.getPath()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_REPORTED, MessageArgument.untrusted("value", ff.getPath()))); } catch (FileNotFoundException e) { e.printStackTrace(); Iris.reportError(e); @@ -831,7 +838,7 @@ public class CommandStudio implements DirectorExecutor { */ private boolean noGUI() { if (!IrisSettings.get().getGui().isUseServerLaunchedGuis()) { - sender().sendMessage(C.RED + "You must have server launched GUIs enabled in the settings!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_MUST_HAVE_SERVER_LAUNCHED_GUIS_ENABLED_SETTINGS)); return true; } return false; @@ -842,15 +849,15 @@ public class CommandStudio implements DirectorExecutor { */ private boolean noStudio() { if (!sender().isPlayer()) { - sender().sendMessage(C.RED + "Players only!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_PLAYERS_ONLY)); return true; } if (!Iris.service(StudioSVC.class).isProjectOpen()) { - sender().sendMessage(C.RED + "No studio world is open!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN_2)); return true; } if (!IrisToolbelt.isStudio(world())) { - sender().sendMessage(C.RED + "You must be in a studio world!"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD)); return true; } return false; diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java index d04f6e570..43c9a044f 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/commands/CommandWhat.java @@ -44,46 +44,50 @@ import org.bukkit.block.data.BlockData; import java.lang.reflect.Method; import java.util.concurrent.atomic.AtomicInteger; -@Director(name = "what", origin = DirectorOrigin.PLAYER, description = "Iris What?") +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessagesExtended; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +@Director(name = "what", origin = DirectorOrigin.PLAYER, description = "Iris What?", descriptionKey = "iris.director.commandwhat.director.iris_what") public class CommandWhat implements DirectorExecutor { - @Director(description = "What is in my hand?", origin = DirectorOrigin.PLAYER) + @Director(description = "What is in my hand?", descriptionKey = "iris.director.commandwhat.director.what_is_my_hand", origin = DirectorOrigin.PLAYER) public void hand() { try { BlockData bd = player().getInventory().getItemInMainHand().getType().createBlockData(); if (!bd.getMaterial().equals(Material.AIR)) { - sender().sendMessage("Material: " + C.GREEN + bd.getMaterial().name()); - sender().sendMessage("Full: " + C.WHITE + bd.getAsString(true)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_MATERIAL, MessageArgument.untrusted("value", bd.getMaterial().name()))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_FULL, MessageArgument.untrusted("value", bd.getAsString(true)))); } else { - sender().sendMessage("Please hold a block/item"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM)); } } catch (Throwable e) { Iris.reportError(e); Material bd = player().getInventory().getItemInMainHand().getType(); if (!bd.equals(Material.AIR)) { - sender().sendMessage("Material: " + C.GREEN + bd.name()); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_MATERIAL_2, MessageArgument.untrusted("value", bd.name()))); } else { - sender().sendMessage("Please hold a block/item"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM_2)); } } } - @Director(description = "What biome am i in?", origin = DirectorOrigin.PLAYER) + @Director(description = "What biome am i in?", descriptionKey = "iris.director.commandwhat.director.what_biome_am_i", origin = DirectorOrigin.PLAYER) public void biome() { try { IrisBiome b = engine().getBiome(player().getLocation().getBlockX(), player().getLocation().getBlockY() - player().getWorld().getMinHeight(), player().getLocation().getBlockZ()); Biome derivative = b.getDerivative(); NamespacedKey derivativeKey = resolveBiomeKey(derivative); - sender().sendMessage("IBiome: " + b.getLoadKey() + " (" + (derivativeKey == null ? "unregistered" : derivativeKey.getKey()) + ")"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_IBIOME, MessageArgument.untrusted("value", b.getLoadKey()), MessageArgument.untrusted("value2", derivativeKey == null ? IrisLanguage.plain(RuntimeUiMessages.STATUS_UNREGISTERED) : derivativeKey.getKey()))); } catch (Throwable e) { Iris.reportError(e); Biome biome = player().getLocation().getBlock().getBiome(); NamespacedKey key = resolveBiomeKey(biome); - sender().sendMessage("Non-Iris Biome: " + (key == null ? "unregistered" : key)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_NON_IRIS_BIOME, MessageArgument.untrusted("value", key == null ? IrisLanguage.plain(RuntimeUiMessages.STATUS_UNREGISTERED) : key))); if (key == null || key.getKey().equals("custom")) { try { - sender().sendMessage("Data Pack Biome: " + INMS.get().getTrueBiomeBaseKey(player().getLocation()) + " (ID: " + INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(player().getLocation())) + ")"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_DATA_PACK_BIOME_ID, MessageArgument.untrusted("value", INMS.get().getTrueBiomeBaseKey(player().getLocation())), MessageArgument.untrusted("value2", INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(player().getLocation()))))); } catch (Throwable ee) { Iris.reportError(ee); } @@ -91,66 +95,66 @@ public class CommandWhat implements DirectorExecutor { } } - @Director(description = "What region am i in?", origin = DirectorOrigin.PLAYER) + @Director(description = "What region am i in?", descriptionKey = "iris.director.commandwhat.director.what_region_am_i", origin = DirectorOrigin.PLAYER) public void region() { try { Chunk chunk = world().getChunkAt(player().getLocation().getBlockX() >> 4, player().getLocation().getBlockZ() >> 4); IrisRegion r = EngineBukkitOps.getRegion(engine(), chunk); - sender().sendMessage("IRegion: " + r.getLoadKey() + " (" + r.getName() + ")"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_IREGION, MessageArgument.untrusted("value", r.getLoadKey()), MessageArgument.untrusted("value2", r.getName()))); } catch (Throwable e) { Iris.reportError(e); - sender().sendMessage(C.IRIS + "Iris worlds only."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_IRIS_WORLDS_ONLY)); } } - @Director(description = "What block am i looking at?", origin = DirectorOrigin.PLAYER) + @Director(description = "What block am i looking at?", descriptionKey = "iris.director.commandwhat.director.what_block_am_i_looking_at", origin = DirectorOrigin.PLAYER) public void block() { BlockData bd; try { bd = player().getTargetBlockExact(128, FluidCollisionMode.NEVER).getBlockData(); } catch (NullPointerException e) { Iris.reportError(e); - sender().sendMessage("Please look at any block, not at the sky"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_PLEASE_LOOK_AT_ANY_BLOCK_NOT_AT_SKY)); bd = null; } if (bd != null) { - sender().sendMessage("Material: " + C.GREEN + bd.getMaterial().name()); - sender().sendMessage("Full: " + C.WHITE + bd.getAsString(true)); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_MATERIAL_3, MessageArgument.untrusted("value", bd.getMaterial().name()))); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_FULL_2, MessageArgument.untrusted("value", bd.getAsString(true)))); if (BukkitBlockResolution.isStorage(bd)) { - sender().sendMessage(C.YELLOW + "* Storage Block (Loot Capable)"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_STORAGE_BLOCK_LOOT_CAPABLE)); } if (BukkitBlockResolution.isLit(bd)) { - sender().sendMessage(C.YELLOW + "* Lit Block (Light Capable)"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_LIT_BLOCK_LIGHT_CAPABLE)); } if (BukkitBlockResolution.isFoliage(bd)) { - sender().sendMessage(C.YELLOW + "* Foliage Block"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_FOLIAGE_BLOCK)); } if (BukkitBlockResolution.isDecorant(bd)) { - sender().sendMessage(C.YELLOW + "* Decorant Block"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_DECORANT_BLOCK)); } if (BukkitBlockResolution.isFluid(bd)) { - sender().sendMessage(C.YELLOW + "* Fluid Block"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_FLUID_BLOCK)); } if (BukkitBlockResolution.isFoliagePlantable(bd)) { - sender().sendMessage(C.YELLOW + "* Plantable Foliage Block"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_PLANTABLE_FOLIAGE_BLOCK)); } if (BukkitBlockResolution.isSolid(bd)) { - sender().sendMessage(C.YELLOW + "* Solid Block"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_SOLID_BLOCK)); } } } - @Director(description = "Show markers in chunk", origin = DirectorOrigin.PLAYER) - public void markers(@Param(description = "Marker name such as cave_floor or cave_ceiling") String marker) { + @Director(description = "Show markers in chunk", descriptionKey = "iris.director.commandwhat.director.show_markers_chunk", origin = DirectorOrigin.PLAYER) + public void markers(@Param(description = "Marker name such as cave_floor or cave_ceiling", descriptionKey = "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling") String marker) { Chunk c = player().getLocation().getChunk(); if (IrisToolbelt.isIrisWorld(c.getWorld())) { @@ -167,9 +171,9 @@ public class CommandWhat implements DirectorExecutor { } } - sender().sendMessage("Found " + v.get() + " Nearby Markers (" + marker + ")"); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_FOUND_NEARBY_MARKERS, MessageArgument.untrusted("value", v.get()), MessageArgument.untrusted("marker", marker))); } else { - sender().sendMessage(C.IRIS + "Iris worlds only."); + sender().sendMessage(IrisLanguage.text(BukkitCommandMessagesExtended.COMMAND_WHAT_IRIS_WORLDS_ONLY_2)); } } diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java index e03b7e1ba..40b7172f7 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/CommandSVC.java @@ -29,6 +29,7 @@ import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.plugin.IrisService; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.scheduling.J; +import art.arcane.volmlib.util.director.DirectorEngineOptions; import art.arcane.volmlib.util.director.compat.DirectorEngineFactory; import art.arcane.volmlib.util.director.context.DirectorContextRegistry; import art.arcane.volmlib.util.director.runtime.DirectorExecutionMode; @@ -38,7 +39,8 @@ import art.arcane.volmlib.util.director.runtime.DirectorInvocationHook; import art.arcane.volmlib.util.director.runtime.DirectorRuntimeEngine; import art.arcane.volmlib.util.director.runtime.DirectorRuntimeNode; import art.arcane.volmlib.util.director.runtime.DirectorSender; -import art.arcane.volmlib.util.director.visual.DirectorVisualCommand; +import art.arcane.volmlib.util.director.help.DirectorMiniMenu; +import art.arcane.volmlib.util.director.help.DirectorMiniMenu.DirectorHelpPage; import art.arcane.volmlib.util.math.RNG; import org.bukkit.Sound; import org.bukkit.command.Command; @@ -57,12 +59,14 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, DirectorInvocationHook { private static final String ROOT_COMMAND = "iris"; private static final String ROOT_PERMISSION = "iris.all"; private final transient AtomicCache directorCache = new AtomicCache<>(); - private final transient AtomicCache helpCache = new AtomicCache<>(); @Override public void onEnable() { @@ -84,11 +88,13 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D public DirectorRuntimeEngine getDirector() { return directorCache.aquireNastyPrint(() -> DirectorEngineFactory.create( new CommandIris(), - null, - buildDirectorContexts(), - this::dispatchDirector, - this, - DirectorSystem.handlers + DirectorEngineOptions.builder() + .contexts(buildDirectorContexts()) + .dispatcher(this::dispatchDirector) + .invocationHook(this) + .legacyHandlers(DirectorSystem.handlers) + .textResolver(IrisLanguage.directorResolver()) + .build() )); } @@ -155,7 +161,10 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D void executeRoot(CommandSender sender, String label, String[] args) { if (!sender.hasPermission(ROOT_PERMISSION)) { - sender.sendMessage("You lack the Permission '" + ROOT_PERMISSION + "'"); + sender.sendMessage(IrisLanguage.text( + IrisMessages.COMMAND_PERMISSION_DENIED, + MessageArgument.trusted("permission", ROOT_PERMISSION) + )); return; } @@ -212,25 +221,24 @@ public class CommandSVC implements IrisService, CommandExecutor, TabCompleter, D playFailureSound(sender); if (result.getMessage() == null || result.getMessage().trim().isEmpty()) { - new VolmitSender(sender).sendMessage(C.RED + "Unknown Iris Command"); + new VolmitSender(sender).sendMessage(C.RED + IrisLanguage.text(IrisMessages.COMMAND_UNKNOWN)); } } private boolean sendHelpIfRequested(CommandSender sender, String[] args) { - Optional request = DirectorVisualCommand.resolveHelp(getHelpRoot(), Arrays.asList(args)); + Optional request = DirectorMiniMenu.resolveHelp(getDirector(), Arrays.asList(args), 17); if (request.isEmpty()) { return false; } - VolmitSender volmitSender = new VolmitSender(sender); - volmitSender.sendDirectorHelp(request.get().command(), request.get().page()); + DirectorMiniMenu.deliver(sender, DirectorMiniMenu.render( + request.get(), + DirectorMiniMenu.Theme.irisGreen(), + IrisLanguage.directorResolver() + )); return true; } - private DirectorVisualCommand getHelpRoot() { - return helpCache.aquireNastyPrint(() -> DirectorVisualCommand.createRoot(getDirector())); - } - private DirectorExecutionResult runDirector(CommandSender sender, String label, String[] args) { try { return getDirector().execute(new DirectorInvocation(new BukkitDirectorSender(sender), label, Arrays.asList(args))); diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java index 51f288ef9..646c61e61 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/IrisEngineStatus.java @@ -3,7 +3,6 @@ package art.arcane.iris.core.service; import art.arcane.iris.core.loader.ResourceLoader; import art.arcane.iris.engine.framework.MeteredCache; import art.arcane.iris.spi.IrisServices; -import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.project.stream.utility.CachedDoubleStream2D; import art.arcane.iris.util.project.stream.utility.CachedStream2D; @@ -12,6 +11,10 @@ import art.arcane.volmlib.util.format.Form; import java.util.List; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.BukkitCommandMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; final class IrisEngineStatus { private IrisEngineStatus() { } @@ -20,30 +23,40 @@ final class IrisEngineStatus { CacheSummary caches = summarizeCaches(); MaintenanceMetrics metrics = snapshot.metrics(); - sender.sendMessage(C.DARK_PURPLE + "-------------------------"); - sender.sendMessage(C.DARK_PURPLE + "Status:"); - sender.sendMessage(C.DARK_PURPLE + "- Service: " + C.LIGHT_PURPLE + (snapshot.serviceRunning() ? "Running" : "Stopped")); - sender.sendMessage(C.DARK_PURPLE + "- Metrics: " + C.LIGHT_PURPLE + (snapshot.metricsRunning() ? "Running" : "Stopped")); - sender.sendMessage(C.DARK_PURPLE + "- Maintenance Period: " + C.LIGHT_PURPLE + Form.duration(snapshot.maintenancePeriodMillis())); - sender.sendMessage(C.DARK_PURPLE + "- Worker Parallelism: " + C.LIGHT_PURPLE + snapshot.workerParallelism()); - sender.sendMessage(C.DARK_PURPLE + "- Active World Tasks: " + C.LIGHT_PURPLE + metrics.activeTasks()); - sender.sendMessage(C.DARK_PURPLE + "Tectonic Plates:"); - sender.sendMessage(C.DARK_PURPLE + "- Configured Retention: " + C.LIGHT_PURPLE + Form.duration(snapshot.retentionMillis())); - sender.sendMessage(C.DARK_PURPLE + "- Heap Usage: " + C.LIGHT_PURPLE + Form.pc(snapshot.heapUsage())); - sender.sendMessage(C.DARK_PURPLE + "- Resident: " + C.LIGHT_PURPLE + metrics.residentTectonicPlates()); - sender.sendMessage(C.DARK_PURPLE + "- Queued: " + C.LIGHT_PURPLE + metrics.queuedTectonicPlates()); - sender.sendMessage(C.DARK_PURPLE + "- Average Idle Duration: " + C.LIGHT_PURPLE + Form.duration(metrics.averageIdleDuration(), 2)); - sender.sendMessage(C.DARK_PURPLE + "- Max Idle Duration: " + C.LIGHT_PURPLE + Form.duration(metrics.maxIdleDuration(), 2)); - sender.sendMessage(C.DARK_PURPLE + "- Min Idle Duration: " + C.LIGHT_PURPLE + Form.duration(metrics.minIdleDuration(), 2)); - sender.sendMessage(C.DARK_PURPLE + "Caches:"); - sender.sendMessage(C.DARK_PURPLE + "- Resource: " + C.LIGHT_PURPLE + caches.sizes()[0] + " (" + caches.counts()[0] + ")"); - sender.sendMessage(C.DARK_PURPLE + "- 2D Stream: " + C.LIGHT_PURPLE + caches.sizes()[1] + " (" + caches.counts()[1] + ")"); - sender.sendMessage(C.DARK_PURPLE + "- 3D Stream: " + C.LIGHT_PURPLE + caches.sizes()[2] + " (" + caches.counts()[2] + ")"); - sender.sendMessage(C.DARK_PURPLE + "- Other: " + C.LIGHT_PURPLE + caches.sizes()[3] + " (" + caches.counts()[3] + ")"); - sender.sendMessage(C.DARK_PURPLE + "Other:"); - sender.sendMessage(C.DARK_PURPLE + "- Iris Worlds: " + C.LIGHT_PURPLE + metrics.worlds()); - sender.sendMessage(C.DARK_PURPLE + "- Loaded Chunks: " + C.LIGHT_PURPLE + metrics.loadedChunks()); - sender.sendMessage(C.DARK_PURPLE + "-------------------------"); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_MESSAGE)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_STATUS)); + sender.sendMessage(IrisLanguage.text( + BukkitCommandMessages.IRIS_ENGINE_STATUS_SERVICE, + MessageArgument.trusted("value", status(snapshot.serviceRunning())) + )); + sender.sendMessage(IrisLanguage.text( + BukkitCommandMessages.IRIS_ENGINE_STATUS_METRICS, + MessageArgument.trusted("value", status(snapshot.metricsRunning())) + )); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_MAINTENANCE_PERIOD, MessageArgument.untrusted("value", Form.duration(snapshot.maintenancePeriodMillis())))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_WORKER_PARALLELISM, MessageArgument.untrusted("value", snapshot.workerParallelism()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_ACTIVE_WORLD_TASKS, MessageArgument.untrusted("value", metrics.activeTasks()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_TECTONIC_PLATES)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_CONFIGURED_RETENTION, MessageArgument.untrusted("value", Form.duration(snapshot.retentionMillis())))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_HEAP_USAGE, MessageArgument.untrusted("value", Form.pc(snapshot.heapUsage())))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_RESIDENT, MessageArgument.untrusted("value", metrics.residentTectonicPlates()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_QUEUED, MessageArgument.untrusted("value", metrics.queuedTectonicPlates()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_AVERAGE_IDLE_DURATION, MessageArgument.untrusted("value", Form.duration(metrics.averageIdleDuration(), 2)))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_MAX_IDLE_DURATION, MessageArgument.untrusted("value", Form.duration(metrics.maxIdleDuration(), 2)))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_MIN_IDLE_DURATION, MessageArgument.untrusted("value", Form.duration(metrics.minIdleDuration(), 2)))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_CACHES)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_RESOURCE, MessageArgument.untrusted("value", caches.sizes()[0]), MessageArgument.untrusted("value2", caches.counts()[0]))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_2D_STREAM, MessageArgument.untrusted("value", caches.sizes()[1]), MessageArgument.untrusted("value2", caches.counts()[1]))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_3D_STREAM, MessageArgument.untrusted("value", caches.sizes()[2]), MessageArgument.untrusted("value2", caches.counts()[2]))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_OTHER, MessageArgument.untrusted("value", caches.sizes()[3]), MessageArgument.untrusted("value2", caches.counts()[3]))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_OTHER_2)); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_IRIS_WORLDS, MessageArgument.untrusted("value", metrics.worlds()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_LOADED_CHUNKS, MessageArgument.untrusted("value", metrics.loadedChunks()))); + sender.sendMessage(IrisLanguage.text(BukkitCommandMessages.IRIS_ENGINE_STATUS_MESSAGE_2)); + } + + private static String status(boolean running) { + return IrisLanguage.text(running ? RuntimeUiMessages.STATUS_RUNNING : RuntimeUiMessages.STATUS_STOPPED); } private static CacheSummary summarizeCaches() { diff --git a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java index bfe8ec95b..f9a6199df 100644 --- a/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java +++ b/adapters/bukkit/plugin/src/main/java/art/arcane/iris/core/service/WandSVC.java @@ -22,11 +22,14 @@ import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.World; import art.arcane.iris.Iris; import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.edit.DustRevealer; import art.arcane.iris.core.link.WorldEditLink; import art.arcane.iris.core.wand.WandSelection; @@ -53,11 +56,11 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataType; import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; import java.awt.Color; -import java.util.ArrayList; import java.util.Objects; import java.util.concurrent.CountDownLatch; @@ -103,7 +106,7 @@ public class WandSVC implements IrisService { @Override public String getName() { - return "Scanning Selection"; + return IrisLanguage.text(RuntimeUiMessages.JOB_SCANNING_SELECTION); } @Override @@ -253,10 +256,11 @@ public class WandSVC implements IrisService { ItemStack is = new ItemStack(Material.GLOWSTONE_DUST); is.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 1); ItemMeta im = is.getItemMeta(); - im.setDisplayName(C.BOLD + "" + C.YELLOW + "Dust of Revealing"); + im.setDisplayName(C.BOLD + "" + C.YELLOW + IrisLanguage.text(RuntimeUiMessages.DUST_NAME)); im.setUnbreakable(true); im.addItemFlags(ItemFlag.values()); - im.setLore(new KList().qadd("Right click on a block to reveal it's placement structure!")); + im.setLore(new KList().qadd(IrisLanguage.text(RuntimeUiMessages.DUST_LORE))); + im.getPersistentDataContainer().set(dustKey(), PersistentDataType.BYTE, (byte) 1); is.setItemMeta(im); return is; @@ -269,19 +273,11 @@ public class WandSVC implements IrisService { * @return The slot number the wand is in. Or -1 if none are found */ public static int findWand(Inventory inventory) { - ItemStack wand = createWand(); //Create blank wand - ItemMeta meta = wand.getItemMeta(); - meta.setLore(new ArrayList<>()); //We are resetting the lore as the lore differs between wands - wand.setItemMeta(meta); - for (int s = 0; s < inventory.getSize(); s++) { ItemStack stack = inventory.getItem(s); - if (stack == null) continue; - meta = stack.getItemMeta(); - meta.setLore(new ArrayList<>()); //Reset the lore on this too so we can compare them - stack.setItemMeta(meta); //We dont need to clone the item as items from .get are cloned - - if (wand.isSimilar(stack)) return s; //If the name, material and NBT is the same + if (stack != null && isWand(stack)) { + return s; + } } return -1; } @@ -297,10 +293,14 @@ public class WandSVC implements IrisService { ItemStack is = new ItemStack(Material.BLAZE_ROD); is.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 1); ItemMeta im = is.getItemMeta(); - im.setDisplayName(C.BOLD + "" + C.GOLD + "Wand of Iris"); + im.setDisplayName(C.BOLD + "" + C.GOLD + IrisLanguage.text(RuntimeUiMessages.WAND_NAME)); im.setUnbreakable(true); im.addItemFlags(ItemFlag.values()); - im.setLore(new KList().add(locationToString(a), locationToString(b))); + im.setLore(new KList().add( + a == null ? IrisLanguage.text(RuntimeUiMessages.WAND_LORE_FIRST) : locationToString(a), + b == null ? IrisLanguage.text(RuntimeUiMessages.WAND_LORE_SECOND) : locationToString(b) + )); + im.getPersistentDataContainer().set(wandKey(), PersistentDataType.BYTE, (byte) 1); is.setItemMeta(im); return is; @@ -343,7 +343,13 @@ public class WandSVC implements IrisService { * @return True if it is */ public static boolean isWand(ItemStack is) { - if (is.getItemMeta() == null) return false; + if (is == null || is.getItemMeta() == null) { + return false; + } + Byte marker = is.getItemMeta().getPersistentDataContainer().get(wandKey(), PersistentDataType.BYTE); + if (marker != null && marker == (byte) 1) { + return true; + } return is.getType().equals(wand.getType()) && is.getItemMeta().getDisplayName().equals(wand.getItemMeta().getDisplayName()) && is.getItemMeta().getEnchants().equals(wand.getItemMeta().getEnchants()) && @@ -517,7 +523,19 @@ public class WandSVC implements IrisService { * @return True if it is */ public boolean isDust(ItemStack is) { - return is.isSimilar(dust); + if (is == null || is.getItemMeta() == null) { + return false; + } + Byte marker = is.getItemMeta().getPersistentDataContainer().get(dustKey(), PersistentDataType.BYTE); + return (marker != null && marker == (byte) 1) || is.isSimilar(dust); + } + + private static NamespacedKey wandKey() { + return new NamespacedKey(Iris.instance, "wand"); + } + + private static NamespacedKey dustKey() { + return new NamespacedKey(Iris.instance, "dust"); } /** diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java index 2e6b62c59..0521211a8 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisClientToasts.java @@ -1,6 +1,9 @@ package art.arcane.iris.client; +import art.arcane.iris.core.localization.ClientUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; +import art.arcane.volmlib.util.localization.MessageArgument; import java.util.ArrayDeque; @@ -25,7 +28,7 @@ public final class IrisClientToasts { public void enqueueHotload(String packKey, int changedFiles, boolean failed, String message) { int kind = failed ? IrisMessage.Toast.KIND_ERROR : IrisMessage.Toast.KIND_SUCCESS; - enqueue(kind, "Studio Hotload", hotloadBody(packKey, changedFiles, failed, message)); + enqueue(kind, IrisLanguage.plain(ClientUiMessages.TOAST_STUDIO_HOTLOAD), hotloadBody(packKey, changedFiles, failed, message)); } public Pending poll() { @@ -51,14 +54,14 @@ public final class IrisClientToasts { builder.append(pack); } if (changedFiles != 0) { - append(builder, changedFiles + (changedFiles == 1 ? " file" : " files")); + append(builder, IrisLanguage.plain(ClientUiMessages.TOAST_CHANGED_FILES, MessageArgument.trusted("count", changedFiles))); } String text = normalize(message); if (!text.isEmpty()) { append(builder, text); } if (builder.isEmpty()) { - return failed ? "reload failed" : "reloaded"; + return IrisLanguage.plain(failed ? ClientUiMessages.TOAST_RELOAD_FAILED : ClientUiMessages.TOAST_RELOADED); } return builder.toString(); } diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java index f4e647251..d3406a06e 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisPregenHud.java @@ -1,6 +1,10 @@ package art.arcane.iris.client; +import art.arcane.iris.core.localization.ClientUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.spi.protocol.IrisMessage; +import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -47,9 +51,14 @@ public final class IrisPregenHud { double percent = progress.chunksTotal() > 0L ? clampPercent((double) progress.chunksDone() / (double) progress.chunksTotal() * 100.0D) : 0.0D; - String title = "Iris Pregen"; - String stats = String.format("%,d / %,d (%.1f%%)", progress.chunksDone(), progress.chunksTotal(), percent); - String tail = paused ? "PAUSED" : rateAndEta(progress); + String title = IrisLanguage.plain(RuntimeUiMessages.PREGEN_HEADER); + String stats = IrisLanguage.plain( + ClientUiMessages.PREGEN_STATS, + MessageArgument.trusted("done", String.format("%,d", progress.chunksDone())), + MessageArgument.trusted("total", String.format("%,d", progress.chunksTotal())), + MessageArgument.trusted("percent", String.format("%.1f", percent)) + ); + String tail = paused ? IrisLanguage.plain(ClientUiMessages.PREGEN_PAUSED) : rateAndEta(progress); int accent = paused ? PAUSED_COLOR : BAR_RUNNING_COLOR; int lineHeight = font.lineHeight; @@ -120,11 +129,15 @@ public final class IrisPregenHud { } private static String rateAndEta(IrisMessage.PregenProgress progress) { - String rate = String.format("%,.0f/s", progress.chunksPerSecond()); + String rate = String.format("%,.0f", progress.chunksPerSecond()); if (progress.etaMillis() > 0L) { - return rate + " ETA " + formatDuration(progress.etaMillis()); + return IrisLanguage.plain( + ClientUiMessages.PREGEN_RATE_ETA, + MessageArgument.trusted("rate", rate), + MessageArgument.trusted("eta", formatDuration(progress.etaMillis())) + ); } - return rate; + return IrisLanguage.plain(ClientUiMessages.PREGEN_RATE, MessageArgument.trusted("rate", rate)); } private static String formatDuration(long etaMillis) { @@ -133,12 +146,12 @@ public final class IrisPregenHud { long minutes = (totalSeconds % 3600L) / 60L; long seconds = totalSeconds % 60L; if (hours > 0L) { - return hours + "h " + minutes + "m"; + return IrisLanguage.plain(ClientUiMessages.DURATION_HOURS_MINUTES, MessageArgument.trusted("hours", hours), MessageArgument.trusted("minutes", minutes)); } if (minutes > 0L) { - return minutes + "m " + seconds + "s"; + return IrisLanguage.plain(ClientUiMessages.DURATION_MINUTES_SECONDS, MessageArgument.trusted("minutes", minutes), MessageArgument.trusted("seconds", seconds)); } - return seconds + "s"; + return IrisLanguage.plain(ClientUiMessages.DURATION_SECONDS, MessageArgument.trusted("seconds", seconds)); } private static double clampPercent(double value) { diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java index 77d82db75..ace741ccf 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisVisionScreen.java @@ -1,6 +1,9 @@ package art.arcane.iris.client; +import art.arcane.iris.core.localization.ClientUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; +import art.arcane.volmlib.util.localization.MessageArgument; import com.mojang.blaze3d.platform.NativeImage; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -45,7 +48,7 @@ public final class IrisVisionScreen extends Screen { private String renderedDimensionKey; public IrisVisionScreen() { - super(Component.literal("Iris Vision")); + super(Component.literal(IrisLanguage.plain(ClientUiMessages.VISION_TITLE))); this.textures = new LinkedHashMap<>(64, 0.75f, true); this.centerBlockX = 0.0D; this.centerBlockZ = 0.0D; @@ -72,14 +75,14 @@ public final class IrisVisionScreen extends Screen { graphics.fill(0, 0, width, height, BACKGROUND_COLOR); IrisClientSession session = IrisClient.session(); if (!session.isReady()) { - drawCentered(graphics, "Connecting to Iris server...", MUTED_COLOR); - drawHeader(graphics, "Iris Vision", "not connected"); + drawCentered(graphics, IrisLanguage.plain(ClientUiMessages.VISION_CONNECTING), MUTED_COLOR); + drawHeader(graphics, IrisLanguage.plain(ClientUiMessages.VISION_TITLE), IrisLanguage.plain(ClientUiMessages.VISION_NOT_CONNECTED)); return; } IrisMessage.DimensionStatus status = IrisClient.dimension().status(); if (!IrisClient.visionAvailable() || status == null) { - drawCentered(graphics, "Not an Iris world", MUTED_COLOR); - drawHeader(graphics, "Iris Vision", status == null ? "no dimension data" : label(status)); + drawCentered(graphics, IrisLanguage.plain(ClientUiMessages.VISION_NOT_IRIS_WORLD), MUTED_COLOR); + drawHeader(graphics, IrisLanguage.plain(ClientUiMessages.VISION_TITLE), status == null ? IrisLanguage.plain(ClientUiMessages.VISION_NO_DIMENSION_DATA) : label(status)); return; } syncWorld(status); @@ -159,8 +162,18 @@ public final class IrisVisionScreen extends Screen { drawMarkers(graphics, mouseX, mouseY, minTileX, maxTileX, minTileZ, maxTileZ, originX, originY, blocksPerPixel); drawPlayer(graphics, blocksPerPixel); - drawHeader(graphics, "Iris Vision", label(status) + " zoom " + zoom + " x" + (long) centerBlockX + " z" + (long) centerBlockZ); - drawFooter(graphics, "Drag to pan Scroll to zoom Esc to close"); + drawHeader( + graphics, + IrisLanguage.plain(ClientUiMessages.VISION_TITLE), + IrisLanguage.plain( + ClientUiMessages.VISION_HEADER_DETAIL, + MessageArgument.trusted("status", label(status)), + MessageArgument.trusted("zoom", zoom), + MessageArgument.trusted("x", (long) centerBlockX), + MessageArgument.trusted("z", (long) centerBlockZ) + ) + ); + drawFooter(graphics, IrisLanguage.plain(ClientUiMessages.VISION_FOOTER_HINT)); } private void requestMissing(IrisClientTileCache cache, List missing, int centerTileX, int centerTileZ) { @@ -319,8 +332,14 @@ public final class IrisVisionScreen extends Screen { } private static String label(IrisMessage.DimensionStatus status) { - String pack = status.packKey() == null || status.packKey().isEmpty() ? "" : " pack " + status.packKey(); - return status.dimensionKey() + pack; + if (status.packKey() == null || status.packKey().isEmpty()) { + return String.valueOf(status.dimensionKey()); + } + return IrisLanguage.plain( + ClientUiMessages.VISION_DIMENSION_PACK, + MessageArgument.untrusted("dimension", String.valueOf(status.dimensionKey())), + MessageArgument.untrusted("pack", status.packKey()) + ); } private record TileTexture(Identifier id, DynamicTexture texture) { diff --git a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java index abe590312..25c44b6c9 100644 --- a/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java +++ b/adapters/client-common/src/main/java/art/arcane/iris/client/IrisWhatOverlay.java @@ -1,6 +1,9 @@ package art.arcane.iris.client; +import art.arcane.iris.core.localization.ClientUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.protocol.IrisMessage; +import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphicsExtractor; @@ -44,25 +47,31 @@ public final class IrisWhatOverlay { IrisClient.cursor().requestFor(blockX, blockZ); IrisMessage.CursorInfo info = IrisClient.cursor().latest(); - List lines = new ArrayList<>(); + List lines = new ArrayList<>(); if (info == null) { - lines.add("querying " + blockX + ", " + blockZ + "..."); + lines.add(new OverlayLine(IrisLanguage.plain(ClientUiMessages.WHAT_QUERYING, MessageArgument.trusted("x", blockX), MessageArgument.trusted("z", blockZ)), false)); } else { - lines.add("Biome: " + display(info.biomeKey())); - lines.add("Region: " + display(info.regionKey())); + lines.add(new OverlayLine(IrisLanguage.plain(ClientUiMessages.WHAT_BIOME, MessageArgument.untrusted("biome", display(info.biomeKey()))), false)); + lines.add(new OverlayLine(IrisLanguage.plain(ClientUiMessages.WHAT_REGION, MessageArgument.untrusted("region", display(info.regionKey()))), false)); if (info.caveBiomeKey() != null && !info.caveBiomeKey().isEmpty()) { - lines.add("Cave: " + display(info.caveBiomeKey())); + lines.add(new OverlayLine(IrisLanguage.plain(ClientUiMessages.WHAT_CAVE, MessageArgument.untrusted("cave", display(info.caveBiomeKey()))), false)); } - lines.add("Height: " + info.height() + " (" + info.blockX() + ", " + info.blockZ() + ")"); + lines.add(new OverlayLine(IrisLanguage.plain( + ClientUiMessages.WHAT_HEIGHT, + MessageArgument.trusted("height", info.height()), + MessageArgument.trusted("x", info.blockX()), + MessageArgument.trusted("z", info.blockZ()) + ), true)); } draw(graphics, minecraft.font, lines); } - private static void draw(GuiGraphicsExtractor graphics, Font font, List lines) { + private static void draw(GuiGraphicsExtractor graphics, Font font, List lines) { int lineHeight = font.lineHeight; - int contentWidth = font.width("Iris What"); - for (String line : lines) { - contentWidth = Math.max(contentWidth, font.width(line)); + String title = IrisLanguage.plain(ClientUiMessages.WHAT_TITLE); + int contentWidth = font.width(title); + for (OverlayLine line : lines) { + contentWidth = Math.max(contentWidth, font.width(line.text())); } int originX = graphics.guiWidth() / 2 + CURSOR_OFFSET; int originY = graphics.guiHeight() / 2 + CURSOR_OFFSET; @@ -71,10 +80,10 @@ public final class IrisWhatOverlay { graphics.fill(originX - PADDING, originY - PADDING, originX + contentWidth + PADDING, originY + contentHeight + PADDING, PANEL_COLOR); int cursorY = originY; - graphics.text(font, "Iris What", originX, cursorY, TITLE_COLOR); + graphics.text(font, title, originX, cursorY, TITLE_COLOR); cursorY += lineHeight + ROW_GAP; - for (String line : lines) { - graphics.text(font, line, originX, cursorY, line.startsWith("Height") ? MUTED_COLOR : TEXT_COLOR); + for (OverlayLine line : lines) { + graphics.text(font, line.text(), originX, cursorY, line.muted() ? MUTED_COLOR : TEXT_COLOR); cursorY += lineHeight + ROW_GAP; } } @@ -82,4 +91,7 @@ public final class IrisWhatOverlay { private static String display(String key) { return key == null || key.isEmpty() ? "-" : key; } + + private record OverlayLine(String text, boolean muted) { + } } diff --git a/adapters/fabric/src/main/resources/irisworldgen.accesswidener b/adapters/fabric/src/main/resources/irisworldgen.accesswidener index 573ad0649..4ccffaffa 100644 --- a/adapters/fabric/src/main/resources/irisworldgen.accesswidener +++ b/adapters/fabric/src/main/resources/irisworldgen.accesswidener @@ -4,3 +4,4 @@ accessible field net/minecraft/server/MinecraftServer executor Ljava/util/concur accessible field net/minecraft/server/MinecraftServer storageSource Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess; accessible field net/minecraft/server/packs/repository/PackRepository sources Ljava/util/Set; mutable field net/minecraft/server/packs/repository/PackRepository sources Ljava/util/Set; +accessible field net/minecraft/core/MappedRegistry frozen Z diff --git a/adapters/forge/src/main/resources/META-INF/accesstransformer.cfg b/adapters/forge/src/main/resources/META-INF/accesstransformer.cfg index 5a2faeeb3..42e421a53 100644 --- a/adapters/forge/src/main/resources/META-INF/accesstransformer.cfg +++ b/adapters/forge/src/main/resources/META-INF/accesstransformer.cfg @@ -1,3 +1,4 @@ public net.minecraft.server.MinecraftServer levels public net.minecraft.server.MinecraftServer executor public net.minecraft.server.MinecraftServer storageSource +public net.minecraft.core.MappedRegistry frozen diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java index 37f148ad1..99d0e12eb 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedDimensionManager.java @@ -152,9 +152,19 @@ public final class ModdedDimensionManager { } public static Handle createPersistent(MinecraftServer server, String dimensionId, String pack, String packDimensionKey, long seed) { - Handle handle = create(server, dimensionId, pack, packDimensionKey, seed); ModdedDimensionRegistryStore.put(server, new ModdedDimensionRegistryStore.PersistentDimension(dimensionId, pack, packDimensionKey, seed)); - return handle; + try { + return create(server, dimensionId, pack, packDimensionKey, seed); + } catch (Throwable e) { + ModdedDimensionRegistryStore.remove(server, dimensionId); + if (e instanceof RuntimeException runtimeException) { + throw runtimeException; + } + if (e instanceof Error fatalError) { + throw fatalError; + } + throw new IllegalStateException("Iris runtime dimension injection failed for " + dimensionId, e); + } } public static boolean removePersistent(MinecraftServer server, String dimensionId, boolean wipeStorage) { @@ -265,9 +275,10 @@ public final class ModdedDimensionManager { IrisDimension dimension = loadPackDimension(pack, packDimensionKey); String typeRef = ModdedForcedDatapack.dimensionTypeRef(dimension); ResourceKey typeKey = ResourceKey.create(Registries.DIMENSION_TYPE, Identifier.parse(typeRef)); - Holder.Reference packType = ModdedForcedDatapack.requireRegisteredDimensionType( + ModdedRuntimeRegistry.ensureCustomBiomes(registryAccess, dimension, pack); + ModdedRuntimeRegistry.ensureDimensionType(registryAccess, registry, typeKey, typeRef, dimension); + return ModdedForcedDatapack.requireRegisteredDimensionType( typeRef, registry.get(typeKey), pack, packDimensionKey); - return packType; } private static IrisDimension loadPackDimension(String pack, String packDimensionKey) { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java index 518682a85..a35fd90c2 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java @@ -19,6 +19,7 @@ package art.arcane.iris.modded; import art.arcane.iris.core.gui.GuiHost; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.engine.decorator.DecoratorPlatformHooks; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.EngineEffectsProvider; @@ -260,6 +261,7 @@ public final class ModdedEngineBootstrap { ModdedIrisLog.info("Iris " + moddedLoader.modVersion() + " bootstrapping on Minecraft " + moddedLoader.minecraftVersion() + " (" + loaderDescription + ")"); selfTest(moddedLoader.getClass().getClassLoader()); bind(); + IrisLanguage.initialize(); MainWorldService.reconcileEarly(); chunkGeneratorRegistration.run(); ModdedIrisLog.info("Iris chunk generator registered as irisworldgen:iris"); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java index 6b686d77b..fb9d28302 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedForcedDatapack.java @@ -19,6 +19,8 @@ package art.arcane.iris.modded; import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.nms.datapack.DataVersion; import art.arcane.iris.core.nms.datapack.IDataFixer; import art.arcane.iris.engine.object.IrisDimension; @@ -85,7 +87,7 @@ public final class ModdedForcedDatapack { private static Pack requireReadablePack(Path directory) { PackLocationInfo location = new PackLocationInfo( PACK_ID, - Component.literal("Iris World Generation"), + Component.literal(IrisLanguage.plain(RuntimeUiMessages.FORCED_DATAPACK_NAME)), PackSource.BUILT_IN, Optional.empty()); PackSelectionConfig selection = new PackSelectionConfig(true, Pack.Position.TOP, true); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPackInstaller.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPackInstaller.java index 4af4b34e0..90160587c 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPackInstaller.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPackInstaller.java @@ -18,7 +18,10 @@ package art.arcane.iris.modded; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.PackDownloadMessages; import art.arcane.iris.core.pack.PackDownloader; +import art.arcane.volmlib.util.localization.MessageArgument; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,11 +41,11 @@ public final class ModdedPackInstaller { public static boolean install(Path configDir, String pack, String branch, Consumer feedback) { if (pack == null || !PACK_NAME.matcher(pack).matches()) { - feedback.accept("Invalid pack name '" + pack + "' (allowed: a-z, 0-9, _ and -)"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.INVALID_PACK_NAME, MessageArgument.untrusted("pack", String.valueOf(pack)))); return false; } if (branch == null || !BRANCH_NAME.matcher(branch).matches()) { - feedback.accept("Invalid branch name '" + branch + "' (allowed: letters, digits, . _ and -)"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.INVALID_BRANCH_NAME, MessageArgument.untrusted("branch", String.valueOf(branch)))); return false; } @@ -54,7 +57,11 @@ public final class ModdedPackInstaller { return PackDownloader.download(packs, "IrisDimensions/" + pack, branch, true, false, feedback) != null; } catch (IOException error) { LOGGER.error("Iris pack download failed for IrisDimensions/{} ({})", pack, branch, error); - feedback.accept("Pack download failed: " + error.getClass().getSimpleName() + (error.getMessage() == null ? "" : " - " + error.getMessage())); + feedback.accept(IrisLanguage.plain( + PackDownloadMessages.DOWNLOAD_FAILED, + MessageArgument.untrusted("type", error.getClass().getSimpleName()), + MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(error)) + )); return false; } } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java new file mode 100644 index 000000000..7bd771779 --- /dev/null +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedRuntimeRegistry.java @@ -0,0 +1,136 @@ +/* + * Iris is a World Generator for Minecraft Servers + * Copyright (c) 2026 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package art.arcane.iris.modded; + +import art.arcane.iris.core.loader.IrisData; +import art.arcane.iris.core.nms.datapack.DataVersion; +import art.arcane.iris.core.nms.datapack.IDataFixer; +import art.arcane.iris.engine.object.IrisBiome; +import art.arcane.iris.engine.object.IrisBiomeCustom; +import art.arcane.iris.engine.object.IrisDimension; +import art.arcane.iris.util.common.data.DataProvider; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.mojang.serialization.Codec; +import com.mojang.serialization.JsonOps; +import net.minecraft.core.Holder; +import net.minecraft.core.MappedRegistry; +import net.minecraft.core.RegistrationInfo; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.RegistryOps; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.dimension.DimensionType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.HashSet; +import java.util.Locale; +import java.util.Optional; +import java.util.Set; + +public final class ModdedRuntimeRegistry { + private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); + private static final Object LOCK = new Object(); + + private ModdedRuntimeRegistry() { + } + + static void ensureDimensionType(RegistryAccess registryAccess, Registry registry, + ResourceKey typeKey, String typeRef, IrisDimension dimension) { + if (registry.get(typeKey).isPresent()) { + return; + } + IDataFixer fixer = DataVersion.getLatest().get(); + String json = dimension.getDimensionType().toJson(fixer); + DimensionType type = decode(registryAccess, DimensionType.DIRECT_CODEC, json, typeRef); + registerIntoFrozen(registry, typeKey, type, typeRef); + LOGGER.info("Iris registered runtime dimension type '{}'", typeRef); + } + + static void ensureCustomBiomes(RegistryAccess registryAccess, IrisDimension dimension, String pack) { + File packFolder = ModdedWorldEngines.packFolder(pack); + if (!packFolder.isDirectory()) { + return; + } + Registry registry = registryAccess.lookupOrThrow(Registries.BIOME); + IrisData data = IrisData.get(packFolder); + DataProvider provider = () -> data; + IDataFixer fixer = DataVersion.getLatest().get(); + String namespace = dimension.getLoadKey().toLowerCase(Locale.ROOT); + Set seen = new HashSet<>(); + int registered = 0; + for (IrisBiome irisBiome : dimension.getAllBiomes(provider)) { + if (!irisBiome.isCustom()) { + continue; + } + for (IrisBiomeCustom customBiome : irisBiome.getCustomDerivitives()) { + String biomeId = customBiome.getId(); + if (!seen.add(biomeId)) { + continue; + } + String biomeRef = namespace + ":" + biomeId; + ResourceKey biomeKey = ResourceKey.create(Registries.BIOME, Identifier.parse(biomeRef)); + if (registry.get(biomeKey).isPresent()) { + continue; + } + String json = customBiome.generateJson(fixer); + Biome biome = decode(registryAccess, Biome.DIRECT_CODEC, json, biomeRef); + registerIntoFrozen(registry, biomeKey, biome, biomeRef); + registered++; + } + } + if (registered > 0) { + LOGGER.info("Iris registered {} runtime biome(s) for pack '{}'", registered, pack); + } + } + + private static T decode(RegistryAccess registryAccess, Codec codec, String json, String ref) { + JsonElement element = JsonParser.parseString(json); + RegistryOps ops = RegistryOps.create(JsonOps.INSTANCE, registryAccess); + return codec.parse(ops, element).getOrThrow((String message) -> + new IllegalStateException("Iris could not decode runtime registry entry '" + ref + "': " + message)); + } + + private static Holder.Reference registerIntoFrozen(Registry registry, ResourceKey key, T value, String ref) { + if (!(registry instanceof MappedRegistry mapped)) { + throw new IllegalStateException("Iris cannot register '" + ref + "' at runtime: " + + registry.getClass().getName() + " is not a MappedRegistry"); + } + synchronized (LOCK) { + Optional> raced = registry.get(key); + if (raced.isPresent()) { + return raced.get(); + } + boolean wasFrozen = mapped.frozen; + mapped.frozen = false; + try { + return mapped.register(key, value, RegistrationInfo.BUILT_IN); + } finally { + if (wasFrozen) { + mapped.freeze(); + } + } + } + } +} diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java index bb738496a..8a226093e 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/IrisModdedCommands.java @@ -19,6 +19,7 @@ package art.arcane.iris.modded.command; import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.localization.IrisMessages; import art.arcane.iris.core.gui.GuiHost; import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.core.pack.PackDownloader; @@ -106,6 +107,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class IrisModdedCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -386,27 +391,27 @@ public final class IrisModdedCommands { private static int editBiome(CommandSourceStack source, String key) { Engine engine = engineFor(source.getLevel()); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS)); return 0; } IrisBiome biome; if (key == null || key.isBlank()) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "Console must name a biome: /iris edit biome "); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_BIOME_IRIS_EDIT_BIOME_KEY)); return 0; } BlockPos pos = player.blockPosition(); try { biome = engine.getBiome(pos.getX(), pos.getY() - engine.getMinHeight(), pos.getZ()); } catch (Throwable e) { - fail(source, "Biome lookup failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); return 0; } } else { biome = engine.getData().getBiomeLoader().load(key.trim()); if (biome == null) { - fail(source, "Unknown biome: " + key); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_BIOME, MessageArgument.untrusted("key", key))); return 0; } } @@ -416,27 +421,27 @@ public final class IrisModdedCommands { private static int editRegion(CommandSourceStack source, String key) { Engine engine = engineFor(source.getLevel()); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_2)); return 0; } IrisRegion region; if (key == null || key.isBlank()) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "Console must name a region: /iris edit region "); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_REGION_IRIS_EDIT_REGION_KEY)); return 0; } BlockPos pos = player.blockPosition(); try { region = engine.getRegion(pos.getX(), pos.getZ()); } catch (Throwable e) { - fail(source, "Region lookup failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); return 0; } } else { region = engine.getData().getRegionLoader().load(key.trim()); if (region == null) { - fail(source, "Unknown region: " + key); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_REGION, MessageArgument.untrusted("key", key))); return 0; } } @@ -446,7 +451,7 @@ public final class IrisModdedCommands { private static int editDimension(CommandSourceStack source) { Engine engine = engineFor(source.getLevel()); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_3)); return 0; } return openJson(source, engine.getDimension()); @@ -454,11 +459,11 @@ public final class IrisModdedCommands { private static int openJson(CommandSourceStack source, IrisRegistrant registrant) { if (!GuiHost.isAvailable() || !Desktop.isDesktopSupported()) { - fail(source, "Cannot open files here: " + ModdedGuiHost.guiUnavailableReason()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CANNOT_OPEN_FILES_HERE, MessageArgument.untrusted("value", ModdedGuiHost.guiUnavailableReason()))); return 0; } if (registrant == null || registrant.getLoadFile() == null || !registrant.getLoadFile().isFile()) { - fail(source, "Cannot find the file; perhaps it was not loaded directly from a file?"); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM)); return 0; } File file = registrant.getLoadFile(); @@ -466,29 +471,29 @@ public final class IrisModdedCommands { Desktop.getDesktop().open(file); } catch (Throwable e) { LOGGER.error("Iris edit failed to open {}", file, e); - fail(source, "Could not open " + file.getName() + ": " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_COULD_NOT_OPEN, MessageArgument.untrusted("value", file.getName()), MessageArgument.untrusted("value2", e.getClass().getSimpleName()))); return 0; } - ok(source, "Opening " + registrant.getTypeName() + " " + file.getName() + " in your editor."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_OPENING_YOUR_EDITOR, MessageArgument.untrusted("value", registrant.getTypeName()), MessageArgument.untrusted("value2", file.getName()))); return 1; } private static int tp(CommandSourceStack source, ServerLevel level, ServerPlayer target) { ServerPlayer player = target != null ? target : source.getPlayer(); if (player == null) { - fail(source, "Console must name a player: /iris tp "); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_PLAYER_IRIS_TP_DIMENSION_PLAYER)); return 0; } if (!(level.getChunkSource().getGenerator() instanceof IrisModdedChunkGenerator)) { - fail(source, level.dimension().identifier() + " is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS, MessageArgument.untrusted("value", level.dimension().identifier()))); return 0; } String dimensionId = level.dimension().identifier().toString(); if (!ModdedDimensionManager.teleport(player, source.getServer(), dimensionId, 8.5D, Double.MIN_VALUE, 8.5D)) { - fail(source, "Teleport failed: dimension " + dimensionId + " is not loaded."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_TELEPORT_FAILED_DIMENSION_IS_NOT_LOADED, MessageArgument.untrusted("dimensionId", dimensionId))); return 0; } - ok(source, "Teleporting " + player.getScoreboardName() + " to " + dimensionId + "..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_TELEPORTING, MessageArgument.untrusted("value", player.getScoreboardName()), MessageArgument.untrusted("dimensionId", dimensionId))); return 1; } @@ -496,16 +501,16 @@ public final class IrisModdedCommands { MinecraftServer server = source.getServer(); ServerLevel level = target != null ? target : source.getLevel(); if (!(level.getChunkSource().getGenerator() instanceof IrisModdedChunkGenerator)) { - fail(source, level.dimension().identifier() + " is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_2, MessageArgument.untrusted("value", level.dimension().identifier()))); return 0; } ServerLevel fallback = server.overworld(); if (fallback == level) { - fail(source, "Cannot evacuate the primary world; there is nowhere to send players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CANNOT_EVACUATE_PRIMARY_WORLD_THERE_IS_NOWHERE_SEND_PLAYERS)); return 0; } int count = ModdedDimensionManager.evacuate(server, level); - ok(source, "Evacuated " + count + " player(s) from " + level.dimension().identifier() + " to " + fallback.dimension().identifier() + "."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_EVACUATED_PLAYER_S_FROM, MessageArgument.untrusted("count", count), MessageArgument.untrusted("value", level.dimension().identifier()), MessageArgument.untrusted("value2", fallback.dimension().identifier()))); return 1; } @@ -513,7 +518,7 @@ public final class IrisModdedCommands { boolean to = !IrisSettings.get().getGeneral().isDebug(); IrisSettings.get().getGeneral().setDebug(to); IrisSettings.get().forceSave(); - ok(source, "Set debug to: " + to); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SET_DEBUG, MessageArgument.untrusted("to", to))); return 1; } @@ -522,39 +527,51 @@ public final class IrisModdedCommands { IrisSettings.invalidate(); } IrisSettings.get(); - ok(source, "Hotloaded settings"); + boolean localeLoaded = IrisLanguage.reload(); + if (localeLoaded) { + ok(source, IrisLanguage.plain( + IrisMessages.COMMAND_RELOAD_SUCCESS, + MessageArgument.trusted("locale", IrisLanguage.activeLocale()) + )); + return 1; + } + fail(source, IrisLanguage.plain( + IrisMessages.COMMAND_RELOAD_FAILED, + MessageArgument.untrusted("locale", IrisSettings.get().getGeneral().getLanguage()), + MessageArgument.trusted("activeLocale", IrisLanguage.activeLocale()) + )); return 1; } private static int whatHand(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players (it inspects your held item)."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS)); return 0; } ItemStack stack = player.getMainHandItem(); if (stack.isEmpty()) { - fail(source, "Your main hand is empty."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_YOUR_MAIN_HAND_IS_EMPTY)); return 0; } - ok(source, "Hand: " + BuiltInRegistries.ITEM.getKey(stack.getItem()) + " x" + stack.getCount()); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_HAND_X, MessageArgument.untrusted("value", BuiltInRegistries.ITEM.getKey(stack.getItem())), MessageArgument.untrusted("value2", stack.getCount()))); return 1; } private static int regen(CommandSourceStack source, int radius) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS)); return 0; } ServerLevel level = source.getLevel(); if (!(level.getChunkSource().getGenerator() instanceof IrisModdedChunkGenerator irisGenerator)) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_4)); return 0; } Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_5)); return 0; } ModdedRegen.start(source, level, irisGenerator, engine, player, radius); @@ -570,15 +587,15 @@ public final class IrisModdedCommands { Engine engine = engineFor(level); if (engine == null) { if (withDimension) { - fail(source, level.dimension().identifier() + " is not generated by Iris; see /iris info for loaded Iris dimensions."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_SEE_IRIS_INFO_LOADED_IRIS, MessageArgument.untrusted("value", level.dimension().identifier()))); } else { - fail(source, "The current dimension (" + level.dimension().identifier() + ") is not generated by Iris. Name one explicitly: /iris pregen start " + radius + " ; see /iris info for loaded Iris dimensions."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CURRENT_DIMENSION_IS_NOT_GENERATED_BY_IRIS_NAME_ONE_EXPLICITLY, MessageArgument.untrusted("value", level.dimension().identifier()), MessageArgument.untrusted("radius", radius))); } return 0; } boolean showGui = gui && ModdedGuiHost.isGuiLaunchable(); if (!ModdedPregenJob.start(source.getServer(), level, engine, radius, centerX, centerZ, showGui, sync, !nocache)) { - fail(source, "A pregeneration task is already running. Stop it first with /iris pregen stop."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PREGENERATION_TASK_IS_ALREADY_RUNNING_STOP_IT_FIRST_WITH_IRIS)); return 0; } ModdedPregenBossBar.begin(source.getPlayer()); @@ -591,35 +608,34 @@ public final class IrisModdedCommands { guiNote = " (GUI requested but unavailable: " + ModdedGuiHost.guiUnavailableReason() + ")"; } String modeNote = " Mode: " + (sync ? "sync" : "async") + (nocache ? ", cache disabled." : ", resumable (checkpoint cache)."); - ok(source, "Pregen started in " + level.dimension().identifier() + " of " + (radius * 2) + " by " + (radius * 2) - + " blocks from " + centerX + "," + centerZ + "." + modeNote + " Progress logs to console; see /iris pregen status." + guiNote); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PREGEN_STARTED_BY_BLOCKS_FROM_PROGRESS_LOGS_CONSOLE_SEE_IRIS, MessageArgument.untrusted("value", level.dimension().identifier()), MessageArgument.untrusted("value2", (radius * 2)), MessageArgument.untrusted("value3", (radius * 2)), MessageArgument.untrusted("centerX", centerX), MessageArgument.untrusted("centerZ", centerZ), MessageArgument.untrusted("modeNote", modeNote), MessageArgument.untrusted("guiNote", guiNote))); return 1; } private static int pregenStop(CommandSourceStack source) { if (ModdedPregenJob.stop()) { ModdedPregenBossBar.clear(); - ok(source, "Stopping pregeneration; finishing up the current region..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_STOPPING_PREGENERATION_FINISHING_UP_CURRENT_REGION)); return 1; } - fail(source, "No active pregeneration task to stop."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_STOP)); return 0; } private static int pregenPause(CommandSourceStack source) { Boolean paused = ModdedPregenJob.pauseResume(); if (paused == null) { - fail(source, "No active pregeneration task to pause/resume."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_PAUSE_RESUME)); return 0; } - ok(source, "Pregeneration is now " + (paused.booleanValue() ? "paused" : "running") + "."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PREGENERATION_IS_NOW, MessageArgument.trusted("value", IrisLanguage.plain(paused.booleanValue() ? RuntimeUiMessages.STATUS_PAUSED_LOWER : RuntimeUiMessages.STATUS_RUNNING_LOWER)))); return 1; } private static int pregenStatus(CommandSourceStack source) { Component status = ModdedPregenJob.statusComponent(); if (status == null) { - fail(source, "No active pregeneration task."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK)); return 0; } ok(source, status); @@ -629,8 +645,7 @@ public final class IrisModdedCommands { private static int version(CommandSourceStack source) { ModdedLoader loader = ModdedEngineBootstrap.loader(); int engines = engineCount(source.getServer()); - ok(source, "Iris " + loader.modVersion() + " by Volmit Software on " + loader.platformName() - + " (Minecraft " + loader.minecraftVersion() + "), " + engines + " Iris dimension(s)"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IRIS_BY_VOLMIT_SOFTWARE_ON_MINECRAFT_IRIS_DIMENSION_S, MessageArgument.untrusted("value", loader.modVersion()), MessageArgument.untrusted("value2", loader.platformName()), MessageArgument.untrusted("value3", loader.minecraftVersion()), MessageArgument.untrusted("engines", engines))); return 1; } @@ -661,9 +676,13 @@ public final class IrisModdedCommands { + " generated=" + engine.getGenerated() + " data=" + engine.getData().getDataFolder().getAbsolutePath()); } - ok(source, "Loaded dimensions: " + total + " (" + iris + " Iris)"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_LOADED_DIMENSIONS_IRIS, MessageArgument.untrusted("total", total), MessageArgument.untrusted("iris", iris))); if (lines.isEmpty()) { - ok(source, filter == null ? "No Iris dimensions are loaded." : "No Iris dimension matches '" + filter + "'."); + if (filter == null) { + ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_ARE_LOADED)); + } else { + ok(source, IrisLanguage.plain(RuntimeUiMessages.MODDED_NO_DIMENSION_MATCH, MessageArgument.untrusted("filter", filter))); + } return 0; } for (String line : lines) { @@ -675,58 +694,58 @@ public final class IrisModdedCommands { private static int what(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2)); return 0; } ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_6)); return 0; } BlockPos pos = player.blockPosition(); int relativeY = pos.getY() - engine.getMinHeight(); try { IrisBiome biome = engine.getBiome(pos.getX(), relativeY, pos.getZ()); - ok(source, "Biome: " + biome.getLoadKey() + " (" + biome.getName() + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_BIOME, MessageArgument.untrusted("value", biome.getLoadKey()), MessageArgument.untrusted("value2", biome.getName()))); } catch (Throwable e) { - fail(source, "Biome lookup failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED_2, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); } try { IrisRegion region = engine.getRegion(pos.getX(), pos.getZ()); - ok(source, "Region: " + region.getLoadKey() + " (" + region.getName() + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_REGION, MessageArgument.untrusted("value", region.getLoadKey()), MessageArgument.untrusted("value2", region.getName()))); } catch (Throwable e) { - fail(source, "Region lookup failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED_2, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); } try { IrisBiome cave = engine.getCaveBiome(pos.getX(), relativeY, pos.getZ()); - ok(source, "Cave biome: " + (cave == null ? "none" : cave.getLoadKey())); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CAVE_BIOME, MessageArgument.untrusted("value", cave == null ? IrisLanguage.plain(RuntimeUiMessages.STATUS_NONE) : cave.getLoadKey()))); } catch (Throwable e) { - fail(source, "Cave biome lookup failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_CAVE_BIOME_LOOKUP_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); } int surfaceY = level.getHeight(Heightmap.Types.WORLD_SURFACE, pos.getX(), pos.getZ()); BlockState surface = level.getBlockState(new BlockPos(pos.getX(), surfaceY - 1, pos.getZ())); - ok(source, "Surface block: " + BuiltInRegistries.BLOCK.getKey(surface.getBlock()) + " (y=" + (surfaceY - 1) + ")"); - ok(source, "Position: " + pos.getX() + " " + pos.getY() + " " + pos.getZ() + " (chunk " + (pos.getX() >> 4) + "," + (pos.getZ() >> 4) + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SURFACE_BLOCK_Y, MessageArgument.untrusted("value", BuiltInRegistries.BLOCK.getKey(surface.getBlock())), MessageArgument.untrusted("value2", (surfaceY - 1)))); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_POSITION_CHUNK, MessageArgument.untrusted("value", pos.getX()), MessageArgument.untrusted("value2", pos.getY()), MessageArgument.untrusted("value3", pos.getZ()), MessageArgument.untrusted("value4", (pos.getX() >> 4)), MessageArgument.untrusted("value5", (pos.getZ() >> 4)))); return 1; } private static int whatBlock(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players (it inspects the block you are looking at)."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS_2)); return 0; } HitResult hit = player.pick(128.0D, 1.0F, false); if (hit.getType() != HitResult.Type.BLOCK || !(hit instanceof BlockHitResult blockHit)) { - fail(source, "Look at a block, not the sky."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_LOOK_AT_BLOCK_NOT_SKY)); return 0; } ServerLevel level = source.getLevel(); BlockPos pos = blockHit.getBlockPos(); BlockState state = level.getBlockState(pos); PlatformBlockState platform = ModdedBlockState.of(state, null); - ok(source, "Block: " + platform.key() + " (y=" + pos.getY() + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_BLOCK_Y, MessageArgument.untrusted("value", platform.key()), MessageArgument.untrusted("value2", pos.getY()))); List flags = new ArrayList<>(); if (platform.isSolid()) { flags.add("solid"); @@ -761,20 +780,27 @@ public final class IrisModdedCommands { if (platform.hasTileEntity()) { flags.add("tile entity"); } - ok(source, flags.isEmpty() ? "Properties: (none)" : "Properties: " + String.join(", ", flags)); + if (flags.isEmpty()) { + ok(source, IrisLanguage.plain(IrisMessages.MODDED_PROPERTIES_NONE)); + return 1; + } + ok(source, IrisLanguage.plain( + IrisMessages.MODDED_PROPERTIES, + MessageArgument.untrusted("properties", String.join(", ", flags)) + )); return 1; } private static int whatMarkers(CommandSourceStack source, String markerRaw) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players (markers render as particles around you)."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_MARKERS_RENDER)); return 0; } ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_7)); return 0; } String marker = markerRaw.trim(); @@ -782,7 +808,7 @@ public final class IrisModdedCommands { int chunkX = origin.getX() >> 4; int chunkZ = origin.getZ() >> 4; MinecraftServer server = source.getServer(); - ok(source, "Scanning for '" + marker + "' markers around you..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SCANNING_MARKERS_AROUND_YOU, MessageArgument.untrusted("marker", marker))); Thread thread = new Thread(() -> { List hits = new ArrayList<>(); MatterMarker matterMarker = new MatterMarker(marker); @@ -796,7 +822,7 @@ public final class IrisModdedCommands { } } catch (Throwable e) { LOGGER.error("Iris marker scan failed for {}", marker, e); - server.execute(() -> fail(source, "Marker scan failed: " + e.getClass().getSimpleName())); + server.execute(() -> fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_MARKER_SCAN_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName())))); return; } server.execute(() -> { @@ -805,7 +831,7 @@ public final class IrisModdedCommands { hit[0] + 0.5D, hit[1] + 1.0D, hit[2] + 0.5D, 3, 0.2D, 0.2D, 0.2D, 0.0D); } - ok(source, "Found " + hits.size() + " nearby marker(s) (" + marker + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_FOUND_NEARBY_MARKER_S, MessageArgument.untrusted("value", hits.size()), MessageArgument.untrusted("marker", marker))); }); }, "Iris Marker Scan"); thread.setDaemon(true); @@ -816,18 +842,18 @@ public final class IrisModdedCommands { private static int gotoBiome(CommandSourceStack source, String key) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3)); return 0; } ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_8)); return 0; } IrisBiome biome = engine.getData().getBiomeLoader().load(key.trim()); if (biome == null) { - fail(source, "Unknown biome: " + key); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_BIOME_2, MessageArgument.untrusted("key", key))); return 0; } locate(source, level, engine, player, Locator.surfaceBiome(biome.getLoadKey()), "biome " + biome.getLoadKey()); @@ -837,22 +863,22 @@ public final class IrisModdedCommands { private static int gotoRegion(CommandSourceStack source, String key) { ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_4)); return 0; } ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_9)); return 0; } IrisRegion region = engine.getData().getRegionLoader().load(key.trim()); if (region == null) { - fail(source, "Unknown region: " + key); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_REGION_2, MessageArgument.untrusted("key", key))); return 0; } if (!engine.getDimension().getRegions().contains(region.getLoadKey())) { - fail(source, region.getLoadKey() + " is not defined in the dimension!"); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IS_NOT_DEFINED_DIMENSION, MessageArgument.untrusted("value", region.getLoadKey()))); return 0; } locate(source, level, engine, player, Locator.region(region.getLoadKey()), "region " + region.getLoadKey()); @@ -863,19 +889,17 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_10)); return 0; } String key = keyRaw.trim(); if (!engine.hasObjectPlacement(key)) { - fail(source, key + " is not configured in any region/biome object placements (" - + engine.getData().getObjectLoader().getPossibleKeys().length + " object keys loaded)."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS_OBJECT_KEYS, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", engine.getData().getObjectLoader().getPossibleKeys().length))); return 0; } ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players. (object key '" + key + "' resolved against " - + engine.getData().getObjectLoader().getPossibleKeys().length + " loaded object keys)"); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_OBJECT_KEY, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", engine.getData().getObjectLoader().getPossibleKeys().length))); return 0; } locate(source, level, engine, player, Locator.object(key), "object " + key); @@ -886,17 +910,17 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_11)); return 0; } String key = keyRaw.trim(); if (key.isEmpty()) { - fail(source, "Name an Iris or native structure to locate."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_NAME_IRIS_NATIVE_STRUCTURE_LOCATE)); return 0; } ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_5)); return 0; } Optional resolved = resolveNativeStructure(source, level, engine, key); @@ -905,7 +929,7 @@ public final class IrisModdedCommands { locateIrisStructure(source, level, engine, player, key); return 1; } - fail(source, "Unknown structure '" + key + "'. Use tab completion to choose an Iris placement or a registered native/datapack structure."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_USE_TAB_COMPLETION_CHOOSE_IRIS_PLACEMENT_REGISTERED_NATIVE, MessageArgument.untrusted("key", key))); return 0; } NativeStructureTarget target = resolved.get(); @@ -924,7 +948,7 @@ public final class IrisModdedCommands { fail(source, nativeUnavailableMessage(target.key(), target.availability())); return 0; } - ok(source, "Searching for native structure " + target.key() + " within " + NATIVE_STRUCTURE_LOCATE_RADIUS + " chunks..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCHING_NATIVE_STRUCTURE_WITHIN_CHUNKS, MessageArgument.untrusted("value", target.key()), MessageArgument.untrusted("NATIVESTRUCTURELOCATERADIUS", NATIVE_STRUCTURE_LOCATE_RADIUS))); runNativeStructureLocate(source, level, player, target); return 1; } @@ -934,18 +958,17 @@ public final class IrisModdedCommands { MinecraftServer server = source.getServer(); int blockX = player.blockPosition().getX(); int blockZ = player.blockPosition().getZ(); - ok(source, "Searching for Iris-placed structure " + key + "..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCHING_IRIS_PLACED_STRUCTURE, MessageArgument.untrusted("key", key))); Thread thread = new Thread(() -> { try { IrisStructureLocator.LocateResult result = IrisStructureLocator.locate(engine, key, blockX, blockZ, 1024); if (result.status() == IrisStructureLocator.LocateStatus.SEARCH_LIMIT_REACHED) { - server.execute(() -> fail(source, "Unable to locate Iris-placed structure " + key - + ": the density search safety limit was reached before the full 1024-chunk radius was searched.")); + server.execute(() -> fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNABLE_LOCATE_IRIS_PLACED_STRUCTURE_DENSITY_SEARCH_SAFETY_LIMIT_WAS, MessageArgument.untrusted("key", key)))); return; } if (!result.found()) { - server.execute(() -> fail(source, "Could not find Iris-placed structure " + key + " within 1024 chunks.")); + server.execute(() -> fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_COULD_NOT_FIND_IRIS_PLACED_STRUCTURE_WITHIN_1024_CHUNKS, MessageArgument.untrusted("key", key)))); return; } int targetX = result.originX(); @@ -955,7 +978,7 @@ public final class IrisModdedCommands { "Iris-placed structure " + key)); } catch (Throwable e) { LOGGER.error("Iris structure locate failed for {}", key, e); - server.execute(() -> fail(source, "Search failed: " + e.getClass().getSimpleName())); + server.execute(() -> fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCH_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName())))); } }, "Iris Structure Locator"); thread.setDaemon(true); @@ -984,8 +1007,7 @@ public final class IrisModdedCommands { NATIVE_STRUCTURE_LOCATE_RADIUS, false); if (found == null) { - fail(source, "Could not find native structure " + target.key() + " within " - + NATIVE_STRUCTURE_LOCATE_RADIUS + " chunks."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_COULD_NOT_FIND_NATIVE_STRUCTURE_WITHIN_CHUNKS, MessageArgument.untrusted("value", target.key()), MessageArgument.untrusted("NATIVESTRUCTURELOCATERADIUS", NATIVE_STRUCTURE_LOCATE_RADIUS))); return; } BlockPos position = found.getFirst(); @@ -998,18 +1020,18 @@ public final class IrisModdedCommands { "native structure " + target.key()); } catch (Throwable e) { LOGGER.error("Native structure locate failed for {}", target.key(), e); - fail(source, "Search for native structure " + target.key() + " failed: " + e.getClass().getSimpleName()); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCH_NATIVE_STRUCTURE_FAILED, MessageArgument.untrusted("value", target.key()), MessageArgument.untrusted("value2", e.getClass().getSimpleName()))); } } private static void teleportToStructure(CommandSourceStack source, ServerLevel level, ServerPlayer player, int targetX, int targetY, int targetZ, String label) { if (player.hasDisconnected() || player.isRemoved()) { - fail(source, "The player disconnected before the structure search completed."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PLAYER_DISCONNECTED_BEFORE_STRUCTURE_SEARCH_COMPLETED)); return; } if (player.level() != level) { - fail(source, "You changed dimensions before the structure search completed; run the command again."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_YOU_CHANGED_DIMENSIONS_BEFORE_STRUCTURE_SEARCH_COMPLETED_RUN_COMMAND_AGAIN)); return; } level.getChunk(targetX >> 4, targetZ >> 4); @@ -1017,17 +1039,17 @@ public final class IrisModdedCommands { boolean teleported = player.teleportTo(level, targetX + 0.5D, clampedY, targetZ + 0.5D, Set.of(), player.getYRot(), player.getXRot(), false); if (!teleported) { - fail(source, "Found " + label + " at " + targetX + " " + clampedY + " " + targetZ + ", but teleportation failed."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_FOUND_AT_BUT_TELEPORTATION_FAILED, MessageArgument.untrusted("label", label), MessageArgument.untrusted("targetX", targetX), MessageArgument.untrusted("clampedY", clampedY), MessageArgument.untrusted("targetZ", targetZ))); return; } - ok(source, "Teleported to " + label + " at " + targetX + " " + clampedY + " " + targetZ); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_TELEPORTED_AT, MessageArgument.untrusted("label", label), MessageArgument.untrusted("targetX", targetX), MessageArgument.untrusted("clampedY", clampedY), MessageArgument.untrusted("targetZ", targetZ))); } static int verifyStructures(CommandSourceStack source, String keyRaw) { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_12)); return 0; } String key = keyRaw == null ? "" : keyRaw.trim(); @@ -1056,11 +1078,7 @@ public final class IrisModdedCommands { } } int irisPlaced = IrisStructureLocator.placedKeys(engine).size(); - ok(source, "Structure reachability: " + available + " native generation-eligible, " + irisPlaced - + " Iris-placed, " + disabled + " native disabled, " + suppressed - + " native replaced by Iris placements, " + unreachableBiomes - + " native excluded by this pack's biomes, and " + unsupported - + " registered native structures unsupported in this dimension. Use /iris structure verify for one structure."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_STRUCTURE_REACHABILITY_NATIVE_GENERATION_ELIGIBLE_IRIS_PLACED_NATIVE_DISABLED_NATIVE, MessageArgument.untrusted("available", available), MessageArgument.untrusted("irisPlaced", irisPlaced), MessageArgument.untrusted("disabled", disabled), MessageArgument.untrusted("suppressed", suppressed), MessageArgument.untrusted("unreachableBiomes", unreachableBiomes), MessageArgument.untrusted("unsupported", unsupported))); return 1; } @@ -1068,24 +1086,22 @@ public final class IrisModdedCommands { Optional target = resolveNativeStructure(source, level, engine, key); if (target.isEmpty()) { if (IrisStructureLocator.isPlaced(engine, key)) { - ok(source, "Structure " + key + " is Iris-placed and locatable with /iris goto structure " + key + "."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_STRUCTURE_IS_IRIS_PLACED_LOCATABLE_WITH_IRIS_GOTO_STRUCTURE, MessageArgument.untrusted("key", key), MessageArgument.untrusted("key2", key))); return 1; } - fail(source, "Unknown structure '" + key + "'. It is neither Iris-placed nor registered by vanilla or a datapack."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_IT_IS_NEITHER_IRIS_PLACED_NOR_REGISTERED_BY, MessageArgument.untrusted("key", key))); return 0; } NativeStructureTarget resolved = target.get(); if (resolved.availability() == NativeStructureAvailability.IRIS_SUPPRESSED) { - ok(source, "Structure " + resolved.key() - + " is explicitly replaced by an Iris placement and locatable with /iris goto structure " - + resolved.key() + "."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_STRUCTURE_IS_EXPLICITLY_REPLACED_BY_IRIS_PLACEMENT_LOCATABLE_WITH_IRIS, MessageArgument.untrusted("value", resolved.key()), MessageArgument.untrusted("value2", resolved.key()))); return 1; } if (resolved.availability() != NativeStructureAvailability.AVAILABLE) { fail(source, nativeUnavailableMessage(resolved.key(), resolved.availability())); return 0; } - ok(source, "Native structure " + resolved.key() + " is enabled, supported by this dimension's generator state, and locatable with /iris goto structure " + resolved.key() + "."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_NATIVE_STRUCTURE_IS_ENABLED_SUPPORTED_BY_THIS_DIMENSION_S_GENERATOR, MessageArgument.untrusted("value", resolved.key()), MessageArgument.untrusted("value2", resolved.key()))); return 1; } @@ -1162,13 +1178,13 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_13)); return 0; } String type = typeRaw.trim(); ServerPlayer player = source.getPlayer(); if (player == null) { - fail(source, "This command can only be used by players. (POI type '" + type + "' accepted)"); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_POI_TYPE, MessageArgument.untrusted("type", type))); return 0; } locate(source, level, engine, player, Locator.poi(type), "POI " + type); @@ -1179,13 +1195,13 @@ public final class IrisModdedCommands { MinecraftServer server = source.getServer(); int chunkX = player.blockPosition().getX() >> 4; int chunkZ = player.blockPosition().getZ() >> 4; - ok(source, "Searching for " + label + "..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCHING, MessageArgument.untrusted("label", label))); CompletableFuture search; try { search = locator.find(engine, new Position2(chunkX, chunkZ), LOCATE_TIMEOUT_MS, (Integer checks) -> { }); } catch (WrongEngineBroException e) { - fail(source, "The engine for this world has been closed; rejoin the dimension and try again."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_ENGINE_THIS_WORLD_HAS_BEEN_CLOSED_REJOIN_DIMENSION_TRY_AGAIN)); return; } UUID playerId = player.getUUID(); @@ -1212,7 +1228,7 @@ public final class IrisModdedCommands { LOGGER.error("Iris locate failed for {}", label, failure); server.execute(() -> { if (ACTIVE_LOCATE_REQUESTS.remove(playerId, search)) { - fail(source, "Search failed: " + failure); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_SEARCH_FAILED_2, MessageArgument.untrusted("failure", failure))); } }); return; @@ -1220,7 +1236,7 @@ public final class IrisModdedCommands { if (at == null) { server.execute(() -> { if (ACTIVE_LOCATE_REQUESTS.remove(playerId, search)) { - fail(source, "Could not find " + label + " within the search timeout."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_COULD_NOT_FIND_WITHIN_SEARCH_TIMEOUT, MessageArgument.untrusted("label", label))); } }); return; @@ -1240,9 +1256,9 @@ public final class IrisModdedCommands { IrisContext.Scope ignored = IrisContext.open(engine, lease.sessionId(), null)) { int blockY = engine.getMinHeight() + engine.getHeight(blockX, blockZ, false) + 2; player.teleportTo(level, blockX + 0.5D, blockY, blockZ + 0.5D, Set.of(), player.getYRot(), player.getXRot(), false); - ok(source, "Teleported to " + label + " at " + blockX + " " + blockY + " " + blockZ); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_TELEPORTED_AT_2, MessageArgument.untrusted("label", label), MessageArgument.untrusted("blockX", blockX), MessageArgument.untrusted("blockY", blockY), MessageArgument.untrusted("blockZ", blockZ))); } catch (GenerationSessionException e) { - fail(source, "The engine changed while locating " + label + "; try again."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_ENGINE_CHANGED_WHILE_LOCATING_TRY_AGAIN, MessageArgument.untrusted("label", label))); } } @@ -1259,11 +1275,11 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_14)); return 0; } - ok(source, "World seed: " + level.getSeed()); - ok(source, "Engine seed: " + engine.getSeedManager().getSeed() + " (mixed: " + engine.getSeedManager().getFullMixedSeed() + ")"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_WORLD_SEED, MessageArgument.untrusted("value", level.getSeed()))); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_ENGINE_SEED_MIXED, MessageArgument.untrusted("value", engine.getSeedManager().getSeed()), MessageArgument.untrusted("value2", engine.getSeedManager().getFullMixedSeed()))); return 1; } @@ -1271,7 +1287,7 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_15)); return 0; } ModdedGoldenHash.start(source, level, engine, radius, threads, mode); @@ -1282,14 +1298,14 @@ public final class IrisModdedCommands { MinecraftServer server = source.getServer(); boolean defaultOverworld = PackDownloader.isDefaultOverworld(pack); String downloadSource = defaultOverworld ? "beta release" : "branch " + branch; - ok(source, "Downloading IrisDimensions/" + pack + " (" + downloadSource + ")..."); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_DOWNLOADING_IRISDIMENSIONS, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("downloadSource", downloadSource))); Thread thread = new Thread(() -> { boolean installed = ModdedPackInstaller.install(ModdedEngineBootstrap.loader().configDir(), pack, branch, (String message) -> server.execute(() -> ok(source, message))); if (installed) { - server.execute(() -> ok(source, "Pack '" + pack + "' installed. Its exact dimension types and custom biomes join the forced Iris datapack on the next server restart; restart before creating worlds from this pack.")); + server.execute(() -> ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PACK_INSTALLED_ITS_EXACT_DIMENSION_TYPES_CUSTOM_BIOMES_JOIN_FORCED, MessageArgument.untrusted("pack", pack)))); } else { - server.execute(() -> fail(source, "Pack download failed for " + pack + " (" + downloadSource + "; see console).")); + server.execute(() -> fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_PACK_DOWNLOAD_FAILED_SEE_CONSOLE, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("downloadSource", downloadSource)))); } }, "Iris Pack Download"); thread.setDaemon(true); @@ -1301,17 +1317,17 @@ public final class IrisModdedCommands { ServerLevel level = source.getLevel(); Engine engine = engineFor(level); if (engine == null) { - fail(source, "This dimension is not generated by Iris."); + fail(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_16)); return 0; } - ok(source, "Generated: " + engine.getGenerated() + " chunk(s), " + String.format("%.1f", engine.getGeneratedPerSecond()) + "/s"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_GENERATED_CHUNK_S_S, MessageArgument.untrusted("value", engine.getGenerated()), MessageArgument.untrusted("value2", String.format("%.1f", engine.getGeneratedPerSecond())))); KMap pulled = engine.getMetrics().pull(); Map sorted = new TreeMap<>(pulled); for (Map.Entry entry : sorted.entrySet()) { if (entry.getValue() == null || entry.getValue() <= 0D) { continue; } - ok(source, " " + entry.getKey() + ": " + String.format("%.2f", entry.getValue()) + "ms"); + ok(source, IrisLanguage.plain(ModdedCommandMessages.IRIS_MODDED_COMMANDS_MS, MessageArgument.untrusted("value", entry.getKey()), MessageArgument.untrusted("value2", String.format("%.2f", entry.getValue())))); } return 1; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java index 2d34f6c52..2452dfc5a 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedCommandHelp.java @@ -24,6 +24,12 @@ import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; import net.minecraft.network.chat.MutableComponent; +import art.arcane.iris.core.localization.IrisMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedHelpMessages; +import art.arcane.volmlib.util.director.help.DirectorHelpMessages; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.volmlib.util.localization.TextKey; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -50,124 +56,124 @@ final class ModdedCommandHelp { static { SECTIONS.put("", List.of( - Entry.command("version", "", "Print version information"), - Entry.command("info", "[dimension]", "List loaded Iris dimensions and pack details"), - Entry.command("what", "[block|hand|markers]", "Inspect the Iris biome, region, cave biome, surface and chunk at your position, the block you look at, your held item, or nearby markers"), - Entry.group("find", "Find and teleport to Iris biomes, regions, objects, Iris structures, native structures and points of interest", "goto"), - Entry.command("tp", " [player]", "Teleport yourself or a named player into a loaded Iris dimension"), - Entry.command("evacuate", "[dimension]", "Teleport every player out of an Iris dimension to the primary world spawn"), - Entry.command("seed", "", "Print world and engine seed information"), - Entry.command("debug", "", "Toggle Iris debug logging and save settings.json"), - Entry.command("reload", "", "Reload settings.json (also hotloaded automatically every 3s)"), - Entry.command("download", " [branch]", "Download a pack project", "dl"), - Entry.command("metrics", "", "Print generation metrics for your current Iris dimension", "measure"), - Entry.command("regen", "[radius]", "Delete and regenerate nearby chunks in place", "rg"), - Entry.group("pregen", "Pregenerate an Iris dimension", "pregenerate"), - Entry.command("wand", "", "Get an Iris object wand"), - Entry.group("object", "Object wand, save, paste, analyze and undo tools", "o"), - Entry.group("edit", "Open pack biome, region and dimension json files in your desktop editor"), - Entry.command("create", " [seed]", "Create and inject a persistent Iris dimension; quote pack:dimensionKey to pick a specific pack dimension"), - Entry.group("studio", "Pack project creation, packaging and reports", "std", "s"), - Entry.group("pack", "Pack validation and maintenance", "pk"), - Entry.group("world", "Runtime Iris dimension creation, removal and status", "w"), - Entry.group("datapack", "World datapack install and status helpers", "datapacks", "dp"), - Entry.group("structure", "Iris structure index, info and placement tools", "struct", "str"), - Entry.command("goldenhash", "[radius] [threads] [capture|verify]", "Generate deterministic block hashes for parity testing", "gold"), - Entry.group("developer", "Developer diagnostics: Sentry test, network interfaces, region-file scan", "dev") + Entry.command("version", "", ModdedHelpMessages.COMMAND_VERSION_PRINT_VERSION_INFORMATION), + Entry.command("info", "[dimension]", ModdedHelpMessages.COMMAND_INFO_LIST_LOADED_IRIS_DIMENSIONS_AND_PACK_DETAILS), + Entry.command("what", "[block|hand|markers]", ModdedHelpMessages.COMMAND_WHAT_INSPECT_THE_IRIS_BIOME_REGION_CAVE_BIOME_SURFACE_AND_CHUNK_AT_YOUR), + Entry.group("find", ModdedHelpMessages.GROUP_FIND_FIND_AND_TELEPORT_TO_IRIS_BIOMES_REGIONS_OBJECTS_IRIS_STRUCTURES_NATIVE_STRUCTURES, "goto"), + Entry.command("tp", " [player]", ModdedHelpMessages.COMMAND_TP_TELEPORT_YOURSELF_OR_A_NAMED_PLAYER_INTO_A_LOADED_IRIS_DIMENSION), + Entry.command("evacuate", "[dimension]", ModdedHelpMessages.COMMAND_EVACUATE_TELEPORT_EVERY_PLAYER_OUT_OF_AN_IRIS_DIMENSION_TO_THE_PRIMARY_WORLD), + Entry.command("seed", "", ModdedHelpMessages.COMMAND_SEED_PRINT_WORLD_AND_ENGINE_SEED_INFORMATION), + Entry.command("debug", "", ModdedHelpMessages.COMMAND_DEBUG_TOGGLE_IRIS_DEBUG_LOGGING_AND_SAVE_SETTINGS_JSON), + Entry.command("reload", "", ModdedHelpMessages.COMMAND_RELOAD_RELOAD_SETTINGS_JSON_ALSO_HOTLOADED_AUTOMATICALLY_EVERY_3S), + Entry.command("download", " [branch]", ModdedHelpMessages.COMMAND_DOWNLOAD_DOWNLOAD_A_PACK_PROJECT, "dl"), + Entry.command("metrics", "", ModdedHelpMessages.COMMAND_METRICS_PRINT_GENERATION_METRICS_FOR_YOUR_CURRENT_IRIS_DIMENSION, "measure"), + Entry.command("regen", "[radius]", ModdedHelpMessages.COMMAND_REGEN_DELETE_AND_REGENERATE_NEARBY_CHUNKS_IN_PLACE, "rg"), + Entry.group("pregen", ModdedHelpMessages.GROUP_PREGEN_PREGENERATE_AN_IRIS_DIMENSION, "pregenerate"), + Entry.command("wand", "", ModdedHelpMessages.COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND), + Entry.group("object", ModdedHelpMessages.GROUP_OBJECT_OBJECT_WAND_SAVE_PASTE_ANALYZE_AND_UNDO_TOOLS, "o"), + Entry.group("edit", ModdedHelpMessages.GROUP_EDIT_OPEN_PACK_BIOME_REGION_AND_DIMENSION_JSON_FILES_IN_YOUR_DESKTOP_EDITOR), + Entry.command("create", " [seed]", ModdedHelpMessages.COMMAND_CREATE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_QUOTE_PACK_DIMENSIONKEY_TO_PICK), + Entry.group("studio", ModdedHelpMessages.GROUP_STUDIO_PACK_PROJECT_CREATION_PACKAGING_AND_REPORTS, "std", "s"), + Entry.group("pack", ModdedHelpMessages.GROUP_PACK_PACK_VALIDATION_AND_MAINTENANCE, "pk"), + Entry.group("world", ModdedHelpMessages.GROUP_WORLD_RUNTIME_IRIS_DIMENSION_CREATION_REMOVAL_AND_STATUS, "w"), + Entry.group("datapack", ModdedHelpMessages.GROUP_DATAPACK_WORLD_DATAPACK_INSTALL_AND_STATUS_HELPERS, "datapacks", "dp"), + Entry.group("structure", ModdedHelpMessages.GROUP_STRUCTURE_IRIS_STRUCTURE_INDEX_INFO_AND_PLACEMENT_TOOLS, "struct", "str"), + Entry.command("goldenhash", "[radius] [threads] [capture|verify]", ModdedHelpMessages.COMMAND_GOLDENHASH_GENERATE_DETERMINISTIC_BLOCK_HASHES_FOR_PARITY_TESTING, "gold"), + Entry.group("developer", ModdedHelpMessages.GROUP_DEVELOPER_DEVELOPER_DIAGNOSTICS_SENTRY_TEST_NETWORK_INTERFACES_REGION_FILE_SCAN, "dev") )); SECTIONS.put("find", List.of( - Entry.command("biome", "", "Find an Iris biome"), - Entry.command("region", "", "Find an Iris region"), - Entry.command("object", "", "Find an object placement"), - Entry.command("structure", "", "Find an Iris-placed or native/datapack structure"), - Entry.command("poi", "", "Find a supported point of interest") + Entry.command("biome", "", ModdedHelpMessages.COMMAND_BIOME_FIND_AN_IRIS_BIOME), + Entry.command("region", "", ModdedHelpMessages.COMMAND_REGION_FIND_AN_IRIS_REGION), + Entry.command("object", "", ModdedHelpMessages.COMMAND_OBJECT_FIND_AN_OBJECT_PLACEMENT), + Entry.command("structure", "", ModdedHelpMessages.COMMAND_STRUCTURE_FIND_AN_IRIS_PLACED_OR_NATIVE_DATAPACK_STRUCTURE), + Entry.command("poi", "", ModdedHelpMessages.COMMAND_POI_FIND_A_SUPPORTED_POINT_OF_INTEREST) )); SECTIONS.put("goto", SECTIONS.get("find")); SECTIONS.put("edit", List.of( - Entry.command("biome", "[key]", "Open a biome json in your desktop editor; no key opens the biome at your position"), - Entry.command("region", "[key]", "Open a region json in your desktop editor; no key opens the region at your position"), - Entry.command("dimension", "", "Open the current pack's dimension json in your desktop editor") + Entry.command("biome", "[key]", ModdedHelpMessages.COMMAND_BIOME_OPEN_A_BIOME_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE), + Entry.command("region", "[key]", ModdedHelpMessages.COMMAND_REGION_OPEN_A_REGION_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE), + Entry.command("dimension", "", ModdedHelpMessages.COMMAND_DIMENSION_OPEN_THE_CURRENT_PACK_S_DIMENSION_JSON_IN_YOUR_DESKTOP_EDITOR) )); SECTIONS.put("pregen", List.of( - Entry.command("start", " [dimension] [at] [x] [z] [gui] [sync] [nocache]", "Start pregeneration; radius in blocks, resumable checkpoint cache on by default, center via 'at ', flags compose in any order"), - Entry.command("stop", "", "Stop the active pregeneration task", "x"), - Entry.command("pause", "", "Pause or resume pregeneration", "resume"), - Entry.command("status", "", "Show pregeneration status") + Entry.command("start", " [dimension] [at] [x] [z] [gui] [sync] [nocache]", ModdedHelpMessages.COMMAND_START_START_PREGENERATION_RADIUS_IN_BLOCKS_RESUMABLE_CHECKPOINT_CACHE_ON_BY_DEFAULT_CENTER), + Entry.command("stop", "", ModdedHelpMessages.COMMAND_STOP_STOP_THE_ACTIVE_PREGENERATION_TASK, "x"), + Entry.command("pause", "", ModdedHelpMessages.COMMAND_PAUSE_PAUSE_OR_RESUME_PREGENERATION, "resume"), + Entry.command("status", "", ModdedHelpMessages.COMMAND_STATUS_SHOW_PREGENERATION_STATUS) )); SECTIONS.put("pregenerate", SECTIONS.get("pregen")); SECTIONS.put("object", List.of( - Entry.command("wand", "", "Get an Iris object wand"), - Entry.command("dust", "", "Get dust that reveals object placements", "d"), - Entry.command("save", "[overwrite] ", "Save the selected wand volume as an object"), - Entry.command("paste", "[at] [x] [y] [z] [rotate] [degrees] ", "Paste an object at your position or a given position, optionally rotated"), - Entry.command("expand", "[amount]", "Expand the wand selection in your looking direction"), - Entry.command("contract", "[amount]", "Contract the wand selection in your looking direction", "-"), - Entry.command("shift", "[amount]", "Shift the wand selection in your looking direction"), - Entry.command("position1", "[look]", "Set selection point 1", "p1"), - Entry.command("position2", "[look]", "Set selection point 2", "p2"), - Entry.command("x+y", "", "Autoselect up and out", "xpy"), - Entry.command("x&y", "", "Autoselect up, down and out", "xay"), - Entry.command("analyze", "", "Show object composition"), - Entry.command("shrink", "", "Shrink an object to its minimum size"), - Entry.command("plausibilize", " [dryrun=true] [reach=N]", "Grow branches so tree leaves survive vanilla decay"), - Entry.command("undo", "[amount]", "Undo pasted objects", "u") + Entry.command("wand", "", ModdedHelpMessages.COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND_2), + Entry.command("dust", "", ModdedHelpMessages.COMMAND_DUST_GET_DUST_THAT_REVEALS_OBJECT_PLACEMENTS, "d"), + Entry.command("save", "[overwrite] ", ModdedHelpMessages.COMMAND_SAVE_SAVE_THE_SELECTED_WAND_VOLUME_AS_AN_OBJECT), + Entry.command("paste", "[at] [x] [y] [z] [rotate] [degrees] ", ModdedHelpMessages.COMMAND_PASTE_PASTE_AN_OBJECT_AT_YOUR_POSITION_OR_A_GIVEN_POSITION_OPTIONALLY_ROTATED), + Entry.command("expand", "[amount]", ModdedHelpMessages.COMMAND_EXPAND_EXPAND_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION), + Entry.command("contract", "[amount]", ModdedHelpMessages.COMMAND_CONTRACT_CONTRACT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION, "-"), + Entry.command("shift", "[amount]", ModdedHelpMessages.COMMAND_SHIFT_SHIFT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION), + Entry.command("position1", "[look]", ModdedHelpMessages.COMMAND_POSITION1_SET_SELECTION_POINT_1, "p1"), + Entry.command("position2", "[look]", ModdedHelpMessages.COMMAND_POSITION2_SET_SELECTION_POINT_2, "p2"), + Entry.command("x+y", "", ModdedHelpMessages.COMMAND_X_Y_AUTOSELECT_UP_AND_OUT, "xpy"), + Entry.command("x&y", "", ModdedHelpMessages.COMMAND_X_Y_AUTOSELECT_UP_DOWN_AND_OUT, "xay"), + Entry.command("analyze", "", ModdedHelpMessages.COMMAND_ANALYZE_SHOW_OBJECT_COMPOSITION), + Entry.command("shrink", "", ModdedHelpMessages.COMMAND_SHRINK_SHRINK_AN_OBJECT_TO_ITS_MINIMUM_SIZE), + Entry.command("plausibilize", " [dryrun=true] [reach=N]", ModdedHelpMessages.COMMAND_PLAUSIBILIZE_GROW_BRANCHES_SO_TREE_LEAVES_SURVIVE_VANILLA_DECAY), + Entry.command("undo", "[amount]", ModdedHelpMessages.COMMAND_UNDO_UNDO_PASTED_OBJECTS, "u") )); SECTIONS.put("o", SECTIONS.get("object")); SECTIONS.put("studio", List.of( - Entry.command("create", " [template]", "Create a new pack project", "+"), - Entry.command("package", "[pack]", "Package a dimension into a compressed format"), - Entry.command("version", "[pack]", "Print a pack version"), - Entry.command("regions", "[radius]", "Calculate nearby region distribution"), - Entry.command("open", " [seed]", "Open a temporary studio dimension for a pack", "o"), - Entry.command("close", "", "Close the open studio dimension and discard its world", "x"), - Entry.command("tpstudio", "", "Teleport into the open studio dimension", "stp"), - Entry.command("status", "", "Show the open studio dimension and its pack"), - Entry.command("noise", "[generator] [seed]", "Open the Noise Explorer GUI on the server display", "nmap"), - Entry.command("map", "", "Open the Vision map GUI on the server display", "render"), - Entry.command("vscode", "[pack]", "Regenerate the .code-workspace for a pack and open it in your desktop editor", "vsc"), - Entry.command("update", "[pack]", "Regenerate the .code-workspace for a pack"), - Entry.command("importvanilla", "", "Explain vanilla import workflow", "importv", "iv") + Entry.command("create", " [template]", ModdedHelpMessages.COMMAND_CREATE_CREATE_A_NEW_PACK_PROJECT, "+"), + Entry.command("package", "[pack]", ModdedHelpMessages.COMMAND_PACKAGE_PACKAGE_A_DIMENSION_INTO_A_COMPRESSED_FORMAT), + Entry.command("version", "[pack]", ModdedHelpMessages.COMMAND_VERSION_PRINT_A_PACK_VERSION), + Entry.command("regions", "[radius]", ModdedHelpMessages.COMMAND_REGIONS_CALCULATE_NEARBY_REGION_DISTRIBUTION), + Entry.command("open", " [seed]", ModdedHelpMessages.COMMAND_OPEN_OPEN_A_TEMPORARY_STUDIO_DIMENSION_FOR_A_PACK, "o"), + Entry.command("close", "", ModdedHelpMessages.COMMAND_CLOSE_CLOSE_THE_OPEN_STUDIO_DIMENSION_AND_DISCARD_ITS_WORLD, "x"), + Entry.command("tpstudio", "", ModdedHelpMessages.COMMAND_TPSTUDIO_TELEPORT_INTO_THE_OPEN_STUDIO_DIMENSION, "stp"), + Entry.command("status", "", ModdedHelpMessages.COMMAND_STATUS_SHOW_THE_OPEN_STUDIO_DIMENSION_AND_ITS_PACK), + Entry.command("noise", "[generator] [seed]", ModdedHelpMessages.COMMAND_NOISE_OPEN_THE_NOISE_EXPLORER_GUI_ON_THE_SERVER_DISPLAY, "nmap"), + Entry.command("map", "", ModdedHelpMessages.COMMAND_MAP_OPEN_THE_VISION_MAP_GUI_ON_THE_SERVER_DISPLAY, "render"), + Entry.command("vscode", "[pack]", ModdedHelpMessages.COMMAND_VSCODE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK_AND_OPEN_IT_IN_YOUR, "vsc"), + Entry.command("update", "[pack]", ModdedHelpMessages.COMMAND_UPDATE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK), + Entry.command("importvanilla", "", ModdedHelpMessages.COMMAND_IMPORTVANILLA_EXPLAIN_VANILLA_IMPORT_WORKFLOW, "importv", "iv") )); SECTIONS.put("std", SECTIONS.get("studio")); SECTIONS.put("s", SECTIONS.get("studio")); SECTIONS.put("pack", List.of( - Entry.command("validate", "[pack]", "Validate a pack or every pack", "v"), - Entry.command("cleanup", " [apply]", "Preview or quarantine unused-resource candidates", "c"), - Entry.command("restore", " [apply]", "Preview or restore the latest quarantine", "r"), - Entry.command("status", "[pack]", "Show cached validation status", "s") + Entry.command("validate", "[pack]", ModdedHelpMessages.COMMAND_VALIDATE_VALIDATE_A_PACK_OR_EVERY_PACK, "v"), + Entry.command("cleanup", " [apply]", ModdedHelpMessages.COMMAND_CLEANUP_PREVIEW_OR_QUARANTINE_UNUSED_RESOURCE_CANDIDATES, "c"), + Entry.command("restore", " [apply]", ModdedHelpMessages.COMMAND_RESTORE_PREVIEW_OR_RESTORE_THE_LATEST_QUARANTINE, "r"), + Entry.command("status", "[pack]", ModdedHelpMessages.COMMAND_STATUS_SHOW_CACHED_VALIDATION_STATUS, "s") )); SECTIONS.put("pk", SECTIONS.get("pack")); SECTIONS.put("world", List.of( - Entry.command("enable", " [seed|random]", "Create and inject a persistent Iris dimension at runtime; downloads the pack if missing, quote pack:dimensionKey to pick a specific pack dimension", "create"), - Entry.command("replace-overworld", " [seed|random]", "Inject an Iris primary world and route players there instead of the vanilla overworld"), - Entry.command("disable", "", "Evacuate and unload an Iris dimension; world data on disk is kept for re-enabling"), - Entry.command("delete", "", "Disable an Iris dimension and wipe its chunk and mantle data from disk", "remove", "rm"), - Entry.command("list", "", "List loaded Iris dimensions", "ls"), - Entry.command("status", "", "Show loaded Iris dimensions and the configured primary world") + Entry.command("enable", " [seed|random]", ModdedHelpMessages.COMMAND_ENABLE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_AT_RUNTIME_DOWNLOADS_THE_PACK, "create"), + Entry.command("replace-overworld", " [seed|random]", ModdedHelpMessages.COMMAND_REPLACE_OVERWORLD_INJECT_AN_IRIS_PRIMARY_WORLD_AND_ROUTE_PLAYERS_THERE_INSTEAD_OF_THE), + Entry.command("disable", "", ModdedHelpMessages.COMMAND_DISABLE_EVACUATE_AND_UNLOAD_AN_IRIS_DIMENSION_WORLD_DATA_ON_DISK_IS_KEPT), + Entry.command("delete", "", ModdedHelpMessages.COMMAND_DELETE_DISABLE_AN_IRIS_DIMENSION_AND_WIPE_ITS_CHUNK_AND_MANTLE_DATA_FROM, "remove", "rm"), + Entry.command("list", "", ModdedHelpMessages.COMMAND_LIST_LIST_LOADED_IRIS_DIMENSIONS, "ls"), + Entry.command("status", "", ModdedHelpMessages.COMMAND_STATUS_SHOW_LOADED_IRIS_DIMENSIONS_AND_THE_CONFIGURED_PRIMARY_WORLD) )); SECTIONS.put("w", SECTIONS.get("world")); SECTIONS.put("datapack", List.of( - Entry.command("status", "", "Check loaded Iris dimension type overrides"), - Entry.command("install", "", "Install dimension type overrides for loaded Iris dimensions"), - Entry.command("list", "", "List configured and installed datapacks", "ls"), - Entry.command("ingest", "", "Explain Bukkit datapack ingest workflow", "pull"), - Entry.command("remove", "", "Explain datapack removal workflow", "rm") + Entry.command("status", "", ModdedHelpMessages.COMMAND_STATUS_CHECK_LOADED_IRIS_DIMENSION_TYPE_OVERRIDES), + Entry.command("install", "", ModdedHelpMessages.COMMAND_INSTALL_INSTALL_DIMENSION_TYPE_OVERRIDES_FOR_LOADED_IRIS_DIMENSIONS), + Entry.command("list", "", ModdedHelpMessages.COMMAND_LIST_LIST_CONFIGURED_AND_INSTALLED_DATAPACKS, "ls"), + Entry.command("ingest", "", ModdedHelpMessages.COMMAND_INGEST_EXPLAIN_BUKKIT_DATAPACK_INGEST_WORKFLOW, "pull"), + Entry.command("remove", "", ModdedHelpMessages.COMMAND_REMOVE_EXPLAIN_DATAPACK_REMOVAL_WORKFLOW, "rm") )); SECTIONS.put("datapacks", SECTIONS.get("datapack")); SECTIONS.put("dp", SECTIONS.get("datapack")); SECTIONS.put("structure", List.of( - Entry.command("list", "", "Regenerate structure-index.json", "ls"), - Entry.command("info", "", "Resolve an Iris structure graph and report bounds"), - Entry.command("place", "", "Assemble and place an Iris structure at your location", "p"), - Entry.command("import", "", "Explain Bukkit structure import workflow", "import-all", "reimport", "imp", "all"), - Entry.command("capture", "", "Explain Bukkit structure capture workflow", "cap"), - Entry.command("verify", "[key]", "Report native and Iris structure reachability in the current dimension", "locateall") + Entry.command("list", "", ModdedHelpMessages.COMMAND_LIST_REGENERATE_STRUCTURE_INDEX_JSON, "ls"), + Entry.command("info", "", ModdedHelpMessages.COMMAND_INFO_RESOLVE_AN_IRIS_STRUCTURE_GRAPH_AND_REPORT_BOUNDS), + Entry.command("place", "", ModdedHelpMessages.COMMAND_PLACE_ASSEMBLE_AND_PLACE_AN_IRIS_STRUCTURE_AT_YOUR_LOCATION, "p"), + Entry.command("import", "", ModdedHelpMessages.COMMAND_IMPORT_EXPLAIN_BUKKIT_STRUCTURE_IMPORT_WORKFLOW, "import-all", "reimport", "imp", "all"), + Entry.command("capture", "", ModdedHelpMessages.COMMAND_CAPTURE_EXPLAIN_BUKKIT_STRUCTURE_CAPTURE_WORKFLOW, "cap"), + Entry.command("verify", "[key]", ModdedHelpMessages.COMMAND_VERIFY_REPORT_NATIVE_AND_IRIS_STRUCTURE_REACHABILITY_IN_THE_CURRENT_DIMENSION, "locateall") )); SECTIONS.put("struct", SECTIONS.get("structure")); SECTIONS.put("str", SECTIONS.get("structure")); SECTIONS.put("developer", List.of( - Entry.command("sentry", "", "Send a test exception to the Iris error reporter"), - Entry.command("network", "", "List network interfaces and their addresses", "ip") + Entry.command("sentry", "", ModdedHelpMessages.COMMAND_SENTRY_SEND_A_TEST_EXCEPTION_TO_THE_IRIS_ERROR_REPORTER), + Entry.command("network", "", ModdedHelpMessages.COMMAND_NETWORK_LIST_NETWORK_INTERFACES_AND_THEIR_ADDRESSES, "ip") )); SECTIONS.put("dev", SECTIONS.get("developer")); } @@ -179,7 +185,10 @@ final class ModdedCommandHelp { String normalized = normalize(path); List entries = SECTIONS.get(normalized); if (entries == null) { - ModdedCommandFeedback.fail(source, "Unknown Iris help section: " + normalized); + ModdedCommandFeedback.fail(source, IrisLanguage.plain( + IrisMessages.MODDED_HELP_UNKNOWN_SECTION, + MessageArgument.untrusted("section", normalized) + )); return 0; } @@ -208,9 +217,11 @@ final class ModdedCommandHelp { String parent = parentPath(path); String command = parent.isEmpty() ? "/iris" : "/iris help " + parent; MutableComponent hover = Component.empty() - .append(text("Click to go back to ", DARK_GREEN)) - .append(text(parent.isEmpty() ? "Iris" : parent, PARAMETER_ALT)); - return text("〈 Back", BACK).withStyle((style) -> style + .append(text(IrisLanguage.plain( + IrisMessages.MODDED_HELP_BACK_HOVER, + MessageArgument.untrusted("parent", parent.isEmpty() ? "Iris" : parent) + ), DARK_GREEN)); + return text("〈 " + IrisLanguage.plain(DirectorHelpMessages.BACK), BACK).withStyle((style) -> style .withClickEvent(new ClickEvent.RunCommand(command)) .withHoverEvent(new HoverEvent.ShowText(hover))); } @@ -239,7 +250,7 @@ final class ModdedCommandHelp { private static MutableComponent nodes(Entry entry) { if (entry.group()) { - return text(" - Category of Commands", CATEGORY); + return text(" - " + IrisLanguage.plain(DirectorHelpMessages.COMMAND_GROUP), CATEGORY); } List tokens = usageTokens(entry.usage()); @@ -273,18 +284,18 @@ final class ModdedCommandHelp { hover.append(text(name, PARAMETER)); hover.append(Component.literal("\n")); hover.append(text("✎ ", DESCRIPTION_ICON)); - hover.append(text("Command parameter", DESCRIPTION)); + hover.append(text(IrisLanguage.plain(IrisMessages.MODDED_HELP_COMMAND_PARAMETER), DESCRIPTION)); hover.append(Component.literal("\n")); if (required) { hover.append(text("⚠ ", REQUIRED)); - hover.append(text("This parameter is required.", REQUIRED_TEXT)); + hover.append(text(IrisLanguage.plain(IrisMessages.MODDED_HELP_PARAMETER_REQUIRED), REQUIRED_TEXT)); } else { hover.append(text("✔ ", DESCRIPTION_ICON)); - hover.append(text("This parameter is optional.", USAGE)); + hover.append(text(IrisLanguage.plain(IrisMessages.MODDED_HELP_PARAMETER_OPTIONAL), USAGE)); } hover.append(Component.literal("\n")); hover.append(text("✢ ", DARK_GREEN)); - hover.append(text("This parameter is read as text by Brigadier.", HOVER_TYPE)); + hover.append(text(IrisLanguage.plain(IrisMessages.MODDED_HELP_BRIGADIER_TEXT), HOVER_TYPE)); return title.withStyle((style) -> style.withHoverEvent(new HoverEvent.ShowText(hover))); } @@ -294,15 +305,15 @@ final class ModdedCommandHelp { hover.append(text(names(entry), PARAMETER)); hover.append(Component.literal("\n")); hover.append(text("✎ ", DESCRIPTION_ICON)); - hover.append(text(entry.description(), DESCRIPTION)); + hover.append(text(IrisLanguage.plain(entry.description()), DESCRIPTION)); hover.append(Component.literal("\n")); hover.append(text("✒ ", USAGE_ICON)); if (entry.group()) { - hover.append(text("This is a command category. Click to run.", USAGE)); + hover.append(text(IrisLanguage.plain(DirectorHelpMessages.COMMAND_GROUP), USAGE)); } else if (entry.usage().isBlank()) { - hover.append(text("There are no parameters. Click to type command.", USAGE)); + hover.append(text(IrisLanguage.plain(DirectorHelpMessages.NO_PARAMETERS), USAGE)); } else { - hover.append(text("Hover over all of the parameters to learn more.", USAGE)); + hover.append(text(IrisLanguage.plain(DirectorHelpMessages.PARAMETERS), USAGE)); hover.append(Component.literal("\n")); hover.append(text("✦ ", EXAMPLE_ICON)); hover.append(text(suggestion, PARAMETER)); @@ -311,7 +322,7 @@ final class ModdedCommandHelp { String parent = path.isEmpty() ? "/iris" : "/iris " + path; if (entry.aliases().length > 0) { hover.append(Component.literal("\n")); - hover.append(text("Aliases: ", DARK_GREEN)); + hover.append(text(IrisLanguage.plain(DirectorHelpMessages.ALIASES) + ": ", DARK_GREEN)); List aliases = new ArrayList<>(entry.aliases().length); for (String alias : entry.aliases()) { aliases.add(parent + " " + alias); @@ -324,11 +335,11 @@ final class ModdedCommandHelp { private static MutableComponent opNotice() { MutableComponent notice = Component.empty(); notice.append(text("⚠ ", REQUIRED)); - notice.append(text("Iris commands need operator permission (level 2). ", REQUIRED_TEXT)); - notice.append(text("Run ", DESCRIPTION)); - notice.append(text("/op ", PARAMETER_ALT)); - notice.append(text(" from the console (or enable cheats in singleplayer); ", DESCRIPTION)); - notice.append(text("until then these commands will not run or tab-complete.", USAGE)); + notice.append(text(IrisLanguage.plain(IrisMessages.MODDED_HELP_OPERATOR_NOTICE) + " ", REQUIRED_TEXT)); + notice.append(text(IrisLanguage.plain( + IrisMessages.MODDED_HELP_OPERATOR_INSTRUCTION, + MessageArgument.trusted("command", "/op ") + ), DESCRIPTION)); return notice; } @@ -404,12 +415,12 @@ final class ModdedCommandHelp { return normalized; } - private record Entry(String name, String usage, String description, boolean group, String... aliases) { - static Entry command(String name, String usage, String description, String... aliases) { + private record Entry(String name, String usage, TextKey description, boolean group, String... aliases) { + static Entry command(String name, String usage, TextKey description, String... aliases) { return new Entry(name, usage, description, false, aliases); } - static Entry group(String name, String description, String... aliases) { + static Entry group(String name, TextKey description, String... aliases) { return new Entry(name, "", description, true, aliases); } } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java index 7cd818bff..6073be3b4 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDatapackCommands.java @@ -45,6 +45,10 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedDatapackCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -118,8 +122,7 @@ public final class ModdedDatapackCommands { Engine engine = IrisModdedCommands.engineFor(level); if (engine == null || engine.getDimension() == null) { - IrisModdedCommands.ok(source, dimensionId + ": type=" + typeKey + " active=" + activeMin + ".." + activeMax - + " logical=" + active.logicalHeight() + " (pack=" + irisGenerator.dimensionKey() + ", engine not started; pack heights unknown)"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_ENGINE_NOT_STARTED_PACK_HEIGHTS_UNKNOWN, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("typeKey", typeKey), MessageArgument.untrusted("activeMin", activeMin), MessageArgument.untrusted("activeMax", activeMax), MessageArgument.untrusted("value", active.logicalHeight()), MessageArgument.untrusted("value2", irisGenerator.dimensionKey()))); continue; } IrisDimension dimension = engine.getDimension(); @@ -128,22 +131,18 @@ public final class ModdedDatapackCommands { int packLogical = dimension.getLogicalHeight(); boolean matches = packMin == activeMin && packMax == activeMax && packLogical == active.logicalHeight(); File override = overrideFile(server, irisGenerator.dimensionKey()); - IrisModdedCommands.ok(source, dimensionId + ": type=" + typeKey - + " active=" + activeMin + ".." + activeMax + " logical=" + active.logicalHeight() - + " | pack '" + dimension.getLoadKey() + "' wants " + packMin + ".." + packMax + " logical=" + packLogical - + " | " + (matches ? "MATCH" : "MISMATCH") - + (override.isFile() ? " (world datapack override installed)" : "")); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_WANTS_LOGICAL, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("typeKey", typeKey), MessageArgument.untrusted("activeMin", activeMin), MessageArgument.untrusted("activeMax", activeMax), MessageArgument.untrusted("value", active.logicalHeight()), MessageArgument.untrusted("value2", dimension.getLoadKey()), MessageArgument.untrusted("packMin", packMin), MessageArgument.untrusted("packMax", packMax), MessageArgument.untrusted("packLogical", packLogical), MessageArgument.trusted("value3", IrisLanguage.plain(matches ? RuntimeUiMessages.STATUS_MATCH : RuntimeUiMessages.STATUS_MISMATCH)), MessageArgument.trusted("value4", override.isFile() ? IrisLanguage.plain(RuntimeUiMessages.DATAPACK_OVERRIDE_SUFFIX) : ""))); if (!matches) { mismatches++; - IrisModdedCommands.fail(source, " WARNING: the active dimension type does not match the pack. Iris will refuse to start this world engine instead of clipping terrain. Run /iris world enable for new worlds, or /iris datapack install for already-loaded Iris dimensions, then restart."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_WARNING_ACTIVE_DIMENSION_TYPE_DOES_NOT_MATCH_PACK_IRIS_WILL)); } } if (irisLevels == 0) { - IrisModdedCommands.fail(source, "No Iris dimensions are loaded."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_ARE_LOADED)); return 0; } if (mismatches == 0) { - IrisModdedCommands.ok(source, "All " + irisLevels + " Iris dimension(s) match their pack height ranges."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_ALL_IRIS_DIMENSION_S_MATCH_THEIR_PACK_HEIGHT_RANGES, MessageArgument.untrusted("irisLevels", irisLevels))); } return 1; } @@ -157,7 +156,7 @@ public final class ModdedDatapackCommands { } Engine engine = IrisModdedCommands.engineFor(level); if (engine == null || engine.getDimension() == null) { - IrisModdedCommands.fail(source, level.dimension().identifier() + ": engine not started; cannot derive its dimension type yet."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_ENGINE_NOT_STARTED_CANNOT_DERIVE_ITS_DIMENSION_TYPE_YET, MessageArgument.untrusted("value", level.dimension().identifier()))); continue; } IrisDimension dimension = engine.getDimension(); @@ -166,7 +165,7 @@ public final class ModdedDatapackCommands { json = dimension.getDimensionType().toJson(DataVersion.getLatest().get()); } catch (Throwable e) { LOGGER.error("Iris dimension type generation failed for {}", dimension.getLoadKey(), e); - IrisModdedCommands.fail(source, level.dimension().identifier() + ": dimension type generation failed: " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_DIMENSION_TYPE_GENERATION_FAILED, MessageArgument.untrusted("value", level.dimension().identifier()), MessageArgument.untrusted("value2", String.valueOf(e.getMessage())))); continue; } File output = overrideFile(server, irisGenerator.dimensionKey()); @@ -176,11 +175,11 @@ public final class ModdedDatapackCommands { written.add(output.getPath()); } catch (IOException e) { LOGGER.error("Iris dimension type write failed for {}", output, e); - IrisModdedCommands.fail(source, "Failed to write " + output + ": " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_FAILED_WRITE, MessageArgument.untrusted("output", output), MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); } } if (written.isEmpty()) { - IrisModdedCommands.fail(source, "No Iris dimensions with running engines found; nothing was installed."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_WITH_RUNNING_ENGINES_FOUND_NOTHING_WAS_INSTALLED)); return 0; } @@ -200,14 +199,14 @@ public final class ModdedDatapackCommands { written.add(mcmeta.getPath()); } catch (IOException e) { LOGGER.error("Iris pack.mcmeta write failed for {}", mcmeta, e); - IrisModdedCommands.fail(source, "Failed to write " + mcmeta + ": " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_FAILED_WRITE_2, MessageArgument.untrusted("mcmeta", mcmeta), MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); return 0; } for (String path : written) { - IrisModdedCommands.ok(source, "Wrote " + path); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_WROTE, MessageArgument.untrusted("path", path))); } - IrisModdedCommands.ok(source, "World datapack '" + WORLD_PACK_NAME + "' dimension type overrides installed. Restart the server for the dimension types to apply."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_WORLD_DATAPACK_DIMENSION_TYPE_OVERRIDES_INSTALLED_RESTART_SERVER_DIMENSION_TYPES, MessageArgument.untrusted("WORLDPACKNAME", WORLD_PACK_NAME))); return 1; } @@ -239,12 +238,12 @@ public final class ModdedDatapackCommands { } } - IrisModdedCommands.ok(source, "Configured datapack imports: " + configured.size()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_CONFIGURED_DATAPACK_IMPORTS, MessageArgument.untrusted("value", configured.size()))); for (String url : configured) { - IrisModdedCommands.ok(source, " - " + url); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_MESSAGE, MessageArgument.untrusted("url", url))); } if (!configured.isEmpty()) { - IrisModdedCommands.ok(source, "Modrinth ingest is Bukkit-only; install these manually into world/datapacks if needed."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_MODRINTH_INGEST_IS_BUKKIT_ONLY_INSTALL_THESE_MANUALLY_INTO_WORLD)); } File datapacks = worldDatapacksFolder(server); @@ -257,9 +256,9 @@ public final class ModdedDatapackCommands { } } } - IrisModdedCommands.ok(source, "Installed world datapacks: " + names.size()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_INSTALLED_WORLD_DATAPACKS, MessageArgument.untrusted("value", names.size()))); for (String name : names) { - IrisModdedCommands.ok(source, " - " + name); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DATAPACK_COMMANDS_MESSAGE_2, MessageArgument.untrusted("name", name))); } return 1; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java index 86ee99137..d0ec4e459 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDeveloperCommands.java @@ -33,6 +33,9 @@ import java.util.Collections; import java.util.Enumeration; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; final class ModdedDeveloperCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -53,7 +56,7 @@ final class ModdedDeveloperCommands { private static int sentry(CommandSourceStack source) { IrisPlatforms.get().reportError(new Exception("This is an Iris Sentry test exception")); - ModdedCommandFeedback.ok(source, "Dispatched a test exception to the Iris error reporter (Sentry if enabled)."); + ModdedCommandFeedback.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DEVELOPER_COMMANDS_DISPATCHED_TEST_EXCEPTION_IRIS_ERROR_REPORTER_SENTRY_IF_ENABLED)); return 1; } @@ -63,13 +66,13 @@ final class ModdedDeveloperCommands { for (NetworkInterface networkInterface : Collections.list(interfaces)) { ModdedCommandFeedback.ok(source, networkInterface.getDisplayName()); for (InetAddress address : Collections.list(networkInterface.getInetAddresses())) { - ModdedCommandFeedback.ok(source, " " + address.getHostAddress()); + ModdedCommandFeedback.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DEVELOPER_COMMANDS_MESSAGE, MessageArgument.untrusted("value", address.getHostAddress()))); } } return 1; } catch (SocketException error) { LOGGER.error("Iris developer network dump failed", error); - ModdedCommandFeedback.fail(source, "Network scan failed: " + error.getClass().getSimpleName()); + ModdedCommandFeedback.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_DEVELOPER_COMMANDS_NETWORK_SCAN_FAILED, MessageArgument.untrusted("value", error.getClass().getSimpleName()))); return 0; } } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java index cd3852807..8b7ec3de6 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedDustRevealer.java @@ -18,10 +18,13 @@ package art.arcane.iris.modded.command; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.IrisBiome; import art.arcane.iris.engine.object.IrisRegion; import art.arcane.iris.modded.ModdedBlockState; +import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.network.chat.Component; @@ -50,7 +53,7 @@ public final class ModdedDustRevealer { public static void reveal(ServerPlayer player, ServerLevel level, BlockPos pos) { Engine engine = IrisModdedCommands.engineFor(level); if (engine == null) { - player.sendSystemMessage(Component.literal("This dimension is not generated by Iris.")); + player.sendSystemMessage(Component.literal(IrisLanguage.plain(RuntimeUiMessages.DUST_IRIS_WORLD_REQUIRED))); return; } describe(player, level, engine, pos); @@ -60,7 +63,10 @@ public final class ModdedDustRevealer { if (key == null) { return; } - player.sendSystemMessage(Component.literal("Found object " + key)); + player.sendSystemMessage(Component.literal(IrisLanguage.plain( + RuntimeUiMessages.DUST_FOUND_OBJECT, + MessageArgument.untrusted("object", key) + ))); MinecraftServer server = level.getServer(); BlockPos origin = pos.immutable(); Thread thread = new Thread(() -> { @@ -71,8 +77,11 @@ public final class ModdedDustRevealer { hit.getX() + 0.5D, hit.getY() + 0.5D, hit.getZ() + 0.5D, 3, 0.25D, 0.25D, 0.25D, 0.0D); } - player.sendSystemMessage(Component.literal("Revealed " + hits.size() + " block(s) of " + key - + (hits.size() >= MAX_HITS ? " (capped)" : ""))); + player.sendSystemMessage(Component.literal(IrisLanguage.plain( + hits.size() >= MAX_HITS ? RuntimeUiMessages.DUST_REVEALED_CAPPED : RuntimeUiMessages.DUST_REVEALED, + MessageArgument.trusted("count", hits.size()), + MessageArgument.untrusted("object", key) + ))); }); }, "Iris Dust Revealer"); thread.setDaemon(true); @@ -133,31 +142,72 @@ public final class ModdedDustRevealer { IrisRegion region = safe(() -> engine.getRegion(x, z)); List lines = new ArrayList<>(); - lines.add("--- Iris Dust @ " + x + ", " + y + ", " + z + " ---"); - lines.add("Block: " + ModdedBlockState.serialize(level.getBlockState(pos))); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_HEADER, + MessageArgument.trusted("x", x), + MessageArgument.trusted("y", y), + MessageArgument.trusted("z", z) + )); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_BLOCK, + MessageArgument.untrusted("block", ModdedBlockState.serialize(level.getBlockState(pos))) + )); if (offset > 0) { - lines.add("Position: +" + offset + " ABOVE surface (surface Y=" + surfaceY + ")"); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_POSITION_ABOVE, + MessageArgument.trusted("offset", offset), + MessageArgument.trusted("surfaceY", surfaceY) + )); } else if (offset < 0) { - lines.add("Position: " + (-offset) + " below surface (surface Y=" + surfaceY + ")"); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_POSITION_BELOW, + MessageArgument.trusted("offset", -offset), + MessageArgument.trusted("surfaceY", surfaceY) + )); } else { - lines.add("Position: at surface (Y=" + surfaceY + ")"); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_POSITION_AT, + MessageArgument.trusted("surfaceY", surfaceY) + )); } - lines.add("Object @block: " + (objectKey == null ? "none" : objectKey)); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_OBJECT_AT_BLOCK, + MessageArgument.untrusted( + "object", + objectKey == null ? IrisLanguage.plain(RuntimeUiMessages.DUST_NONE) : objectKey + ) + )); if (surfaceBiome != null) { - lines.add("Surface biome: " + surfaceBiome.getLoadKey()); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_SURFACE_BIOME, + MessageArgument.untrusted("biome", surfaceBiome.getLoadKey()) + )); } if (biomeHere != null && (surfaceBiome == null || !biomeHere.getLoadKey().equals(surfaceBiome.getLoadKey()))) { - lines.add("Biome @Y: " + biomeHere.getLoadKey()); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_BIOME_AT_Y, + MessageArgument.untrusted("biome", biomeHere.getLoadKey()) + )); } if (caveBiome != null && (surfaceBiome == null || !caveBiome.getLoadKey().equals(surfaceBiome.getLoadKey()))) { - lines.add("Cave/Mantle biome: " + caveBiome.getLoadKey()); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_CAVE_BIOME, + MessageArgument.untrusted("biome", caveBiome.getLoadKey()) + )); } if (region != null) { - lines.add("Region: " + region.getLoadKey() + " (" + region.getName() + ")"); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_REGION, + MessageArgument.untrusted("region", region.getLoadKey()), + MessageArgument.untrusted("name", region.getName()) + )); } Set objects = safe(() -> engine.getObjectsAt(x >> 4, z >> 4)); if (objects != null && !objects.isEmpty()) { - lines.add("Objects in chunk: " + objects); + lines.add(IrisLanguage.plain( + RuntimeUiMessages.DUST_OBJECTS_IN_CHUNK, + MessageArgument.untrusted("objects", objects) + )); } for (String line : lines) { player.sendSystemMessage(Component.literal(line)); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java index be30f386e..6b439b2ef 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedGoldenHash.java @@ -36,6 +36,10 @@ import java.io.File; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedGoldenHash { public enum Mode { AUTO, @@ -80,13 +84,18 @@ public final class ModdedGoldenHash { public static void start(CommandSourceStack source, ServerLevel level, Engine engine, int radius, int threads, Mode mode) { if (!ACTIVE.compareAndSet(false, true)) { - IrisModdedCommands.fail(source, "A goldenhash scan is already running."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_GOLDEN_HASH_GOLDENHASH_SCAN_IS_ALREADY_RUNNING)); return; } ModdedGoldenHash scan = new ModdedGoldenHash(source, level, engine, radius, threads, mode); int boundedRadius = Math.max(0, radius); int chunks = (boundedRadius * 2 + 1) * (boundedRadius * 2 + 1); - scan.ok("GoldenHash started: " + chunks + " chunk(s) around 0,0 in buffers (world untouched), threads=" + Math.max(1, threads) + " mode=" + mode); + scan.ok(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_STARTED, + MessageArgument.trusted("chunks", chunks), + MessageArgument.trusted("threads", Math.max(1, threads)), + MessageArgument.untrusted("mode", mode) + )); LOGGER.info("goldenhash start: dim={} seed={} radius={} threads={} mode={} file={}", engine.getDimension().getLoadKey(), engine.getSeedManager().getSeed(), boundedRadius, Math.max(1, threads), mode, scan.hashEngine.getGoldenFile().getName()); Thread thread = new Thread(() -> { @@ -161,14 +170,25 @@ public final class ModdedGoldenHash { int doneCount = hashed.incrementAndGet(); int stride = total <= 64 ? 1 : 32; if (doneCount % stride == 0 || doneCount == total) { - ModdedGoldenHash.this.ok("[" + doneCount + "/" + total + "] chunk " + chunkX + "," + chunkZ + " hashed"); + ModdedGoldenHash.this.ok(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_CHUNK_HASHED, + MessageArgument.trusted("done", doneCount), + MessageArgument.trusted("total", total), + MessageArgument.trusted("x", chunkX), + MessageArgument.trusted("z", chunkZ) + )); } } @Override public void chunkFailed(int chunkX, int chunkZ, Throwable error) { LOGGER.error("goldenhash chunk {},{} failed", chunkX, chunkZ, error); - ModdedGoldenHash.this.fail("Chunk " + chunkX + "," + chunkZ + " FAILED: " + error.getClass().getSimpleName()); + ModdedGoldenHash.this.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_CHUNK_FAILED, + MessageArgument.trusted("x", chunkX), + MessageArgument.trusted("z", chunkZ), + MessageArgument.untrusted("type", error.getClass().getSimpleName()) + )); } }; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java index 831bd1651..ae1583e13 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedObjectCommands.java @@ -69,6 +69,10 @@ import java.util.Map; import java.util.UUID; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedObjectCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -218,55 +222,55 @@ public final class ModdedObjectCommands { public static int giveWand(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players. (the wand is a physical item)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_WAND_IS)); return 0; } if (!player.getInventory().add(ModdedWandService.createWand())) { - IrisModdedCommands.fail(source, "Your inventory is full."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL)); return 0; } - IrisModdedCommands.ok(source, "Poof! Good luck building! (left click = corner 1, right click = corner 2)"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_POOF_GOOD_LUCK_BUILDING_LEFT_CLICK_CORNER_1_RIGHT_CLICK)); return 1; } private static int giveDust(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players. (the dust is a physical item)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_DUST_IS)); return 0; } if (!player.getInventory().add(ModdedWandService.createDust())) { - IrisModdedCommands.fail(source, "Your inventory is full."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL_2)); return 0; } - IrisModdedCommands.ok(source, "Right click a block to reveal the object it belongs to."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_RIGHT_CLICK_BLOCK_REVEAL_OBJECT_IT_BELONGS)); return 1; } private static int save(CommandSourceStack source, String nameRaw, boolean overwrite) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players. (saving captures your wand selection)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAVING_CAPTURES)); return 0; } ServerLevel level = player.level(); Engine engine = IrisModdedCommands.engineFor(level); if (engine == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris; objects save into the dimension's pack."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_OBJECTS_SAVE_INTO)); return 0; } if (!ModdedWandService.isHoldingWand(player)) { - IrisModdedCommands.fail(source, "Hold your Iris wand. (/iris wand)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND)); return 0; } ModdedWandService.Selection selection = ModdedWandService.selection(player); if (selection == null) { - IrisModdedCommands.fail(source, "No area selected. Left/right click blocks with the wand first."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_LEFT_RIGHT_CLICK_BLOCKS_WITH_WAND_FIRST)); return 0; } String name = nameRaw.trim().replace('\\', '/'); if (name.isEmpty() || name.contains("..")) { - IrisModdedCommands.fail(source, "Invalid object name: " + nameRaw); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_INVALID_OBJECT_NAME, MessageArgument.untrusted("nameRaw", nameRaw))); return 0; } BlockPos min = selection.min(); @@ -276,12 +280,12 @@ public final class ModdedObjectCommands { int d = max.getZ() - min.getZ() + 1; long volume = (long) w * h * d; if (volume > MAX_SAVE_VOLUME) { - IrisModdedCommands.fail(source, "Selection too large: " + volume + " blocks (max " + MAX_SAVE_VOLUME + ")."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_BLOCKS_MAX, MessageArgument.untrusted("volume", volume), MessageArgument.untrusted("MAXSAVEVOLUME", MAX_SAVE_VOLUME))); return 0; } File file = new File(engine.getData().getDataFolder(), "objects" + File.separator + name.replace('/', File.separatorChar) + ".iob"); if (file.exists() && !overwrite) { - IrisModdedCommands.fail(source, "File already exists. Use /iris object save overwrite " + name); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_FILE_ALREADY_EXISTS_USE_IRIS_OBJECT_SAVE_OVERWRITE, MessageArgument.untrusted("name", name))); return 0; } int[] tilesSkipped = {0}; @@ -295,7 +299,7 @@ public final class ModdedObjectCommands { object.write(file); } catch (IOException e) { LOGGER.error("Iris object save failed for {}", file.getAbsolutePath(), e); - IrisModdedCommands.fail(source, "Failed to save object: " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT, MessageArgument.untrusted("value", String.valueOf(e.getMessage())))); return 0; } StringBuilder tileNote = new StringBuilder(); @@ -308,8 +312,7 @@ public final class ModdedObjectCommands { } else if (tilesSkipped[0] > 0) { tileNote.append(" (").append(tilesSkipped[0]).append(" tile state(s) could not be captured)"); } - IrisModdedCommands.ok(source, "Saved " + engine.getData().getDataFolder().getName() + "/objects/" + name + ".iob: " - + w + "x" + h + "x" + d + ", " + object.getBlocks().size() + " block(s)" + tileNote); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_SAVED_OBJECTS_IOB_X_X_BLOCK_S, MessageArgument.untrusted("value", engine.getData().getDataFolder().getName()), MessageArgument.untrusted("name", name), MessageArgument.untrusted("w", w), MessageArgument.untrusted("h", h), MessageArgument.untrusted("d", d), MessageArgument.untrusted("value2", object.getBlocks().size()), MessageArgument.untrusted("tileNote", tileNote))); LOGGER.info("Iris object save: {} {}x{}x{} blocks={} tilesSaved={} tilesSkipped={} -> {}", name, w, h, d, object.getBlocks().size(), tilesSaved[0], tilesSkipped[0], file.getAbsolutePath()); return 1; } @@ -371,7 +374,7 @@ public final class ModdedObjectCommands { LOGGER.error("Iris object load failed for {}", key, e); } if (object == null || object.getBlocks().size() == 0) { - IrisModdedCommands.fail(source, "Unknown or empty object: " + key); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_UNKNOWN_EMPTY_OBJECT, MessageArgument.untrusted("key", key))); return 0; } @@ -379,12 +382,12 @@ public final class ModdedObjectCommands { BlockPos target = at; if (target == null) { if (player == null) { - IrisModdedCommands.fail(source, "Console must specify coordinates: /iris object paste at [rotate ] " + key); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_CONSOLE_MUST_SPECIFY_COORDINATES_IRIS_OBJECT_PASTE_AT_X_Y, MessageArgument.untrusted("key", key))); return 0; } HitResult hit = player.pick(TARGET_RANGE, 1.0F, false); if (hit.getType() != HitResult.Type.BLOCK || !(hit instanceof BlockHitResult blockHit)) { - IrisModdedCommands.fail(source, "You are not looking at a block within " + (int) TARGET_RANGE + " blocks."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK_WITHIN_BLOCKS, MessageArgument.untrusted("value", (int) TARGET_RANGE))); return 0; } target = blockHit.getBlockPos().above(); @@ -398,14 +401,13 @@ public final class ModdedObjectCommands { } catch (Throwable e) { LOGGER.error("Iris paste failed for {}", key, e); ModdedObjectUndo.record(player == null ? ModdedObjectUndo.CONSOLE : player.getUUID(), level, placer.undoSnapshot()); - IrisModdedCommands.fail(source, "Paste failed: " + e.getClass().getSimpleName() + " (partial changes recorded for undo)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_PASTE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); return 0; } UUID owner = player == null ? ModdedObjectUndo.CONSOLE : player.getUUID(); ModdedObjectUndo.record(owner, level, placer.undoSnapshot()); String tileNote = tileNote(placer); - IrisModdedCommands.ok(source, "Placed " + key + " at " + target.getX() + " " + target.getY() + " " + target.getZ() - + " rot=" + rotation + " (" + placer.writes() + " write(s), " + placer.nonAirWrites() + " non-air" + tileNote + ")"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_PLACED_AT_ROT_WRITE_S_NON_AIR, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", target.getX()), MessageArgument.untrusted("value2", target.getY()), MessageArgument.untrusted("value3", target.getZ()), MessageArgument.untrusted("rotation", rotation), MessageArgument.untrusted("value4", placer.writes()), MessageArgument.untrusted("value5", placer.nonAirWrites()), MessageArgument.untrusted("tileNote", tileNote))); LOGGER.info("Iris paste: {} at {},{},{} rot={} writes={} nonAir={} tilesRestored={} tilesSkipped={}", key, target.getX(), target.getY(), target.getZ(), rotation, placer.writes(), placer.nonAirWrites(), placer.restoredTiles(), placer.skippedTiles()); return placer.writes() > 0 ? 1 : 0; @@ -414,16 +416,16 @@ public final class ModdedObjectCommands { private static int resize(CommandSourceStack source, int amount, ResizeOp op) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS)); return 0; } if (!ModdedWandService.isHoldingWand(player)) { - IrisModdedCommands.fail(source, "Hold your Iris wand. (/iris wand)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND_2)); return 0; } ModdedWandService.Selection selection = ModdedWandService.selection(player); if (selection == null) { - IrisModdedCommands.fail(source, "No area selected."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED)); return 0; } Direction direction = Direction.getApproximateNearest(player.getLookAngle()); @@ -458,26 +460,25 @@ public final class ModdedObjectCommands { BlockPos first = new BlockPos(mins[0], mins[1], mins[2]); BlockPos second = new BlockPos(maxs[0], maxs[1], maxs[2]); ModdedWandService.setSelection(player, first, second); - IrisModdedCommands.ok(source, op.name().toLowerCase(Locale.ROOT) + " " + amount + " " + direction.getName() - + ": " + describe(first, second)); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_MESSAGE, MessageArgument.untrusted("value", op.name().toLowerCase(Locale.ROOT)), MessageArgument.untrusted("amount", amount), MessageArgument.untrusted("value2", direction.getName()), MessageArgument.untrusted("value3", describe(first, second)))); return 1; } private static int position(CommandSourceStack source, boolean first, boolean look) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2)); return 0; } if (!ModdedWandService.isHoldingWand(player)) { - IrisModdedCommands.fail(source, "Ready your wand. (/iris wand)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_READY_YOUR_WAND_IRIS_WAND)); return 0; } BlockPos pos; if (look) { HitResult hit = player.pick(TARGET_RANGE, 1.0F, false); if (hit.getType() != HitResult.Type.BLOCK || !(hit instanceof BlockHitResult blockHit)) { - IrisModdedCommands.fail(source, "You are not looking at a block."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK)); return 0; } pos = blockHit.getBlockPos(); @@ -492,23 +493,23 @@ public final class ModdedObjectCommands { } else { ModdedWandService.setSelection(player, fallback, pos); } - IrisModdedCommands.ok(source, "Position " + (first ? 1 : 2) + " set to " + pos.getX() + " " + pos.getY() + " " + pos.getZ()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_POSITION_SET, MessageArgument.untrusted("value", (first ? 1 : 2)), MessageArgument.untrusted("value2", pos.getX()), MessageArgument.untrusted("value3", pos.getY()), MessageArgument.untrusted("value4", pos.getZ()))); return 1; } private static int autoSelect(CommandSourceStack source, boolean down) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3)); return 0; } if (!ModdedWandService.isHoldingWand(player)) { - IrisModdedCommands.fail(source, "Hold your wand!"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_HOLD_YOUR_WAND)); return 0; } ModdedWandService.Selection selection = ModdedWandService.selection(player); if (selection == null) { - IrisModdedCommands.fail(source, "No area selected."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_2)); return 0; } ServerLevel level = player.level(); @@ -516,7 +517,7 @@ public final class ModdedObjectCommands { BlockPos max = selection.max(); long volume = (long) (max.getX() - min.getX() + 1) * (max.getY() - min.getY() + 1) * (max.getZ() - min.getZ() + 1); if (volume > MAX_AUTOSELECT_VOLUME) { - IrisModdedCommands.fail(source, "Selection too large for auto-select: " + volume + " blocks (max " + MAX_AUTOSELECT_VOLUME + ")."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_AUTO_SELECT_BLOCKS_MAX, MessageArgument.untrusted("volume", volume), MessageArgument.untrusted("MAXAUTOSELECTVOLUME", MAX_AUTOSELECT_VOLUME))); return 0; } int levelMinY = level.getMinY(); @@ -561,7 +562,7 @@ public final class ModdedObjectCommands { BlockPos first = new BlockPos(minX, bottomY, minZ); BlockPos second = new BlockPos(maxX, topMaxY, maxZ); ModdedWandService.setSelection(player, first, second); - IrisModdedCommands.ok(source, "Auto-select complete: " + describe(first, second)); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_AUTO_SELECT_COMPLETE, MessageArgument.untrusted("value", describe(first, second)))); return 1; } @@ -590,11 +591,11 @@ public final class ModdedObjectCommands { LOGGER.error("Iris object load failed for {}", key, e); } if (object == null) { - IrisModdedCommands.fail(source, "Unknown object: " + key); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT, MessageArgument.untrusted("key", key))); return 0; } - IrisModdedCommands.ok(source, "Object Size: " + object.getW() + " * " + object.getH() + " * " + object.getD()); - IrisModdedCommands.ok(source, "Blocks Used: " + object.getBlocks().size()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_OBJECT_SIZE, MessageArgument.untrusted("value", object.getW()), MessageArgument.untrusted("value2", object.getH()), MessageArgument.untrusted("value3", object.getD()))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_BLOCKS_USED, MessageArgument.untrusted("value", object.getBlocks().size()))); Map counts = new HashMap<>(); Iterator values = object.getBlocks().values(); while (values.hasNext()) { @@ -603,15 +604,15 @@ public final class ModdedObjectCommands { } List> sorted = new ArrayList<>(counts.entrySet()); sorted.sort(Comparator.comparingInt((Map.Entry entry) -> entry.getValue()).reversed()); - IrisModdedCommands.ok(source, "== Blocks in object =="); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_BLOCKS_OBJECT)); int shown = 0; for (Map.Entry entry : sorted) { - IrisModdedCommands.ok(source, " - " + entry.getKey() + " * " + entry.getValue()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_MESSAGE_2, MessageArgument.untrusted("value", entry.getKey()), MessageArgument.untrusted("value2", entry.getValue()))); shown++; if (shown >= 10) { int remaining = sorted.size() - shown; if (remaining > 0) { - IrisModdedCommands.ok(source, " + " + remaining + " other block state(s)"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_OTHER_BLOCK_STATE_S, MessageArgument.untrusted("remaining", remaining))); } break; } @@ -630,22 +631,22 @@ public final class ModdedObjectCommands { LOGGER.error("Iris object load failed for {}", key, e); } if (object == null) { - IrisModdedCommands.fail(source, "Unknown object: " + key); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT_2, MessageArgument.untrusted("key", key))); return 0; } - IrisModdedCommands.ok(source, "Current Object Size: " + object.getW() + " * " + object.getH() + " * " + object.getD()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_CURRENT_OBJECT_SIZE, MessageArgument.untrusted("value", object.getW()), MessageArgument.untrusted("value2", object.getH()), MessageArgument.untrusted("value3", object.getD()))); object.shrinkwrap(); - IrisModdedCommands.ok(source, "New Object Size: " + object.getW() + " * " + object.getH() + " * " + object.getD()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NEW_OBJECT_SIZE, MessageArgument.untrusted("value", object.getW()), MessageArgument.untrusted("value2", object.getH()), MessageArgument.untrusted("value3", object.getD()))); File file = object.getLoadFile(); if (file == null) { - IrisModdedCommands.fail(source, "Object has no load file; cannot persist the shrink."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_OBJECT_HAS_NO_LOAD_FILE_CANNOT_PERSIST_SHRINK)); return 0; } try { object.write(file); } catch (IOException e) { LOGGER.error("Iris object shrink save failed for {}", file.getAbsolutePath(), e); - IrisModdedCommands.fail(source, "Failed to save object " + file.getName() + ": " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT_2, MessageArgument.untrusted("value", file.getName()), MessageArgument.untrusted("value2", String.valueOf(e.getMessage())))); return 0; } return 1; @@ -667,7 +668,7 @@ public final class ModdedObjectCommands { try { reach = Integer.parseInt(lower.substring("reach=".length())); } catch (NumberFormatException e) { - IrisModdedCommands.fail(source, "Invalid reach: " + token); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_INVALID_REACH, MessageArgument.untrusted("token", token))); return 0; } continue; @@ -680,16 +681,20 @@ public final class ModdedObjectCommands { String target = targetBuilder.toString(); List targets = TreePlausibilizeBatch.resolve(target, data); if (targets.isEmpty()) { - IrisModdedCommands.fail(source, "No objects matched: " + target); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NO_OBJECTS_MATCHED, MessageArgument.untrusted("target", target))); return 0; } - IrisModdedCommands.ok(source, "Plausibilize [reach=" + reach + (dryRun ? ", DRY" : "") - + "] queued " + targets.size() + " object(s)"); + IrisModdedCommands.ok(source, IrisLanguage.plain( + ModdedCommandMessages.MODDED_OBJECT_COMMANDS_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S, + MessageArgument.trusted("reach", reach), + MessageArgument.trusted("value", dryRun ? IrisLanguage.plain(RuntimeUiMessages.TREE_DRY_SUFFIX) : ""), + MessageArgument.trusted("value2", targets.size()) + )); boolean dry = dryRun; int reachFinal = reach; MinecraftServer server = source.getServer(); - J.a(() -> TreePlausibilizeBatch.run(targets, dry, reachFinal, data, (String line) -> - server.execute(() -> IrisModdedCommands.ok(source, line)))); + J.a(() -> TreePlausibilizeBatch.run(targets, dry, reachFinal, data, (TreePlausibilizeBatch.Output output) -> + server.execute(() -> IrisModdedCommands.ok(source, output.text())))); return 1; } @@ -698,11 +703,11 @@ public final class ModdedObjectCommands { UUID owner = player == null ? ModdedObjectUndo.CONSOLE : player.getUUID(); int available = ModdedObjectUndo.size(owner); if (available == 0) { - IrisModdedCommands.fail(source, "Nothing to undo."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_NOTHING_UNDO)); return 0; } int reverted = ModdedObjectUndo.undo(owner, Math.min(amount, available)); - IrisModdedCommands.ok(source, "Reverted " + reverted + " paste(s)!"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_OBJECT_COMMANDS_REVERTED_PASTE_S, MessageArgument.untrusted("reverted", reverted))); return 1; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java index 420c47866..9762865cb 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPackCommands.java @@ -39,6 +39,9 @@ import java.util.List; import java.util.Map; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedPackCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -101,7 +104,7 @@ public final class ModdedPackCommands { private static int validate(CommandSourceStack source, String pack) { File packsRoot = packsRoot(); if (!packsRoot.isDirectory()) { - IrisModdedCommands.fail(source, "Packs folder not found: " + packsRoot.getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACKS_FOLDER_NOT_FOUND, MessageArgument.untrusted("value", packsRoot.getAbsolutePath()))); return 0; } @@ -109,7 +112,7 @@ public final class ModdedPackCommands { if (pack == null || pack.isBlank()) { File[] dirs = packsRoot.listFiles(File::isDirectory); if (dirs == null || dirs.length == 0) { - IrisModdedCommands.fail(source, "No packs to validate under " + packsRoot.getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NO_PACKS_VALIDATE_UNDER, MessageArgument.untrusted("value", packsRoot.getAbsolutePath()))); return 0; } for (File dir : dirs) { @@ -118,14 +121,14 @@ public final class ModdedPackCommands { } else { File target = PackDirectoryResolver.resolveExisting(packsRoot, pack); if (target == null) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' not found under " + packsRoot.getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", packsRoot.getAbsolutePath()))); return 0; } targets.add(target); } MinecraftServer server = source.getServer(); - IrisModdedCommands.ok(source, "Validating " + targets.size() + " pack(s)..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_VALIDATING_PACK_S, MessageArgument.untrusted("value", targets.size()))); Thread thread = new Thread(() -> { int broken = 0; for (File target : targets) { @@ -138,12 +141,12 @@ public final class ModdedPackCommands { server.execute(() -> report(source, result)); } catch (Throwable e) { LOGGER.error("Iris pack validation failed for {}", target.getName(), e); - server.execute(() -> IrisModdedCommands.fail(source, "Validation of '" + target.getName() + "' failed: " + e.getMessage())); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_VALIDATION_FAILED, MessageArgument.untrusted("value", target.getName()), MessageArgument.untrusted("value2", String.valueOf(e.getMessage()))))); broken++; } } int brokenTotal = broken; - server.execute(() -> IrisModdedCommands.ok(source, "Validation complete. Broken packs: " + brokenTotal + "/" + targets.size())); + server.execute(() -> IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_VALIDATION_COMPLETE_BROKEN_PACKS, MessageArgument.untrusted("brokenTotal", brokenTotal), MessageArgument.untrusted("value", targets.size())))); }, "Iris Pack Validator"); thread.setDaemon(true); thread.start(); @@ -153,7 +156,7 @@ public final class ModdedPackCommands { private static int cleanup(CommandSourceStack source, String pack, boolean apply) { File packFolder = PackDirectoryResolver.resolveExisting(packsRoot(), pack); if (packFolder == null) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' not found under " + packsRoot().getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_2, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", packsRoot().getAbsolutePath()))); return 0; } MinecraftServer server = source.getServer(); @@ -174,7 +177,7 @@ public final class ModdedPackCommands { private static int restore(CommandSourceStack source, String pack, boolean apply) { File packFolder = PackDirectoryResolver.resolveExisting(packsRoot(), pack); if (packFolder == null) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' not found under " + packsRoot().getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_3, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", packsRoot().getAbsolutePath()))); return 0; } MinecraftServer server = source.getServer(); @@ -196,21 +199,19 @@ public final class ModdedPackCommands { if (pack == null || pack.isBlank()) { Map snapshot = PackValidationRegistry.snapshot(); if (snapshot.isEmpty()) { - IrisModdedCommands.fail(source, "No validation results recorded. Run /iris pack validate first."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST)); return 0; } for (Map.Entry entry : snapshot.entrySet()) { PackValidationResult result = entry.getValue(); String tag = result.isLoadable() ? "OK" : "BROKEN"; - IrisModdedCommands.ok(source, tag + " " + entry.getKey() - + " (blocking=" + result.getBlockingErrors().size() - + ", warnings=" + result.getWarnings().size() + ")"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_BLOCKING_WARNINGS, MessageArgument.untrusted("tag", tag), MessageArgument.untrusted("value", entry.getKey()), MessageArgument.untrusted("value2", result.getBlockingErrors().size()), MessageArgument.untrusted("value3", result.getWarnings().size()))); } return 1; } PackValidationResult result = PackValidationRegistry.get(pack); if (result == null) { - IrisModdedCommands.fail(source, "No validation result for '" + pack + "'. Run /iris pack validate " + pack + "."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack))); return 0; } report(source, result); @@ -219,20 +220,19 @@ public final class ModdedPackCommands { private static void report(CommandSourceStack source, PackValidationResult result) { if (result.isLoadable()) { - IrisModdedCommands.ok(source, "Pack '" + result.getPackName() + "' is loadable." - + " (warnings=" + result.getWarnings().size() + ")"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACK_IS_LOADABLE_WARNINGS, MessageArgument.untrusted("value", result.getPackName()), MessageArgument.untrusted("value2", result.getWarnings().size()))); } else { - IrisModdedCommands.fail(source, "Pack '" + result.getPackName() + "' is BROKEN:"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_PACK_IS_BROKEN, MessageArgument.untrusted("value", result.getPackName()))); for (String reason : result.getBlockingErrors()) { - IrisModdedCommands.fail(source, " - " + reason); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_MESSAGE, MessageArgument.untrusted("reason", reason))); } } int warningMax = Math.min(10, result.getWarnings().size()); for (int i = 0; i < warningMax; i++) { - IrisModdedCommands.ok(source, " ! " + result.getWarnings().get(i)); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_MESSAGE_2, MessageArgument.untrusted("value", result.getWarnings().get(i)))); } if (result.getWarnings().size() > warningMax) { - IrisModdedCommands.ok(source, " ... and " + (result.getWarnings().size() - warningMax) + " more warning(s)."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_MORE_WARNING_S, MessageArgument.untrusted("value", (result.getWarnings().size() - warningMax)))); } } @@ -242,13 +242,12 @@ public final class ModdedPackCommands { return; } if (!result.hasCandidates()) { - IrisModdedCommands.ok(source, "No cleanup candidates found for pack '" + pack + "'."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK, MessageArgument.untrusted("pack", pack))); return; } - IrisModdedCommands.ok(source, "Cleanup preview for pack '" + pack + "': " - + result.candidatePaths().size() + " candidate(s). No files were changed."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", result.candidatePaths().size()))); reportPaths(source, result.candidatePaths(), "candidate"); - IrisModdedCommands.ok(source, "Run /iris pack cleanup " + pack + " apply to quarantine after a fresh scan."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RUN_IRIS_PACK_CLEANUP_APPLY_QUARANTINE_AFTER_FRESH_SCAN, MessageArgument.untrusted("pack", pack))); } private static void reportCleanupApply(CommandSourceStack source, String pack, PackResourceCleanup.ApplyResult result) { @@ -258,11 +257,10 @@ public final class ModdedPackCommands { return; } if (!result.changed()) { - IrisModdedCommands.ok(source, "No cleanup candidates found for pack '" + pack + "'."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK_2, MessageArgument.untrusted("pack", pack))); return; } - IrisModdedCommands.ok(source, "Quarantined " + result.quarantinedPaths().size() - + " cleanup candidate(s) under " + result.quarantinePath() + "."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER, MessageArgument.untrusted("value", result.quarantinedPaths().size()), MessageArgument.untrusted("value2", result.quarantinePath()))); reportPaths(source, result.quarantinedPaths(), "quarantined"); } @@ -272,23 +270,22 @@ public final class ModdedPackCommands { return; } if (!result.hasFiles()) { - IrisModdedCommands.ok(source, "Nothing to restore for pack '" + pack + "'."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK, MessageArgument.untrusted("pack", pack))); return; } - IrisModdedCommands.ok(source, "Restore preview for " + result.dumpPath() + ": " - + result.filePaths().size() + " file(s). No files were changed."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED, MessageArgument.untrusted("value", result.dumpPath()), MessageArgument.untrusted("value2", result.filePaths().size()))); reportPaths(source, result.filePaths(), "file"); if (!result.conflicts().isEmpty()) { - IrisModdedCommands.fail(source, "Restore is blocked by " + result.conflicts().size() + " existing destination(s)."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S, MessageArgument.untrusted("value", result.conflicts().size()))); reportPaths(source, result.conflicts(), "conflict"); return; } - IrisModdedCommands.ok(source, "Run /iris pack restore " + pack + " apply to restore after a fresh conflict check."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RUN_IRIS_PACK_RESTORE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK, MessageArgument.untrusted("pack", pack))); } private static void reportRestoreApply(CommandSourceStack source, String pack, PackResourceCleanup.RestoreResult result) { if (!result.conflicts().isEmpty()) { - IrisModdedCommands.fail(source, "Restore refused because " + result.conflicts().size() + " destination(s) already exist."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST, MessageArgument.untrusted("value", result.conflicts().size()))); reportPaths(source, result.conflicts(), "conflict"); return; } @@ -297,21 +294,20 @@ public final class ModdedPackCommands { return; } if (!result.changed()) { - IrisModdedCommands.ok(source, "Nothing to restore for pack '" + pack + "'."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK_2, MessageArgument.untrusted("pack", pack))); return; } - IrisModdedCommands.ok(source, "Restored " + result.restoredPaths().size() - + " file(s) from " + result.dumpPath() + "."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_RESTORED_FILE_S_FROM, MessageArgument.untrusted("value", result.restoredPaths().size()), MessageArgument.untrusted("value2", result.dumpPath()))); reportPaths(source, result.restoredPaths(), "restored"); } private static void reportPaths(CommandSourceStack source, List paths, String label) { int max = Math.min(10, paths.size()); for (int i = 0; i < max; i++) { - IrisModdedCommands.ok(source, " - " + label + ": " + paths.get(i)); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_MESSAGE_3, MessageArgument.untrusted("label", label), MessageArgument.untrusted("value", paths.get(i)))); } if (paths.size() > max) { - IrisModdedCommands.ok(source, " ... and " + (paths.size() - max) + " more."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_PACK_COMMANDS_MORE, MessageArgument.untrusted("value", (paths.size() - max)))); } } } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java index c0ca26406..37d2399c6 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenBossBar.java @@ -1,13 +1,16 @@ package art.arcane.iris.modded.command; import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.protocol.IrisProtocolServer; import art.arcane.iris.core.protocol.IrisSession; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisProtocol; import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.volmlib.util.localization.TextKey; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerBossEvent; import net.minecraft.server.level.ServerPlayer; @@ -35,7 +38,12 @@ public final class ModdedPregenBossBar { return; } viewer = player.getUUID(); - bar = new ServerBossEvent(BAR_ID, Component.literal("Iris Pregen starting..."), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS); + bar = new ServerBossEvent( + BAR_ID, + Component.literal(IrisLanguage.plain(RuntimeUiMessages.PREGEN_STARTING)), + BossEvent.BossBarColor.GREEN, + BossEvent.BossBarOverlay.PROGRESS + ); bar.setProgress(0.0F); bar.addPlayer(player); sinceUpdate = UPDATE_INTERVAL_TICKS; @@ -73,22 +81,38 @@ public final class ModdedPregenBossBar { } private static Component nameFor(PregeneratorJob.PregenProgress progress) { - MutableComponent name = Component.empty(); - name.append(ModdedCommandFeedback.text("Iris Pregen ", ModdedCommandFeedback.DARK_GREEN)); - name.append(ModdedCommandFeedback.text(Form.f(progress.generated()) + "/" + Form.f(progress.totalChunks()), ModdedCommandFeedback.VALUE)); - name.append(ModdedCommandFeedback.text(" " + String.format("%.1f", progress.percent()) + "%", ModdedCommandFeedback.USAGE)); + TextKey message = progress.paused() + ? RuntimeUiMessages.PREGEN_BOSSBAR_PAUSED + : RuntimeUiMessages.PREGEN_BOSSBAR_RUNNING; if (progress.paused()) { - name.append(ModdedCommandFeedback.text(" PAUSED", ModdedCommandFeedback.REQUIRED)); - return name; + return ModdedCommandFeedback.text(IrisLanguage.plain( + message, + MessageArgument.trusted("generated", Form.f(progress.generated())), + MessageArgument.trusted("total", Form.f(progress.totalChunks())), + MessageArgument.trusted("percent", String.format("%.1f", progress.percent())) + ), ModdedCommandFeedback.DARK_GREEN); } - name.append(ModdedCommandFeedback.text(" " + Form.f((int) progress.chunksPerSecond()) + "/s", ModdedCommandFeedback.VALUE)); - if (progress.eta() > 0L) { - name.append(ModdedCommandFeedback.text(" ETA " + Form.duration(progress.eta(), 1), ModdedCommandFeedback.DARK_GREEN)); - } - if (progress.failed() > 0L) { - name.append(ModdedCommandFeedback.text(" failed " + Form.f(progress.failed()), ModdedCommandFeedback.REQUIRED)); - } - return name; + String eta = progress.eta() > 0L + ? IrisLanguage.plain( + RuntimeUiMessages.PREGEN_ETA_FRAGMENT, + MessageArgument.trusted("eta", Form.duration(progress.eta(), 1)) + ) + : ""; + String failed = progress.failed() > 0L + ? IrisLanguage.plain( + RuntimeUiMessages.PREGEN_FAILED_FRAGMENT, + MessageArgument.trusted("failed", Form.f(progress.failed())) + ) + : ""; + return ModdedCommandFeedback.text(IrisLanguage.plain( + message, + MessageArgument.trusted("generated", Form.f(progress.generated())), + MessageArgument.trusted("total", Form.f(progress.totalChunks())), + MessageArgument.trusted("percent", String.format("%.1f", progress.percent())), + MessageArgument.trusted("speed", Form.f((int) progress.chunksPerSecond())), + MessageArgument.trusted("eta", eta), + MessageArgument.trusted("failed", failed) + ), ModdedCommandFeedback.DARK_GREEN); } private static boolean hasClientPregenHud(ServerPlayer player) { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java index 6cda2ace4..44795c27e 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedPregenJob.java @@ -19,6 +19,8 @@ package art.arcane.iris.modded.command; import art.arcane.iris.core.gui.PregeneratorJob; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.pregenerator.PregenPerformanceProfile; import art.arcane.iris.core.pregenerator.PregenTask; import art.arcane.iris.core.pregenerator.PregeneratorMethod; @@ -27,6 +29,7 @@ import art.arcane.iris.core.pregenerator.methods.CachedPregenMethod; import art.arcane.iris.engine.framework.Engine; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.Position2; +import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.server.MinecraftServer; @@ -119,41 +122,66 @@ public final class ModdedPregenJob { } MutableComponent status = Component.empty(); - status.append(ModdedCommandFeedback.header("Iris Pregen")); + status.append(ModdedCommandFeedback.header(IrisLanguage.plain(RuntimeUiMessages.PREGEN_HEADER))); status.append(Component.literal("\n")); - status.append(ModdedCommandFeedback.text("Dimension ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(dimension, ModdedCommandFeedback.PARAMETER_ALT)); - status.append(ModdedCommandFeedback.text(" · Method ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(progress.method(), ModdedCommandFeedback.PARAMETER)); + status.append(ModdedCommandFeedback.text(IrisLanguage.plain( + RuntimeUiMessages.PREGEN_STATUS_CONTEXT, + MessageArgument.untrusted("dimension", dimension), + MessageArgument.untrusted("method", progress.method()) + ), ModdedCommandFeedback.DARK_GREEN)); status.append(Component.literal("\n")); status.append(ModdedCommandFeedback.progressBar(progress.percent(), 32)); - status.append(ModdedCommandFeedback.text(" " + String.format("%.1f", progress.percent()) + "%", ModdedCommandFeedback.USAGE)); + status.append(ModdedCommandFeedback.text(" " + IrisLanguage.plain( + RuntimeUiMessages.PREGEN_STATUS_PROGRESS, + MessageArgument.trusted("percent", String.format("%.1f", progress.percent())) + ), ModdedCommandFeedback.USAGE)); status.append(Component.literal("\n")); - status.append(ModdedCommandFeedback.text("Chunks ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(Form.f(progress.generated()) + "/" + Form.f(progress.totalChunks()), ModdedCommandFeedback.VALUE)); - status.append(ModdedCommandFeedback.text(" · Speed ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(Form.f((int) progress.chunksPerSecond()) + "/s", ModdedCommandFeedback.VALUE)); - if (progress.failed() > 0) { - status.append(ModdedCommandFeedback.text(" · Failed ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(Form.f(progress.failed()), ModdedCommandFeedback.REQUIRED)); - } + status.append(ModdedCommandFeedback.text(chunksStatus(progress), ModdedCommandFeedback.DARK_GREEN)); status.append(Component.literal("\n")); - status.append(ModdedCommandFeedback.text("ETA ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(Form.duration(progress.eta(), 2), ModdedCommandFeedback.VALUE)); - status.append(ModdedCommandFeedback.text(" · Elapsed ", ModdedCommandFeedback.DARK_GREEN)); - status.append(ModdedCommandFeedback.text(Form.duration(progress.elapsed(), 2), ModdedCommandFeedback.VALUE)); - if (progress.paused()) { - status.append(ModdedCommandFeedback.text(" · PAUSED", ModdedCommandFeedback.REQUIRED, true, false)); - } + status.append(ModdedCommandFeedback.text(IrisLanguage.plain( + progress.paused() + ? RuntimeUiMessages.PREGEN_STATUS_TIME_PAUSED + : RuntimeUiMessages.PREGEN_STATUS_TIME, + MessageArgument.trusted("eta", Form.duration(progress.eta(), 2)), + MessageArgument.trusted("elapsed", Form.duration(progress.elapsed(), 2)) + ), ModdedCommandFeedback.DARK_GREEN)); status.append(Component.literal("\n")); - status.append(ModdedCommandFeedback.button("Pause/Resume", "/iris pregen pause", "Toggle pregeneration pause state", true)); + status.append(ModdedCommandFeedback.button( + IrisLanguage.plain(RuntimeUiMessages.PREGEN_PAUSE_BUTTON), + "/iris pregen pause", + IrisLanguage.plain(RuntimeUiMessages.PREGEN_PAUSE_HOVER), + true + )); status.append(ModdedCommandFeedback.text(" ", ModdedCommandFeedback.OPTIONAL)); - status.append(ModdedCommandFeedback.button("Stop", "/iris pregen stop", "Finish the current region and stop pregeneration", true)); + status.append(ModdedCommandFeedback.button( + IrisLanguage.plain(RuntimeUiMessages.PREGEN_STOP_BUTTON), + "/iris pregen stop", + IrisLanguage.plain(RuntimeUiMessages.PREGEN_STOP_HOVER), + true + )); status.append(Component.literal("\n")); status.append(ModdedCommandFeedback.footer()); return status; } + private static String chunksStatus(PregeneratorJob.PregenProgress progress) { + if (progress.failed() > 0) { + return IrisLanguage.plain( + RuntimeUiMessages.PREGEN_STATUS_CHUNKS_FAILED, + MessageArgument.trusted("generated", Form.f(progress.generated())), + MessageArgument.trusted("total", Form.f(progress.totalChunks())), + MessageArgument.trusted("speed", Form.f((int) progress.chunksPerSecond())), + MessageArgument.trusted("failed", Form.f(progress.failed())) + ); + } + return IrisLanguage.plain( + RuntimeUiMessages.PREGEN_STATUS_CHUNKS, + MessageArgument.trusted("generated", Form.f(progress.generated())), + MessageArgument.trusted("total", Form.f(progress.totalChunks())), + MessageArgument.trusted("speed", Form.f((int) progress.chunksPerSecond())) + ); + } + private static ActivePregen matchingActive(String worldIdentity) { ActivePregen active = ACTIVE.get(); return active != null && active.targets(worldIdentity) ? active : null; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java index f0e2596c3..f26339ff7 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedRegen.java @@ -61,6 +61,8 @@ import java.util.concurrent.Semaphore; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; public final class ModdedRegen { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final int APPLY_AHEAD = 8; @@ -88,7 +90,7 @@ public final class ModdedRegen { public static void start(CommandSourceStack source, ServerLevel level, IrisModdedChunkGenerator generator, Engine engine, ServerPlayer player, int radius) { if (!ACTIVE.compareAndSet(false, true)) { - IrisModdedCommands.fail(source, "A regen is already running."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_REGEN_REGEN_IS_ALREADY_RUNNING)); return; } int centerX = player.blockPosition().getX() >> 4; diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java index 21bf75fb7..bc1ae0dcc 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStructureCommands.java @@ -48,6 +48,9 @@ import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedStructureCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -116,7 +119,7 @@ public final class ModdedStructureCommands { private static IrisData dataFor(CommandSourceStack source) { Engine engine = IrisModdedCommands.engineFor(source.getLevel()); if (engine == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris. Run this from an Iris dimension so the pack can be resolved."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_THIS_FROM)); return null; } return engine.getData(); @@ -128,7 +131,7 @@ public final class ModdedStructureCommands { return 0; } File file = StructureIndexService.write(data); - IrisModdedCommands.ok(source, "Wrote structure index: " + file.getPath()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_WROTE_STRUCTURE_INDEX, MessageArgument.untrusted("value", file.getPath()))); return 1; } @@ -140,14 +143,14 @@ public final class ModdedStructureCommands { String key = keyRaw.trim(); IrisStructure structure = data.load(IrisStructure.class, key, false); if (structure == null) { - IrisModdedCommands.fail(source, "No iris structure '" + key + "' in this pack"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK, MessageArgument.untrusted("key", key))); return 0; } StructureAssembler assembler = StructureAssembler.forData( data, structure, new IrisPosition(0, 64, 0)); KList pieces = assembler.assemble(new RNG(1234)); if (pieces == null || pieces.isEmpty()) { - IrisModdedCommands.fail(source, "Structure '" + key + "' assembled 0 pieces (check startPool '" + structure.getStartPool() + "')"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", structure.getStartPool()))); return 0; } int minX = Integer.MAX_VALUE; @@ -160,15 +163,14 @@ public final class ModdedStructureCommands { maxX = Math.max(maxX, piece.getMaxX()); maxZ = Math.max(maxZ, piece.getMaxZ()); } - IrisModdedCommands.ok(source, "Structure '" + key + "': " + pieces.size() + " pieces, footprint " - + (maxX - minX + 1) + "x" + (maxZ - minZ + 1) + " blocks (sample seed 1234)"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", pieces.size()), MessageArgument.untrusted("value2", (maxX - minX + 1)), MessageArgument.untrusted("value3", (maxZ - minZ + 1)))); return 1; } private static int place(CommandSourceStack source, String keyRaw) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players (the structure is assembled at your position)."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_STRUCTURE_IS)); return 0; } ServerLevel level = source.getLevel(); @@ -180,7 +182,7 @@ public final class ModdedStructureCommands { String key = keyRaw.trim(); IrisStructure structure = data.load(IrisStructure.class, key, false); if (structure == null) { - IrisModdedCommands.fail(source, "No iris structure '" + key + "' in this pack"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK_2, MessageArgument.untrusted("key", key))); return 0; } int originX = player.blockPosition().getX(); @@ -191,7 +193,7 @@ public final class ModdedStructureCommands { RNG rng = new RNG((long) originX * 341873128712L + originZ); KList pieces = assembler.assemble(rng); if (pieces == null || pieces.isEmpty()) { - IrisModdedCommands.fail(source, "Structure '" + key + "' assembled 0 pieces"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES, MessageArgument.untrusted("key", key))); return 0; } ModdedObjectPlacer placer = new ModdedObjectPlacer(level, engine); @@ -210,12 +212,12 @@ public final class ModdedStructureCommands { } catch (Throwable e) { LOGGER.error("Iris structure place failed for {}", key, e); ModdedObjectUndo.record(owner, level, placer.undoSnapshot()); - IrisModdedCommands.fail(source, "Place failed: " + e.getClass().getSimpleName() + " (partial changes recorded for undo)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_PLACE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO, MessageArgument.untrusted("value", e.getClass().getSimpleName()))); return 0; } ModdedObjectUndo.record(owner, level, placer.undoSnapshot()); String tileNote = ModdedObjectCommands.tileNote(placer); - IrisModdedCommands.ok(source, "Placed '" + key + "' (" + pieces.size() + " pieces, " + placer.writes() + " write(s)" + tileNote + ") at your location. /iris object undo to revert."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STRUCTURE_COMMANDS_PLACED_PIECES_WRITE_S_AT_YOUR_LOCATION_IRIS_OBJECT_UNDO, MessageArgument.untrusted("key", key), MessageArgument.untrusted("value", pieces.size()), MessageArgument.untrusted("value2", placer.writes()), MessageArgument.untrusted("tileNote", tileNote))); return 1; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java index 856976795..ad5bea398 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java @@ -82,6 +82,9 @@ import java.util.function.Predicate; import java.util.function.Supplier; import java.util.regex.Pattern; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedStudioCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -184,7 +187,7 @@ public final class ModdedStudioCommands { } private static int openHelp(CommandSourceStack source) { - IrisModdedCommands.fail(source, "Provide a dimension pack: /iris studio open [seed]"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED)); return 0; } @@ -215,22 +218,22 @@ public final class ModdedStudioCommands { } if (generatorKey == null || generatorKey.isBlank()) { NoiseExplorerGUI.launch(); - IrisModdedCommands.ok(source, "Opening the Noise Explorer on the server display."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_ON_SERVER_DISPLAY)); return 1; } if (engine == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris; run /iris studio noise from an Iris dimension to resolve generators, or omit the generator name."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_IRIS_STUDIO)); return 0; } IrisGenerator generator = engine.getData().getGeneratorLoader().load(generatorKey.trim()); if (generator == null) { - IrisModdedCommands.fail(source, "Unknown generator '" + generatorKey + "' in pack " + engine.getDimension().getLoadKey() + "."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_UNKNOWN_GENERATOR_PACK, MessageArgument.untrusted("generatorKey", generatorKey), MessageArgument.untrusted("value", engine.getDimension().getLoadKey()))); return 0; } long mixedSeed = new RNG(seed).nextParallelRNG(3245).lmax(); Supplier> supplier = () -> (Double x, Double z) -> generator.getHeight(x, z, mixedSeed); NoiseExplorerGUI.launch(supplier, generatorKey.trim()); - IrisModdedCommands.ok(source, "Opening the Noise Explorer for generator '" + generatorKey.trim() + "' (seed " + seed + ")."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_GENERATOR_SEED, MessageArgument.untrusted("value", generatorKey.trim()), MessageArgument.untrusted("seed", seed))); return 1; } @@ -238,7 +241,7 @@ public final class ModdedStudioCommands { ServerLevel level = source.getLevel(); Engine engine = IrisModdedCommands.engineFor(level); if (engine == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris; stand in an Iris (or studio) dimension and run /iris studio map."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_STAND_IRIS_STUDIO)); return 0; } if (!GuiHost.isAvailable() || !IrisSettings.get().getGui().isUseServerLaunchedGuis()) { @@ -248,7 +251,7 @@ public final class ModdedStudioCommands { ServerPlayer player = source.getPlayer(); ModdedGuiHost.bindContext(source.getServer(), level, engine, player == null ? null : player.getUUID()); VisionGUI.launch(engine); - IrisModdedCommands.ok(source, "Opening the Vision map for " + level.dimension().identifier() + " on the server display."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_OPENING_VISION_MAP_ON_SERVER_DISPLAY, MessageArgument.untrusted("value", level.dimension().identifier()))); return 1; } @@ -269,10 +272,10 @@ public final class ModdedStudioCommands { workspace = ModdedWorkspaceGenerator.writeWorkspace(IrisData.get(folder), folder); } catch (IOException e) { LOGGER.error("Iris workspace write failed for {}", folder, e); - IrisModdedCommands.fail(source, "Failed to write workspace for " + folder.getAbsolutePath() + ": " + e.getMessage()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_FAILED_WRITE_WORKSPACE, MessageArgument.untrusted("value", folder.getAbsolutePath()), MessageArgument.untrusted("value2", String.valueOf(e.getMessage())))); return 0; } - IrisModdedCommands.ok(source, "Workspace regenerated: " + workspace.getAbsolutePath() + " with JSON schemas for autocomplete."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_WORKSPACE_REGENERATED_WITH_JSON_SCHEMAS_AUTOCOMPLETE, MessageArgument.untrusted("value", workspace.getAbsolutePath()))); if (!open) { return 1; } @@ -284,10 +287,10 @@ public final class ModdedStudioCommands { Desktop.getDesktop().open(workspace); } catch (Throwable e) { LOGGER.error("Iris workspace open failed for {}", workspace, e); - IrisModdedCommands.fail(source, "Could not open " + workspace.getName() + ": " + e.getClass().getSimpleName()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_COULD_NOT_OPEN, MessageArgument.untrusted("value", workspace.getName()), MessageArgument.untrusted("value2", e.getClass().getSimpleName()))); return 0; } - IrisModdedCommands.ok(source, "Opening " + workspace.getName() + " in your editor."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_OPENING_YOUR_EDITOR, MessageArgument.untrusted("value", workspace.getName()))); return 1; } @@ -319,14 +322,14 @@ public final class ModdedStudioCommands { if (name == null || name.isBlank()) { Engine engine = IrisModdedCommands.engineFor(source.getLevel()); if (engine == null || engine.getDimension() == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris; specify a pack name explicitly."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_SPECIFY_PACK_NAME)); return null; } name = engine.getDimension().getLoadKey(); } File folder = new File(ModdedPackCommands.packsRoot(), name); if (!folder.isDirectory() || !new File(folder, "dimensions").isDirectory()) { - IrisModdedCommands.fail(source, "Pack '" + name + "' not found under " + ModdedPackCommands.packsRoot().getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_NOT_FOUND_UNDER, MessageArgument.untrusted("name", name), MessageArgument.untrusted("value", ModdedPackCommands.packsRoot().getAbsolutePath()))); return null; } return folder; @@ -346,14 +349,14 @@ public final class ModdedStudioCommands { private static int open(CommandSourceStack source, String pack, long seed) { if (pack == null || pack.isBlank()) { - IrisModdedCommands.fail(source, "Provide a dimension pack: /iris studio open [seed]"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED_2)); return 0; } ServerPlayer player = source.getPlayer(); UUID owner = player == null ? CONSOLE_OWNER : player.getUUID(); String dimensionId = player == null ? studioConsoleDimensionId() : studioDimensionId(player); MinecraftServer server = source.getServer(); - IrisModdedCommands.ok(source, "Opening studio for '" + pack + "' (seed " + seed + ")..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_OPENING_STUDIO_SEED, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("seed", seed))); Thread thread = new Thread(() -> openAsync(source, server, owner, dimensionId, pack, seed), "Iris Studio Open"); thread.setDaemon(true); thread.start(); @@ -364,18 +367,18 @@ public final class ModdedStudioCommands { try { File packFolder = new File(ModdedPackCommands.packsRoot(), pack); if (!new File(packFolder, "dimensions/" + pack + ".json").isFile()) { - server.execute(() -> IrisModdedCommands.ok(source, "Pack '" + pack + "' missing; downloading IrisDimensions/" + pack + "...")); + server.execute(() -> IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_MISSING_DOWNLOADING_IRISDIMENSIONS, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack)))); boolean installed = ModdedPackInstaller.install(ModdedEngineBootstrap.loader().configDir(), pack, "master", (String line) -> server.execute(() -> IrisModdedCommands.ok(source, line))); if (!installed || !new File(packFolder, "dimensions/" + pack + ".json").isFile()) { - server.execute(() -> IrisModdedCommands.fail(source, "Pack '" + pack + "' could not be downloaded; check the name and try /iris download " + pack + ".")); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_TRY_IRIS_DOWNLOAD, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack)))); return; } } IrisData data = IrisData.get(packFolder); IrisDimension dimension = data.getDimensionLoader().load(pack); if (dimension == null) { - server.execute(() -> IrisModdedCommands.fail(source, "Pack '" + pack + "' has no dimensions/" + pack + ".json")); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack)))); return; } server.execute(() -> { @@ -387,7 +390,7 @@ public final class ModdedStudioCommands { }); } catch (Throwable e) { LOGGER.error("Iris studio open failed for {}", pack, e); - server.execute(() -> IrisModdedCommands.fail(source, "Studio open failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage()))); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_OPEN_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e))))); } } @@ -397,7 +400,7 @@ public final class ModdedStudioCommands { handle = ModdedDimensionManager.create(server, dimensionId, pack, pack, seed); } catch (Throwable e) { LOGGER.error("Iris console studio injection failed for {} ({})", dimensionId, pack, e); - IrisModdedCommands.fail(source, "Studio injection failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return; } STUDIOS.put(CONSOLE_OWNER, dimensionId); @@ -411,10 +414,10 @@ public final class ModdedStudioCommands { } catch (Throwable e) { LOGGER.error("Iris console studio surface probe failed for {}", dimensionId, e); } - IrisModdedCommands.ok(source, "Console studio open: " + dimensionId + " now runs '" + pack + "' seed " + seed + " (transient; not written to iris-dimensions.json and cleared on restart)."); - IrisModdedCommands.ok(source, "Enter it with: /execute in " + dimensionId + " run tp @s 8.5 " + surface + " 8.5"); - IrisModdedCommands.ok(source, "Pregen it with: /iris pregen start " + dimensionId); - IrisModdedCommands.ok(source, "Remove it with: /iris studio close"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_CONSOLE_STUDIO_OPEN_NOW_RUNS_SEED_TRANSIENT_NOT_WRITTEN_IRIS, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("seed", seed))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_ENTER_IT_WITH_EXECUTE_RUN_TP_S_8_5_8, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("surface", surface))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PREGEN_IT_WITH_IRIS_PREGEN_START_RADIUS, MessageArgument.untrusted("dimensionId", dimensionId))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_REMOVE_IT_WITH_IRIS_STUDIO_CLOSE)); } private static void injectAndTeleport(CommandSourceStack source, MinecraftServer server, UUID owner, String dimensionId, String pack, long seed) { @@ -427,7 +430,7 @@ public final class ModdedStudioCommands { handle = ModdedDimensionManager.create(server, dimensionId, pack, pack, seed); } catch (Throwable e) { LOGGER.error("Iris studio injection failed for {} ({})", dimensionId, pack, e); - IrisModdedCommands.fail(source, "Studio injection failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED_2, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return; } STUDIOS.put(owner, dimensionId); @@ -442,7 +445,7 @@ public final class ModdedStudioCommands { LOGGER.error("Iris studio surface probe failed for {}", dimensionId, e); } player.teleportTo(studio, 8.5D, surface, 8.5D, java.util.Set.of(), player.getYRot(), player.getXRot(), false); - IrisModdedCommands.ok(source, "Studio open: " + dimensionId + " now runs '" + pack + "' seed " + seed + ". Use /iris studio close when done."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_OPEN_NOW_RUNS_SEED_USE_IRIS_STUDIO_CLOSE_WHEN, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("seed", seed))); } private static int close(CommandSourceStack source) { @@ -451,17 +454,17 @@ public final class ModdedStudioCommands { UUID owner = player == null ? CONSOLE_OWNER : player.getUUID(); String dimensionId = STUDIOS.remove(owner); if (dimensionId == null) { - IrisModdedCommands.fail(source, "You do not have an open studio. Use /iris studio open first."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN)); return 0; } try { ModdedDimensionManager.remove(server, dimensionId, true); } catch (Throwable e) { LOGGER.error("Iris studio close failed for {}", dimensionId, e); - IrisModdedCommands.fail(source, "Studio close failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_CLOSE_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return 0; } - IrisModdedCommands.ok(source, "Studio closed: " + dimensionId + " was evacuated, unloaded and its region data deleted."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_STUDIO_CLOSED_WAS_EVACUATED_UNLOADED_ITS_REGION_DATA_DELETED, MessageArgument.untrusted("dimensionId", dimensionId))); return 1; } @@ -475,14 +478,14 @@ public final class ModdedStudioCommands { } } if (studios.isEmpty()) { - IrisModdedCommands.ok(source, "No studio dimensions are currently open."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_NO_STUDIO_DIMENSIONS_ARE_CURRENTLY_OPEN)); return 1; } - IrisModdedCommands.ok(source, "Active studio dimension(s): " + studios.size()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_ACTIVE_STUDIO_DIMENSION_S, MessageArgument.untrusted("value", studios.size()))); for (ModdedDimensionManager.Handle handle : studios) { UUID owner = ownerOf(handle.dimensionId()); String ownerName = owner == null ? "unclaimed" : ownerName(server, owner); - IrisModdedCommands.ok(source, " " + handle.dimensionId() + ": pack '" + handle.pack() + "' seed " + handle.seed() + " owner " + ownerName); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_SEED_OWNER, MessageArgument.untrusted("value", handle.dimensionId()), MessageArgument.untrusted("value2", handle.pack()), MessageArgument.untrusted("value3", handle.seed()), MessageArgument.untrusted("ownerName", ownerName))); } return 1; } @@ -507,19 +510,19 @@ public final class ModdedStudioCommands { private static int tpStudio(CommandSourceStack source) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS)); return 0; } MinecraftServer server = source.getServer(); String dimensionId = STUDIOS.get(player.getUUID()); if (dimensionId == null) { - IrisModdedCommands.fail(source, "You do not have an open studio. Use /iris studio open first."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN_2)); return 0; } ServerLevel studio = ModdedDimensionManager.level(server, dimensionId); if (studio == null) { STUDIOS.remove(player.getUUID()); - IrisModdedCommands.fail(source, "Your studio dimension is no longer loaded. Use /iris studio open again."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_YOUR_STUDIO_DIMENSION_IS_NO_LONGER_LOADED_USE_IRIS_STUDIO)); return 0; } int surface = studio.getMaxY(); @@ -532,7 +535,7 @@ public final class ModdedStudioCommands { LOGGER.error("Iris tpstudio surface probe failed", e); } player.teleportTo(studio, 8.5D, surface, 8.5D, java.util.Set.of(), player.getYRot(), player.getXRot(), false); - IrisModdedCommands.ok(source, "Teleported to your studio (" + dimensionId + ")."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_TELEPORTED_YOUR_STUDIO, MessageArgument.untrusted("dimensionId", dimensionId))); return 1; } @@ -544,36 +547,36 @@ public final class ModdedStudioCommands { IrisData data = IrisData.get(folder); IrisDimension dimension = data.getDimensionLoader().load(folder.getName()); if (dimension == null) { - IrisModdedCommands.fail(source, "Pack '" + folder.getName() + "' has no dimensions/" + folder.getName() + ".json"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON_2, MessageArgument.untrusted("value", folder.getName()), MessageArgument.untrusted("value2", folder.getName()))); return 0; } - IrisModdedCommands.ok(source, "The \"" + dimension.getName() + "\" pack has version: " + dimension.getVersion()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_HAS_VERSION, MessageArgument.untrusted("value", dimension.getName()), MessageArgument.untrusted("value2", dimension.getVersion()))); return 1; } private static int create(CommandSourceStack source, String nameRaw, String template) { String name = nameRaw.toLowerCase(Locale.ROOT); if (!PROJECT_NAME.matcher(name).matches()) { - IrisModdedCommands.fail(source, "Invalid project name '" + nameRaw + "' (allowed: a-z, 0-9, _ and -)"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_INVALID_PROJECT_NAME_ALLOWED_Z_0_9, MessageArgument.untrusted("nameRaw", nameRaw))); return 0; } File packsRoot = ModdedPackCommands.packsRoot(); File target = new File(packsRoot, name); if (target.exists()) { - IrisModdedCommands.fail(source, "Pack '" + name + "' already exists at " + target.getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACK_ALREADY_EXISTS_AT, MessageArgument.untrusted("name", name), MessageArgument.untrusted("value", target.getAbsolutePath()))); return 0; } MinecraftServer server = source.getServer(); - IrisModdedCommands.ok(source, "Creating project '" + name + "' from template '" + template + "'..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_CREATING_PROJECT_FROM_TEMPLATE, MessageArgument.untrusted("name", name), MessageArgument.untrusted("template", template))); Thread thread = new Thread(() -> { try { File templateFolder = new File(packsRoot, template); if (!new File(templateFolder, "dimensions/" + template + ".json").isFile()) { - server.execute(() -> IrisModdedCommands.ok(source, "Template '" + template + "' is not installed; downloading IrisDimensions/" + template + "...")); + server.execute(() -> IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_TEMPLATE_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS, MessageArgument.untrusted("template", template), MessageArgument.untrusted("template2", template)))); boolean installed = ModdedPackInstaller.install(ModdedEngineBootstrap.loader().configDir(), template, "master", (String line) -> server.execute(() -> IrisModdedCommands.ok(source, line))); if (!installed || !new File(templateFolder, "dimensions/" + template + ".json").isFile()) { - server.execute(() -> IrisModdedCommands.fail(source, "Template '" + template + "' could not be downloaded; install a pack with dimensions/" + template + ".json first.")); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_TEMPLATE_COULD_NOT_BE_DOWNLOADED_INSTALL_PACK_WITH_DIMENSIONS_JSON, MessageArgument.untrusted("template", template), MessageArgument.untrusted("template2", template)))); return; } } @@ -584,12 +587,12 @@ public final class ModdedStudioCommands { LOGGER.error("Iris studio create workspace generation failed for {}", name, e); } server.execute(() -> { - IrisModdedCommands.ok(source, "Created project '" + name + "' at " + target.getAbsolutePath()); - IrisModdedCommands.ok(source, "Edit dimensions/" + name + ".json and the rest of the pack. A VSCode workspace with JSON schema autocomplete was generated; open it or rerun /iris studio vscode."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_CREATED_PROJECT_AT, MessageArgument.untrusted("name", name), MessageArgument.untrusted("value", target.getAbsolutePath()))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_EDIT_DIMENSIONS_JSON_REST_PACK_VSCODE_WORKSPACE_WITH_JSON_SCHEMA, MessageArgument.untrusted("name", name))); }); } catch (Throwable e) { LOGGER.error("Iris studio create failed for {}", name, e); - server.execute(() -> IrisModdedCommands.fail(source, "Project creation failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage()))); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PROJECT_CREATION_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e))))); } }, "Iris Studio Create"); thread.setDaemon(true); @@ -604,14 +607,14 @@ public final class ModdedStudioCommands { } MinecraftServer server = source.getServer(); String dimKey = folder.getName(); - IrisModdedCommands.ok(source, "Packaging dimension '" + dimKey + "'..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACKAGING_DIMENSION, MessageArgument.untrusted("dimKey", dimKey))); Thread thread = new Thread(() -> { try { File result = compilePackage(folder, dimKey); - server.execute(() -> IrisModdedCommands.ok(source, "Package compiled: " + result.getAbsolutePath())); + server.execute(() -> IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACKAGE_COMPILED, MessageArgument.untrusted("value", result.getAbsolutePath())))); } catch (Throwable e) { LOGGER.error("Iris package failed for {}", dimKey, e); - server.execute(() -> IrisModdedCommands.fail(source, "Packaging failed: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage()))); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_PACKAGING_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e))))); } }, "Iris Studio Package"); thread.setDaemon(true); @@ -758,18 +761,18 @@ public final class ModdedStudioCommands { private static int regions(CommandSourceStack source, int radius) { ServerPlayer player = source.getPlayer(); if (player == null) { - IrisModdedCommands.fail(source, "This command can only be used by players (sampling is centered on your position)."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAMPLING_IS)); return 0; } Engine engine = IrisModdedCommands.engineFor(source.getLevel()); if (engine == null) { - IrisModdedCommands.fail(source, "This dimension is not generated by Iris."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS)); return 0; } MinecraftServer server = source.getServer(); int blockX = player.blockPosition().getX(); int blockZ = player.blockPosition().getZ(); - IrisModdedCommands.ok(source, "Sampling region distribution in " + (radius * 2) + "x" + (radius * 2) + " chunks around you..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_SAMPLING_REGION_DISTRIBUTION_X_CHUNKS_AROUND_YOU, MessageArgument.untrusted("value", (radius * 2)), MessageArgument.untrusted("value2", (radius * 2)))); Thread thread = new Thread(() -> { try { int diameter = radius * 2; @@ -787,11 +790,11 @@ public final class ModdedStudioCommands { server.execute(() -> counts.forEach((String key, AtomicInteger count) -> { IrisRegion region = engine.getData().getRegionLoader().load(key); String rarity = region == null ? "?" : String.valueOf(region.getRarity()); - IrisModdedCommands.ok(source, key + ": rarity=" + rarity + " / " + Form.f((double) count.get() / totalTasks * 100, 2) + "%"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_RARITY, MessageArgument.untrusted("key", key), MessageArgument.untrusted("rarity", rarity), MessageArgument.untrusted("value", Form.f((double) count.get() / totalTasks * 100, 2)))); })); } catch (Throwable e) { LOGGER.error("Iris region sampling failed", e); - server.execute(() -> IrisModdedCommands.fail(source, "Region sampling failed: " + e.getClass().getSimpleName())); + server.execute(() -> IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_STUDIO_COMMANDS_REGION_SAMPLING_FAILED, MessageArgument.untrusted("value", e.getClass().getSimpleName())))); } }, "Iris Region Sampler"); thread.setDaemon(true); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java index 2df151f4f..746154e6e 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWandService.java @@ -18,6 +18,9 @@ package art.arcane.iris.modded.command; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.component.DataComponents; @@ -78,10 +81,10 @@ public final class ModdedWandService { public static ItemStack createWand() { ItemStack stack = new ItemStack(Items.BLAZE_ROD); - stack.set(DataComponents.CUSTOM_NAME, Component.literal("Wand of Iris").withStyle(ChatFormatting.BOLD, ChatFormatting.GOLD)); + stack.set(DataComponents.CUSTOM_NAME, Component.literal(IrisLanguage.plain(RuntimeUiMessages.WAND_NAME)).withStyle(ChatFormatting.BOLD, ChatFormatting.GOLD)); stack.set(DataComponents.LORE, new ItemLore(List.of( - Component.literal("Left click a block to set the first corner"), - Component.literal("Right click a block to set the second corner")))); + Component.literal(IrisLanguage.plain(RuntimeUiMessages.WAND_LORE_FIRST)), + Component.literal(IrisLanguage.plain(RuntimeUiMessages.WAND_LORE_SECOND))))); stack.set(DataComponents.UNBREAKABLE, Unit.INSTANCE); stack.set(DataComponents.ENCHANTMENT_GLINT_OVERRIDE, Boolean.TRUE); stack.set(DataComponents.CUSTOM_DATA, CustomData.of(flagTag(WAND_TAG))); @@ -90,9 +93,9 @@ public final class ModdedWandService { public static ItemStack createDust() { ItemStack stack = new ItemStack(Items.GLOWSTONE_DUST); - stack.set(DataComponents.CUSTOM_NAME, Component.literal("Dust of Revealing").withStyle(ChatFormatting.BOLD, ChatFormatting.YELLOW)); + stack.set(DataComponents.CUSTOM_NAME, Component.literal(IrisLanguage.plain(RuntimeUiMessages.DUST_NAME)).withStyle(ChatFormatting.BOLD, ChatFormatting.YELLOW)); stack.set(DataComponents.LORE, new ItemLore(List.of( - Component.literal("Right click on a block to reveal it's placement structure!")))); + Component.literal(IrisLanguage.plain(RuntimeUiMessages.DUST_LORE))))); stack.set(DataComponents.UNBREAKABLE, Unit.INSTANCE); stack.set(DataComponents.ENCHANTMENT_GLINT_OVERRIDE, Boolean.TRUE); stack.set(DataComponents.CUSTOM_DATA, CustomData.of(flagTag(DUST_TAG))); @@ -161,7 +164,13 @@ public final class ModdedWandService { return first ? new Selection(dimension, corner, other) : new Selection(dimension, other, corner); }); level.playSound(null, pos, SoundEvents.END_PORTAL_FRAME_FILL, SoundSource.PLAYERS, 1.0F, first ? 0.67F : 1.17F); - player.sendOverlayMessage(Component.literal("Position " + (first ? 1 : 2) + " set to " + corner.getX() + ", " + corner.getY() + ", " + corner.getZ())); + player.sendOverlayMessage(Component.literal(IrisLanguage.plain( + RuntimeUiMessages.WAND_POSITION_SET, + MessageArgument.trusted("position", first ? 1 : 2), + MessageArgument.trusted("x", corner.getX()), + MessageArgument.trusted("y", corner.getY()), + MessageArgument.trusted("z", corner.getZ()) + ))); } public static Selection selection(ServerPlayer player) { diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java index 6e604e189..76bb74977 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedWorldCommands.java @@ -51,6 +51,10 @@ import java.util.Locale; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.ModdedCommandMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class ModdedWorldCommands { private static final Logger LOGGER = LoggerFactory.getLogger("Iris"); private static final Predicate GATE = Commands.hasPermission(Commands.LEVEL_GAMEMASTERS); @@ -169,13 +173,13 @@ public final class ModdedWorldCommands { if (packFolder.isDirectory()) { return enableInstalled(source, server, dimensionId, pack, packDimension, seed); } - IrisModdedCommands.ok(source, "Pack '" + pack + "' is not installed; downloading IrisDimensions/" + pack + "..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack))); Thread thread = new Thread(() -> { boolean installed = ModdedPackInstaller.install(ModdedEngineBootstrap.loader().configDir(), pack, "master", (String line) -> server.execute(() -> IrisModdedCommands.ok(source, line))); server.execute(() -> { if (!installed || !packFolder.isDirectory()) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' could not be downloaded; check the name or install it with /iris download " + pack + "."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack))); return; } enableInstalled(source, server, dimensionId, pack, packDimension, seed); @@ -197,11 +201,11 @@ public final class ModdedWorldCommands { ModdedDimensionManager.createPersistent(server, dimensionId, pack, packDimension, seed); } catch (Throwable e) { LOGGER.error("Iris world injection failed for {} (pack={} dim={})", dimensionId, pack, packDimension, e); - IrisModdedCommands.fail(source, "Failed to inject Iris world '" + dimensionId + "': " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_WORLD, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return 0; } - IrisModdedCommands.ok(source, "Created Iris world " + dimensionId + " from pack '" + pack + "' dimension '" + packDimension + "' (seed " + seed + ")."); - IrisModdedCommands.ok(source, "It is live now and re-injected on every startup. Teleport in with /iris world status or a portal; no restart required."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_CREATED_IRIS_WORLD_FROM_PACK_DIMENSION_SEED, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("packDimension", packDimension), MessageArgument.untrusted("seed", seed))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IT_IS_LIVE_NOW_RE_INJECTED_ON_EVERY_STARTUP_TELEPORT)); return 1; } @@ -228,21 +232,21 @@ public final class ModdedWorldCommands { ModdedDimensionManager.createPersistent(server, dimensionId, pack, packDimension, seed); } catch (Throwable e) { LOGGER.error("Iris primary world injection failed for {} (pack={} dim={})", dimensionId, pack, packDimension, e); - IrisModdedCommands.fail(source, "Failed to inject Iris primary world: " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_PRIMARY_WORLD, MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return 0; } ModdedModConfig.setPrimaryWorld(dimensionId); ModdedPrimaryWorldRouter.clear(); - IrisModdedCommands.ok(source, "Iris primary world set to " + dimensionId + " (pack '" + pack + "' dimension '" + packDimension + "' seed " + seed + ")."); - IrisModdedCommands.ok(source, "The vanilla overworld generator cannot be hot-swapped, so this does NOT regenerate the existing overworld."); - IrisModdedCommands.ok(source, "Instead, " + dimensionId + " is now the configured primary world: players in the vanilla overworld are routed there on join, and it re-injects on every startup."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IRIS_PRIMARY_WORLD_SET_PACK_DIMENSION_SEED, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("packDimension", packDimension), MessageArgument.untrusted("seed", seed))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_VANILLA_OVERWORLD_GENERATOR_CANNOT_BE_HOT_SWAPPED_SO_THIS_DOES)); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_INSTEAD_IS_NOW_CONFIGURED_PRIMARY_WORLD_PLAYERS_VANILLA_OVERWORLD_ARE, MessageArgument.untrusted("dimensionId", dimensionId))); return 1; } private static int clearMainWorld(CommandSourceStack source) { ModdedModConfig.setMainWorld("", 0L); MainWorldService.clearOverride(); - IrisModdedCommands.ok(source, "Iris main world override cleared. The overworld keeps its current generator; edit server.properties level-type and restart to change it back."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_OVERRIDE_CLEARED_OVERWORLD_KEEPS_ITS_CURRENT_GENERATOR)); return 1; } @@ -258,7 +262,7 @@ public final class ModdedWorldCommands { try { seed = Long.parseLong(seedRaw.trim()); } catch (NumberFormatException e) { - IrisModdedCommands.fail(source, "Invalid seed '" + seedRaw + "'. Use a number or 'random'."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM, MessageArgument.untrusted("seedRaw", seedRaw))); return 0; } } @@ -272,13 +276,13 @@ public final class ModdedWorldCommands { if (packFolder.isDirectory()) { return applyMainWorld(source, pack, packDimension, packRaw, seed); } - IrisModdedCommands.ok(source, "Pack '" + pack + "' is not installed; downloading IrisDimensions/" + pack + "..."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS_2, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack))); Thread thread = new Thread(() -> { boolean installed = ModdedPackInstaller.install(ModdedEngineBootstrap.loader().configDir(), pack, "master", (String line) -> server.execute(() -> IrisModdedCommands.ok(source, line))); server.execute(() -> { if (!installed || !packFolder.isDirectory()) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' could not be downloaded; check the name or install it with /iris download " + pack + "."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH_2, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("pack2", pack))); return; } applyMainWorld(source, pack, packDimension, packRaw, seed); @@ -299,23 +303,23 @@ public final class ModdedWorldCommands { } } catch (Throwable e) { LOGGER.error("Iris main world pack load failed for {} (dim={})", pack, packDimension, e); - IrisModdedCommands.fail(source, "Pack '" + pack + "' is not ready yet (still loading or validating). Try the command again in a moment."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_IS_NOT_READY_YET_STILL_LOADING_VALIDATING_TRY_COMMAND, MessageArgument.untrusted("pack", pack))); return 0; } ModdedModConfig.setMainWorld(packRef, seed); if (!MainWorldService.stage(packRef, seed)) { - IrisModdedCommands.fail(source, "Failed to write server.properties; check file permissions and set level-type manually."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_FAILED_WRITE_SERVER_PROPERTIES_CHECK_FILE_PERMISSIONS_SET_LEVEL_TYPE)); return 0; } String preset = MainWorldService.presetIdFor(packRef); - IrisModdedCommands.ok(source, "Iris main world set to '" + pack + "' (preset " + preset + ", seed " + (seed == 0L ? "random" : Long.toString(seed)) + ")."); - IrisModdedCommands.ok(source, "server.properties level-type is now " + preset + ". On the next restart the overworld, nether, and end regenerate as this Iris world."); - IrisModdedCommands.ok(source, "Player data (inventories, advancements, stats) is kept; existing terrain in those dimensions is replaced. This applies once."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_SET_PRESET_SEED, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("preset", preset), MessageArgument.untrusted("value", seed == 0L ? IrisLanguage.plain(RuntimeUiMessages.STATUS_RANDOM) : Long.toString(seed)))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_SERVER_PROPERTIES_LEVEL_TYPE_IS_NOW_ON_NEXT_RESTART_OVERWORLD, MessageArgument.untrusted("preset", preset))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PLAYER_DATA_INVENTORIES_ADVANCEMENTS_STATS_IS_KEPT_EXISTING_TERRAIN_THOSE)); if (ModdedModConfig.get().mainWorldAutoRestart()) { - IrisModdedCommands.ok(source, "mainWorldAutoRestart is enabled - stopping the server now so your restart wrapper brings it back on the new main world."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_MAINWORLDAUTORESTART_IS_ENABLED_STOPPING_SERVER_NOW_SO_YOUR_RESTART_WRAPPER)); source.getServer().halt(false); } else { - IrisModdedCommands.ok(source, "Restart the server now to generate it. (Set mainWorldAutoRestart=true in modded.json to have Iris stop the server for you.)"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_RESTART_SERVER_NOW_GENERATE_IT_SET_MAINWORLDAUTORESTART_TRUE_MODDED_JSON)); } return 1; } @@ -325,12 +329,11 @@ public final class ModdedWorldCommands { ModdedStartup.requirePackForWorldCreation(pack); return false; } catch (BrokenPackException e) { - IrisModdedCommands.fail(source, "Refusing to create world '" + dimensionId - + "' using pack '" + pack + "' because required validation failed:"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_REFUSING_CREATE_WORLD_USING_PACK_BECAUSE_REQUIRED_VALIDATION_FAILED, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("pack", pack))); for (String reason : e.getReasons()) { - IrisModdedCommands.fail(source, " - " + reason); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_MESSAGE, MessageArgument.untrusted("reason", reason))); } - IrisModdedCommands.fail(source, "Fix the pack and run /iris pack validate " + pack + " to revalidate."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE, MessageArgument.untrusted("pack", pack))); return true; } } @@ -338,13 +341,13 @@ public final class ModdedWorldCommands { private static boolean loadPackDimension(CommandSourceStack source, String pack, String packDimension) { File packFolder = new File(ModdedPackCommands.packsRoot(), pack); if (!packFolder.isDirectory()) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' was not found under " + ModdedPackCommands.packsRoot().getAbsolutePath()); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_WAS_NOT_FOUND_UNDER, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", ModdedPackCommands.packsRoot().getAbsolutePath()))); return false; } IrisData data = IrisData.get(packFolder); IrisDimension dimension = data.getDimensionLoader().load(packDimension); if (dimension == null) { - IrisModdedCommands.fail(source, "Pack '" + pack + "' does not contain dimensions/" + packDimension + ".json"); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PACK_DOES_NOT_CONTAIN_DIMENSIONS_JSON, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("packDimension", packDimension))); return false; } return true; @@ -364,7 +367,7 @@ public final class ModdedWorldCommands { && packDimension.matches("[A-Za-z0-9_/.-]+") && !packDimension.contains("..")) { return true; } - IrisModdedCommands.fail(source, "Invalid pack reference '" + pack + (pack.equals(packDimension) ? "" : ":" + packDimension) + "'. Use pack or pack:dimensionKey."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_INVALID_PACK_REFERENCE_USE_PACK_PACK_DIMENSIONKEY, MessageArgument.untrusted("pack", pack), MessageArgument.untrusted("value", (pack.equals(packDimension) ? "" : ":" + packDimension)))); return false; } @@ -379,7 +382,7 @@ public final class ModdedWorldCommands { try { return Long.parseLong(value); } catch (NumberFormatException e) { - IrisModdedCommands.fail(source, "Invalid seed '" + seedRaw + "'. Use a number or 'random'."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM_2, MessageArgument.untrusted("seedRaw", seedRaw))); return null; } } @@ -398,7 +401,7 @@ public final class ModdedWorldCommands { removed = ModdedDimensionManager.removePersistent(server, dimensionId, wipeStorage); } catch (Throwable e) { LOGGER.error("Iris world removal failed for {}", dimensionId, e); - IrisModdedCommands.fail(source, "Failed to remove Iris world '" + dimensionId + "': " + e.getClass().getSimpleName() + (e.getMessage() == null ? "" : " - " + e.getMessage())); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_FAILED_REMOVE_IRIS_WORLD, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("value", e.getClass().getSimpleName()), MessageArgument.trusted("errorMessage", IrisLanguage.errorDetail(e)))); return 0; } if (dimensionId.equals(ModdedModConfig.get().primaryWorld())) { @@ -407,17 +410,17 @@ public final class ModdedWorldCommands { } if (!removed) { if (wipeStorage) { - IrisModdedCommands.ok(source, "Iris world '" + dimensionId + "' was not loaded; cleared its persistent registry entry and wiped its stored chunk/mantle data."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY, MessageArgument.untrusted("dimensionId", dimensionId))); } else { - IrisModdedCommands.ok(source, "Iris world '" + dimensionId + "' was not loaded; cleared its persistent registry entry. World data on disk is kept."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY_2, MessageArgument.untrusted("dimensionId", dimensionId))); } return 1; } if (wipeStorage) { - IrisModdedCommands.ok(source, "Deleted Iris world '" + dimensionId + "': evacuated, unloaded, chunk/mantle data wiped, and dropped from the startup registry."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_DELETED_IRIS_WORLD_EVACUATED_UNLOADED_CHUNK_MANTLE_DATA_WIPED_DROPPED, MessageArgument.untrusted("dimensionId", dimensionId))); } else { - IrisModdedCommands.ok(source, "Disabled Iris world '" + dimensionId + "': evacuated, unloaded, and dropped from the startup registry."); - IrisModdedCommands.ok(source, "World data on disk is kept; re-enable with /iris world enable " + dimensionId + " or delete it with /iris world delete " + dimensionId + "."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_DISABLED_IRIS_WORLD_EVACUATED_UNLOADED_DROPPED_FROM_STARTUP_REGISTRY, MessageArgument.untrusted("dimensionId", dimensionId))); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_WORLD_DATA_ON_DISK_IS_KEPT_RE_ENABLE_WITH_IRIS, MessageArgument.untrusted("dimensionId", dimensionId), MessageArgument.untrusted("dimensionId2", dimensionId))); } return 1; } @@ -428,27 +431,27 @@ public final class ModdedWorldCommands { for (ServerLevel level : server.getAllLevels()) { if (level.getChunkSource().getGenerator() instanceof IrisModdedChunkGenerator generator) { loaded++; - IrisModdedCommands.ok(source, "Loaded Iris level: " + level.dimension().identifier() + " -> pack '" + generator.activePack() + "' dimension '" + generator.activeDimensionKey() + "'"); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_LOADED_IRIS_LEVEL_PACK_DIMENSION, MessageArgument.untrusted("value", level.dimension().identifier()), MessageArgument.untrusted("value2", generator.activePack()), MessageArgument.untrusted("value3", generator.activeDimensionKey()))); } } String primary = ModdedModConfig.get().primaryWorld(); if (!primary.isBlank()) { - IrisModdedCommands.ok(source, "Primary world: " + primary + (ModdedModConfig.get().routePlayersToPrimaryWorld() ? " (players routed there)" : " (routing disabled)")); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_PRIMARY_WORLD, MessageArgument.untrusted("primary", primary), MessageArgument.trusted("value", IrisLanguage.plain(ModdedModConfig.get().routePlayersToPrimaryWorld() ? RuntimeUiMessages.PRIMARY_PLAYERS_ROUTED_SUFFIX : RuntimeUiMessages.PRIMARY_ROUTING_DISABLED_SUFFIX)))); } if (loaded == 0) { - IrisModdedCommands.fail(source, "No Iris dimensions are currently loaded. Create one with /iris world create ."); + IrisModdedCommands.fail(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_NO_IRIS_DIMENSIONS_ARE_CURRENTLY_LOADED_CREATE_ONE_WITH_IRIS)); } return loaded > 0 ? 1 : 0; } private static int list(CommandSourceStack source) { List dimensions = loadedIrisDimensions(source.getServer()); - IrisModdedCommands.ok(source, "Loaded Iris dimensions: " + dimensions.size()); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_LOADED_IRIS_DIMENSIONS, MessageArgument.untrusted("value", dimensions.size()))); for (String dimension : dimensions) { - IrisModdedCommands.ok(source, " - " + dimension); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_MESSAGE_2, MessageArgument.untrusted("dimension", dimension))); } if (dimensions.isEmpty()) { - IrisModdedCommands.ok(source, "Use /iris world create to inject one without restarting."); + IrisModdedCommands.ok(source, IrisLanguage.plain(ModdedCommandMessages.MODDED_WORLD_COMMANDS_USE_IRIS_WORLD_CREATE_NAME_PACK_INJECT_ONE_WITHOUT_RESTARTING)); } return 1; } diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java index 3a9416a1f..937a080e0 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/service/ModdedSettingsHotloadService.java @@ -19,6 +19,7 @@ package art.arcane.iris.modded.service; import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.IrisPlatforms; import net.minecraft.server.MinecraftServer; import org.slf4j.Logger; @@ -52,12 +53,14 @@ public final class ModdedSettingsHotloadService implements ModdedTickableService lastPollAt = now; long modified = settingsFile().lastModified(); if (modified == lastModified) { + IrisLanguage.update(); return; } if (IrisSettings.settings != null) { IrisSettings.invalidate(); } IrisSettings.get(); + IrisLanguage.reload(); lastModified = settingsFile().lastModified(); LOGGER.info("Hotloaded settings.json"); } diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/de_de.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/de_de.json new file mode 100644 index 000000000..5d7ad9294 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/de_de.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Vorgenerierungs-HUD umschalten" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/es_es.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/es_es.json new file mode 100644 index 000000000..d7f5e8154 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/es_es.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Alternar HUD de pregeneración" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fi_fi.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fi_fi.json new file mode 100644 index 000000000..709f4bbc4 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fi_fi.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Vaihda esigeneroinnin HUD" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fr_fr.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fr_fr.json new file mode 100644 index 000000000..b8e0a7d64 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/fr_fr.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Activer ou désactiver le HUD de prégénération" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/he_il.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/he_il.json new file mode 100644 index 000000000..65fc2c31e --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/he_il.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "הפעלה או כיבוי של תצוגת הקדם-יצירה" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/it_it.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/it_it.json new file mode 100644 index 000000000..9c6561666 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/it_it.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Attiva o disattiva l'HUD di pregenerazione" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ja_jp.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ja_jp.json new file mode 100644 index 000000000..4a358a209 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ja_jp.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "事前生成 HUD の切り替え" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ko_kr.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ko_kr.json new file mode 100644 index 000000000..928e4a804 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ko_kr.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "사전 생성 HUD 전환" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/lt_lt.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/lt_lt.json new file mode 100644 index 000000000..cbb18aee1 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/lt_lt.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Perjungti išankstinio generavimo HUD" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/nl_nl.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/nl_nl.json new file mode 100644 index 000000000..3b41afc5b --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/nl_nl.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "HUD voor vooraf genereren in- of uitschakelen" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pl_pl.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pl_pl.json new file mode 100644 index 000000000..6859943b9 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pl_pl.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Przełącz interfejs wstępnego generowania" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pt_pt.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pt_pt.json new file mode 100644 index 000000000..b6d993275 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/pt_pt.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Alternar HUD de pré-geração" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ru_ru.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ru_ru.json new file mode 100644 index 000000000..db25e5ee3 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/ru_ru.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Переключить HUD предварительной генерации" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/tr_tr.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/tr_tr.json new file mode 100644 index 000000000..e6357dcfd --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/tr_tr.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Ön oluşturma HUD'unu aç veya kapat" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/vi_vi.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/vi_vi.json new file mode 100644 index 000000000..632ffca94 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/vi_vi.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "Bật hoặc tắt HUD tạo trước" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_cn.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_cn.json new file mode 100644 index 000000000..0a7c01f68 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_cn.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "切换预生成 HUD" +} diff --git a/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_tw.json b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_tw.json new file mode 100644 index 000000000..d37bd5583 --- /dev/null +++ b/adapters/modded-common/src/main/resources/assets/irisworldgen/lang/zh_tw.json @@ -0,0 +1,4 @@ +{ + "key.categories.irisworldgen.iris": "Iris", + "key.irisworldgen.toggle_pregen_hud": "切換預先生成 HUD" +} diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModLanguageAssetsTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModLanguageAssetsTest.java new file mode 100644 index 000000000..edbe82e03 --- /dev/null +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/IrisModLanguageAssetsTest.java @@ -0,0 +1,85 @@ +package art.arcane.iris.modded; + +import art.arcane.volmlib.util.localization.VolmitLocales; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.junit.Test; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +public class IrisModLanguageAssetsTest { + private static final String ROOT = "assets/irisworldgen/lang/"; + private static final String TOGGLE_KEY = "key.irisworldgen.toggle_pregen_hud"; + + @Test + public void minecraftLanguageAssetsMatchSharedLocaleManifest() throws Exception { + JsonObject english = read("en_us"); + assertEquals(2, english.size()); + + for (String locale : VolmitLocales.nonEnglish()) { + String minecraftLocale = VolmitLocales.minecraftCode(locale); + JsonObject translated = read(minecraftLocale); + assertEquals(minecraftLocale, english.keySet(), translated.keySet()); + for (String key : english.keySet()) { + JsonElement value = translated.get(key); + assertTrue(minecraftLocale + ": " + key, value.isJsonPrimitive()); + assertTrue(minecraftLocale + ": " + key, value.getAsJsonPrimitive().isString()); + assertFalse(minecraftLocale + ": " + key, value.getAsString().isBlank()); + } + assertFalse( + minecraftLocale + " contains an English HUD label", + english.get(TOGGLE_KEY).getAsString().equals(translated.get(TOGGLE_KEY).getAsString()) + ); + } + } + + @Test + public void minecraftLanguageResourceSetMatchesSharedLocaleManifestAndEnglishBaseline() throws Exception { + Set expected = VolmitLocales.nonEnglish().stream() + .map(VolmitLocales::minecraftCode) + .map(locale -> locale + ".json") + .collect(Collectors.toCollection(LinkedHashSet::new)); + expected.add("en_us.json"); + + assertEquals(expected, resourceFiles()); + } + + private JsonObject read(String locale) throws Exception { + String resource = ROOT + locale + ".json"; + InputStream input = IrisModLanguageAssetsTest.class.getClassLoader().getResourceAsStream(resource); + assertNotNull("Missing mod language asset: " + resource, input); + try (InputStream stream = input; + InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { + JsonElement parsed = JsonParser.parseReader(reader); + assertTrue("Mod language asset is not an object: " + resource, parsed.isJsonObject()); + return parsed.getAsJsonObject(); + } + } + + private Set resourceFiles() throws Exception { + URL resource = IrisModLanguageAssetsTest.class.getClassLoader().getResource(ROOT); + assertNotNull("Missing mod language resource directory", resource); + assertEquals("file", resource.getProtocol()); + try (Stream paths = Files.list(Path.of(resource.toURI()))) { + return paths + .filter(Files::isRegularFile) + .map(path -> path.getFileName().toString()) + .collect(Collectors.toUnmodifiableSet()); + } + } +} diff --git a/adapters/neoforge/src/main/resources/META-INF/accesstransformer.cfg b/adapters/neoforge/src/main/resources/META-INF/accesstransformer.cfg index 5a2faeeb3..42e421a53 100644 --- a/adapters/neoforge/src/main/resources/META-INF/accesstransformer.cfg +++ b/adapters/neoforge/src/main/resources/META-INF/accesstransformer.cfg @@ -1,3 +1,4 @@ public net.minecraft.server.MinecraftServer levels public net.minecraft.server.MinecraftServer executor public net.minecraft.server.MinecraftServer storageSource +public net.minecraft.core.MappedRegistry frozen diff --git a/core/build.gradle b/core/build.gradle index f55721547..e77aae3e3 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -218,6 +218,7 @@ tasks.named('compileJava', JavaCompile).configure { tasks.named('test', Test).configure { jvmArgs('--add-modules', 'jdk.incubator.vector') + classpath += files('src/main/resources') } configurations.matching { it.name.startsWith('slim') }.all { } diff --git a/core/src/main/java/art/arcane/iris/core/IrisSettings.java b/core/src/main/java/art/arcane/iris/core/IrisSettings.java index b9a7e8105..7a8cd28e9 100644 --- a/core/src/main/java/art/arcane/iris/core/IrisSettings.java +++ b/core/src/main/java/art/arcane/iris/core/IrisSettings.java @@ -236,6 +236,7 @@ public class IrisSettings { @Data public static class IrisSettingsGeneral { + public String language = "en_US"; public boolean commandSounds = true; public boolean debug = false; public boolean dumpMantleOnError = false; diff --git a/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java b/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java index 9f4e9f24f..6d91b1ba3 100644 --- a/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java +++ b/core/src/main/java/art/arcane/iris/core/ServerConfigurator.java @@ -60,6 +60,9 @@ import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public class ServerConfigurator { public static void configure() { IrisSettings.IrisSettingsAutoconfiguration s = IrisSettings.get().getAutoConfiguration(); @@ -284,8 +287,8 @@ public class ServerConfigurator { for (Player i : Bukkit.getOnlinePlayers()) { if (i.isOp() || i.hasPermission("iris.all")) { VolmitSender sender = new VolmitSender(i, BukkitPlatform.volmitPlugin().getTag("WARNING")); - sender.sendMessage("There are some Iris Packs that have custom biomes in them"); - sender.sendMessage("You need to restart your server to use these packs."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.SERVER_CONFIGURATOR_THERE_ARE_SOME_IRIS_PACKS_THAT_HAVE_CUSTOM_BIOMES_THEM)); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.SERVER_CONFIGURATOR_YOU_NEED_RESTART_YOUR_SERVER_USE_THESE_PACKS)); } } diff --git a/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java b/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java index e9cc157bf..85ae9a041 100644 --- a/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java +++ b/core/src/main/java/art/arcane/iris/core/edit/DustRevealer.java @@ -20,6 +20,8 @@ package art.arcane.iris.core.edit; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.spi.IrisLogging; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.nms.INMS; import art.arcane.iris.core.tools.IrisToolbelt; import art.arcane.iris.engine.framework.Engine; @@ -31,6 +33,7 @@ import art.arcane.volmlib.util.collection.KList; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.scheduling.J; import lombok.Data; @@ -130,7 +133,10 @@ public class DustRevealer { if (a != null) { world.playSound(block.getLocation(), Sound.ITEM_LODESTONE_COMPASS_LOCK, 1f, 0.1f); - sender.sendMessage("Found object " + a); + sender.sendMessage(IrisLanguage.text( + RuntimeUiMessages.DUST_FOUND_OBJECT, + MessageArgument.untrusted("object", a) + )); J.a(() -> { new DustRevealer(access, world, new BlockPosition(block.getX(), block.getY(), block.getZ()), a, new KList<>()); }); @@ -154,67 +160,131 @@ public class DustRevealer { IrisBiome caveBiome = safe(() -> engine.getCaveOrMantleBiome(x, relativeY, z)); IrisRegion region = safe(() -> engine.getRegion(x, z)); - KList lines = new KList<>(); - lines.add("Iris Dust @ " + x + ", " + y + ", " + z); - lines.add("Block: " + block.getType().name()); + KList lines = new KList<>(); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_HEADER, + MessageArgument.trusted("x", x), + MessageArgument.trusted("y", y), + MessageArgument.trusted("z", z) + ), false)); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_BLOCK, + MessageArgument.untrusted("block", block.getType().name()) + ), false)); if (offset > 0) { - lines.add("Position: +" + offset + " ABOVE surface (surface Y=" + surfaceY + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_POSITION_ABOVE, + MessageArgument.trusted("offset", offset), + MessageArgument.trusted("surfaceY", surfaceY) + ), true)); } else if (offset < 0) { - lines.add("Position: " + (-offset) + " below surface (surface Y=" + surfaceY + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_POSITION_BELOW, + MessageArgument.trusted("offset", -offset), + MessageArgument.trusted("surfaceY", surfaceY) + ), true)); } else { - lines.add("Position: at surface (Y=" + surfaceY + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_POSITION_AT, + MessageArgument.trusted("surfaceY", surfaceY) + ), true)); } String placedBy; if (offset > 0) { - placedBy = objectKey != null ? "object/stilt '" + objectKey + "' (above surface)" : "decoration/object/stilt (above surface)"; + placedBy = objectKey != null + ? IrisLanguage.text( + RuntimeUiMessages.DUST_PLACED_BY_OBJECT_ABOVE, + MessageArgument.untrusted("object", objectKey) + ) + : IrisLanguage.text(RuntimeUiMessages.DUST_PLACED_BY_DECORATION_ABOVE); } else if (objectKey != null) { - placedBy = "buried object '" + objectKey + "'"; + placedBy = IrisLanguage.text( + RuntimeUiMessages.DUST_PLACED_BY_BURIED_OBJECT, + MessageArgument.untrusted("object", objectKey) + ); } else { - placedBy = "terrain layer (depth " + Math.max(0, surfaceRelative - relativeY) + " below surface)"; + placedBy = IrisLanguage.text( + RuntimeUiMessages.DUST_PLACED_BY_TERRAIN, + MessageArgument.trusted("depth", Math.max(0, surfaceRelative - relativeY)) + ); } - lines.add("Placed by: " + placedBy); - lines.add("Object @block: " + (objectKey == null ? "none" : objectKey)); + lines.add(new DustLine(placedBy, true)); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_OBJECT_AT_BLOCK, + MessageArgument.untrusted( + "object", + objectKey == null ? IrisLanguage.text(RuntimeUiMessages.DUST_NONE) : objectKey + ) + ), false)); if (objectKey == null) { String columnObject = findColumnObject(engine, x, relativeY, z, minHeight); - lines.add("Column object: " + (columnObject == null - ? "none within 64 (decorator or terrain, NOT an object stilt)" - : columnObject + " -> this block is likely that object's stilt")); + lines.add(new DustLine(IrisLanguage.text( + columnObject == null + ? RuntimeUiMessages.DUST_COLUMN_OBJECT_NONE + : RuntimeUiMessages.DUST_COLUMN_OBJECT, + MessageArgument.trusted( + columnObject == null ? "detail" : "object", + columnObject == null ? IrisLanguage.text(RuntimeUiMessages.DUST_COLUMN_NONE) : columnObject + ) + ), false)); } if (surfaceBiome != null) { - lines.add("Surface biome: " + surfaceBiome.getLoadKey() + " (" + biomeKey(surfaceBiome.getDerivative()) + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_SURFACE_BIOME_DETAIL, + MessageArgument.untrusted("biome", surfaceBiome.getLoadKey()), + MessageArgument.untrusted("derivative", biomeKey(surfaceBiome.getDerivative())) + ), false)); } if (biomeHere != null && (surfaceBiome == null || !biomeHere.getLoadKey().equals(surfaceBiome.getLoadKey()))) { - lines.add("Biome @Y: " + biomeHere.getLoadKey()); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_BIOME_AT_Y, + MessageArgument.untrusted("biome", biomeHere.getLoadKey()) + ), false)); } if (caveBiome != null && (surfaceBiome == null || !caveBiome.getLoadKey().equals(surfaceBiome.getLoadKey()))) { - lines.add("Cave/Mantle biome: " + caveBiome.getLoadKey()); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_CAVE_BIOME, + MessageArgument.untrusted("biome", caveBiome.getLoadKey()) + ), false)); } try { - lines.add("Server biome: " + INMS.get().getTrueBiomeBaseKey(block.getLocation()) - + " (ID: " + INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(block.getLocation())) + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_SERVER_BIOME, + MessageArgument.untrusted("biome", INMS.get().getTrueBiomeBaseKey(block.getLocation())), + MessageArgument.trusted("id", INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(block.getLocation()))) + ), false)); } catch (Throwable e) { IrisLogging.reportError(e); } if (region != null) { - lines.add("Region: " + region.getLoadKey() + " (" + region.getName() + ")"); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_REGION, + MessageArgument.untrusted("region", region.getLoadKey()), + MessageArgument.untrusted("name", region.getName()) + ), false)); } Set objects = safe(() -> engine.getObjectsAt(x >> 4, z >> 4)); if (objects != null && !objects.isEmpty()) { - lines.add("Objects in chunk: " + objects); + lines.add(new DustLine(IrisLanguage.text( + RuntimeUiMessages.DUST_OBJECTS_IN_CHUNK, + MessageArgument.untrusted("objects", objects) + ), false)); } - sender.sendMessage(C.IRIS + "--- " + lines.get(0) + " ---"); + StringBuilder payload = new StringBuilder(); + sender.sendMessage(C.IRIS + lines.get(0).text()); + payload.append(lines.get(0).text()); for (int i = 1; i < lines.size(); i++) { - String line = lines.get(i); - String color = (line.startsWith("Position:") || line.startsWith("Placed by:")) ? C.YELLOW.toString() : C.WHITE.toString(); - sender.sendMessage(color + line); + DustLine line = lines.get(i); + sender.sendMessage((line.emphasis() ? C.YELLOW : C.WHITE) + line.text()); + payload.append('\n').append(line.text()); } - sendCopyButton(sender, String.join("\n", lines)); + sendCopyButton(sender, payload.toString()); } private static String findColumnObject(Engine engine, int x, int relativeY, int z, int minHeight) { @@ -223,7 +293,11 @@ public class DustRevealer { try { String up = engine.getObjectPlacementKey(x, relativeY + dy, z); if (up != null) { - return up + " @Y=" + (relativeY + dy + minHeight) + " (above)"; + return IrisLanguage.text( + RuntimeUiMessages.DUST_COLUMN_ABOVE, + MessageArgument.untrusted("object", up), + MessageArgument.trusted("y", relativeY + dy + minHeight) + ); } } catch (Throwable ignored) { } @@ -232,7 +306,11 @@ public class DustRevealer { try { String down = engine.getObjectPlacementKey(x, relativeY - dy, z); if (down != null) { - return down + " @Y=" + (relativeY - dy + minHeight) + " (below)"; + return IrisLanguage.text( + RuntimeUiMessages.DUST_COLUMN_BELOW, + MessageArgument.untrusted("object", down), + MessageArgument.trusted("y", relativeY - dy + minHeight) + ); } } catch (Throwable ignored) { } @@ -243,7 +321,7 @@ public class DustRevealer { private static String biomeKey(Biome biome) { if (biome == null) { - return "none"; + return IrisLanguage.text(RuntimeUiMessages.DUST_NONE); } try { return biome.getKey().getKey(); @@ -266,10 +344,10 @@ public class DustRevealer { return; } try { - Component button = Component.text("[Click to copy these stats]") + Component button = Component.text(IrisLanguage.text(RuntimeUiMessages.DUST_COPY_BUTTON)) .color(NamedTextColor.GREEN) .clickEvent(ClickEvent.copyToClipboard(payload)) - .hoverEvent(HoverEvent.showText(Component.text("Copy block stats to clipboard"))); + .hoverEvent(HoverEvent.showText(Component.text(IrisLanguage.text(RuntimeUiMessages.DUST_COPY_HOVER)))); sender.sendComponent(button); } catch (Throwable e) { IrisLogging.reportError(e); @@ -293,4 +371,7 @@ public class DustRevealer { private boolean isValidTry(BlockPosition b) { return !hits.contains(b); } + + private record DustLine(String text, boolean emphasis) { + } } diff --git a/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java b/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java index 9d4ddca64..6ec3a1a74 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java +++ b/core/src/main/java/art/arcane/iris/core/gui/NoiseExplorerGUI.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.gui; +import art.arcane.iris.core.localization.DesktopUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.engine.framework.Engine; @@ -27,6 +29,7 @@ import art.arcane.volmlib.util.function.Function2; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.iris.util.project.noise.CNG; import art.arcane.iris.util.common.parallel.BurstExecutor; import art.arcane.iris.util.common.parallel.MultiBurst; @@ -89,10 +92,12 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { private static final int SIDEBAR_WIDTH = 240; private static final int[] HSB_LUT = new int[256]; - private static final String[] CATEGORY_ORDER = { - "Pack Generators", "Simplex", "Perlin", "Cellular", "Iris", "Clover", - "Hexagon", "Vascular", "Globe", "Cubic", "Fractal", "Static", - "Nowhere", "Sierpinski", "Utility", "Other" + private static final NoiseCategory[] CATEGORY_ORDER = { + NoiseCategory.PACK_GENERATORS, NoiseCategory.SIMPLEX, NoiseCategory.PERLIN, + NoiseCategory.CELLULAR, NoiseCategory.IRIS, NoiseCategory.CLOVER, NoiseCategory.HEXAGON, + NoiseCategory.VASCULAR, NoiseCategory.GLOBE, NoiseCategory.CUBIC, NoiseCategory.FRACTAL, + NoiseCategory.STATIC, NoiseCategory.NOWHERE, NoiseCategory.SIERPINSKI, NoiseCategory.UTILITY, + NoiseCategory.OTHER }; static { @@ -151,7 +156,7 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { Engine engine = GuiHost.get().findActiveEngine(); EventQueue.invokeLater(() -> { NoiseExplorerGUI nv = new NoiseExplorerGUI(); - buildFrame("Noise Explorer", nv, engine, null, null); + buildFrame(IrisLanguage.plain(DesktopUiMessages.NOISE_TITLE), nv, engine, null, null); }); } @@ -162,7 +167,7 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { nv.loader = gen; nv.generator = gen.get(); nv.currentName = genName; - buildFrame("Noise Explorer: " + genName, nv, engine, gen, genName); + buildFrame(IrisLanguage.plain(DesktopUiMessages.NOISE_TITLE_GENERATOR, MessageArgument.untrusted("generator", genName)), nv, engine, gen, genName); }); } @@ -206,7 +211,7 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { BorderFactory.createMatteBorder(0, 0, 1, 0, SEPARATOR), BorderFactory.createEmptyBorder(8, 10, 8, 10) )); - search.putClientProperty("JTextField.placeholderText", "Search..."); + search.putClientProperty("JTextField.placeholderText", IrisLanguage.plain(DesktopUiMessages.NOISE_SEARCH)); LinkedHashMap> categories = buildCategoryMap(nv, engine, customGen, customName); DefaultListModel model = new DefaultListModel<>(); @@ -277,12 +282,12 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { nv.loader = customGen; nv.currentName = customName; })); - categories.put("Custom", custom); + categories.put(IrisLanguage.plain(DesktopUiMessages.NOISE_CATEGORY_CUSTOM), custom); } - Map> styleGroups = new LinkedHashMap<>(); + Map> styleGroups = new LinkedHashMap<>(); for (NoiseStyle style : NoiseStyle.values()) { - String cat = categorize(style); + NoiseCategory cat = categorize(style); styleGroups.computeIfAbsent(cat, k -> new ArrayList<>()).add(style); } @@ -305,12 +310,12 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { } } catch (Throwable ignored) {} if (!genItems.isEmpty()) { - categories.put("Pack Generators", genItems); + categories.put(categoryLabel(NoiseCategory.PACK_GENERATORS), genItems); } } - for (String cat : CATEGORY_ORDER) { - if ("Pack Generators".equals(cat)) continue; + for (NoiseCategory cat : CATEGORY_ORDER) { + if (cat == NoiseCategory.PACK_GENERATORS) continue; List styles = styleGroups.get(cat); if (styles != null && !styles.isEmpty()) { List items = new ArrayList<>(); @@ -322,12 +327,13 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { nv.currentName = style.name(); })); } - categories.put(cat, items); + categories.put(categoryLabel(cat), items); } } - for (Map.Entry> entry : styleGroups.entrySet()) { - if (!categories.containsKey(entry.getKey())) { + for (Map.Entry> entry : styleGroups.entrySet()) { + String category = categoryLabel(entry.getKey()); + if (!categories.containsKey(category)) { List items = new ArrayList<>(); for (NoiseStyle style : entry.getValue()) { items.add(new ListItem(formatName(style.name()), style.name(), false, () -> { @@ -337,30 +343,51 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { nv.currentName = style.name(); })); } - categories.put(entry.getKey(), items); + categories.put(category, items); } } return categories; } - private static String categorize(NoiseStyle style) { + private static NoiseCategory categorize(NoiseStyle style) { String n = style.name(); - if (n.startsWith("STATIC")) return "Static"; - if (n.startsWith("IRIS")) return "Iris"; - if (n.startsWith("CLOVER")) return "Clover"; - if (n.startsWith("VASCULAR")) return "Vascular"; - if (n.equals("FLAT")) return "Utility"; - if (n.startsWith("CELLULAR")) return "Cellular"; - if (n.startsWith("HEX") || n.equals("HEXAGON")) return "Hexagon"; - if (n.startsWith("SIERPINSKI")) return "Sierpinski"; - if (n.startsWith("NOWHERE")) return "Nowhere"; - if (n.startsWith("GLOB")) return "Globe"; - if (n.startsWith("PERLIN")) return "Perlin"; - if (n.startsWith("CUBIC") || (n.startsWith("FRACTAL") && n.contains("CUBIC"))) return "Cubic"; - if (n.contains("SIMPLEX") && !n.startsWith("FRACTAL")) return "Simplex"; - if (n.startsWith("FRACTAL")) return "Fractal"; - return "Other"; + if (n.startsWith("STATIC")) return NoiseCategory.STATIC; + if (n.startsWith("IRIS")) return NoiseCategory.IRIS; + if (n.startsWith("CLOVER")) return NoiseCategory.CLOVER; + if (n.startsWith("VASCULAR")) return NoiseCategory.VASCULAR; + if (n.equals("FLAT")) return NoiseCategory.UTILITY; + if (n.startsWith("CELLULAR")) return NoiseCategory.CELLULAR; + if (n.startsWith("HEX") || n.equals("HEXAGON")) return NoiseCategory.HEXAGON; + if (n.startsWith("SIERPINSKI")) return NoiseCategory.SIERPINSKI; + if (n.startsWith("NOWHERE")) return NoiseCategory.NOWHERE; + if (n.startsWith("GLOB")) return NoiseCategory.GLOBE; + if (n.startsWith("PERLIN")) return NoiseCategory.PERLIN; + if (n.startsWith("CUBIC") || (n.startsWith("FRACTAL") && n.contains("CUBIC"))) return NoiseCategory.CUBIC; + if (n.contains("SIMPLEX") && !n.startsWith("FRACTAL")) return NoiseCategory.SIMPLEX; + if (n.startsWith("FRACTAL")) return NoiseCategory.FRACTAL; + return NoiseCategory.OTHER; + } + + private static String categoryLabel(NoiseCategory category) { + return IrisLanguage.plain(switch (category) { + case PACK_GENERATORS -> DesktopUiMessages.NOISE_CATEGORY_PACK_GENERATORS; + case SIMPLEX -> DesktopUiMessages.NOISE_CATEGORY_SIMPLEX; + case PERLIN -> DesktopUiMessages.NOISE_CATEGORY_PERLIN; + case CELLULAR -> DesktopUiMessages.NOISE_CATEGORY_CELLULAR; + case IRIS -> DesktopUiMessages.NOISE_CATEGORY_IRIS; + case CLOVER -> DesktopUiMessages.NOISE_CATEGORY_CLOVER; + case HEXAGON -> DesktopUiMessages.NOISE_CATEGORY_HEXAGON; + case VASCULAR -> DesktopUiMessages.NOISE_CATEGORY_VASCULAR; + case GLOBE -> DesktopUiMessages.NOISE_CATEGORY_GLOBE; + case CUBIC -> DesktopUiMessages.NOISE_CATEGORY_CUBIC; + case FRACTAL -> DesktopUiMessages.NOISE_CATEGORY_FRACTAL; + case STATIC -> DesktopUiMessages.NOISE_CATEGORY_STATIC; + case NOWHERE -> DesktopUiMessages.NOISE_CATEGORY_NOWHERE; + case SIERPINSKI -> DesktopUiMessages.NOISE_CATEGORY_SIERPINSKI; + case UTILITY -> DesktopUiMessages.NOISE_CATEGORY_UTILITY; + case OTHER -> DesktopUiMessages.NOISE_CATEGORY_OTHER; + }); } private static String formatName(String enumName) { @@ -500,8 +527,15 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { int fps = frameMs > 0 ? (int) (1000.0 / frameMs) : 0; - String status = String.format(" %s | X: %.1f Z: %.1f | Zoom: %.4f | Value: %.4f | %d FPS", - currentName, worldX, worldZ, animScale, noiseVal, fps); + String status = IrisLanguage.plain( + DesktopUiMessages.NOISE_STATUS, + MessageArgument.untrusted("name", currentName), + MessageArgument.trusted("x", String.format("%.1f", worldX)), + MessageArgument.trusted("z", String.format("%.1f", worldZ)), + MessageArgument.trusted("zoom", String.format("%.4f", animScale)), + MessageArgument.trusted("value", String.format("%.4f", noiseVal)), + MessageArgument.trusted("fps", fps) + ); g.drawString(status, 8, y + 18); int barW = 60; @@ -554,4 +588,23 @@ public class NoiseExplorerGUI extends JPanel implements MouseWheelListener { return this; } } + + private enum NoiseCategory { + PACK_GENERATORS, + SIMPLEX, + PERLIN, + CELLULAR, + IRIS, + CLOVER, + HEXAGON, + VASCULAR, + GLOBE, + CUBIC, + FRACTAL, + STATIC, + NOWHERE, + SIERPINSKI, + UTILITY, + OTHER + } } diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java b/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java index f45eb30fa..01339cb21 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java +++ b/core/src/main/java/art/arcane/iris/core/gui/PregenRenderer.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.gui; +import art.arcane.iris.core.localization.DesktopUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.core.IrisSettings; import art.arcane.volmlib.util.collection.KList; @@ -118,13 +120,13 @@ public final class PregenRenderer extends JPanel implements KeyListener { int hh = 20; if (source.paused()) { - g.drawString("PAUSED", 20, hh += h); - g.drawString("Press P to Resume", 20, hh += h); + g.drawString(IrisLanguage.plain(DesktopUiMessages.PREGEN_PAUSED), 20, hh += h); + g.drawString(IrisLanguage.plain(DesktopUiMessages.PREGEN_RESUME_HINT), 20, hh += h); } else { for (String i : prog) { g.drawString(i, 20, hh += h); } - g.drawString("Press P to Pause", 20, hh += h); + g.drawString(IrisLanguage.plain(DesktopUiMessages.PREGEN_PAUSE_HINT), 20, hh += h); } J.sleep(IrisSettings.get().getGui().isMaximumPregenGuiFPS() ? 4 : 250); diff --git a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java index fc48f5d74..316b39812 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java +++ b/core/src/main/java/art/arcane/iris/core/gui/PregeneratorJob.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.gui; +import art.arcane.iris.core.localization.DesktopUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisServices; import art.arcane.iris.spi.protocol.IrisMessage; @@ -33,6 +35,7 @@ import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.format.MemoryMonitor; import art.arcane.volmlib.util.function.Consumer2; import art.arcane.volmlib.util.mantle.runtime.Mantle; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.math.Position2; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.common.scheduling.J; @@ -77,7 +80,7 @@ public class PregeneratorJob implements PregenListener, PregenRenderSource { private volatile long lastTotalChunks = 0L; private volatile long lastEta = 0L; private volatile long lastElapsed = 0L; - private volatile String lastMethod = "Void"; + private volatile String lastMethod = IrisLanguage.plain(DesktopUiMessages.PREGEN_METHOD_PENDING); public PregeneratorJob(PregenTask task, PregeneratorMethod method, Engine engine) { instance.updateAndGet(old -> { @@ -90,7 +93,7 @@ public class PregeneratorJob implements PregenListener, PregenRenderSource { this.engine = engine; monitor = new MemoryMonitor(50); saving = false; - info = new String[]{"Initializing..."}; + info = new String[]{IrisLanguage.plain(DesktopUiMessages.PREGEN_INITIALIZING)}; this.task = task; this.pregenerator = new IrisPregenerator(task, method, this); max = new Position2(Integer.MIN_VALUE, Integer.MIN_VALUE); @@ -320,7 +323,7 @@ public class PregeneratorJob implements PregenListener, PregenRenderSource { public void open() { J.a(() -> { try { - renderer = PregenRenderer.open("Pregen View", this, PregeneratorJob::pauseResume); + renderer = PregenRenderer.open(IrisLanguage.plain(DesktopUiMessages.PREGEN_TITLE), this, PregeneratorJob::pauseResume); drawFunction = renderer.drawFunction(); } catch (Throwable ignored) { IrisLogging.error("Error opening pregen gui"); @@ -339,12 +342,31 @@ public class PregeneratorJob implements PregenListener, PregenRenderSource { lastMethod = method; info = new String[]{ - (paused() ? "PAUSED" : (saving ? "Saving... " : "Generating")) + " " + Form.f(generated) + " of " + Form.f(totalChunks) + " (" + Form.pc(percent, 0) + " Complete)", - "Speed: " + (cached ? "Cached " : "") + Form.f(chunksPerSecond, 0) + " Chunks/s, " + Form.f(regionsPerMinute, 1) + " Regions/m, " + Form.f(chunksPerMinute, 0) + " Chunks/m", - Form.duration(eta, 2) + " Remaining " + " (" + Form.duration(elapsed, 2) + " Elapsed)", - "Generation Method: " + method, - "Memory: " + Form.memSize(monitor.getUsedBytes(), 2) + " (" + Form.pc(monitor.getUsagePercent(), 0) + ") Pressure: " + Form.memSize(monitor.getPressure(), 0) + "/s", - + IrisLanguage.plain( + paused() ? DesktopUiMessages.PREGEN_PROGRESS_PAUSED + : saving ? DesktopUiMessages.PREGEN_PROGRESS_SAVING : DesktopUiMessages.PREGEN_PROGRESS_GENERATING, + MessageArgument.trusted("generated", Form.f(generated)), + MessageArgument.trusted("total", Form.f(totalChunks)), + MessageArgument.trusted("percent", Form.pc(percent, 0)) + ), + IrisLanguage.plain( + cached ? DesktopUiMessages.PREGEN_SPEED_CACHED : DesktopUiMessages.PREGEN_SPEED, + MessageArgument.trusted("chunksPerSecond", Form.f(chunksPerSecond, 0)), + MessageArgument.trusted("regionsPerMinute", Form.f(regionsPerMinute, 1)), + MessageArgument.trusted("chunksPerMinute", Form.f(chunksPerMinute, 0)) + ), + IrisLanguage.plain( + DesktopUiMessages.PREGEN_TIME, + MessageArgument.trusted("remaining", Form.duration(eta, 2)), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 2)) + ), + IrisLanguage.plain(DesktopUiMessages.PREGEN_METHOD, MessageArgument.untrusted("method", String.valueOf(method))), + IrisLanguage.plain( + DesktopUiMessages.PREGEN_MEMORY, + MessageArgument.trusted("used", Form.memSize(monitor.getUsedBytes(), 2)), + MessageArgument.trusted("usage", Form.pc(monitor.getUsagePercent(), 0)), + MessageArgument.trusted("pressure", Form.memSize(monitor.getPressure(), 0)) + ) }; for (Consumer i : onProgress) { diff --git a/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java b/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java index 268cadb06..7f43abae6 100644 --- a/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java +++ b/core/src/main/java/art/arcane/iris/core/gui/VisionGUI.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.gui; +import art.arcane.iris.core.localization.DesktopUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.engine.framework.render.IrisRenderer; import art.arcane.iris.engine.framework.render.RenderType; import art.arcane.iris.engine.framework.Engine; @@ -32,6 +34,7 @@ import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.BlockPosition; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RollingSequence; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.scheduling.ChronoLatch; import art.arcane.iris.util.common.scheduling.J; import art.arcane.volmlib.util.scheduling.O; @@ -68,7 +71,6 @@ import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.util.LinkedHashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -188,7 +190,7 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener } private static void createAndShowGUI(Engine r) { - JFrame frame = new JFrame("Iris Vision"); + JFrame frame = new JFrame(IrisLanguage.plain(DesktopUiMessages.VISION_TITLE)); VisionGUI nv = new VisionGUI(frame); nv.engine = r; nv.overlay = GuiHost.get().overlayFor(r); @@ -208,7 +210,7 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener toolbar.setBackground(new Color(22, 22, 28)); toolbar.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, new Color(45, 45, 55))); - JLabel modeLabel = new JLabel("View:"); + JLabel modeLabel = new JLabel(IrisLanguage.plain(DesktopUiMessages.VISION_VIEW)); modeLabel.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 11)); modeLabel.setForeground(TEXT_SECONDARY); modeLabel.setBorder(BorderFactory.createEmptyBorder(0, 6, 0, 2)); @@ -232,15 +234,15 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener toolbar.add(createToolbarSeparator()); - JToggleButton gridBtn = createToolbarToggle("Grid", nv.grid); + JToggleButton gridBtn = createToolbarToggle(IrisLanguage.plain(DesktopUiMessages.VISION_GRID), nv.grid); gridBtn.addActionListener(e -> { nv.toggleGrid(); gridBtn.setSelected(nv.grid); }); toolbar.add(gridBtn); - JToggleButton followBtn = createToolbarToggle("Follow", nv.follow); + JToggleButton followBtn = createToolbarToggle(IrisLanguage.plain(DesktopUiMessages.VISION_FOLLOW), nv.follow); followBtn.addActionListener(e -> { nv.toggleFollow(); followBtn.setSelected(nv.follow); }); toolbar.add(followBtn); - JToggleButton qualityBtn = createToolbarToggle("LQ", nv.lowtile); + JToggleButton qualityBtn = createToolbarToggle(IrisLanguage.plain(DesktopUiMessages.VISION_LOW_QUALITY_SHORT), nv.lowtile); qualityBtn.addActionListener(e -> { nv.toggleQuality(); qualityBtn.setSelected(nv.lowtile); }); toolbar.add(qualityBtn); @@ -336,9 +338,9 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener if (e.getKeyCode() == KeyEvent.VK_ALT) alt = false; if (e.getKeyCode() == KeyEvent.VK_F) { toggleFollow(); return; } - if (e.getKeyCode() == KeyEvent.VK_R) { dump(); notify("Refreshing"); return; } + if (e.getKeyCode() == KeyEvent.VK_R) { dump(); notify(IrisLanguage.plain(DesktopUiMessages.VISION_REFRESHING)); return; } if (e.getKeyCode() == KeyEvent.VK_P) { toggleQuality(); return; } - if (e.getKeyCode() == KeyEvent.VK_E) { eco = !eco; dump(); notify((eco ? "30" : "60") + " FPS"); return; } + if (e.getKeyCode() == KeyEvent.VK_E) { eco = !eco; dump(); notify(IrisLanguage.plain(DesktopUiMessages.VISION_FPS, MessageArgument.trusted("fps", eco ? 30 : 60))); return; } if (e.getKeyCode() == KeyEvent.VK_G) { toggleGrid(); return; } if (e.getKeyCode() == KeyEvent.VK_EQUALS) { @@ -356,7 +358,7 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener if (e.getKeyCode() == KeyEvent.VK_BACK_SLASH) { mscale = 1D; dump(); - notify("Zoom Reset"); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_ZOOM_RESET)); return; } @@ -378,7 +380,18 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener } private static String modeName(RenderType type) { - return Form.capitalizeWords(type.name().toLowerCase().replaceAll("\\Q_\\E", " ")); + return IrisLanguage.plain(switch (type) { + case BIOME -> DesktopUiMessages.VISION_MODE_BIOME; + case BIOME_LAND -> DesktopUiMessages.VISION_MODE_BIOME_LAND; + case BIOME_SEA -> DesktopUiMessages.VISION_MODE_BIOME_SEA; + case REGION -> DesktopUiMessages.VISION_MODE_REGION; + case CAVE_LAND -> DesktopUiMessages.VISION_MODE_CAVE_LAND; + case HEIGHT -> DesktopUiMessages.VISION_MODE_HEIGHT; + case OBJECT_LOAD -> DesktopUiMessages.VISION_MODE_OBJECT_LOAD; + case DECORATOR_LOAD -> DesktopUiMessages.VISION_MODE_DECORATOR_LOAD; + case CONTINENT -> DesktopUiMessages.VISION_MODE_CONTINENT; + case LAYER_LOAD -> DesktopUiMessages.VISION_MODE_LAYER_LOAD; + }); } void setRenderType(RenderType type) { @@ -389,25 +402,25 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener void toggleGrid() { grid = !grid; - notify("Grid " + (grid ? "On" : "Off")); + notify(IrisLanguage.plain(grid ? DesktopUiMessages.VISION_GRID_ENABLED : DesktopUiMessages.VISION_GRID_DISABLED)); } void toggleFollow() { follow = !follow; if (followMarker != null && follow) { - notify("Following " + followMarker.label()); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_FOLLOWING, MessageArgument.untrusted("player", followMarker.label()))); } else if (follow) { - notify("No player in world"); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_NO_PLAYER)); follow = false; } else { - notify("Follow disabled"); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_FOLLOW_DISABLED)); } } void toggleQuality() { lowtile = !lowtile; dump(); - notify((lowtile ? "Low" : "High") + " Quality"); + notify(IrisLanguage.plain(lowtile ? DesktopUiMessages.VISION_LOW_QUALITY : DesktopUiMessages.VISION_HIGH_QUALITY)); } private void syncModeButtons() { @@ -638,13 +651,21 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener double wz = getWorldZ(h / 2.0); int fps = frameMs > 0 ? (int) (1000.0 / frameMs) : 0; - String left = String.format(" %s | %.1f bpp | %s x %s blocks", - modeName(currentType), mscale, - Form.f((int) (mscale * w)), Form.f((int) (mscale * h))); + String left = IrisLanguage.plain( + DesktopUiMessages.VISION_STATUS_LEFT, + MessageArgument.trusted("mode", modeName(currentType)), + MessageArgument.trusted("bpp", Form.f(mscale, 1)), + MessageArgument.trusted("width", Form.f((int) (mscale * w))), + MessageArgument.trusted("height", Form.f((int) (mscale * h))) + ); g.drawString(left, 8, y + 17); - String right = String.format("X: %s Z: %s | %d FPS ", - Form.f((int) wx), Form.f((int) wz), fps); + String right = IrisLanguage.plain( + DesktopUiMessages.VISION_STATUS_RIGHT, + MessageArgument.trusted("x", Form.f((int) wx)), + MessageArgument.trusted("z", Form.f((int) wz)), + MessageArgument.trusted("fps", fps) + ); int rw = g.getFontMetrics().stringWidth(right); g.drawString(right, w - rw - 8, y + 17); @@ -690,9 +711,18 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener KList k = new KList<>(); k.add(nearest.label()); - k.add("Pos: " + (int) nearest.worldX() + ", " + (int) nearest.worldY() + ", " + (int) nearest.worldZ()); + k.add(IrisLanguage.plain( + DesktopUiMessages.VISION_ENTITY_POSITION, + MessageArgument.trusted("x", (int) nearest.worldX()), + MessageArgument.trusted("y", (int) nearest.worldY()), + MessageArgument.trusted("z", (int) nearest.worldZ()) + )); if (nearest.maxHealth() > 0) { - k.add("HP: " + Form.f(nearest.health(), 1) + " / " + Form.f(nearest.maxHealth(), 1)); + k.add(IrisLanguage.plain( + DesktopUiMessages.VISION_ENTITY_HEALTH, + MessageArgument.trusted("health", Form.f(nearest.health(), 1)), + MessageArgument.trusted("maximum", Form.f(nearest.maxHealth(), 1)) + )); } drawCard(w - CARD_PAD, CARD_PAD, 1, 0, g, k); } @@ -737,37 +767,37 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener KList l = new KList<>(); l.add(biome.getName()); l.add(region.getName()); - l.add("Block " + (int) getWorldX(hx) + ", " + (int) getWorldZ(hz)); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_BLOCK_POSITION, MessageArgument.trusted("x", (int) getWorldX(hx)), MessageArgument.trusted("z", (int) getWorldZ(hz)))); if (detailed) { - l.add("Chunk " + ((int) getWorldX(hx) >> 4) + ", " + ((int) getWorldZ(hz) >> 4)); - l.add("Region " + (((int) getWorldX(hx) >> 4) >> 5) + ", " + (((int) getWorldZ(hz) >> 4) >> 5)); - l.add("Key: " + biome.getLoadKey()); - l.add("File: " + biome.getLoadFile()); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_CHUNK_POSITION, MessageArgument.trusted("x", (int) getWorldX(hx) >> 4), MessageArgument.trusted("z", (int) getWorldZ(hz) >> 4))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_REGION_POSITION, MessageArgument.trusted("x", (int) getWorldX(hx) >> 9), MessageArgument.trusted("z", (int) getWorldZ(hz) >> 9))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_BIOME_KEY, MessageArgument.untrusted("key", biome.getLoadKey()))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_BIOME_FILE, MessageArgument.untrusted("file", String.valueOf(biome.getLoadFile())))); } drawCard((float) hx + 16, (float) hz, 0, 0, g, l); } private void renderOverlayDebug(Graphics2D g) { KList l = new KList<>(); - l.add("Velocity: " + (int) velocity); - l.add("Tiles: " + positions.size() + " HD / " + fastpositions.size() + " LQ"); - l.add("Workers: " + working.size() + " HD / " + workingfast.size() + " LQ"); - l.add("Center: " + Form.f((int) getWorldX(getWidth() / 2.0)) + ", " + Form.f((int) getWorldZ(getHeight() / 2.0))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_VELOCITY, MessageArgument.trusted("velocity", (int) velocity))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_TILES, MessageArgument.trusted("high", positions.size()), MessageArgument.trusted("low", fastpositions.size()))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_WORKERS, MessageArgument.trusted("high", working.size()), MessageArgument.trusted("low", workingfast.size()))); + l.add(IrisLanguage.plain(DesktopUiMessages.VISION_CENTER, MessageArgument.trusted("x", Form.f((int) getWorldX(getWidth() / 2.0))), MessageArgument.trusted("z", Form.f((int) getWorldZ(getHeight() / 2.0))))); drawCard(CARD_PAD, h - STATUS_HEIGHT - CARD_PAD, 0, 1, g, l); } private void renderOverlayHelp(Graphics2D g) { KList keys = new KList<>(); KList descs = new KList<>(); - keys.add("/"); descs.add("Toggle help"); - keys.add("R"); descs.add("Refresh tiles"); - keys.add("F"); descs.add("Follow player"); - keys.add("+/-"); descs.add("Zoom in/out"); - keys.add("\\"); descs.add("Reset zoom"); - keys.add("M"); descs.add("Cycle render mode"); - keys.add("P"); descs.add("Toggle tile quality"); - keys.add("E"); descs.add("Toggle 30/60 FPS"); - keys.add("G"); descs.add("Toggle grid"); + keys.add("/"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_TOGGLE)); + keys.add("R"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_REFRESH)); + keys.add("F"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_FOLLOW)); + keys.add("+/-"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_ZOOM)); + keys.add("\\"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_RESET_ZOOM)); + keys.add("M"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_CYCLE_MODE)); + keys.add("P"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_QUALITY)); + keys.add("E"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_FPS)); + keys.add("G"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_GRID)); int ff = 0; for (RenderType i : RenderType.values()) { @@ -776,9 +806,9 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener descs.add(modeName(i)); } - keys.add("Shift"); descs.add("Detailed biome info"); - keys.add("Ctrl+Click"); descs.add("Teleport to cursor"); - keys.add("Alt+Click"); descs.add("Open biome in editor"); + keys.add("Shift"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_BIOME)); + keys.add("Ctrl+Click"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_TELEPORT)); + keys.add("Alt+Click"); descs.add(IrisLanguage.plain(DesktopUiMessages.VISION_HELP_EDITOR)); int maxKeyW = 0; g.setFont(FONT_HELP_KEY); @@ -907,18 +937,18 @@ public class VisionGUI extends JPanel implements MouseWheelListener, KeyListener } String opened = overlay.openInEditor(getWorldX(hx), getWorldZ(hz), currentType); if (opened != null) { - notify("Opened " + opened); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_OPENED, MessageArgument.untrusted("target", opened))); } } private void teleport() { if (overlay == null) { - notify("No player in world"); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_NO_PLAYER)); return; } int xx = (int) getWorldX(hx); int zz = (int) getWorldZ(hz); overlay.teleport(xx, zz); - notify("Teleporting to " + xx + ", " + zz); + notify(IrisLanguage.plain(DesktopUiMessages.VISION_TELEPORTING, MessageArgument.trusted("x", xx), MessageArgument.trusted("z", zz))); } } diff --git a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java b/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java index 52ec07a51..c836774e6 100644 --- a/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java +++ b/core/src/main/java/art/arcane/iris/core/lifecycle/PaperLibBootstrap.java @@ -30,7 +30,7 @@ public final class PaperLibBootstrap { } PaperLib.setCustomEnvironment(new ModernPaperEnvironment()); - IrisLogging.info("PaperLib version detection failed for MC " + bukkitVersion + "; forced modern Paper environment"); + IrisLogging.debug("Installed forced-modern Paper environment for MC " + bukkitVersion + "; bundled PaperLib predates the two-digit version scheme"); } static boolean isModernVersionScheme(String bukkitVersion) { diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java b/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java new file mode 100644 index 000000000..176c79262 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessages.java @@ -0,0 +1,365 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class BukkitCommandMessages { + public static final TextKey COMMAND_DATAPACK_STARTING_DATAPACK_INGEST = TextKey.of( + "iris.bukkit.commanddatapack.starting_datapack_ingest", + C.GRAY + "Starting datapack ingest..." + ); + public static final TextKey COMMAND_DATAPACK_CONFIGURED_DATAPACK_IMPORTS = TextKey.of( + "iris.bukkit.commanddatapack.configured_datapack_imports", + C.GREEN + "Configured datapack imports: " + C.WHITE + "{value}" + ); + public static final TextKey COMMAND_DATAPACK_MESSAGE = TextKey.of( + "iris.bukkit.commanddatapack.message", + C.GRAY + " - " + C.WHITE + "{url}" + ); + public static final TextKey COMMAND_DATAPACK_INSTALLED_DATAPACKS = TextKey.of( + "iris.bukkit.commanddatapack.installed_datapacks", + C.GREEN + "Installed datapacks: " + C.WHITE + "{value}" + ); + public static final TextKey COMMAND_DATAPACK_MESSAGE_2 = TextKey.of( + "iris.bukkit.commanddatapack.message_2", + C.GRAY + " - " + C.WHITE + "{value}" + C.GRAY + " " + "{value2}" + ); + public static final TextKey COMMAND_DATAPACK_ADD_MODRINTH_URLS_DIMENSION_S_DATAPACKIMPORTS_LIST_THEN_RUN_IRIS = TextKey.of( + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris", + C.YELLOW + "Add Modrinth URLs to a dimension's 'datapackImports' list, then run /iris datapack ingest." + ); + public static final TextKey COMMAND_DEVELOPER_GENHASH_STARTED_CHUNKS = TextKey.of( + "iris.bukkit.commanddeveloper.genhash_started_chunks", + C.GREEN + "genhash started: " + "{value}" + " chunks..." + ); + public static final TextKey COMMAND_DEVELOPER_GENHASH_FAILED_AT_CHUNK = TextKey.of( + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk", + C.RED + "genhash failed at chunk " + "{rx}" + "," + "{rz}" + ": " + "{value}" + ); + public static final TextKey COMMAND_DEVELOPER_GENHASH_GLOBAL_CHUNKS_SOLID = TextKey.of( + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid", + C.GREEN + "genhash global=" + C.GOLD + "{value}" + C.GREEN + " chunks=" + "{value2}" + " solid=" + "{solidBlocks}" + " in " + "{value3}" + ); + public static final TextKey COMMAND_FIND_NOT_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandfind.not_iris_world", + C.GOLD + "Not in an Iris World!" + ); + public static final TextKey COMMAND_FIND_UNKNOWN_STRUCTURE = TextKey.of( + "iris.bukkit.commandfind.unknown_structure", + C.RED + "Unknown structure: " + "{structureKey}" + ); + public static final TextKey COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE = TextKey.of( + "iris.bukkit.commandfind.run_this_game_teleport_structure", + C.GOLD + "Run this in-game to teleport to a structure." + ); + public static final TextKey COMMAND_FIND_LOCATING = TextKey.of( + "iris.bukkit.commandfind.locating", + C.GRAY + "Locating " + "{structureKey}" + "..." + ); + public static final TextKey COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE_2 = TextKey.of( + "iris.bukkit.commandfind.run_this_game_teleport_structure_2", + C.GOLD + "Run this in-game to teleport to a structure." + ); + public static final TextKey COMMAND_FIND_LOCATING_2 = TextKey.of( + "iris.bukkit.commandfind.locating_2", + C.GRAY + "Locating " + "{structure}" + "..." + ); + public static final TextKey COMMAND_FIND_TELEPORTED = TextKey.of( + "iris.bukkit.commandfind.teleported", + C.GREEN + "Teleported to " + "{structure}" + " @ " + "{value}" + ", " + "{y}" + ", " + "{value2}" + ); + public static final TextKey COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER = TextKey.of( + "iris.bukkit.commandiris.successfully_removed_world_folder", + C.GREEN + "Successfully removed world folder" + ); + public static final TextKey COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER_2 = TextKey.of( + "iris.bukkit.commandiris.successfully_removed_world_folder_2", + C.GREEN + "Successfully removed world folder" + ); + public static final TextKey COMMAND_IRIS_FAILED_REMOVE_WORLD_FOLDER = TextKey.of( + "iris.bukkit.commandiris.failed_remove_world_folder", + C.RED + "Failed to remove world folder" + ); + public static final TextKey COMMAND_OBJECT_NO_PACKS_WITH_OBJECTS_WERE_FOUND_ON_THIS_SERVER = TextKey.of( + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server", + C.RED + "No packs with objects were found on this server." + ); + public static final TextKey COMMAND_OBJECT_NO_OBJECTS_PLACE_ACROSS_SELECTED_PACK_S = TextKey.of( + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s", + C.RED + "No objects to place across the selected pack(s)." + ); + public static final TextKey COMMAND_OBJECT_OPENING_OBJECT_STUDIO_OBJECTS = TextKey.of( + "iris.bukkit.commandobject.opening_object_studio_objects", + C.GREEN + "Opening Object Studio for " + "{scope}" + " (" + "{totalObjects}" + " objects)" + ); + public static final TextKey COMMAND_OBJECT_FAILED_OPEN_OBJECT_STUDIO = TextKey.of( + "iris.bukkit.commandobject.failed_open_object_studio", + C.RED + "Failed to open object studio: " + "{value}" + ); + public static final TextKey COMMAND_PACK_YOU_MUST_SPECIFY_PACK_NAME = TextKey.of( + "iris.bukkit.commandpack.you_must_specify_pack_name", + C.RED + "You must specify a pack name." + ); + public static final TextKey COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS = TextKey.of( + "iris.bukkit.commandpack.pack_not_found_under_packs", + C.RED + "Pack '" + "{pack}" + "' not found under packs/." + ); + public static final TextKey COMMAND_PACK_MESSAGE = TextKey.of( + "iris.bukkit.commandpack.message", + C.GRAY + " - " + "{label}" + ": " + "{value}" + ); + public static final TextKey COMMAND_PACK_MORE = TextKey.of( + "iris.bukkit.commandpack.more", + C.GRAY + " ... and " + "{value}" + " more." + ); + public static final TextKey COMMAND_STRUCTURE_VERIFYING_STRUCTURES_FROM_WITHIN_CHUNKS = TextKey.of( + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks", + C.GREEN + "Verifying structures in " + C.WHITE + "{value}" + C.GREEN + " from " + "{value2}" + "," + "{value3}" + " within " + "{searchRadius}" + " chunks..." + ); + public static final TextKey COMMAND_STUDIO_IMPORTING_VANILLA_CONTENT_INTO = TextKey.of( + "iris.bukkit.commandstudio.importing_vanilla_content_into", + C.GREEN + "Importing vanilla content into " + C.WHITE + "{value}" + C.GREEN + "..." + ); + public static final TextKey COMMAND_STUDIO_IMPORTVANILLA_COMPLETE_OBJECTS_STRUCTURES_WRITTEN_FAILED = TextKey.of( + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed", + C.GREEN + "importvanilla complete: " + C.WHITE + "{imported}" + C.GREEN + " objects/structures written, " + C.WHITE + "{failed}" + C.GREEN + " failed." + ); + public static final TextKey COMMAND_STUDIO_TREES_OBJECTS_ARE_UNDER_OBJECTS_VANILLA_REFERENCE_THEM_FROM_BIOME = TextKey.of( + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome", + C.GRAY + "Trees/objects are under objects/vanilla/...; reference them from biome object placements." + ); + public static final TextKey COMMAND_STUDIO_NO_OPEN_STUDIO_PROJECTS = TextKey.of( + "iris.bukkit.commandstudio.no_open_studio_projects", + C.RED + "No open studio projects." + ); + public static final TextKey COMMAND_STUDIO_CLOSING_STUDIO = TextKey.of( + "iris.bukkit.commandstudio.closing_studio", + C.YELLOW + "Closing studio..." + ); + public static final TextKey COMMAND_STUDIO_STUDIO_CLOSE_FAILED = TextKey.of( + "iris.bukkit.commandstudio.studio_close_failed", + C.RED + "Studio close failed: " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_STUDIO_CLOSE_FAILED_2 = TextKey.of( + "iris.bukkit.commandstudio.studio_close_failed_2", + C.RED + "Studio close failed: " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_STUDIO_CLOSED_REMAINING_WORLD_FAMILY_CLEANUP_WAS_QUEUED_STARTUP_FALLBACK = TextKey.of( + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback", + C.YELLOW + "Studio closed. Remaining world-family cleanup was queued for startup fallback." + ); + public static final TextKey COMMAND_STUDIO_STUDIO_CLOSED = TextKey.of( + "iris.bukkit.commandstudio.studio_closed", + C.GREEN + "Studio closed." + ); + public static final TextKey COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD_TOGGLE_DEBUG_SCOREBOARD = TextKey.of( + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard", + C.RED + "You must be in a Studio world to toggle the debug scoreboard." + ); + public static final TextKey COMMAND_STUDIO_STUDIO_DEBUG_SCOREBOARD = TextKey.of( + "iris.bukkit.commandstudio.studio_debug_scoreboard", + "{value}" + "Studio debug scoreboard " + "{value2}" + ); + public static final TextKey COMMAND_STUDIO_COULD_NOT_UPDATE_STUDIO_DEBUG_SCOREBOARD_RIGHT_NOW = TextKey.of( + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now", + C.RED + "Could not update the Studio debug scoreboard right now." + ); + public static final TextKey COMMAND_STUDIO_OPENED_INVENTORY = TextKey.of( + "iris.bukkit.commandstudio.opened_inventory", + C.GREEN + "Opened inventory!" + ); + public static final TextKey COMMAND_STUDIO_GENERATING_DATA = TextKey.of( + "iris.bukkit.commandstudio.generating_data", + C.GRAY + "Generating data..." + ); + public static final TextKey COMMAND_STUDIO_DONE = TextKey.of( + "iris.bukkit.commandstudio.done", + C.GREEN + "Done!" + ); + public static final TextKey COMMAND_STUDIO_MESSAGE = TextKey.of( + "iris.bukkit.commandstudio.message", + C.GREEN + "{k}" + ": " + "{value}" + " / " + "{value2}" + "%" + ); + public static final TextKey COMMAND_S_V_C_YOU_LACK_PERMISSION = TextKey.of( + "iris.bukkit.commandsvc.you_lack_permission", + "You lack the Permission '" + "{ROOTPERMISSION}" + "'" + ); + public static final TextKey IRIS_ENGINE_STATUS_MESSAGE = TextKey.of( + "iris.bukkit.irisenginestatus.message", + C.DARK_PURPLE + "-------------------------" + ); + public static final TextKey IRIS_ENGINE_STATUS_STATUS = TextKey.of( + "iris.bukkit.irisenginestatus.status", + C.DARK_PURPLE + "Status:" + ); + public static final TextKey IRIS_ENGINE_STATUS_SERVICE = TextKey.of( + "iris.bukkit.irisenginestatus.service", + C.DARK_PURPLE + "- Service: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_METRICS = TextKey.of( + "iris.bukkit.irisenginestatus.metrics", + C.DARK_PURPLE + "- Metrics: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_MAINTENANCE_PERIOD = TextKey.of( + "iris.bukkit.irisenginestatus.maintenance_period", + C.DARK_PURPLE + "- Maintenance Period: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_WORKER_PARALLELISM = TextKey.of( + "iris.bukkit.irisenginestatus.worker_parallelism", + C.DARK_PURPLE + "- Worker Parallelism: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_ACTIVE_WORLD_TASKS = TextKey.of( + "iris.bukkit.irisenginestatus.active_world_tasks", + C.DARK_PURPLE + "- Active World Tasks: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_TECTONIC_PLATES = TextKey.of( + "iris.bukkit.irisenginestatus.tectonic_plates", + C.DARK_PURPLE + "Tectonic Plates:" + ); + public static final TextKey IRIS_ENGINE_STATUS_CONFIGURED_RETENTION = TextKey.of( + "iris.bukkit.irisenginestatus.configured_retention", + C.DARK_PURPLE + "- Configured Retention: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_HEAP_USAGE = TextKey.of( + "iris.bukkit.irisenginestatus.heap_usage", + C.DARK_PURPLE + "- Heap Usage: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_RESIDENT = TextKey.of( + "iris.bukkit.irisenginestatus.resident", + C.DARK_PURPLE + "- Resident: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_QUEUED = TextKey.of( + "iris.bukkit.irisenginestatus.queued", + C.DARK_PURPLE + "- Queued: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_AVERAGE_IDLE_DURATION = TextKey.of( + "iris.bukkit.irisenginestatus.average_idle_duration", + C.DARK_PURPLE + "- Average Idle Duration: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_MAX_IDLE_DURATION = TextKey.of( + "iris.bukkit.irisenginestatus.max_idle_duration", + C.DARK_PURPLE + "- Max Idle Duration: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_MIN_IDLE_DURATION = TextKey.of( + "iris.bukkit.irisenginestatus.min_idle_duration", + C.DARK_PURPLE + "- Min Idle Duration: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_CACHES = TextKey.of( + "iris.bukkit.irisenginestatus.caches", + C.DARK_PURPLE + "Caches:" + ); + public static final TextKey IRIS_ENGINE_STATUS_RESOURCE = TextKey.of( + "iris.bukkit.irisenginestatus.resource", + C.DARK_PURPLE + "- Resource: " + C.LIGHT_PURPLE + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_ENGINE_STATUS_2D_STREAM = TextKey.of( + "iris.bukkit.irisenginestatus.2d_stream", + C.DARK_PURPLE + "- 2D Stream: " + C.LIGHT_PURPLE + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_ENGINE_STATUS_3D_STREAM = TextKey.of( + "iris.bukkit.irisenginestatus.3d_stream", + C.DARK_PURPLE + "- 3D Stream: " + C.LIGHT_PURPLE + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_ENGINE_STATUS_OTHER = TextKey.of( + "iris.bukkit.irisenginestatus.other", + C.DARK_PURPLE + "- Other: " + C.LIGHT_PURPLE + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_ENGINE_STATUS_OTHER_2 = TextKey.of( + "iris.bukkit.irisenginestatus.other_2", + C.DARK_PURPLE + "Other:" + ); + public static final TextKey IRIS_ENGINE_STATUS_IRIS_WORLDS = TextKey.of( + "iris.bukkit.irisenginestatus.iris_worlds", + C.DARK_PURPLE + "- Iris Worlds: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_LOADED_CHUNKS = TextKey.of( + "iris.bukkit.irisenginestatus.loaded_chunks", + C.DARK_PURPLE + "- Loaded Chunks: " + C.LIGHT_PURPLE + "{value}" + ); + public static final TextKey IRIS_ENGINE_STATUS_MESSAGE_2 = TextKey.of( + "iris.bukkit.irisenginestatus.message_2", + C.DARK_PURPLE + "-------------------------" + ); + + private static final List KEYS = List.of( + COMMAND_DATAPACK_STARTING_DATAPACK_INGEST, + COMMAND_DATAPACK_CONFIGURED_DATAPACK_IMPORTS, + COMMAND_DATAPACK_MESSAGE, + COMMAND_DATAPACK_INSTALLED_DATAPACKS, + COMMAND_DATAPACK_MESSAGE_2, + COMMAND_DATAPACK_ADD_MODRINTH_URLS_DIMENSION_S_DATAPACKIMPORTS_LIST_THEN_RUN_IRIS, + COMMAND_DEVELOPER_GENHASH_STARTED_CHUNKS, + COMMAND_DEVELOPER_GENHASH_FAILED_AT_CHUNK, + COMMAND_DEVELOPER_GENHASH_GLOBAL_CHUNKS_SOLID, + COMMAND_FIND_NOT_IRIS_WORLD, + COMMAND_FIND_UNKNOWN_STRUCTURE, + COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE, + COMMAND_FIND_LOCATING, + COMMAND_FIND_RUN_THIS_GAME_TELEPORT_STRUCTURE_2, + COMMAND_FIND_LOCATING_2, + COMMAND_FIND_TELEPORTED, + COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER, + COMMAND_IRIS_SUCCESSFULLY_REMOVED_WORLD_FOLDER_2, + COMMAND_IRIS_FAILED_REMOVE_WORLD_FOLDER, + COMMAND_OBJECT_NO_PACKS_WITH_OBJECTS_WERE_FOUND_ON_THIS_SERVER, + COMMAND_OBJECT_NO_OBJECTS_PLACE_ACROSS_SELECTED_PACK_S, + COMMAND_OBJECT_OPENING_OBJECT_STUDIO_OBJECTS, + COMMAND_OBJECT_FAILED_OPEN_OBJECT_STUDIO, + COMMAND_PACK_YOU_MUST_SPECIFY_PACK_NAME, + COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS, + COMMAND_PACK_MESSAGE, + COMMAND_PACK_MORE, + COMMAND_STRUCTURE_VERIFYING_STRUCTURES_FROM_WITHIN_CHUNKS, + COMMAND_STUDIO_IMPORTING_VANILLA_CONTENT_INTO, + COMMAND_STUDIO_IMPORTVANILLA_COMPLETE_OBJECTS_STRUCTURES_WRITTEN_FAILED, + COMMAND_STUDIO_TREES_OBJECTS_ARE_UNDER_OBJECTS_VANILLA_REFERENCE_THEM_FROM_BIOME, + COMMAND_STUDIO_NO_OPEN_STUDIO_PROJECTS, + COMMAND_STUDIO_CLOSING_STUDIO, + COMMAND_STUDIO_STUDIO_CLOSE_FAILED, + COMMAND_STUDIO_STUDIO_CLOSE_FAILED_2, + COMMAND_STUDIO_STUDIO_CLOSED_REMAINING_WORLD_FAMILY_CLEANUP_WAS_QUEUED_STARTUP_FALLBACK, + COMMAND_STUDIO_STUDIO_CLOSED, + COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD_TOGGLE_DEBUG_SCOREBOARD, + COMMAND_STUDIO_STUDIO_DEBUG_SCOREBOARD, + COMMAND_STUDIO_COULD_NOT_UPDATE_STUDIO_DEBUG_SCOREBOARD_RIGHT_NOW, + COMMAND_STUDIO_OPENED_INVENTORY, + COMMAND_STUDIO_GENERATING_DATA, + COMMAND_STUDIO_DONE, + COMMAND_STUDIO_MESSAGE, + COMMAND_S_V_C_YOU_LACK_PERMISSION, + IRIS_ENGINE_STATUS_MESSAGE, + IRIS_ENGINE_STATUS_STATUS, + IRIS_ENGINE_STATUS_SERVICE, + IRIS_ENGINE_STATUS_METRICS, + IRIS_ENGINE_STATUS_MAINTENANCE_PERIOD, + IRIS_ENGINE_STATUS_WORKER_PARALLELISM, + IRIS_ENGINE_STATUS_ACTIVE_WORLD_TASKS, + IRIS_ENGINE_STATUS_TECTONIC_PLATES, + IRIS_ENGINE_STATUS_CONFIGURED_RETENTION, + IRIS_ENGINE_STATUS_HEAP_USAGE, + IRIS_ENGINE_STATUS_RESIDENT, + IRIS_ENGINE_STATUS_QUEUED, + IRIS_ENGINE_STATUS_AVERAGE_IDLE_DURATION, + IRIS_ENGINE_STATUS_MAX_IDLE_DURATION, + IRIS_ENGINE_STATUS_MIN_IDLE_DURATION, + IRIS_ENGINE_STATUS_CACHES, + IRIS_ENGINE_STATUS_RESOURCE, + IRIS_ENGINE_STATUS_2D_STREAM, + IRIS_ENGINE_STATUS_3D_STREAM, + IRIS_ENGINE_STATUS_OTHER, + IRIS_ENGINE_STATUS_OTHER_2, + IRIS_ENGINE_STATUS_IRIS_WORLDS, + IRIS_ENGINE_STATUS_LOADED_CHUNKS, + IRIS_ENGINE_STATUS_MESSAGE_2 + ); + + private BukkitCommandMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java b/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java new file mode 100644 index 000000000..95c990ccc --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/BukkitCommandMessagesExtended.java @@ -0,0 +1,1055 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class BukkitCommandMessagesExtended { + public static final TextKey COMMAND_DEVELOPER_WORLD_IS_NULL = TextKey.of( + "iris.bukkit.commanddeveloper.world_is_null", + C.RED + "World is null." + ); + public static final TextKey COMMAND_DEVELOPER_TARGET_IRIS_WORLD_BEFORE_READING_MANTLE_DUMP = TextKey.of( + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump", + C.RED + "Target an Iris world before reading a mantle dump." + ); + public static final TextKey COMMAND_DEVELOPER_UPGRADING = TextKey.of( + "iris.bukkit.commanddeveloper.upgrading", + C.GREEN + "Upgrading to " + "{value}" + "..." + ); + public static final TextKey COMMAND_DEVELOPER_DONE_UPGRADING_YOU_CAN_NOW_UPDATE_YOUR_SERVER_VERSION = TextKey.of( + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version", + C.GREEN + "Done upgrading! You can now update your server version to " + "{value}" + ); + public static final TextKey COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER = TextKey.of( + "iris.bukkit.commanddeveloper.radius_must_be_0_greater", + C.RED + "Radius must be 0 or greater." + ); + public static final TextKey COMMAND_DEVELOPER_THIS_IS_NOT_IRIS_WORLD = TextKey.of( + "iris.bukkit.commanddeveloper.this_is_not_iris_world", + C.RED + "This is not an Iris world." + ); + public static final TextKey COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL = TextKey.of( + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null", + C.RED + "The engine access for this world is null." + ); + public static final TextKey COMMAND_DEVELOPER_DELETE_STARTED_CHUNK_S_AROUND_CLEARING_BLOCKS_AIR = TextKey.of( + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air", + C.GREEN + "Delete started: " + C.GOLD + "{chunks}" + C.GREEN + " chunk(s) around " + C.GOLD + "{centerX}" + "," + "{centerZ}" + C.GREEN + ". Clearing blocks to air." + ); + public static final TextKey COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_2 = TextKey.of( + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2", + C.RED + "Radius must be 0 or greater." + ); + public static final TextKey COMMAND_DEVELOPER_YOU_MUST_BE_IRIS_WORLD_USE_REGEN = TextKey.of( + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen", + C.RED + "You must be in an Iris world to use regen." + ); + public static final TextKey COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_GENERATE_NEARBY_CHUNKS_FIRST = TextKey.of( + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first", + C.RED + "The engine access for this world is null. Generate nearby chunks first." + ); + public static final TextKey COMMAND_DEVELOPER_REGEN_STARTED_CHUNK_S_AROUND_DELETING_REGENERATING_PLACE = TextKey.of( + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place", + C.GREEN + "Regen started: " + C.GOLD + "{chunks}" + C.GREEN + " chunk(s) around " + C.GOLD + "{centerX}" + "," + "{centerZ}" + C.GREEN + ". Deleting and regenerating in place." + ); + public static final TextKey COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_3 = TextKey.of( + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3", + C.RED + "Radius must be 0 or greater." + ); + public static final TextKey COMMAND_DEVELOPER_TARGET_MUST_BE_IRIS_WORLD = TextKey.of( + "iris.bukkit.commanddeveloper.target_must_be_iris_world", + C.RED + "Target must be an Iris world." + ); + public static final TextKey COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_2 = TextKey.of( + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2", + C.RED + "The engine access for this world is null." + ); + public static final TextKey COMMAND_DEVELOPER_GOLDENHASH_STARTED_CHUNK_S_AROUND_BUFFERS_WORLD_UNTOUCHED = TextKey.of( + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched", + C.GREEN + "GoldenHash started: " + C.GOLD + "{chunks}" + C.GREEN + " chunk(s) around " + C.GOLD + "{centerX}" + "," + "{centerZ}" + C.GREEN + " in buffers (world untouched)." + ); + public static final TextKey COMMAND_EDIT_PLAYERS_ONLY = TextKey.of( + "iris.bukkit.commandedit.players_only", + C.RED + "Players only!" + ); + public static final TextKey COMMAND_EDIT_NO_STUDIO_WORLD_IS_OPEN = TextKey.of( + "iris.bukkit.commandedit.no_studio_world_is_open", + C.RED + "No studio world is open!" + ); + public static final TextKey COMMAND_EDIT_YOU_MUST_BE_STUDIO_WORLD = TextKey.of( + "iris.bukkit.commandedit.you_must_be_studio_world", + C.RED + "You must be in a studio world!" + ); + public static final TextKey COMMAND_EDIT_CANNOT_OPEN_FILES_HEADLESS_ENVIRONMENTS = TextKey.of( + "iris.bukkit.commandedit.cannot_open_files_headless_environments", + C.RED + "Cannot open files in headless environments!" + ); + public static final TextKey COMMAND_EDIT_DESKTOP_IS_NOT_SUPPORTED_BY_THIS_ENVIRONMENT = TextKey.of( + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment", + C.RED + "Desktop is not supported by this environment!" + ); + public static final TextKey COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM = TextKey.of( + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from", + C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?" + ); + public static final TextKey COMMAND_EDIT_OPENING_VSCODE = TextKey.of( + "iris.bukkit.commandedit.opening_vscode", + C.GREEN + "Opening " + "{value}" + " " + "{value2}" + " in VSCode! " + ); + public static final TextKey COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST = TextKey.of( + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist", + C.RED + "Cant find the file. Or registrant does not exist" + ); + public static final TextKey COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_2 = TextKey.of( + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2", + C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?" + ); + public static final TextKey COMMAND_EDIT_OPENING_VSCODE_2 = TextKey.of( + "iris.bukkit.commandedit.opening_vscode_2", + C.GREEN + "Opening " + "{value}" + " " + "{value2}" + " in VSCode! " + ); + public static final TextKey COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_2 = TextKey.of( + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2", + C.RED + "Cant find the file. Or registrant does not exist" + ); + public static final TextKey COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_3 = TextKey.of( + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3", + C.GOLD + "Cannot find the file; Perhaps it was not loaded directly from a file?" + ); + public static final TextKey COMMAND_EDIT_OPENING_VSCODE_3 = TextKey.of( + "iris.bukkit.commandedit.opening_vscode_3", + C.GREEN + "Opening " + "{value}" + " " + "{value2}" + " in VSCode! " + ); + public static final TextKey COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_3 = TextKey.of( + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3", + C.RED + "Cant find the file. Or registrant does not exist" + ); + public static final TextKey COMMAND_FIND_NOT_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandfind.not_iris_world_5", + C.GOLD + "Not in an Iris World!" + ); + public static final TextKey COMMAND_FIND_NOT_IRIS_WORLD_2 = TextKey.of( + "iris.bukkit.commandfind.not_iris_world_2", + C.GOLD + "Not in an Iris World!" + ); + public static final TextKey COMMAND_FIND_NOT_IRIS_WORLD_3 = TextKey.of( + "iris.bukkit.commandfind.not_iris_world_3", + C.GOLD + "Not in an Iris World!" + ); + public static final TextKey COMMAND_FIND_NOT_IRIS_WORLD_4 = TextKey.of( + "iris.bukkit.commandfind.not_iris_world_4", + C.GOLD + "Not in an Iris World!" + ); + public static final TextKey COMMAND_FIND_OBJECT_STUDIO_TELEPORTING = TextKey.of( + "iris.bukkit.commandfind.object_studio_teleporting", + C.GREEN + "Object Studio: teleporting to " + "{object}" + ); + public static final TextKey COMMAND_FIND_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS = TextKey.of( + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements", + C.RED + "{object}" + " is not configured in any region/biome object placements." + ); + public static final TextKey COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_IRIS_CREATING_WORLDS_AS_IRIS = TextKey.of( + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris", + C.RED + "You cannot use the world name \"iris\" for creating worlds as Iris uses this directory for studio worlds." + ); + public static final TextKey COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD = TextKey.of( + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead", + C.RED + "May we suggest the name \"IrisWorld\" instead?" + ); + public static final TextKey COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_BENCHMARK_CREATING_WORLDS_AS_IRIS = TextKey.of( + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris", + C.RED + "You cannot use the world name \"benchmark\" for creating worlds as Iris uses this directory for Benchmarking Packs." + ); + public static final TextKey COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD_2 = TextKey.of( + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2", + C.RED + "May we suggest the name \"IrisWorld\" instead?" + ); + public static final TextKey COMMAND_IRIS_THAT_FOLDER_ALREADY_EXISTS = TextKey.of( + "iris.bukkit.commandiris.that_folder_already_exists", + C.RED + "That folder already exists!" + ); + public static final TextKey COMMAND_IRIS_COULD_NOT_FIND_DOWNLOAD_DIMENSION = TextKey.of( + "iris.bukkit.commandiris.could_not_find_download_dimension", + C.RED + "Could not find or download dimension \"" + "{resolvedType}" + "\"." + ); + public static final TextKey COMMAND_IRIS_TRY_ONE_OVERWORLD_VANILLA_FLAT_THEEND = TextKey.of( + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend", + C.YELLOW + "Try one of: overworld, vanilla, flat, theend" + ); + public static final TextKey COMMAND_IRIS_DOWNLOAD_MANUALLY_IRIS_DOWNLOAD = TextKey.of( + "iris.bukkit.commandiris.download_manually_iris_download", + C.YELLOW + "Or download manually: /iris download " + "{resolvedType}" + ); + public static final TextKey COMMAND_IRIS_WORLD_STAGING_COMPLETED_RESTART_SERVER_GENERATE_LOAD = TextKey.of( + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load", + C.GREEN + "World staging completed. Restart the server to generate/load \"" + "{worldName}" + "\"." + ); + public static final TextKey COMMAND_IRIS_EXCEPTION_RAISED_DURING_CREATION_SEE_CONSOLE_MORE_DETAILS = TextKey.of( + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details", + C.RED + "Exception raised during creation. See the console for more details." + ); + public static final TextKey COMMAND_IRIS_SUCCESSFULLY_CREATED_YOUR_WORLD = TextKey.of( + "iris.bukkit.commandiris.successfully_created_your_world", + C.GREEN + "Successfully created your world!" + ); + public static final TextKey COMMAND_IRIS_YOUR_WORLD_WILL_AUTOMATICALLY_BE_SET_AS_MAIN_WORLD_WHEN = TextKey.of( + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when", + C.GREEN + "Your world will automatically be set as the main world when the server restarts." + ); + public static final TextKey COMMAND_IRIS_RUNTIME_WORLD_CREATION_IS_DISABLED_ON_FOLIA = TextKey.of( + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia", + C.YELLOW + "Runtime world creation is disabled on Folia." + ); + public static final TextKey COMMAND_IRIS_PREPARING_WORLD_FILES_BUKKIT_YML_NEXT_STARTUP = TextKey.of( + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup", + C.YELLOW + "Preparing world files and bukkit.yml for next startup..." + ); + public static final TextKey COMMAND_IRIS_FAILED_STAGE_WORLD_FILES_DIMENSION = TextKey.of( + "iris.bukkit.commandiris.failed_stage_world_files_dimension", + C.RED + "Failed to stage world files for dimension \"" + "{value}" + "\"." + ); + public static final TextKey COMMAND_IRIS_UPDATED_SERVER_PROPERTIES_LEVEL_NAME = TextKey.of( + "iris.bukkit.commandiris.updated_server_properties_level_name", + C.GREEN + "Updated server.properties level-name to \"" + "{name}" + "\"." + ); + public static final TextKey COMMAND_IRIS_WORLD_WAS_STAGED_BUT_FAILED_UPDATE_SERVER_PROPERTIES_MAIN_WORLD = TextKey.of( + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world", + C.RED + "World was staged, but failed to update server.properties main world." + ); + public static final TextKey COMMAND_IRIS_STAGED_IRIS_WORLD_WITH_GENERATOR_IRIS_SEED = TextKey.of( + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed", + C.GREEN + "Staged Iris world \"" + "{name}" + "\" with generator Iris:" + "{value}" + " and seed " + "{seed}" + "." + ); + public static final TextKey COMMAND_IRIS_THIS_WORLD_IS_NOW_CONFIGURED_AS_MAIN_NEXT_RESTART = TextKey.of( + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart", + C.GREEN + "This world is now configured as main for next restart." + ); + public static final TextKey COMMAND_IRIS_FAILED_UPDATE_BUKKIT_YML = TextKey.of( + "iris.bukkit.commandiris.failed_update_bukkit_yml", + C.RED + "Failed to update bukkit.yml: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_SPECIFIED_PLAYER_DOES_NOT_EXIST = TextKey.of( + "iris.bukkit.commandiris.specified_player_does_not_exist", + C.RED + "The specified player does not exist." + ); + public static final TextKey COMMAND_IRIS_IRIS_V_BY_VOLMIT_SOFTWARE = TextKey.of( + "iris.bukkit.commandiris.iris_v_by_volmit_software", + C.GREEN + "Iris v" + "{value}" + " by Volmit Software" + ); + public static final TextKey COMMAND_IRIS_TO = TextKey.of( + "iris.bukkit.commandiris.to", + C.GREEN + "" + "{value}" + " to " + "{value2}" + ); + public static final TextKey COMMAND_IRIS_TOTAL_HEIGHT = TextKey.of( + "iris.bukkit.commandiris.total_height", + C.GREEN + "Total Height: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_IRIS_WORLDS = TextKey.of( + "iris.bukkit.commandiris.iris_worlds", + C.BLUE + "Iris Worlds: " + ); + public static final TextKey COMMAND_IRIS_MESSAGE = TextKey.of( + "iris.bukkit.commandiris.message", + C.IRIS + "- " + "{value}" + ); + public static final TextKey COMMAND_IRIS_BUKKIT_WORLDS = TextKey.of( + "iris.bukkit.commandiris.bukkit_worlds", + C.GOLD + "Bukkit Worlds: " + ); + public static final TextKey COMMAND_IRIS_MESSAGE_2 = TextKey.of( + "iris.bukkit.commandiris.message_2", + C.GRAY + "- " + "{value}" + ); + public static final TextKey COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS = TextKey.of( + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds", + C.RED + "This is not an Iris world. Iris worlds: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_REMOVING_WORLD = TextKey.of( + "iris.bukkit.commandiris.removing_world", + C.GREEN + "Removing world: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_FAILED_EVACUATE_WORLD = TextKey.of( + "iris.bukkit.commandiris.failed_evacuate_world", + C.RED + "Failed to evacuate world: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_FAILED_UNLOAD_WORLD = TextKey.of( + "iris.bukkit.commandiris.failed_unload_world", + C.RED + "Failed to unload world: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_SUCCESSFULLY_REMOVED_FROM_BUKKIT_YML = TextKey.of( + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml", + C.GREEN + "Successfully removed " + "{value}" + " from bukkit.yml" + ); + public static final TextKey COMMAND_IRIS_LOOKS_LIKE_WORLD_WAS_ALREADY_REMOVED_FROM_BUKKIT_YML = TextKey.of( + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml", + C.YELLOW + "Looks like the world was already removed from bukkit.yml" + ); + public static final TextKey COMMAND_IRIS_FAILED_SAVE_BUKKIT_YML_BECAUSE = TextKey.of( + "iris.bukkit.commandiris.failed_save_bukkit_yml_because", + C.RED + "Failed to save bukkit.yml because of " + "{value}" + ); + public static final TextKey COMMAND_IRIS_SET_DEBUG = TextKey.of( + "iris.bukkit.commandiris.set_debug", + C.GREEN + "Set debug to: " + "{to}" + ); + public static final TextKey COMMAND_IRIS_DOWNLOADING_PACK_BETA_RELEASE = TextKey.of( + "iris.bukkit.commandiris.downloading_pack_beta_release", + C.GREEN + "Downloading pack: " + "{pack}" + " (beta release)" + "{value}" + ); + public static final TextKey COMMAND_IRIS_DOWNLOADING_PACK = TextKey.of( + "iris.bukkit.commandiris.downloading_pack", + C.GREEN + "Downloading pack: " + "{pack}" + "/" + "{branch}" + "{value}" + ); + public static final TextKey COMMAND_IRIS_YOU_MUST_BE_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandiris.you_must_be_iris_world", + C.RED + "You must be in an Iris world" + ); + public static final TextKey COMMAND_IRIS_SENDING_METRICS = TextKey.of( + "iris.bukkit.commandiris.sending_metrics", + C.GREEN + "Sending metrics..." + ); + public static final TextKey COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_2 = TextKey.of( + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2", + C.RED + "This is not an Iris world. Iris worlds: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_UNLOADING_WORLD = TextKey.of( + "iris.bukkit.commandiris.unloading_world", + C.GREEN + "Unloading world: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_WORLD_UNLOADED_SUCCESSFULLY = TextKey.of( + "iris.bukkit.commandiris.world_unloaded_successfully", + C.GREEN + "World unloaded successfully." + ); + public static final TextKey COMMAND_IRIS_FAILED_UNLOAD_WORLD_2 = TextKey.of( + "iris.bukkit.commandiris.failed_unload_world_2", + C.RED + "Failed to unload the world." + ); + public static final TextKey COMMAND_IRIS_FAILED_UNLOAD_WORLD_3 = TextKey.of( + "iris.bukkit.commandiris.failed_unload_world_3", + C.RED + "Failed to unload the world: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_DOESNT_EXIST_ON_SERVER = TextKey.of( + "iris.bukkit.commandiris.doesnt_exist_on_server", + C.YELLOW + "{logicalWorldName}" + " Doesnt exist on the server." + ); + public static final TextKey COMMAND_IRIS_GENERATOR = TextKey.of( + "iris.bukkit.commandiris.generator", + C.BLUE + "Generator: " + "{dimension}" + ); + public static final TextKey COMMAND_IRIS_IS_NOT_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandiris.is_not_iris_world", + C.GOLD + "{logicalWorldName}" + " is not an iris world." + ); + public static final TextKey COMMAND_IRIS_COULD_NOT_DETERMINE_IRIS_DIMENSION = TextKey.of( + "iris.bukkit.commandiris.could_not_determine_iris_dimension", + C.RED + "Could not determine Iris dimension for " + "{logicalWorldName}" + "." + ); + public static final TextKey COMMAND_IRIS_LOADING_WORLD = TextKey.of( + "iris.bukkit.commandiris.loading_world", + C.GREEN + "Loading world: " + "{logicalWorldName}" + ); + public static final TextKey COMMAND_IRIS_FOLIA_CANNOT_LOAD_NEW_WORLDS_AT_RUNTIME_RESTART_SERVER_LOAD = TextKey.of( + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load", + C.YELLOW + "Folia cannot load new worlds at runtime. Restart the server to load \"" + "{logicalWorldName}" + "\"." + ); + public static final TextKey COMMAND_IRIS_LOADED_SUCCESSFULLY = TextKey.of( + "iris.bukkit.commandiris.loaded_successfully", + C.GREEN + "{logicalWorldName}" + " loaded successfully." + ); + public static final TextKey COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_3 = TextKey.of( + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3", + C.RED + "This is not an Iris world. Iris worlds: " + "{value}" + ); + public static final TextKey COMMAND_IRIS_EVACUATING_WORLD = TextKey.of( + "iris.bukkit.commandiris.evacuating_world", + C.GREEN + "Evacuating world" + "{value}" + ); + public static final TextKey COMMAND_OBJECT_OBJECT_SIZE = TextKey.of( + "iris.bukkit.commandobject.object_size", + "Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + "" + ); + public static final TextKey COMMAND_OBJECT_BLOCKS_USED = TextKey.of( + "iris.bukkit.commandobject.blocks_used", + "Blocks Used: " + "{value}" + ); + public static final TextKey COMMAND_OBJECT_BLOCKS_OBJECT = TextKey.of( + "iris.bukkit.commandobject.blocks_object", + "== Blocks in object ==" + ); + public static final TextKey COMMAND_OBJECT_OTHER_BLOCK_TYPES = TextKey.of( + "iris.bukkit.commandobject.other_block_types", + " + " + "{value}" + " other block types" + ); + public static final TextKey COMMAND_OBJECT_CURRENT_OBJECT_SIZE = TextKey.of( + "iris.bukkit.commandobject.current_object_size", + "Current Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + ); + public static final TextKey COMMAND_OBJECT_NEW_OBJECT_SIZE = TextKey.of( + "iris.bukkit.commandobject.new_object_size", + "New Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + ); + public static final TextKey COMMAND_OBJECT_FAILED_SAVE_OBJECT = TextKey.of( + "iris.bukkit.commandobject.failed_save_object", + "Failed to save object " + "{value}" + ": " + "{value2}" + ); + public static final TextKey COMMAND_OBJECT_NO_OBJECTS_MATCHED = TextKey.of( + "iris.bukkit.commandobject.no_objects_matched", + C.RED + "No objects matched: " + "{target}" + ); + public static final TextKey COMMAND_OBJECT_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S = TextKey.of( + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s", + C.IRIS + "Plausibilize [reach=" + "{reach}" + "{value}" + "] queued " + "{value2}" + " object(s)" + ); + public static final TextKey COMMAND_OBJECT_HOLD_YOUR_WAND = TextKey.of( + "iris.bukkit.commandobject.hold_your_wand", + "Hold your wand." + ); + public static final TextKey COMMAND_OBJECT_NO_AREA_SELECTED = TextKey.of( + "iris.bukkit.commandobject.no_area_selected", + "No area selected." + ); + public static final TextKey COMMAND_OBJECT_READY_YOUR_WAND = TextKey.of( + "iris.bukkit.commandobject.ready_your_wand", + "Ready your Wand." + ); + public static final TextKey COMMAND_OBJECT_READY_YOUR_WAND_2 = TextKey.of( + "iris.bukkit.commandobject.ready_your_wand_2", + "Ready your Wand." + ); + public static final TextKey COMMAND_OBJECT_INDICATED_SCALE_EXCEEDS_MAXIMUM_DOWNSCALED_MAXIMUM = TextKey.of( + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum", + C.YELLOW + "Indicated scale exceeds maximum. Downscaled to maximum: " + "{maxScale}" + ); + public static final TextKey COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB = TextKey.of( + "iris.bukkit.commandobject.updated_wand_objects_iob", + "Updated wand for " + "objects/" + "{value}" + ".iob " + ); + public static final TextKey COMMAND_OBJECT_GIVEN_NEW_WAND_OBJECTS_IOB = TextKey.of( + "iris.bukkit.commandobject.given_new_wand_objects_iob", + "Given new wand for " + "objects/" + "{value}" + ".iob " + ); + public static final TextKey COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB_2 = TextKey.of( + "iris.bukkit.commandobject.updated_wand_objects_iob_2", + "Updated wand for " + "objects/" + "{value}" + ".iob " + ); + public static final TextKey COMMAND_OBJECT_PLACED = TextKey.of( + "iris.bukkit.commandobject.placed", + C.IRIS + "Placed " + "{object}" + ); + public static final TextKey COMMAND_OBJECT_YOU_NEED_HOLD_YOUR_WAND = TextKey.of( + "iris.bukkit.commandobject.you_need_hold_your_wand", + C.YELLOW + "You need to hold your wand!" + ); + public static final TextKey COMMAND_OBJECT_FILE_ALREADY_EXISTS_SET_OVERWRITE_TRUE_OVERWRITE_IT = TextKey.of( + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it", + C.RED + "File already exists. Set overwrite=true to overwrite it." + ); + public static final TextKey COMMAND_OBJECT_FAILED_SAVE_OBJECT_BECAUSE_IOEXCEPTION = TextKey.of( + "iris.bukkit.commandobject.failed_save_object_because_ioexception", + C.RED + "Failed to save object because of an IOException: " + "{value}" + ); + public static final TextKey COMMAND_OBJECT_SUCCESSFULLY_OBJECT_SAVED_OBJECTS = TextKey.of( + "iris.bukkit.commandobject.successfully_object_saved_objects", + C.GREEN + "Successfully object to saved: " + "{value}" + "/objects/" + "{name}" + ); + public static final TextKey COMMAND_OBJECT_HOLD_YOUR_WAND_2 = TextKey.of( + "iris.bukkit.commandobject.hold_your_wand_2", + "Hold your wand." + ); + public static final TextKey COMMAND_OBJECT_NO_AREA_SELECTED_2 = TextKey.of( + "iris.bukkit.commandobject.no_area_selected_2", + "No area selected." + ); + public static final TextKey COMMAND_OBJECT_REVERTED_PASTES = TextKey.of( + "iris.bukkit.commandobject.reverted_pastes", + C.BLUE + "Reverted " + "{actualReverts}" + C.BLUE + " pastes!" + ); + public static final TextKey COMMAND_OBJECT_YOU_CAN_T_GET_WORLDEDIT_SELECTION_WITHOUT_WORLDEDIT_YOU_KNOW = TextKey.of( + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know", + C.RED + "You can't get a WorldEdit selection without WorldEdit, you know." + ); + public static final TextKey COMMAND_OBJECT_YOU_DON_T_HAVE_WORLDEDIT_SELECTION_THIS_WORLD = TextKey.of( + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world", + C.RED + "You don't have a WorldEdit selection in this world." + ); + public static final TextKey COMMAND_OBJECT_FRESH_WAND_WITH_YOUR_CURRENT_WORLDEDIT_SELECTION_ON_IT = TextKey.of( + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it", + C.GREEN + "A fresh wand with your current WorldEdit selection on it!" + ); + public static final TextKey COMMAND_OBJECT_POOF_GOOD_LUCK_BUILDING = TextKey.of( + "iris.bukkit.commandobject.poof_good_luck_building", + C.GREEN + "Poof! Good luck building!" + ); + public static final TextKey COMMAND_OBJECT_HOLD_YOUR_WAND_3 = TextKey.of( + "iris.bukkit.commandobject.hold_your_wand_3", + C.YELLOW + "Hold your wand!" + ); + public static final TextKey COMMAND_OBJECT_NO_AREA_SELECTED_3 = TextKey.of( + "iris.bukkit.commandobject.no_area_selected_3", + "No area selected." + ); + public static final TextKey COMMAND_OBJECT_AUTO_SELECT_COMPLETE = TextKey.of( + "iris.bukkit.commandobject.auto_select_complete", + C.GREEN + "Auto-select complete!" + ); + public static final TextKey COMMAND_OBJECT_HOLD_YOUR_WAND_4 = TextKey.of( + "iris.bukkit.commandobject.hold_your_wand_4", + C.YELLOW + "Hold your wand!" + ); + public static final TextKey COMMAND_OBJECT_NO_AREA_SELECTED_4 = TextKey.of( + "iris.bukkit.commandobject.no_area_selected_4", + "No area selected." + ); + public static final TextKey COMMAND_OBJECT_AUTO_SELECT_COMPLETE_2 = TextKey.of( + "iris.bukkit.commandobject.auto_select_complete_2", + C.GREEN + "Auto-select complete!" + ); + public static final TextKey COMMAND_PREGEN_PREGEN_RADIUS_MUST_BE_GREATER_THAN_ZERO_BLOCKS = TextKey.of( + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks", + C.RED + "Pregen radius must be greater than zero blocks." + ); + public static final TextKey COMMAND_PREGEN_STRICT_SERIAL_PREGENERATION_REQUIRES_PAPER_PAPER_COMPATIBLE_SERVER = TextKey.of( + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server", + C.RED + "Strict serial pregeneration requires Paper or a Paper-compatible server." + ); + public static final TextKey COMMAND_PREGEN_ENGINE_ACCESS_THIS_WORLD_IS_NULL = TextKey.of( + "iris.bukkit.commandpregen.engine_access_this_world_is_null", + C.RED + "The engine access for this world is null!" + ); + public static final TextKey COMMAND_PREGEN_PLEASE_MAKE_SURE_WORLD_IS_LOADED_ENGINE_IS_INITIALIZED_GENERATE = TextKey.of( + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate", + C.RED + "Please make sure the world is loaded & the engine is initialized. Generate a new chunk, for example." + ); + public static final TextKey COMMAND_PREGEN_FAILED_START_PREGENERATION_SEE_CONSOLE_DETAILS = TextKey.of( + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details", + C.RED + "Failed to start pregeneration. See console for details." + ); + public static final TextKey COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_STOP = TextKey.of( + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop", + C.YELLOW + "No active pregeneration tasks to stop" + ); + public static final TextKey COMMAND_PREGEN_PAUSED_UNPAUSED_PREGENERATION_TASK_NOW = TextKey.of( + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now", + C.GREEN + "Paused/unpaused pregeneration task, now: " + "{value}" + "." + ); + public static final TextKey COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_PAUSE_UNPAUSE = TextKey.of( + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause", + C.YELLOW + "No active pregeneration tasks to pause/unpause." + ); + public static final TextKey COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASK = TextKey.of( + "iris.bukkit.commandpregen.no_active_pregeneration_task", + C.YELLOW + "No active pregeneration task." + ); + public static final TextKey COMMAND_PREGEN_PREGEN = TextKey.of( + "iris.bukkit.commandpregen.pregen", + C.GREEN + "Pregen " + C.GOLD + "{world}" + C.GREEN + ": " + C.GOLD + "{value}" + "/" + "{value2}" + C.GREEN + " (" + C.GOLD + "{value3}" + "%" + C.GREEN + ")" + "{value4}" + ); + public static final TextKey COMMAND_PREGEN_SPEED_S_ETA_ELAPSED_METHOD = TextKey.of( + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method", + C.GREEN + "Speed: " + C.GOLD + "{value}" + "/s" + C.GREEN + " ETA: " + C.GOLD + "{value2}" + C.GREEN + " Elapsed: " + C.GOLD + "{value3}" + C.GREEN + " Method: " + C.GOLD + "{value4}" + "{value5}" + ); + public static final TextKey COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION = TextKey.of( + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_WROTE_STRUCTURE_INDEX = TextKey.of( + "iris.bukkit.commandstructure.wrote_structure_index", + C.GREEN + "Wrote structure index: " + C.WHITE + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_2 = TextKey.of( + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_IMPORTING_ALL_VANILLA_DATAPACK_STRUCTURES_INTO_OVERWRITE = TextKey.of( + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite", + C.GREEN + "Importing all vanilla & datapack structures into " + C.WHITE + "{value}" + C.GREEN + " (overwrite)..." + ); + public static final TextKey COMMAND_STRUCTURE_IMPORT_COMPLETE_STRUCTURES_OBJECTS_WRITTEN_FAILED = TextKey.of( + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed", + C.GREEN + "Import complete: " + C.WHITE + "{imported}" + C.GREEN + " structures/objects written, " + C.WHITE + "{failed}" + C.GREEN + " failed." + ); + public static final TextKey COMMAND_STRUCTURE_REFERENCE_THEM_FROM_BIOME_REGION_DIMENSION_STRUCTURES_LIST_RUN_IRIS = TextKey.of( + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris", + C.GRAY + "Reference them from a biome/region/dimension 'structures' list, or run /iris structure list " + "{value}" + " to refresh the index. Regenerate chunks for changes to take effect." + ); + public static final TextKey COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_3 = TextKey.of( + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_CAPTURED_STRUCTURES_PLACE_THEM_FROM_STRUCTURES_LIST_REGENERATE_CHUNKS_DELETE = TextKey.of( + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete", + C.GRAY + "Captured " + "{value}" + " structures. Place them from a 'structures' list and regenerate chunks. Delete a structures/*.json to re-capture it." + ); + public static final TextKey COMMAND_STRUCTURE_NO_LOADED_IRIS_WORLD_FOUND_JOIN_CREATE_ONE_FIRST_SEARCH = TextKey.of( + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search", + C.RED + "No loaded Iris world found for " + "{value}" + ". Join or create one first (the search runs against a live world)." + ); + public static final TextKey COMMAND_STRUCTURE_SELECTED_IRIS_WORLD_HAS_NO_ACTIVE_GENERATOR_ENGINE = TextKey.of( + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine", + C.RED + "The selected Iris world has no active generator engine." + ); + public static final TextKey COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_4 = TextKey.of( + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK = TextKey.of( + "iris.bukkit.commandstructure.no_iris_structure_this_pack", + C.RED + "No iris structure '" + "{structure}" + "' in this pack" + ); + public static final TextKey COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL = TextKey.of( + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool", + C.RED + "Structure '" + "{structure}" + "' assembled 0 pieces (check startPool '" + "{value}" + "')" + ); + public static final TextKey COMMAND_STRUCTURE_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234 = TextKey.of( + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234", + C.GREEN + "Structure '" + "{structure}" + "': " + C.WHITE + "{value}" + C.GREEN + " pieces, footprint " + C.WHITE + "{value2}" + "x" + "{value3}" + C.GREEN + " blocks (sample seed 1234)" + ); + public static final TextKey COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_5 = TextKey.of( + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK_2 = TextKey.of( + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2", + C.RED + "No iris structure '" + "{structure}" + "' in this pack" + ); + public static final TextKey COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES = TextKey.of( + "iris.bukkit.commandstructure.structure_assembled_0_pieces", + C.RED + "Structure '" + "{structure}" + "' assembled 0 pieces" + ); + public static final TextKey COMMAND_STRUCTURE_PLACED_PIECES_AT_YOUR_LOCATION = TextKey.of( + "iris.bukkit.commandstructure.placed_pieces_at_your_location", + C.GREEN + "Placed '" + "{structure}" + "' (" + "{value}" + " pieces) at your location." + ); + public static final TextKey COMMAND_STUDIO_OPENING_STUDIO_PACK_SEED = TextKey.of( + "iris.bukkit.commandstudio.opening_studio_pack_seed", + C.GREEN + "Opening studio for the \"" + "{value}" + "\" pack (seed: " + "{seed}" + ")" + ); + public static final TextKey COMMAND_STUDIO_PROVIDE_DIMENSION_PACK_IRIS_STD_IMPORTVANILLA_PACK_DIMENSION = TextKey.of( + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension", + C.RED + "Provide a dimension pack: /iris std importvanilla pack=" + ); + public static final TextKey COMMAND_STUDIO_COULD_NOT_RESOLVE_PACK_DIMENSION = TextKey.of( + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension", + C.RED + "Could not resolve the pack for dimension " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_OPENING_VSCODE_PACK = TextKey.of( + "iris.bukkit.commandstudio.opening_vscode_pack", + C.GREEN + "Opening VSCode for the \"" + "{value}" + "\" pack" + ); + public static final TextKey COMMAND_STUDIO_PACK_HAS_VERSION = TextKey.of( + "iris.bukkit.commandstudio.pack_has_version", + C.GREEN + "The \"" + "{value}" + "\" pack has version: " + "{value2}" + ); + public static final TextKey COMMAND_STUDIO_OPENING_NOISE_EXPLORER = TextKey.of( + "iris.bukkit.commandstudio.opening_noise_explorer", + C.GREEN + "Opening Noise Explorer!" + ); + public static final TextKey COMMAND_STUDIO_CANNOT_ADD_ITEMS_VIRTUAL_INVENTORY_BECAUSE = TextKey.of( + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because", + C.RED + "Cannot add items to virtual inventory because of: " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_OPENING_INVENTORY_NOW = TextKey.of( + "iris.bukkit.commandstudio.opening_inventory_now", + C.GREEN + "Opening inventory now!" + ); + public static final TextKey COMMAND_STUDIO_ONLY_WORKS_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandstudio.only_works_iris_world", + C.RED + "Only works in an Iris world!" + ); + public static final TextKey COMMAND_STUDIO_YOU_NEED_BE_SPECIFY_IRIS_GENERATED_WORLD = TextKey.of( + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world", + C.RED + "You need to be in or specify an Iris-generated world!" + ); + public static final TextKey COMMAND_STUDIO_OPENING_MAP = TextKey.of( + "iris.bukkit.commandstudio.opening_map", + C.GREEN + "Opening map!" + ); + public static final TextKey COMMAND_STUDIO_CALCULATING_PERFORMANCE_METRICS_NOISE_GENERATORS = TextKey.of( + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators", + "Calculating Performance Metrics for Noise generators" + ); + public static final TextKey COMMAND_STUDIO_CALCULATING_INTERPOLATOR_TIMINGS = TextKey.of( + "iris.bukkit.commandstudio.calculating_interpolator_timings", + "Calculating Interpolator Timings..." + ); + public static final TextKey COMMAND_STUDIO_PROCESSING_GENERATOR_SCORES = TextKey.of( + "iris.bukkit.commandstudio.processing_generator_scores", + "Processing Generator Scores: " + ); + public static final TextKey COMMAND_STUDIO_SCORE = TextKey.of( + "iris.bukkit.commandstudio.score", + "Score: " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_DONE = TextKey.of( + "iris.bukkit.commandstudio.done_with_result", + C.GREEN + "Done! " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_YOU_HAVE_BE_IRIS_WORLD_SPAWN_ENTITIES_PROPERLY_TRYING_SPAWN = TextKey.of( + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn", + C.RED + "You have to be in an Iris world to spawn entities properly. Trying to spawn the best we can do." + ); + public static final TextKey COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN = TextKey.of( + "iris.bukkit.commandstudio.no_studio_world_is_open", + C.RED + "No studio world is open!" + ); + public static final TextKey COMMAND_STUDIO_YOU_ARE_ALREADY_STUDIO_WORLD = TextKey.of( + "iris.bukkit.commandstudio.you_are_already_studio_world", + C.RED + "You are already in a studio world!" + ); + public static final TextKey COMMAND_STUDIO_SENDING_YOU_STUDIO_WORLD = TextKey.of( + "iris.bukkit.commandstudio.sending_you_studio_world", + C.GREEN + "Sending you to the studio world!" + ); + public static final TextKey COMMAND_STUDIO_UPDATING_CODE_WORKSPACE = TextKey.of( + "iris.bukkit.commandstudio.updating_code_workspace", + C.GOLD + "Updating Code Workspace for " + "{value}" + "..." + ); + public static final TextKey COMMAND_STUDIO_UPDATED_CODE_WORKSPACE = TextKey.of( + "iris.bukkit.commandstudio.updated_code_workspace", + C.GREEN + "Updated Code Workspace for " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_INVALID_PROJECT_TRY_DELETING_CODE_WORKSPACE_FILE_TRY_AGAIN = TextKey.of( + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again", + C.RED + "Invalid project: " + "{value}" + ". Try deleting the code-workspace file and try again." + ); + public static final TextKey COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD = TextKey.of( + "iris.bukkit.commandstudio.you_must_be_iris_world", + C.RED + "You must be in an Iris world" + ); + public static final TextKey COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD_2 = TextKey.of( + "iris.bukkit.commandstudio.you_must_be_iris_world_2", + "You must be in an iris world." + ); + public static final TextKey COMMAND_STUDIO_CAPTURING_IGENDATA_FROM_NEARBY_CHUNKS = TextKey.of( + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks", + "Capturing IGenData from " + "{value}" + " nearby chunks." + ); + public static final TextKey COMMAND_STUDIO_REPORTED = TextKey.of( + "iris.bukkit.commandstudio.reported", + "Reported to: " + "{value}" + ); + public static final TextKey COMMAND_STUDIO_YOU_MUST_HAVE_SERVER_LAUNCHED_GUIS_ENABLED_SETTINGS = TextKey.of( + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings", + C.RED + "You must have server launched GUIs enabled in the settings!" + ); + public static final TextKey COMMAND_STUDIO_PLAYERS_ONLY = TextKey.of( + "iris.bukkit.commandstudio.players_only", + C.RED + "Players only!" + ); + public static final TextKey COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN_2 = TextKey.of( + "iris.bukkit.commandstudio.no_studio_world_is_open_2", + C.RED + "No studio world is open!" + ); + public static final TextKey COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD = TextKey.of( + "iris.bukkit.commandstudio.you_must_be_studio_world", + C.RED + "You must be in a studio world!" + ); + public static final TextKey COMMAND_WHAT_MATERIAL = TextKey.of( + "iris.bukkit.commandwhat.material", + "Material: " + C.GREEN + "{value}" + ); + public static final TextKey COMMAND_WHAT_FULL = TextKey.of( + "iris.bukkit.commandwhat.full", + "Full: " + C.WHITE + "{value}" + ); + public static final TextKey COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM = TextKey.of( + "iris.bukkit.commandwhat.please_hold_block_item", + "Please hold a block/item" + ); + public static final TextKey COMMAND_WHAT_MATERIAL_2 = TextKey.of( + "iris.bukkit.commandwhat.material_2", + "Material: " + C.GREEN + "{value}" + ); + public static final TextKey COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM_2 = TextKey.of( + "iris.bukkit.commandwhat.please_hold_block_item_2", + "Please hold a block/item" + ); + public static final TextKey COMMAND_WHAT_IBIOME = TextKey.of( + "iris.bukkit.commandwhat.ibiome", + "IBiome: " + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey COMMAND_WHAT_NON_IRIS_BIOME = TextKey.of( + "iris.bukkit.commandwhat.non_iris_biome", + "Non-Iris Biome: " + "{value}" + ); + public static final TextKey COMMAND_WHAT_DATA_PACK_BIOME_ID = TextKey.of( + "iris.bukkit.commandwhat.data_pack_biome_id", + "Data Pack Biome: " + "{value}" + " (ID: " + "{value2}" + ")" + ); + public static final TextKey COMMAND_WHAT_IREGION = TextKey.of( + "iris.bukkit.commandwhat.iregion", + "IRegion: " + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey COMMAND_WHAT_IRIS_WORLDS_ONLY = TextKey.of( + "iris.bukkit.commandwhat.iris_worlds_only", + C.IRIS + "Iris worlds only." + ); + public static final TextKey COMMAND_WHAT_PLEASE_LOOK_AT_ANY_BLOCK_NOT_AT_SKY = TextKey.of( + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky", + "Please look at any block, not at the sky" + ); + public static final TextKey COMMAND_WHAT_MATERIAL_3 = TextKey.of( + "iris.bukkit.commandwhat.material_3", + "Material: " + C.GREEN + "{value}" + ); + public static final TextKey COMMAND_WHAT_FULL_2 = TextKey.of( + "iris.bukkit.commandwhat.full_2", + "Full: " + C.WHITE + "{value}" + ); + public static final TextKey COMMAND_WHAT_STORAGE_BLOCK_LOOT_CAPABLE = TextKey.of( + "iris.bukkit.commandwhat.storage_block_loot_capable", + C.YELLOW + "* Storage Block (Loot Capable)" + ); + public static final TextKey COMMAND_WHAT_LIT_BLOCK_LIGHT_CAPABLE = TextKey.of( + "iris.bukkit.commandwhat.lit_block_light_capable", + C.YELLOW + "* Lit Block (Light Capable)" + ); + public static final TextKey COMMAND_WHAT_FOLIAGE_BLOCK = TextKey.of( + "iris.bukkit.commandwhat.foliage_block", + C.YELLOW + "* Foliage Block" + ); + public static final TextKey COMMAND_WHAT_DECORANT_BLOCK = TextKey.of( + "iris.bukkit.commandwhat.decorant_block", + C.YELLOW + "* Decorant Block" + ); + public static final TextKey COMMAND_WHAT_FLUID_BLOCK = TextKey.of( + "iris.bukkit.commandwhat.fluid_block", + C.YELLOW + "* Fluid Block" + ); + public static final TextKey COMMAND_WHAT_PLANTABLE_FOLIAGE_BLOCK = TextKey.of( + "iris.bukkit.commandwhat.plantable_foliage_block", + C.YELLOW + "* Plantable Foliage Block" + ); + public static final TextKey COMMAND_WHAT_SOLID_BLOCK = TextKey.of( + "iris.bukkit.commandwhat.solid_block", + C.YELLOW + "* Solid Block" + ); + public static final TextKey COMMAND_WHAT_FOUND_NEARBY_MARKERS = TextKey.of( + "iris.bukkit.commandwhat.found_nearby_markers", + "Found " + "{value}" + " Nearby Markers (" + "{marker}" + ")" + ); + public static final TextKey COMMAND_WHAT_IRIS_WORLDS_ONLY_2 = TextKey.of( + "iris.bukkit.commandwhat.iris_worlds_only_2", + C.IRIS + "Iris worlds only." + ); + + private static final List KEYS = List.of( + COMMAND_DEVELOPER_WORLD_IS_NULL, + COMMAND_DEVELOPER_TARGET_IRIS_WORLD_BEFORE_READING_MANTLE_DUMP, + COMMAND_DEVELOPER_UPGRADING, + COMMAND_DEVELOPER_DONE_UPGRADING_YOU_CAN_NOW_UPDATE_YOUR_SERVER_VERSION, + COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER, + COMMAND_DEVELOPER_THIS_IS_NOT_IRIS_WORLD, + COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL, + COMMAND_DEVELOPER_DELETE_STARTED_CHUNK_S_AROUND_CLEARING_BLOCKS_AIR, + COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_2, + COMMAND_DEVELOPER_YOU_MUST_BE_IRIS_WORLD_USE_REGEN, + COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_GENERATE_NEARBY_CHUNKS_FIRST, + COMMAND_DEVELOPER_REGEN_STARTED_CHUNK_S_AROUND_DELETING_REGENERATING_PLACE, + COMMAND_DEVELOPER_RADIUS_MUST_BE_0_GREATER_3, + COMMAND_DEVELOPER_TARGET_MUST_BE_IRIS_WORLD, + COMMAND_DEVELOPER_ENGINE_ACCESS_THIS_WORLD_IS_NULL_2, + COMMAND_DEVELOPER_GOLDENHASH_STARTED_CHUNK_S_AROUND_BUFFERS_WORLD_UNTOUCHED, + COMMAND_EDIT_PLAYERS_ONLY, + COMMAND_EDIT_NO_STUDIO_WORLD_IS_OPEN, + COMMAND_EDIT_YOU_MUST_BE_STUDIO_WORLD, + COMMAND_EDIT_CANNOT_OPEN_FILES_HEADLESS_ENVIRONMENTS, + COMMAND_EDIT_DESKTOP_IS_NOT_SUPPORTED_BY_THIS_ENVIRONMENT, + COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM, + COMMAND_EDIT_OPENING_VSCODE, + COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST, + COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_2, + COMMAND_EDIT_OPENING_VSCODE_2, + COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_2, + COMMAND_EDIT_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM_3, + COMMAND_EDIT_OPENING_VSCODE_3, + COMMAND_EDIT_CANT_FIND_FILE_REGISTRANT_DOES_NOT_EXIST_3, + COMMAND_FIND_NOT_IRIS_WORLD, + COMMAND_FIND_NOT_IRIS_WORLD_2, + COMMAND_FIND_NOT_IRIS_WORLD_3, + COMMAND_FIND_NOT_IRIS_WORLD_4, + COMMAND_FIND_OBJECT_STUDIO_TELEPORTING, + COMMAND_FIND_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS, + COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_IRIS_CREATING_WORLDS_AS_IRIS, + COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD, + COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_BENCHMARK_CREATING_WORLDS_AS_IRIS, + COMMAND_IRIS_MAY_WE_SUGGEST_NAME_IRISWORLD_INSTEAD_2, + COMMAND_IRIS_THAT_FOLDER_ALREADY_EXISTS, + COMMAND_IRIS_COULD_NOT_FIND_DOWNLOAD_DIMENSION, + COMMAND_IRIS_TRY_ONE_OVERWORLD_VANILLA_FLAT_THEEND, + COMMAND_IRIS_DOWNLOAD_MANUALLY_IRIS_DOWNLOAD, + COMMAND_IRIS_WORLD_STAGING_COMPLETED_RESTART_SERVER_GENERATE_LOAD, + COMMAND_IRIS_EXCEPTION_RAISED_DURING_CREATION_SEE_CONSOLE_MORE_DETAILS, + COMMAND_IRIS_SUCCESSFULLY_CREATED_YOUR_WORLD, + COMMAND_IRIS_YOUR_WORLD_WILL_AUTOMATICALLY_BE_SET_AS_MAIN_WORLD_WHEN, + COMMAND_IRIS_RUNTIME_WORLD_CREATION_IS_DISABLED_ON_FOLIA, + COMMAND_IRIS_PREPARING_WORLD_FILES_BUKKIT_YML_NEXT_STARTUP, + COMMAND_IRIS_FAILED_STAGE_WORLD_FILES_DIMENSION, + COMMAND_IRIS_UPDATED_SERVER_PROPERTIES_LEVEL_NAME, + COMMAND_IRIS_WORLD_WAS_STAGED_BUT_FAILED_UPDATE_SERVER_PROPERTIES_MAIN_WORLD, + COMMAND_IRIS_STAGED_IRIS_WORLD_WITH_GENERATOR_IRIS_SEED, + COMMAND_IRIS_THIS_WORLD_IS_NOW_CONFIGURED_AS_MAIN_NEXT_RESTART, + COMMAND_IRIS_FAILED_UPDATE_BUKKIT_YML, + COMMAND_IRIS_SPECIFIED_PLAYER_DOES_NOT_EXIST, + COMMAND_IRIS_IRIS_V_BY_VOLMIT_SOFTWARE, + COMMAND_IRIS_TO, + COMMAND_IRIS_TOTAL_HEIGHT, + COMMAND_IRIS_IRIS_WORLDS, + COMMAND_IRIS_MESSAGE, + COMMAND_IRIS_BUKKIT_WORLDS, + COMMAND_IRIS_MESSAGE_2, + COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS, + COMMAND_IRIS_REMOVING_WORLD, + COMMAND_IRIS_FAILED_EVACUATE_WORLD, + COMMAND_IRIS_FAILED_UNLOAD_WORLD, + COMMAND_IRIS_SUCCESSFULLY_REMOVED_FROM_BUKKIT_YML, + COMMAND_IRIS_LOOKS_LIKE_WORLD_WAS_ALREADY_REMOVED_FROM_BUKKIT_YML, + COMMAND_IRIS_FAILED_SAVE_BUKKIT_YML_BECAUSE, + COMMAND_IRIS_SET_DEBUG, + COMMAND_IRIS_DOWNLOADING_PACK_BETA_RELEASE, + COMMAND_IRIS_DOWNLOADING_PACK, + COMMAND_IRIS_YOU_MUST_BE_IRIS_WORLD, + COMMAND_IRIS_SENDING_METRICS, + COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_2, + COMMAND_IRIS_UNLOADING_WORLD, + COMMAND_IRIS_WORLD_UNLOADED_SUCCESSFULLY, + COMMAND_IRIS_FAILED_UNLOAD_WORLD_2, + COMMAND_IRIS_FAILED_UNLOAD_WORLD_3, + COMMAND_IRIS_DOESNT_EXIST_ON_SERVER, + COMMAND_IRIS_GENERATOR, + COMMAND_IRIS_IS_NOT_IRIS_WORLD, + COMMAND_IRIS_COULD_NOT_DETERMINE_IRIS_DIMENSION, + COMMAND_IRIS_LOADING_WORLD, + COMMAND_IRIS_FOLIA_CANNOT_LOAD_NEW_WORLDS_AT_RUNTIME_RESTART_SERVER_LOAD, + COMMAND_IRIS_LOADED_SUCCESSFULLY, + COMMAND_IRIS_THIS_IS_NOT_IRIS_WORLD_IRIS_WORLDS_3, + COMMAND_IRIS_EVACUATING_WORLD, + COMMAND_OBJECT_OBJECT_SIZE, + COMMAND_OBJECT_BLOCKS_USED, + COMMAND_OBJECT_BLOCKS_OBJECT, + COMMAND_OBJECT_OTHER_BLOCK_TYPES, + COMMAND_OBJECT_CURRENT_OBJECT_SIZE, + COMMAND_OBJECT_NEW_OBJECT_SIZE, + COMMAND_OBJECT_FAILED_SAVE_OBJECT, + COMMAND_OBJECT_NO_OBJECTS_MATCHED, + COMMAND_OBJECT_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S, + COMMAND_OBJECT_HOLD_YOUR_WAND, + COMMAND_OBJECT_NO_AREA_SELECTED, + COMMAND_OBJECT_READY_YOUR_WAND, + COMMAND_OBJECT_READY_YOUR_WAND_2, + COMMAND_OBJECT_INDICATED_SCALE_EXCEEDS_MAXIMUM_DOWNSCALED_MAXIMUM, + COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB, + COMMAND_OBJECT_GIVEN_NEW_WAND_OBJECTS_IOB, + COMMAND_OBJECT_UPDATED_WAND_OBJECTS_IOB_2, + COMMAND_OBJECT_PLACED, + COMMAND_OBJECT_YOU_NEED_HOLD_YOUR_WAND, + COMMAND_OBJECT_FILE_ALREADY_EXISTS_SET_OVERWRITE_TRUE_OVERWRITE_IT, + COMMAND_OBJECT_FAILED_SAVE_OBJECT_BECAUSE_IOEXCEPTION, + COMMAND_OBJECT_SUCCESSFULLY_OBJECT_SAVED_OBJECTS, + COMMAND_OBJECT_HOLD_YOUR_WAND_2, + COMMAND_OBJECT_NO_AREA_SELECTED_2, + COMMAND_OBJECT_REVERTED_PASTES, + COMMAND_OBJECT_YOU_CAN_T_GET_WORLDEDIT_SELECTION_WITHOUT_WORLDEDIT_YOU_KNOW, + COMMAND_OBJECT_YOU_DON_T_HAVE_WORLDEDIT_SELECTION_THIS_WORLD, + COMMAND_OBJECT_FRESH_WAND_WITH_YOUR_CURRENT_WORLDEDIT_SELECTION_ON_IT, + COMMAND_OBJECT_POOF_GOOD_LUCK_BUILDING, + COMMAND_OBJECT_HOLD_YOUR_WAND_3, + COMMAND_OBJECT_NO_AREA_SELECTED_3, + COMMAND_OBJECT_AUTO_SELECT_COMPLETE, + COMMAND_OBJECT_HOLD_YOUR_WAND_4, + COMMAND_OBJECT_NO_AREA_SELECTED_4, + COMMAND_OBJECT_AUTO_SELECT_COMPLETE_2, + COMMAND_PREGEN_PREGEN_RADIUS_MUST_BE_GREATER_THAN_ZERO_BLOCKS, + COMMAND_PREGEN_STRICT_SERIAL_PREGENERATION_REQUIRES_PAPER_PAPER_COMPATIBLE_SERVER, + COMMAND_PREGEN_ENGINE_ACCESS_THIS_WORLD_IS_NULL, + COMMAND_PREGEN_PLEASE_MAKE_SURE_WORLD_IS_LOADED_ENGINE_IS_INITIALIZED_GENERATE, + COMMAND_PREGEN_FAILED_START_PREGENERATION_SEE_CONSOLE_DETAILS, + COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_STOP, + COMMAND_PREGEN_PAUSED_UNPAUSED_PREGENERATION_TASK_NOW, + COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASKS_PAUSE_UNPAUSE, + COMMAND_PREGEN_NO_ACTIVE_PREGENERATION_TASK, + COMMAND_PREGEN_PREGEN, + COMMAND_PREGEN_SPEED_S_ETA_ELAPSED_METHOD, + COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION, + COMMAND_STRUCTURE_WROTE_STRUCTURE_INDEX, + COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_2, + COMMAND_STRUCTURE_IMPORTING_ALL_VANILLA_DATAPACK_STRUCTURES_INTO_OVERWRITE, + COMMAND_STRUCTURE_IMPORT_COMPLETE_STRUCTURES_OBJECTS_WRITTEN_FAILED, + COMMAND_STRUCTURE_REFERENCE_THEM_FROM_BIOME_REGION_DIMENSION_STRUCTURES_LIST_RUN_IRIS, + COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_3, + COMMAND_STRUCTURE_CAPTURED_STRUCTURES_PLACE_THEM_FROM_STRUCTURES_LIST_REGENERATE_CHUNKS_DELETE, + COMMAND_STRUCTURE_NO_LOADED_IRIS_WORLD_FOUND_JOIN_CREATE_ONE_FIRST_SEARCH, + COMMAND_STRUCTURE_SELECTED_IRIS_WORLD_HAS_NO_ACTIVE_GENERATOR_ENGINE, + COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_4, + COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK, + COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL, + COMMAND_STRUCTURE_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234, + COMMAND_STRUCTURE_COULD_NOT_RESOLVE_PACK_DIMENSION_5, + COMMAND_STRUCTURE_NO_IRIS_STRUCTURE_THIS_PACK_2, + COMMAND_STRUCTURE_STRUCTURE_ASSEMBLED_0_PIECES, + COMMAND_STRUCTURE_PLACED_PIECES_AT_YOUR_LOCATION, + COMMAND_STUDIO_OPENING_STUDIO_PACK_SEED, + COMMAND_STUDIO_PROVIDE_DIMENSION_PACK_IRIS_STD_IMPORTVANILLA_PACK_DIMENSION, + COMMAND_STUDIO_COULD_NOT_RESOLVE_PACK_DIMENSION, + COMMAND_STUDIO_OPENING_VSCODE_PACK, + COMMAND_STUDIO_PACK_HAS_VERSION, + COMMAND_STUDIO_OPENING_NOISE_EXPLORER, + COMMAND_STUDIO_CANNOT_ADD_ITEMS_VIRTUAL_INVENTORY_BECAUSE, + COMMAND_STUDIO_OPENING_INVENTORY_NOW, + COMMAND_STUDIO_ONLY_WORKS_IRIS_WORLD, + COMMAND_STUDIO_YOU_NEED_BE_SPECIFY_IRIS_GENERATED_WORLD, + COMMAND_STUDIO_OPENING_MAP, + COMMAND_STUDIO_CALCULATING_PERFORMANCE_METRICS_NOISE_GENERATORS, + COMMAND_STUDIO_CALCULATING_INTERPOLATOR_TIMINGS, + COMMAND_STUDIO_PROCESSING_GENERATOR_SCORES, + COMMAND_STUDIO_SCORE, + COMMAND_STUDIO_DONE, + COMMAND_STUDIO_YOU_HAVE_BE_IRIS_WORLD_SPAWN_ENTITIES_PROPERLY_TRYING_SPAWN, + COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN, + COMMAND_STUDIO_YOU_ARE_ALREADY_STUDIO_WORLD, + COMMAND_STUDIO_SENDING_YOU_STUDIO_WORLD, + COMMAND_STUDIO_UPDATING_CODE_WORKSPACE, + COMMAND_STUDIO_UPDATED_CODE_WORKSPACE, + COMMAND_STUDIO_INVALID_PROJECT_TRY_DELETING_CODE_WORKSPACE_FILE_TRY_AGAIN, + COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD, + COMMAND_STUDIO_YOU_MUST_BE_IRIS_WORLD_2, + COMMAND_STUDIO_CAPTURING_IGENDATA_FROM_NEARBY_CHUNKS, + COMMAND_STUDIO_REPORTED, + COMMAND_STUDIO_YOU_MUST_HAVE_SERVER_LAUNCHED_GUIS_ENABLED_SETTINGS, + COMMAND_STUDIO_PLAYERS_ONLY, + COMMAND_STUDIO_NO_STUDIO_WORLD_IS_OPEN_2, + COMMAND_STUDIO_YOU_MUST_BE_STUDIO_WORLD, + COMMAND_WHAT_MATERIAL, + COMMAND_WHAT_FULL, + COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM, + COMMAND_WHAT_MATERIAL_2, + COMMAND_WHAT_PLEASE_HOLD_BLOCK_ITEM_2, + COMMAND_WHAT_IBIOME, + COMMAND_WHAT_NON_IRIS_BIOME, + COMMAND_WHAT_DATA_PACK_BIOME_ID, + COMMAND_WHAT_IREGION, + COMMAND_WHAT_IRIS_WORLDS_ONLY, + COMMAND_WHAT_PLEASE_LOOK_AT_ANY_BLOCK_NOT_AT_SKY, + COMMAND_WHAT_MATERIAL_3, + COMMAND_WHAT_FULL_2, + COMMAND_WHAT_STORAGE_BLOCK_LOOT_CAPABLE, + COMMAND_WHAT_LIT_BLOCK_LIGHT_CAPABLE, + COMMAND_WHAT_FOLIAGE_BLOCK, + COMMAND_WHAT_DECORANT_BLOCK, + COMMAND_WHAT_FLUID_BLOCK, + COMMAND_WHAT_PLANTABLE_FOLIAGE_BLOCK, + COMMAND_WHAT_SOLID_BLOCK, + COMMAND_WHAT_FOUND_NEARBY_MARKERS, + COMMAND_WHAT_IRIS_WORLDS_ONLY_2 + ); + + private BukkitCommandMessagesExtended() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java b/core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java new file mode 100644 index 000000000..1f8acbba3 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/BukkitRuntimeMessages.java @@ -0,0 +1,795 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.LinesKey; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.PluralKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; +import java.util.Map; + +public final class BukkitRuntimeMessages { + public static final TextKey COMMAND_PACK_PACKS_FOLDER_NOT_FOUND = TextKey.of( + "iris.bukkit.runtime.commandpack.packs_folder_not_found", + C.RED + "packs/ folder not found." + ); + public static final TextKey COMMAND_PACK_NO_PACKS_VALIDATE = TextKey.of( + "iris.bukkit.runtime.commandpack.no_packs_validate", + C.YELLOW + "No packs to validate." + ); + public static final TextKey COMMAND_PACK_VALIDATION_COMPLETE_BROKEN_PACKS = TextKey.of( + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs", + C.GREEN + "Validation complete. Broken packs: " + "{broken}" + "/" + "{value}" + ); + public static final TextKey COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS = TextKey.of( + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs", + C.RED + "Pack '" + "{pack}" + "' not found under packs/." + ); + public static final TextKey COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK = TextKey.of( + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack", + C.GREEN + "No cleanup candidates found for pack '" + "{pack}" + "'." + ); + public static final TextKey COMMAND_PACK_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER = TextKey.of( + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under", + C.GREEN + "Quarantined " + "{size}" + " cleanup candidate(s) under " + "{quarantinePath}" + "." + ); + public static final TextKey COMMAND_PACK_CLEANUP_MODE_MUST_BE_PREVIEW_APPLY = TextKey.of( + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply", + C.RED + "Cleanup mode must be preview or apply." + ); + public static final TextKey COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK_2 = TextKey.of( + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2", + C.GREEN + "No cleanup candidates found for pack '" + "{pack}" + "'." + ); + public static final TextKey COMMAND_PACK_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED = TextKey.of( + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed", + C.YELLOW + "Cleanup preview for pack '" + "{pack}" + "': " + "{size}" + " candidate(s). No files were changed." + ); + public static final TextKey COMMAND_PACK_RUN_IRIS_PACK_CLEANUP_MODE_APPLY_QUARANTINE_THESE_CANDIDATES_AFTER_FRESH_SCAN = TextKey.of( + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan", + C.GRAY + "Run /iris pack cleanup " + "{pack}" + " mode=apply to quarantine these candidates after a fresh scan." + ); + public static final TextKey COMMAND_PACK_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST = TextKey.of( + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist", + C.RED + "Restore refused because " + "{size}" + " destination(s) already exist." + ); + public static final TextKey COMMAND_PACK_NOTHING_RESTORE_PACK = TextKey.of( + "iris.bukkit.runtime.commandpack.nothing_restore_pack", + C.YELLOW + "Nothing to restore for pack '" + "{pack}" + "'." + ); + public static final TextKey COMMAND_PACK_RESTORED_FILE_S_FROM = TextKey.of( + "iris.bukkit.runtime.commandpack.restored_file_s_from", + C.GREEN + "Restored " + "{size}" + " file(s) from " + "{dumpPath}" + "." + ); + public static final TextKey COMMAND_PACK_RESTORE_MODE_MUST_BE_PREVIEW_APPLY = TextKey.of( + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply", + C.RED + "Restore mode must be preview or apply." + ); + public static final TextKey COMMAND_PACK_NOTHING_RESTORE_PACK_2 = TextKey.of( + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2", + C.YELLOW + "Nothing to restore for pack '" + "{pack}" + "'." + ); + public static final TextKey COMMAND_PACK_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED = TextKey.of( + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed", + C.YELLOW + "Restore preview for " + "{dumpPath}" + ": " + "{size}" + " file(s). No files were changed." + ); + public static final TextKey COMMAND_PACK_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S = TextKey.of( + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s", + C.RED + "Restore is blocked by " + "{size}" + " existing destination(s)." + ); + public static final TextKey COMMAND_PACK_RUN_IRIS_PACK_RESTORE_MODE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK = TextKey.of( + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check", + C.GRAY + "Run /iris pack restore " + "{pack}" + " mode=apply to restore after a fresh conflict check." + ); + public static final TextKey COMMAND_PACK_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST = TextKey.of( + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first", + C.YELLOW + "No validation results recorded. Run /iris pack validate first." + ); + public static final TextKey COMMAND_PACK_STATUS_OK = TextKey.of( + "iris.bukkit.runtime.commandpack.status.ok", + C.GREEN + "OK" + C.RESET + " {pack}" + C.GRAY + " (blocking={blocking}, warnings={warnings})" + ); + public static final TextKey COMMAND_PACK_STATUS_BROKEN = TextKey.of( + "iris.bukkit.runtime.commandpack.status.broken", + C.RED + "BROKEN" + C.RESET + " {pack}" + C.GRAY + " (blocking={blocking}, warnings={warnings})" + ); + public static final TextKey COMMAND_PACK_CLEANUP_FAILED = TextKey.of( + "iris.bukkit.runtime.commandpack.cleanup_failed", + C.RED + "Cleanup failed: {error}" + ); + public static final TextKey COMMAND_PACK_RESTORE_FAILED = TextKey.of( + "iris.bukkit.runtime.commandpack.restore_failed", + C.RED + "Restore failed: {error}" + ); + public static final TextKey COMMAND_PACK_PATH_STILL_QUARANTINED = TextKey.of( + "iris.bukkit.runtime.commandpack.path.still_quarantined", + "still quarantined" + ); + public static final TextKey COMMAND_PACK_PATH_QUARANTINED = TextKey.of( + "iris.bukkit.runtime.commandpack.path.quarantined", + "quarantined" + ); + public static final TextKey COMMAND_PACK_PATH_CANDIDATE = TextKey.of( + "iris.bukkit.runtime.commandpack.path.candidate", + "candidate" + ); + public static final TextKey COMMAND_PACK_PATH_CONFLICT = TextKey.of( + "iris.bukkit.runtime.commandpack.path.conflict", + "conflict" + ); + public static final TextKey COMMAND_PACK_PATH_RESTORED = TextKey.of( + "iris.bukkit.runtime.commandpack.path.restored", + "restored" + ); + public static final TextKey COMMAND_PACK_PATH_FILE = TextKey.of( + "iris.bukkit.runtime.commandpack.path.file", + "file" + ); + public static final TextKey COMMAND_PACK_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE = TextKey.of( + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate", + C.YELLOW + "No validation result for '" + "{pack}" + "'. Run /iris pack validate " + "{pack2}" + "." + ); + public static final TextKey COMMAND_PACK_VALIDATION_FAILED = TextKey.of( + "iris.bukkit.runtime.commandpack.validation_failed", + C.RED + "Validation of '" + "{name}" + "' failed: " + "{error}" + ); + public static final TextKey COMMAND_PACK_PACK_IS_LOADABLE_WARNINGS = TextKey.of( + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings", + C.GREEN + "Pack '" + "{packName}" + "' is loadable." + C.GRAY + " (warnings=" + "{size}" + ")" + ); + public static final TextKey COMMAND_PACK_PACK_IS_BROKEN = TextKey.of( + "iris.bukkit.runtime.commandpack.pack_is_broken", + C.RED + "Pack '" + "{packName}" + "' is BROKEN:" + ); + public static final TextKey COMMAND_PACK_MESSAGE = TextKey.of( + "iris.bukkit.runtime.commandpack.message", + C.RED + " - " + "{reason}" + ); + public static final TextKey COMMAND_PACK_MESSAGE_2 = TextKey.of( + "iris.bukkit.runtime.commandpack.message_2", + C.YELLOW + " ! " + "{value}" + ); + public static final PluralKey COMMAND_PACK_MORE_WARNING_S = PluralKey.of( + "iris.bukkit.runtime.commandpack.more_warning_s", + "count", + Map.of( + "one", C.GRAY + " ... and {count} more warning.", + "other", C.GRAY + " ... and {count} more warnings." + ) + ); + public static final LinesKey COMMAND_DEVELOPER_UPDATE_WORLD_WARNING = LinesKey.of( + "iris.bukkit.runtime.commanddeveloper.update_world_warning", + C.RED + "You should always make a backup before using this", + C.YELLOW + "Issues caused by this can be, but are not limited to:", + C.YELLOW + " - Broken chunks (cut-offs) between old and new chunks (before & after the update)", + C.YELLOW + " - Regenerated chunks that do not fit in with the old chunks", + C.YELLOW + " - Structures not spawning again when regenerating", + C.YELLOW + " - Caves not lining up", + C.YELLOW + " - Terrain layers not lining up", + C.RED + "Now that you are aware of the risks, and have made a back-up:", + C.RED + "/iris developer update-world {world} {pack} confirm=true" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_IMPORTING_VANILLA_DATAPACK_STRUCTURES_MODE_INCLUDENONJIGSAW = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw", + C.GREEN + "Importing " + C.WHITE + "{total}" + C.GREEN + " vanilla & datapack structures (mode=" + "{mode}" + ", includeNonJigsaw=" + "{includeNonJigsaw}" + ")..." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key", + C.RED + "[fail] " + "{keyString}" + ": invalid key" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_JIGSAW = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.jigsaw", + C.GRAY + "[jigsaw] " + "{keyString}" + " -> " + "{name}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_SINGLE = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.single", + C.GRAY + "[single] " + "{keyString}" + " -> " + "{name}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_SKIP_NO_SINGLE_TEMPLATE_NBT_VANILLA_BUILDS_THIS_CODE_FROM_SEPARATE_PIECE = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece", + C.YELLOW + "[skip] " + "{keyString}" + ": no single-template NBT - vanilla builds this in code or from separate piece templates (imported via the templates pass); nothing to import as one structure." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_2 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_2", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_3 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_3", + C.RED + "[fail] " + "{keyString}" + ": " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_BULK_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total", + C.GREEN + "Bulk import complete: " + C.WHITE + "{imported}" + C.GREEN + " imported, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed (" + C.WHITE + "{total}" + C.GREEN + " total)." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_BUILDING_SINGLE_TEMPLATE_STRUCTURES_FROM_IMPORTED_PIECES_ONE_VARIANT_PLACED_PER_GENERATION = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation", + C.GREEN + "Building single-template structures from imported pieces (one variant placed per generation)..." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_GROUP_VARIANTS = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.group_variants", + C.GRAY + "[group] " + "{value}" + " -> " + "{value2}" + " (" + "{blocks}" + " variants)" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_SKIP = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.skip", + C.YELLOW + "[skip] " + "{value}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_4 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_4", + C.RED + "[fail] " + "{value}" + ": " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_SINGLE_TEMPLATE_STRUCTURES_BUILT_SKIPPED_FAILED = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed", + C.GREEN + "Single-template structures: " + C.WHITE + "{imported}" + C.GREEN + " built, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAILED_ENUMERATE_STRUCTURE_TEMPLATES_VIA_SERVER_RESOURCEMANAGER = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager", + C.RED + "Failed to enumerate structure templates via the server ResourceManager: " + "{e}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_NO_STRUCTURE_TEMPLATES_WERE_FOUND_UNDER_STRUCTURE_RESOURCE_PATH = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path", + C.YELLOW + "No structure templates were found under the 'structure' resource path." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_IMPORTING_STRUCTURE_TEMPLATES_MODE = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode", + C.GREEN + "Importing " + C.WHITE + "{total}" + C.GREEN + " structure templates (mode=" + "{mode}" + ")..." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_2 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2", + C.RED + "[fail] " + "{keyString}" + ": invalid key" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_5 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_5", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_6 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_6", + C.RED + "[fail] " + "{keyString}" + ": " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_IMPORTED_SKIPPED_FAILED = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed", + C.GRAY + "..." + "{processed}" + "/" + "{total}" + " (" + "{imported}" + " imported, " + "{skipped}" + " skipped, " + "{failed}" + " failed)" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_TEMPLATE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total", + C.GREEN + "Template import complete: " + C.WHITE + "{imported}" + C.GREEN + " imported, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed (" + C.WHITE + "{total}" + C.GREEN + " total)." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_NO_DATAPACK_NON_MINECRAFT_STRUCTURES_ARE_REGISTERED_INGEST_DATAPACK_RESTART_FIRST_THEN = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then", + C.YELLOW + "No datapack (non-minecraft) structures are registered. Ingest a datapack and restart first, then run this again." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURES_MODE = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode", + C.GREEN + "Importing " + C.WHITE + "{total}" + C.GREEN + " datapack structures (mode=" + "{mode}" + ")..." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_3 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3", + C.RED + "[fail] " + "{keyString}" + ": invalid key" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_JIGSAW_2 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2", + C.GRAY + "[jigsaw] " + "{keyString}" + " -> " + "{name}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_SINGLE_2 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.single_2", + C.GRAY + "[single] " + "{keyString}" + " -> " + "{name}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_7 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_7", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_8 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_8", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_9 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_9", + C.RED + "[fail] " + "{keyString}" + ": " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURE_TEMPLATES = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates", + C.GREEN + "Importing " + C.WHITE + "{size}" + C.GREEN + " datapack structure templates..." + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_10 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_10", + C.RED + "[fail] " + "{keyString}" + ": " + "{message}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_FAIL_11 = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.fail_11", + C.RED + "[fail] " + "{keyString}" + ": " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_COULD_NOT_ENUMERATE_DATAPACK_TEMPLATES_VIA_SERVER_RESOURCEMANAGER = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager", + C.YELLOW + "Could not enumerate datapack templates via the server ResourceManager: " + "{error}" + ); + public static final TextKey BULK_STRUCTURE_IMPORTER_DATAPACK_STRUCTURE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED = TextKey.of( + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed", + C.GREEN + "Datapack structure import complete: " + C.WHITE + "{imported}" + C.GREEN + " imported, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed." + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_IS_NOT_SUPPORTED_BY_ACTIVE_NMS_BINDING_SKIPPING_CAPTURE_PASS = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass", + C.YELLOW + "Structure capture is not supported by the active NMS binding; skipping the capture pass." + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_NO_CODE_GENERATED_STRUCTURES_LEFT_CAPTURE_EVERYTHING_IS_ALREADY_IMPORTED_AS_STRUCTURE = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure", + C.GRAY + "No code-generated structures left to capture (everything is already imported as a structure)." + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_CAPTURING_CODE_GENERATED_STRUCTURES_NO_NBT_TEMPLATE_INTO_SCRATCH_WORLD_SKIPPING_ANY = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any", + C.GREEN + "Capturing " + C.WHITE + "{total}" + C.GREEN + " code-generated structures (no NBT template) into a scratch world (skipping any wider/taller than " + "{MAXSPAN}" + " blocks)..." + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_SKIP_DID_NOT_PLACE_CAPTURABLE_STRUCTURE_HERE_TOO_LARGE_WRONG_DIMENSION_NO = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no", + C.YELLOW + "[skip] " + "{key}" + ": did not place a capturable structure here (too large, wrong dimension, or no valid placement in a flat world). Stays vanilla-generated." + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_FAIL = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.fail", + C.RED + "[fail] " + "{key}" + ": " + "{message}" + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_CAPTURE_OBJECTS_IOB_X_X = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x", + C.GRAY + "[capture] " + "{key}" + " -> objects/" + "{name}" + ".iob (" + "{w}" + "x" + "{h}" + "x" + "{d}" + ")" + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_FAIL_2 = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.fail_2", + C.RED + "[fail] " + "{key}" + ": " + "{error}" + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_CAPTURED_SKIPPED_FAILED = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed", + C.GRAY + "..." + "{processed}" + "/" + "{total}" + " (" + "{imported}" + " captured, " + "{skipped}" + " skipped, " + "{failed}" + " failed)" + ); + public static final TextKey STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_COMPLETE_CAPTURED_SKIPPED_FAILED_TOTAL = TextKey.of( + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total", + C.GREEN + "Structure capture complete: " + C.WHITE + "{imported}" + C.GREEN + " captured, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed (" + C.WHITE + "{total}" + C.GREEN + " total)." + ); + public static final TextKey FEATURE_IMPORTER_NO_VANILLA_TREE_OBJECT_FEATURES_ARE_EXPOSED_BY_ACTIVE_NMS_BINDING_IMPORTING = TextKey.of( + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing", + C.YELLOW + "No vanilla tree/object features are exposed by the active NMS binding (importing structures only)." + ); + public static final TextKey FEATURE_IMPORTER_IMPORTING_VANILLA_TREE_OBJECT_FEATURES_VARIANTS_EACH_INTO_SCRATCH_WORLD = TextKey.of( + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world", + C.GREEN + "Importing " + C.WHITE + "{total}" + C.GREEN + " vanilla tree/object features (" + C.WHITE + "{wantVariants}" + C.GREEN + " variants each) into a scratch world..." + ); + public static final TextKey FEATURE_IMPORTER_OBJ_OBJECTS_VANILLA = TextKey.of( + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla", + C.GRAY + "[obj] " + "{key}" + " -> objects/vanilla/" + "{group}" + "/" + "{safeName}" + " (" + "{written}" + ")" + ); + public static final TextKey FEATURE_IMPORTER_SKIP_FEATURE_PLACED_NOTHING_AFTER_RETRIES = TextKey.of( + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries", + C.YELLOW + "[skip] " + "{key}" + ": feature placed nothing after retries." + ); + public static final TextKey FEATURE_IMPORTER_FAIL = TextKey.of( + "iris.bukkit.runtime.featureimporter.fail", + C.RED + "[fail] " + "{key}" + ": " + "{error}" + ); + public static final TextKey FEATURE_IMPORTER_IMPORTED_SKIPPED_FAILED = TextKey.of( + "iris.bukkit.runtime.featureimporter.imported_skipped_failed", + C.GRAY + "..." + "{processed}" + "/" + "{total}" + " (" + "{imported}" + " imported, " + "{skipped}" + " skipped, " + "{failed}" + " failed)" + ); + public static final TextKey FEATURE_IMPORTER_FEATURE_IMPORT_COMPLETE_FEATURES_WRITTEN_SKIPPED_FAILED_TOTAL = TextKey.of( + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total", + C.GREEN + "Feature import complete: " + C.WHITE + "{imported}" + C.GREEN + " features written, " + C.WHITE + "{skipped}" + C.GREEN + " skipped, " + C.WHITE + "{failed}" + C.GREEN + " failed (" + C.WHITE + "{total}" + C.GREEN + " total)." + ); + public static final TextKey FEATURE_IMPORTER_COULD_NOT_CREATE_SCRATCH_WORLD_FEATURE_IMPORT_SKIPPING_TREE_OBJECT_PASS = TextKey.of( + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass", + C.RED + "Could not create the scratch world for feature import (" + "{error}" + "); skipping the tree/object pass." + ); + public static final TextKey IRIS_CONVERTER_NO_SCHEMATIC_FILES_CONVERT_FOUND = TextKey.of( + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found", + "No schematic files to convert found in " + "{path}" + ); + public static final TextKey IRIS_CONVERTER_CONVERTED = TextKey.of( + "iris.bukkit.runtime.irisconverter.converted", + C.IRIS + "Converted " + "{name}" + " -> " + "{value}" + " in " + "{value2}" + ); + public static final TextKey IRIS_CONVERTER_CONVERTED_2 = TextKey.of( + "iris.bukkit.runtime.irisconverter.converted_2", + C.IRIS + "Converted " + "{name}" + " -> " + "{value}" + ); + public static final TextKey IRIS_CONVERTER_FAILED_SAVE = TextKey.of( + "iris.bukkit.runtime.irisconverter.failed_save", + C.RED + "Failed to save: " + "{name}" + ); + public static final TextKey IRIS_CONVERTER_FAILED_CONVERT = TextKey.of( + "iris.bukkit.runtime.irisconverter.failed_convert", + C.RED + "Failed to convert: " + "{name}" + ); + public static final TextKey IRIS_CONVERTER_CONVERTED_3 = TextKey.of( + "iris.bukkit.runtime.irisconverter.converted_3", + C.GRAY + "Converted: " + "{get}" + " in " + "{value}" + ); + public static final TextKey IRIS_CONVERTER_SOME_SCHEMATICS_FAILED_CONVERT_CHECK_CONSOLE_DETAILS = TextKey.of( + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details", + C.RED + "Some schematics failed to convert. Check the console for details." + ); + public static final TextKey STUDIO_S_V_C_INSTALLING_PACKAGE = TextKey.of( + "iris.bukkit.runtime.studiosvc.installing_package", + "Installing Package: " + "{name}" + ":" + "{loadKey}" + ); + public static final TextKey STUDIO_S_V_C_LOOKING_PACKAGE = TextKey.of( + "iris.bukkit.runtime.studiosvc.looking_package", + "Looking for Package: " + "{type}" + ); + public static final TextKey STUDIO_S_V_C_FOUND_IRIS_FOLDER = TextKey.of( + "iris.bukkit.runtime.studiosvc.found_iris_folder", + "Found " + "{type}" + ".iris in " + "{WORKSPACENAME}" + " folder" + ); + public static final TextKey STUDIO_S_V_C_FOUND_DIMENSION_FOLDER_REPACKAGING = TextKey.of( + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging", + "Found " + "{type}" + " dimension in " + "{WORKSPACENAME}" + " folder. Repackaging" + ); + public static final TextKey STUDIO_S_V_C_CAN_T_FIND_DIMENSIONS_FOLDER_THIS_PACK_FAILED = TextKey.of( + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed", + "Can't find the " + "{name}" + " in the dimensions folder of this pack! Failed!" + ); + public static final TextKey STUDIO_S_V_C_CAN_T_LOAD_DIMENSION_FAILED = TextKey.of( + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed", + "Can't load the dimension! Failed!" + ); + public static final TextKey STUDIO_S_V_C_TYPE_INSTALLED = TextKey.of( + "iris.bukkit.runtime.studiosvc.type_installed", + "{name}" + " type installed. " + ); + public static final TextKey STUDIO_S_V_C_PACK_WAS_NOT_FOUND_PACK_LISTING = TextKey.of( + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing", + "Pack '" + "{key}" + "' was not found in the pack listing." + ); + public static final TextKey STUDIO_S_V_C_USE_IRIS_DOWNLOAD_PACK_BRANCH_BRANCH_DOWNLOAD_MANUALLY = TextKey.of( + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually", + "Use /iris download branch= to download manually." + ); + public static final TextKey STUDIO_S_V_C_FAILED_DOWNLOAD = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_download", + "Failed to download '" + "{key}" + "'." + ); + public static final TextKey STUDIO_S_V_C_FAILED_DOWNLOAD_IRISDIMENSIONS_OVERWORLD_BETA_RELEASE = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release", + "Failed to download the IrisDimensions/overworld beta release." + ); + public static final TextKey STUDIO_S_V_C_FAILED_DOWNLOAD_BRANCH = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_download_branch", + "Failed to download '" + "{repo}" + "' (branch " + "{branch}" + ")." + ); + public static final TextKey STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_open_studio_world", + "Failed to open studio world: " + "{error}" + ); + public static final TextKey STUDIO_S_V_C_CANNOT_OPEN_STUDIO_PACK_HAS_BLOCKING_ERRORS = TextKey.of( + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors", + "Cannot open studio '" + "{dimm}" + "' - pack has blocking errors:" + ); + public static final TextKey STUDIO_S_V_C_MESSAGE = TextKey.of( + "iris.bukkit.runtime.studiosvc.message", + " - " + "{reason}" + ); + public static final TextKey STUDIO_S_V_C_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE = TextKey.of( + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate", + "Fix the pack and run /iris pack validate " + "{dimm}" + " to revalidate." + ); + public static final TextKey STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project", + "Failed to close the existing studio project: " + "{error}" + ); + public static final TextKey STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT_2 = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2", + "Failed to close the existing studio project: " + "{error}" + ); + public static final TextKey STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD_2 = TextKey.of( + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2", + "Failed to open studio world: " + "{error}" + ); + public static final TextKey STUDIO_S_V_C_COULDN_T_FIND_PACK_CREATE_NEW_DIMENSION_FROM = TextKey.of( + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from", + "Couldn't find the pack to create a new dimension from." + ); + public static final TextKey STUDIO_S_V_C_MISSING_IMPORTED_DIMENSION_FILE = TextKey.of( + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file", + "Missing Imported Dimension File" + ); + public static final TextKey STUDIO_S_V_C_IMPORTING_INTO_NEW_PROJECT = TextKey.of( + "iris.bukkit.runtime.studiosvc.importing_into_new_project", + "Importing " + "{downloadable}" + " into new Project " + "{s}" + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CELL_UNDER_CLICK_X_Z = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z", + C.GRAY + "Object Studio: no cell under click (x=" + "{x}" + " z=" + "{z}" + ")." + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVING_X_X = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x", + C.AQUA + "Object Studio: saving " + C.WHITE + "{pack}" + "/" + "{key}" + C.GRAY + " (" + "{w}" + "x" + "{h}" + "x" + "{d}" + ")" + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CHANGES = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes", + C.GRAY + "Object Studio: no changes for " + "{pack}" + "/" + "{key}" + "." + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_EMPTY_CELL_NOTHING_WRITE = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write", + C.GRAY + "Object Studio: empty cell " + "{pack}" + "/" + "{key}" + " (nothing to write)." + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_TARGET_FILE = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file", + C.RED + "Object Studio: no target file for " + "{pack}" + "/" + "{key}" + "." + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVED = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved", + C.GREEN + "Object Studio: saved " + C.WHITE + "{pack}" + "/" + "{key}" + ); + public static final TextKey OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVE_FAILED = TextKey.of( + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed", + C.RED + "Object Studio: save failed for " + "{pack}" + "/" + "{key}" + " (" + "{error}" + ")" + ); + public static final TextKey IRIS_PROJECT_COULD_NOT_LOAD_DIMENSION = TextKey.of( + "iris.bukkit.runtime.irisproject.could_not_load_dimension", + "Could not load dimension \"" + "{value}" + "\"" + ); + public static final TextKey IRIS_PROJECT_COULD_NOT_GET_DIMENSION_LOADER = TextKey.of( + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader", + "Could not get dimension loader" + ); + public static final TextKey IRIS_PROJECT_STUDIO_OPEN_FAILED = TextKey.of( + "iris.bukkit.runtime.irisproject.studio_open_failed", + C.RED + "Studio open failed: " + "{error}" + ); + public static final TextKey IRIS_PROJECT_STUDIO_OPEN_FAILED_2 = TextKey.of( + "iris.bukkit.runtime.irisproject.studio_open_failed_2", + C.RED + "Studio open failed." + ); + public static final TextKey IRIS_PROJECT_STUDIO_READY = TextKey.of( + "iris.bukkit.runtime.irisproject.studio_ready", + C.GREEN + "Studio ready " + C.GRAY + "(" + "{value}" + ")" + ); + public static final TextKey IRIS_PROJECT_STUDIO = TextKey.of( + "iris.bukkit.runtime.irisproject.studio", + C.GOLD + "Studio " + C.AQUA + "{bar}" + " " + C.YELLOW + "{percent}" + "%" + C.GRAY + " " + "{currentStage}" + C.DARK_GRAY + " (" + "{value}" + ")" + ); + public static final TextKey IRIS_PROJECT_SERIALIZING_OBJECTS = TextKey.of( + "iris.bukkit.runtime.irisproject.serializing_objects", + "Serializing Objects" + ); + public static final TextKey IRIS_PROJECT_WROTE_ANOTHER_OBJECTS = TextKey.of( + "iris.bukkit.runtime.irisproject.wrote_another_objects", + "Wrote another " + "{g}" + " Objects" + ); + public static final TextKey IRIS_PROJECT_PACKAGE_COMPILED = TextKey.of( + "iris.bukkit.runtime.irisproject.package_compiled", + "Package Compiled!" + ); + public static final TextKey IRIS_PROJECT_FAILED = TextKey.of( + "iris.bukkit.runtime.irisproject.failed", + "Failed!" + ); + public static final TextKey IRIS_ENGINE_TOTAL = TextKey.of( + "iris.bukkit.runtime.irisengine.total", + "Total: " + C.BOLD + C.WHITE + "{value}" + ); + public static final TextKey IRIS_ENGINE_ENGINE = TextKey.of( + "iris.bukkit.runtime.irisengine.engine", + " Engine " + C.UNDERLINE + C.GREEN + "{i}" + C.RESET + ": " + C.BOLD + C.WHITE + "{value}" + ); + public static final TextKey IRIS_ENGINE_DETAILS = TextKey.of( + "iris.bukkit.runtime.irisengine.details", + "Details: " + ); + public static final TextKey IRIS_ENGINE_MESSAGE = TextKey.of( + "iris.bukkit.runtime.irisengine.message", + " " + "{befb}" + "{num}" + "{afb}" + ": " + C.BOLD + C.WHITE + "{value}" + ); + public static final TextKey ENGINE_BUKKIT_OPS_IS_NOT_DEFINED_DIMENSION = TextKey.of( + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension", + C.RED + "{name}" + " is not defined in the dimension!" + ); + public static final TextKey ENGINE_BUKKIT_OPS_COULD_NOT_FIND_WITHIN_SEARCH_RANGE = TextKey.of( + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range", + C.RED + "Could not find " + "{message}" + " within search range." + ); + public static final TextKey ENGINE_BUKKIT_OPS_TELEPORTING = TextKey.of( + "iris.bukkit.runtime.enginebukkitops.teleporting", + C.GREEN + "Teleporting to " + "{message}" + "..." + ); + public static final TextKey ENGINE_BUKKIT_OPS_AT = TextKey.of( + "iris.bukkit.runtime.enginebukkitops.at", + C.GREEN + "{message}" + " at: " + "{blockX}" + " " + "{blockY}" + " " + "{blockZ}" + ); + public static final TextKey IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD = TextKey.of( + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world", + "You have been evacuated from this world." + ); + public static final TextKey IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD_2 = TextKey.of( + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2", + "You have been evacuated from this world. " + "{m}" + ); + public static final TextKey SERVER_CONFIGURATOR_THERE_ARE_SOME_IRIS_PACKS_THAT_HAVE_CUSTOM_BIOMES_THEM = TextKey.of( + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them", + "There are some Iris Packs that have custom biomes in them" + ); + public static final TextKey SERVER_CONFIGURATOR_YOU_NEED_RESTART_YOUR_SERVER_USE_THESE_PACKS = TextKey.of( + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs", + "You need to restart your server to use these packs." + ); + public static final TextKey VIRTUAL_COMMAND_MESSAGE = TextKey.of( + "iris.bukkit.runtime.virtualcommand.message", + "- " + C.WHITE + "{i}" + ); + public static final TextKey VIRTUAL_COMMAND_INSUFFICIENT_PERMISSIONS = TextKey.of( + "iris.bukkit.runtime.virtualcommand.insufficient_permissions", + "Insufficient Permissions" + ); + public static final TextKey MORTAR_COMMAND_FONT_MINECRAFT_UNIFORM = TextKey.of( + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform", + "" + C.GREEN + "{node}" + " " + "" + "{value}" + C.GRAY + " - " + "{description}" + ); + public static final TextKey MORTAR_COMMAND_THERE_ARE_EITHER_NO_SUB_COMMANDS_YOU_DO_NOT_HAVE_PERMISSION_USE = TextKey.of( + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use", + "There are either no sub-commands or you do not have permission to use them." + ); + public static final TextKey MORTAR_COMMAND_PARAMETERS_IGNORED = TextKey.of( + "iris.bukkit.runtime.mortarcommand.parameters_ignored", + "Parameters Ignored: " + "{m}" + ); + + private static final List KEYS = List.of( + COMMAND_PACK_PACKS_FOLDER_NOT_FOUND, + COMMAND_PACK_NO_PACKS_VALIDATE, + COMMAND_PACK_VALIDATION_COMPLETE_BROKEN_PACKS, + COMMAND_PACK_PACK_NOT_FOUND_UNDER_PACKS, + COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK, + COMMAND_PACK_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER, + COMMAND_PACK_CLEANUP_MODE_MUST_BE_PREVIEW_APPLY, + COMMAND_PACK_NO_CLEANUP_CANDIDATES_FOUND_PACK_2, + COMMAND_PACK_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED, + COMMAND_PACK_RUN_IRIS_PACK_CLEANUP_MODE_APPLY_QUARANTINE_THESE_CANDIDATES_AFTER_FRESH_SCAN, + COMMAND_PACK_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST, + COMMAND_PACK_NOTHING_RESTORE_PACK, + COMMAND_PACK_RESTORED_FILE_S_FROM, + COMMAND_PACK_RESTORE_MODE_MUST_BE_PREVIEW_APPLY, + COMMAND_PACK_NOTHING_RESTORE_PACK_2, + COMMAND_PACK_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED, + COMMAND_PACK_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S, + COMMAND_PACK_RUN_IRIS_PACK_RESTORE_MODE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK, + COMMAND_PACK_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST, + COMMAND_PACK_STATUS_OK, + COMMAND_PACK_STATUS_BROKEN, + COMMAND_PACK_CLEANUP_FAILED, + COMMAND_PACK_RESTORE_FAILED, + COMMAND_PACK_PATH_STILL_QUARANTINED, + COMMAND_PACK_PATH_QUARANTINED, + COMMAND_PACK_PATH_CANDIDATE, + COMMAND_PACK_PATH_CONFLICT, + COMMAND_PACK_PATH_RESTORED, + COMMAND_PACK_PATH_FILE, + COMMAND_PACK_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE, + COMMAND_PACK_VALIDATION_FAILED, + COMMAND_PACK_PACK_IS_LOADABLE_WARNINGS, + COMMAND_PACK_PACK_IS_BROKEN, + COMMAND_PACK_MESSAGE, + COMMAND_PACK_MESSAGE_2, + COMMAND_PACK_MORE_WARNING_S, + COMMAND_DEVELOPER_UPDATE_WORLD_WARNING, + BULK_STRUCTURE_IMPORTER_IMPORTING_VANILLA_DATAPACK_STRUCTURES_MODE_INCLUDENONJIGSAW, + BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY, + BULK_STRUCTURE_IMPORTER_JIGSAW, + BULK_STRUCTURE_IMPORTER_SINGLE, + BULK_STRUCTURE_IMPORTER_SKIP_NO_SINGLE_TEMPLATE_NBT_VANILLA_BUILDS_THIS_CODE_FROM_SEPARATE_PIECE, + BULK_STRUCTURE_IMPORTER_FAIL, + BULK_STRUCTURE_IMPORTER_FAIL_2, + BULK_STRUCTURE_IMPORTER_FAIL_3, + BULK_STRUCTURE_IMPORTER_BULK_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL, + BULK_STRUCTURE_IMPORTER_BUILDING_SINGLE_TEMPLATE_STRUCTURES_FROM_IMPORTED_PIECES_ONE_VARIANT_PLACED_PER_GENERATION, + BULK_STRUCTURE_IMPORTER_GROUP_VARIANTS, + BULK_STRUCTURE_IMPORTER_SKIP, + BULK_STRUCTURE_IMPORTER_FAIL_4, + BULK_STRUCTURE_IMPORTER_SINGLE_TEMPLATE_STRUCTURES_BUILT_SKIPPED_FAILED, + BULK_STRUCTURE_IMPORTER_FAILED_ENUMERATE_STRUCTURE_TEMPLATES_VIA_SERVER_RESOURCEMANAGER, + BULK_STRUCTURE_IMPORTER_NO_STRUCTURE_TEMPLATES_WERE_FOUND_UNDER_STRUCTURE_RESOURCE_PATH, + BULK_STRUCTURE_IMPORTER_IMPORTING_STRUCTURE_TEMPLATES_MODE, + BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_2, + BULK_STRUCTURE_IMPORTER_FAIL_5, + BULK_STRUCTURE_IMPORTER_FAIL_6, + BULK_STRUCTURE_IMPORTER_IMPORTED_SKIPPED_FAILED, + BULK_STRUCTURE_IMPORTER_TEMPLATE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL, + BULK_STRUCTURE_IMPORTER_NO_DATAPACK_NON_MINECRAFT_STRUCTURES_ARE_REGISTERED_INGEST_DATAPACK_RESTART_FIRST_THEN, + BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURES_MODE, + BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_3, + BULK_STRUCTURE_IMPORTER_JIGSAW_2, + BULK_STRUCTURE_IMPORTER_SINGLE_2, + BULK_STRUCTURE_IMPORTER_FAIL_7, + BULK_STRUCTURE_IMPORTER_FAIL_8, + BULK_STRUCTURE_IMPORTER_FAIL_9, + BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURE_TEMPLATES, + BULK_STRUCTURE_IMPORTER_FAIL_10, + BULK_STRUCTURE_IMPORTER_FAIL_11, + BULK_STRUCTURE_IMPORTER_COULD_NOT_ENUMERATE_DATAPACK_TEMPLATES_VIA_SERVER_RESOURCEMANAGER, + BULK_STRUCTURE_IMPORTER_DATAPACK_STRUCTURE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED, + STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_IS_NOT_SUPPORTED_BY_ACTIVE_NMS_BINDING_SKIPPING_CAPTURE_PASS, + STRUCTURE_CAPTURE_IMPORTER_NO_CODE_GENERATED_STRUCTURES_LEFT_CAPTURE_EVERYTHING_IS_ALREADY_IMPORTED_AS_STRUCTURE, + STRUCTURE_CAPTURE_IMPORTER_CAPTURING_CODE_GENERATED_STRUCTURES_NO_NBT_TEMPLATE_INTO_SCRATCH_WORLD_SKIPPING_ANY, + STRUCTURE_CAPTURE_IMPORTER_SKIP_DID_NOT_PLACE_CAPTURABLE_STRUCTURE_HERE_TOO_LARGE_WRONG_DIMENSION_NO, + STRUCTURE_CAPTURE_IMPORTER_FAIL, + STRUCTURE_CAPTURE_IMPORTER_CAPTURE_OBJECTS_IOB_X_X, + STRUCTURE_CAPTURE_IMPORTER_FAIL_2, + STRUCTURE_CAPTURE_IMPORTER_CAPTURED_SKIPPED_FAILED, + STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_COMPLETE_CAPTURED_SKIPPED_FAILED_TOTAL, + FEATURE_IMPORTER_NO_VANILLA_TREE_OBJECT_FEATURES_ARE_EXPOSED_BY_ACTIVE_NMS_BINDING_IMPORTING, + FEATURE_IMPORTER_IMPORTING_VANILLA_TREE_OBJECT_FEATURES_VARIANTS_EACH_INTO_SCRATCH_WORLD, + FEATURE_IMPORTER_OBJ_OBJECTS_VANILLA, + FEATURE_IMPORTER_SKIP_FEATURE_PLACED_NOTHING_AFTER_RETRIES, + FEATURE_IMPORTER_FAIL, + FEATURE_IMPORTER_IMPORTED_SKIPPED_FAILED, + FEATURE_IMPORTER_FEATURE_IMPORT_COMPLETE_FEATURES_WRITTEN_SKIPPED_FAILED_TOTAL, + FEATURE_IMPORTER_COULD_NOT_CREATE_SCRATCH_WORLD_FEATURE_IMPORT_SKIPPING_TREE_OBJECT_PASS, + IRIS_CONVERTER_NO_SCHEMATIC_FILES_CONVERT_FOUND, + IRIS_CONVERTER_CONVERTED, + IRIS_CONVERTER_CONVERTED_2, + IRIS_CONVERTER_FAILED_SAVE, + IRIS_CONVERTER_FAILED_CONVERT, + IRIS_CONVERTER_CONVERTED_3, + IRIS_CONVERTER_SOME_SCHEMATICS_FAILED_CONVERT_CHECK_CONSOLE_DETAILS, + STUDIO_S_V_C_INSTALLING_PACKAGE, + STUDIO_S_V_C_LOOKING_PACKAGE, + STUDIO_S_V_C_FOUND_IRIS_FOLDER, + STUDIO_S_V_C_FOUND_DIMENSION_FOLDER_REPACKAGING, + STUDIO_S_V_C_CAN_T_FIND_DIMENSIONS_FOLDER_THIS_PACK_FAILED, + STUDIO_S_V_C_CAN_T_LOAD_DIMENSION_FAILED, + STUDIO_S_V_C_TYPE_INSTALLED, + STUDIO_S_V_C_PACK_WAS_NOT_FOUND_PACK_LISTING, + STUDIO_S_V_C_USE_IRIS_DOWNLOAD_PACK_BRANCH_BRANCH_DOWNLOAD_MANUALLY, + STUDIO_S_V_C_FAILED_DOWNLOAD, + STUDIO_S_V_C_FAILED_DOWNLOAD_IRISDIMENSIONS_OVERWORLD_BETA_RELEASE, + STUDIO_S_V_C_FAILED_DOWNLOAD_BRANCH, + STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD, + STUDIO_S_V_C_CANNOT_OPEN_STUDIO_PACK_HAS_BLOCKING_ERRORS, + STUDIO_S_V_C_MESSAGE, + STUDIO_S_V_C_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE, + STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT, + STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT_2, + STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD_2, + STUDIO_S_V_C_COULDN_T_FIND_PACK_CREATE_NEW_DIMENSION_FROM, + STUDIO_S_V_C_MISSING_IMPORTED_DIMENSION_FILE, + STUDIO_S_V_C_IMPORTING_INTO_NEW_PROJECT, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CELL_UNDER_CLICK_X_Z, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVING_X_X, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CHANGES, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_EMPTY_CELL_NOTHING_WRITE, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_TARGET_FILE, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVED, + OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVE_FAILED, + IRIS_PROJECT_COULD_NOT_LOAD_DIMENSION, + IRIS_PROJECT_COULD_NOT_GET_DIMENSION_LOADER, + IRIS_PROJECT_STUDIO_OPEN_FAILED, + IRIS_PROJECT_STUDIO_OPEN_FAILED_2, + IRIS_PROJECT_STUDIO_READY, + IRIS_PROJECT_STUDIO, + IRIS_PROJECT_SERIALIZING_OBJECTS, + IRIS_PROJECT_WROTE_ANOTHER_OBJECTS, + IRIS_PROJECT_PACKAGE_COMPILED, + IRIS_PROJECT_FAILED, + IRIS_ENGINE_TOTAL, + IRIS_ENGINE_ENGINE, + IRIS_ENGINE_DETAILS, + IRIS_ENGINE_MESSAGE, + ENGINE_BUKKIT_OPS_IS_NOT_DEFINED_DIMENSION, + ENGINE_BUKKIT_OPS_COULD_NOT_FIND_WITHIN_SEARCH_RANGE, + ENGINE_BUKKIT_OPS_TELEPORTING, + ENGINE_BUKKIT_OPS_AT, + IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD, + IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD_2, + SERVER_CONFIGURATOR_THERE_ARE_SOME_IRIS_PACKS_THAT_HAVE_CUSTOM_BIOMES_THEM, + SERVER_CONFIGURATOR_YOU_NEED_RESTART_YOUR_SERVER_USE_THESE_PACKS, + VIRTUAL_COMMAND_MESSAGE, + VIRTUAL_COMMAND_INSUFFICIENT_PERMISSIONS, + MORTAR_COMMAND_FONT_MINECRAFT_UNIFORM, + MORTAR_COMMAND_THERE_ARE_EITHER_NO_SUB_COMMANDS_YOU_DO_NOT_HAVE_PERMISSION_USE, + MORTAR_COMMAND_PARAMETERS_IGNORED + ); + + private BukkitRuntimeMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java b/core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java new file mode 100644 index 000000000..e9b070109 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/BukkitUiMessages.java @@ -0,0 +1,70 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class BukkitUiMessages { + public static final TextKey SCOREBOARD_TITLE = TextKey.of( + "iris.bukkit.scoreboard.title", + C.GREEN + "Iris" + ); + public static final TextKey SCOREBOARD_SPEED = TextKey.of( + "iris.bukkit.scoreboard.speed", + C.GREEN + "Speed" + C.GRAY + ": {speed}/s {duration}" + ); + public static final TextKey SCOREBOARD_CACHE = TextKey.of( + "iris.bukkit.scoreboard.cache", + C.AQUA + "Cache" + C.GRAY + ": {count}" + ); + public static final TextKey SCOREBOARD_MANTLE = TextKey.of( + "iris.bukkit.scoreboard.mantle", + C.AQUA + "Mantle" + C.GRAY + ": {count}" + ); + public static final TextKey SCOREBOARD_CARVING = TextKey.of( + "iris.bukkit.scoreboard.carving", + C.LIGHT_PURPLE + "Carving" + C.GRAY + ": {state}" + ); + public static final TextKey SCOREBOARD_REGION = TextKey.of( + "iris.bukkit.scoreboard.region", + C.AQUA + "Region" + C.GRAY + ": {region}" + ); + public static final TextKey SCOREBOARD_BIOME = TextKey.of( + "iris.bukkit.scoreboard.biome", + C.AQUA + "Biome" + C.GRAY + ": {biome}" + ); + public static final TextKey SCOREBOARD_HEIGHT = TextKey.of( + "iris.bukkit.scoreboard.height", + C.AQUA + "Height" + C.GRAY + ": {height}" + ); + public static final TextKey SCOREBOARD_SLOPE = TextKey.of( + "iris.bukkit.scoreboard.slope", + C.AQUA + "Slope" + C.GRAY + ": {slope}" + ); + public static final TextKey SCOREBOARD_BLOCK_UPDATES = TextKey.of( + "iris.bukkit.scoreboard.block_updates", + C.AQUA + "BUD/s" + C.GRAY + ": {updates}" + ); + + private static final List KEYS = List.of( + SCOREBOARD_TITLE, + SCOREBOARD_SPEED, + SCOREBOARD_CACHE, + SCOREBOARD_MANTLE, + SCOREBOARD_CARVING, + SCOREBOARD_REGION, + SCOREBOARD_BIOME, + SCOREBOARD_HEIGHT, + SCOREBOARD_SLOPE, + SCOREBOARD_BLOCK_UPDATES + ); + + private BukkitUiMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/ClientUiMessages.java b/core/src/main/java/art/arcane/iris/core/localization/ClientUiMessages.java new file mode 100644 index 000000000..627b94774 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/ClientUiMessages.java @@ -0,0 +1,104 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.PluralKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; +import java.util.Map; + +public final class ClientUiMessages { + public static final TextKey VISION_TITLE = TextKey.of( + "iris.client.vision.title", + "Iris Vision" + ); + public static final TextKey VISION_CONNECTING = TextKey.of( + "iris.client.vision.connecting", + "Connecting to Iris server..." + ); + public static final TextKey VISION_NOT_CONNECTED = TextKey.of( + "iris.client.vision.not_connected", + "not connected" + ); + public static final TextKey VISION_NOT_IRIS_WORLD = TextKey.of( + "iris.client.vision.not_iris_world", + "Not an Iris world" + ); + public static final TextKey VISION_NO_DIMENSION_DATA = TextKey.of( + "iris.client.vision.no_dimension_data", + "no dimension data" + ); + public static final TextKey VISION_HEADER_DETAIL = TextKey.of( + "iris.client.vision.header_detail", + "{status} zoom {zoom} x{x} z{z}" + ); + public static final TextKey VISION_FOOTER_HINT = TextKey.of( + "iris.client.vision.footer_hint", + "Drag to pan Scroll to zoom Esc to close" + ); + public static final TextKey VISION_DIMENSION_PACK = TextKey.of( + "iris.client.vision.dimension_pack", + "{dimension} pack {pack}" + ); + public static final TextKey TOAST_STUDIO_HOTLOAD = TextKey.of("iris.client.toast.studio_hotload", "Studio Hotload"); + public static final PluralKey TOAST_CHANGED_FILES = PluralKey.of( + "iris.client.toast.changed_files", + "count", + Map.of( + "one", "{count} file", + "other", "{count} files" + ) + ); + public static final TextKey TOAST_RELOAD_FAILED = TextKey.of("iris.client.toast.reload_failed", "reload failed"); + public static final TextKey TOAST_RELOADED = TextKey.of("iris.client.toast.reloaded", "reloaded"); + public static final TextKey TOAST_PACK_FAILED = TextKey.of("iris.client.toast.pack_failed", "{pack} failed"); + public static final TextKey WHAT_TITLE = TextKey.of("iris.client.what.title", "Iris What"); + public static final TextKey WHAT_QUERYING = TextKey.of("iris.client.what.querying", "Querying {x}, {z}..."); + public static final TextKey WHAT_BIOME = TextKey.of("iris.client.what.biome", "Biome: {biome}"); + public static final TextKey WHAT_REGION = TextKey.of("iris.client.what.region", "Region: {region}"); + public static final TextKey WHAT_CAVE = TextKey.of("iris.client.what.cave", "Cave: {cave}"); + public static final TextKey WHAT_HEIGHT = TextKey.of("iris.client.what.height", "Height: {height} ({x}, {z})"); + public static final TextKey PREGEN_STATS = TextKey.of("iris.client.pregen.stats", "{done} / {total} ({percent}%)"); + public static final TextKey PREGEN_PAUSED = TextKey.of("iris.client.pregen.paused", "PAUSED"); + public static final TextKey PREGEN_RATE = TextKey.of("iris.client.pregen.rate", "{rate}/s"); + public static final TextKey PREGEN_RATE_ETA = TextKey.of("iris.client.pregen.rate_eta", "{rate}/s ETA {eta}"); + public static final TextKey DURATION_HOURS_MINUTES = TextKey.of("iris.client.duration.hours_minutes", "{hours}h {minutes}m"); + public static final TextKey DURATION_MINUTES_SECONDS = TextKey.of("iris.client.duration.minutes_seconds", "{minutes}m {seconds}s"); + public static final TextKey DURATION_SECONDS = TextKey.of("iris.client.duration.seconds", "{seconds}s"); + + private static final List KEYS = List.of( + VISION_TITLE, + VISION_CONNECTING, + VISION_NOT_CONNECTED, + VISION_NOT_IRIS_WORLD, + VISION_NO_DIMENSION_DATA, + VISION_HEADER_DETAIL, + VISION_FOOTER_HINT, + VISION_DIMENSION_PACK, + TOAST_STUDIO_HOTLOAD, + TOAST_CHANGED_FILES, + TOAST_RELOAD_FAILED, + TOAST_RELOADED, + TOAST_PACK_FAILED, + WHAT_TITLE, + WHAT_QUERYING, + WHAT_BIOME, + WHAT_REGION, + WHAT_CAVE, + WHAT_HEIGHT, + PREGEN_STATS, + PREGEN_PAUSED, + PREGEN_RATE, + PREGEN_RATE_ETA, + DURATION_HOURS_MINUTES, + DURATION_MINUTES_SECONDS, + DURATION_SECONDS + ); + + private ClientUiMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java b/core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java new file mode 100644 index 000000000..fdc896cce --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/DesktopUiMessages.java @@ -0,0 +1,127 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class DesktopUiMessages { + public static final TextKey VISION_TITLE = TextKey.of("iris.desktop.vision.title", "Iris Vision"); + public static final TextKey VISION_VIEW = TextKey.of("iris.desktop.vision.view", "View:"); + public static final TextKey VISION_GRID = TextKey.of("iris.desktop.vision.grid", "Grid"); + public static final TextKey VISION_FOLLOW = TextKey.of("iris.desktop.vision.follow", "Follow"); + public static final TextKey VISION_LOW_QUALITY_SHORT = TextKey.of("iris.desktop.vision.low_quality_short", "LQ"); + public static final TextKey VISION_REFRESHING = TextKey.of("iris.desktop.vision.refreshing", "Refreshing"); + public static final TextKey VISION_FPS = TextKey.of("iris.desktop.vision.fps", "{fps} FPS"); + public static final TextKey VISION_ZOOM_RESET = TextKey.of("iris.desktop.vision.zoom_reset", "Zoom reset"); + public static final TextKey VISION_GRID_ENABLED = TextKey.of("iris.desktop.vision.grid_enabled", "Grid enabled"); + public static final TextKey VISION_GRID_DISABLED = TextKey.of("iris.desktop.vision.grid_disabled", "Grid disabled"); + public static final TextKey VISION_FOLLOWING = TextKey.of("iris.desktop.vision.following", "Following {player}"); + public static final TextKey VISION_NO_PLAYER = TextKey.of("iris.desktop.vision.no_player", "No player in world"); + public static final TextKey VISION_FOLLOW_DISABLED = TextKey.of("iris.desktop.vision.follow_disabled", "Follow disabled"); + public static final TextKey VISION_LOW_QUALITY = TextKey.of("iris.desktop.vision.low_quality", "Low quality"); + public static final TextKey VISION_HIGH_QUALITY = TextKey.of("iris.desktop.vision.high_quality", "High quality"); + public static final TextKey VISION_STATUS_LEFT = TextKey.of("iris.desktop.vision.status_left", "{mode} | {bpp} bpp | {width} x {height} blocks"); + public static final TextKey VISION_STATUS_RIGHT = TextKey.of("iris.desktop.vision.status_right", "X: {x} Z: {z} | {fps} FPS"); + public static final TextKey VISION_ENTITY_POSITION = TextKey.of("iris.desktop.vision.entity_position", "Position: {x}, {y}, {z}"); + public static final TextKey VISION_ENTITY_HEALTH = TextKey.of("iris.desktop.vision.entity_health", "Health: {health} / {maximum}"); + public static final TextKey VISION_BLOCK_POSITION = TextKey.of("iris.desktop.vision.block_position", "Block {x}, {z}"); + public static final TextKey VISION_CHUNK_POSITION = TextKey.of("iris.desktop.vision.chunk_position", "Chunk {x}, {z}"); + public static final TextKey VISION_REGION_POSITION = TextKey.of("iris.desktop.vision.region_position", "Region {x}, {z}"); + public static final TextKey VISION_BIOME_KEY = TextKey.of("iris.desktop.vision.biome_key", "Key: {key}"); + public static final TextKey VISION_BIOME_FILE = TextKey.of("iris.desktop.vision.biome_file", "File: {file}"); + public static final TextKey VISION_VELOCITY = TextKey.of("iris.desktop.vision.velocity", "Velocity: {velocity}"); + public static final TextKey VISION_TILES = TextKey.of("iris.desktop.vision.tiles", "Tiles: {high} HD / {low} LQ"); + public static final TextKey VISION_WORKERS = TextKey.of("iris.desktop.vision.workers", "Workers: {high} HD / {low} LQ"); + public static final TextKey VISION_CENTER = TextKey.of("iris.desktop.vision.center", "Center: {x}, {z}"); + public static final TextKey VISION_HELP_TOGGLE = TextKey.of("iris.desktop.vision.help.toggle", "Toggle help"); + public static final TextKey VISION_HELP_REFRESH = TextKey.of("iris.desktop.vision.help.refresh", "Refresh tiles"); + public static final TextKey VISION_HELP_FOLLOW = TextKey.of("iris.desktop.vision.help.follow", "Follow player"); + public static final TextKey VISION_HELP_ZOOM = TextKey.of("iris.desktop.vision.help.zoom", "Zoom in/out"); + public static final TextKey VISION_HELP_RESET_ZOOM = TextKey.of("iris.desktop.vision.help.reset_zoom", "Reset zoom"); + public static final TextKey VISION_HELP_CYCLE_MODE = TextKey.of("iris.desktop.vision.help.cycle_mode", "Cycle render mode"); + public static final TextKey VISION_HELP_QUALITY = TextKey.of("iris.desktop.vision.help.quality", "Toggle tile quality"); + public static final TextKey VISION_HELP_FPS = TextKey.of("iris.desktop.vision.help.fps", "Toggle 30/60 FPS"); + public static final TextKey VISION_HELP_GRID = TextKey.of("iris.desktop.vision.help.grid", "Toggle grid"); + public static final TextKey VISION_HELP_BIOME = TextKey.of("iris.desktop.vision.help.biome", "Detailed biome info"); + public static final TextKey VISION_HELP_TELEPORT = TextKey.of("iris.desktop.vision.help.teleport", "Teleport to cursor"); + public static final TextKey VISION_HELP_EDITOR = TextKey.of("iris.desktop.vision.help.editor", "Open biome in editor"); + public static final TextKey VISION_OPENED = TextKey.of("iris.desktop.vision.opened", "Opened {target}"); + public static final TextKey VISION_TELEPORTING = TextKey.of("iris.desktop.vision.teleporting", "Teleporting to {x}, {z}"); + public static final TextKey VISION_MODE_BIOME = TextKey.of("iris.desktop.vision.mode.biome", "Biome"); + public static final TextKey VISION_MODE_BIOME_LAND = TextKey.of("iris.desktop.vision.mode.biome_land", "Biome land"); + public static final TextKey VISION_MODE_BIOME_SEA = TextKey.of("iris.desktop.vision.mode.biome_sea", "Biome sea"); + public static final TextKey VISION_MODE_REGION = TextKey.of("iris.desktop.vision.mode.region", "Region"); + public static final TextKey VISION_MODE_CAVE_LAND = TextKey.of("iris.desktop.vision.mode.cave_land", "Cave land"); + public static final TextKey VISION_MODE_HEIGHT = TextKey.of("iris.desktop.vision.mode.height", "Height"); + public static final TextKey VISION_MODE_OBJECT_LOAD = TextKey.of("iris.desktop.vision.mode.object_load", "Object load"); + public static final TextKey VISION_MODE_DECORATOR_LOAD = TextKey.of("iris.desktop.vision.mode.decorator_load", "Decorator load"); + public static final TextKey VISION_MODE_CONTINENT = TextKey.of("iris.desktop.vision.mode.continent", "Continent"); + public static final TextKey VISION_MODE_LAYER_LOAD = TextKey.of("iris.desktop.vision.mode.layer_load", "Layer load"); + public static final TextKey NOISE_TITLE = TextKey.of("iris.desktop.noise.title", "Noise Explorer"); + public static final TextKey NOISE_TITLE_GENERATOR = TextKey.of("iris.desktop.noise.title_generator", "Noise Explorer: {generator}"); + public static final TextKey NOISE_SEARCH = TextKey.of("iris.desktop.noise.search", "Search..."); + public static final TextKey NOISE_STATUS = TextKey.of("iris.desktop.noise.status", "{name} | X: {x} Z: {z} | Zoom: {zoom} | Value: {value} | {fps} FPS"); + public static final TextKey NOISE_CATEGORY_CUSTOM = TextKey.of("iris.desktop.noise.category.custom", "Custom"); + public static final TextKey NOISE_CATEGORY_PACK_GENERATORS = TextKey.of("iris.desktop.noise.category.pack_generators", "Pack Generators"); + public static final TextKey NOISE_CATEGORY_SIMPLEX = TextKey.of("iris.desktop.noise.category.simplex", "Simplex"); + public static final TextKey NOISE_CATEGORY_PERLIN = TextKey.of("iris.desktop.noise.category.perlin", "Perlin"); + public static final TextKey NOISE_CATEGORY_CELLULAR = TextKey.of("iris.desktop.noise.category.cellular", "Cellular"); + public static final TextKey NOISE_CATEGORY_IRIS = TextKey.of("iris.desktop.noise.category.iris", "Iris"); + public static final TextKey NOISE_CATEGORY_CLOVER = TextKey.of("iris.desktop.noise.category.clover", "Clover"); + public static final TextKey NOISE_CATEGORY_HEXAGON = TextKey.of("iris.desktop.noise.category.hexagon", "Hexagon"); + public static final TextKey NOISE_CATEGORY_VASCULAR = TextKey.of("iris.desktop.noise.category.vascular", "Vascular"); + public static final TextKey NOISE_CATEGORY_GLOBE = TextKey.of("iris.desktop.noise.category.globe", "Globe"); + public static final TextKey NOISE_CATEGORY_CUBIC = TextKey.of("iris.desktop.noise.category.cubic", "Cubic"); + public static final TextKey NOISE_CATEGORY_FRACTAL = TextKey.of("iris.desktop.noise.category.fractal", "Fractal"); + public static final TextKey NOISE_CATEGORY_STATIC = TextKey.of("iris.desktop.noise.category.static", "Static"); + public static final TextKey NOISE_CATEGORY_NOWHERE = TextKey.of("iris.desktop.noise.category.nowhere", "Nowhere"); + public static final TextKey NOISE_CATEGORY_SIERPINSKI = TextKey.of("iris.desktop.noise.category.sierpinski", "Sierpinski"); + public static final TextKey NOISE_CATEGORY_UTILITY = TextKey.of("iris.desktop.noise.category.utility", "Utility"); + public static final TextKey NOISE_CATEGORY_OTHER = TextKey.of("iris.desktop.noise.category.other", "Other"); + public static final TextKey PREGEN_INITIALIZING = TextKey.of("iris.desktop.pregen.initializing", "Initializing..."); + public static final TextKey PREGEN_TITLE = TextKey.of("iris.desktop.pregen.title", "Pregen View"); + public static final TextKey PREGEN_METHOD_PENDING = TextKey.of("iris.desktop.pregen.method_pending", "Pending"); + public static final TextKey PREGEN_PAUSED = TextKey.of("iris.desktop.pregen.paused", "PAUSED"); + public static final TextKey PREGEN_RESUME_HINT = TextKey.of("iris.desktop.pregen.resume_hint", "Press P to resume"); + public static final TextKey PREGEN_PAUSE_HINT = TextKey.of("iris.desktop.pregen.pause_hint", "Press P to pause"); + public static final TextKey PREGEN_PROGRESS_PAUSED = TextKey.of("iris.desktop.pregen.progress_paused", "PAUSED {generated} of {total} ({percent} complete)"); + public static final TextKey PREGEN_PROGRESS_SAVING = TextKey.of("iris.desktop.pregen.progress_saving", "Saving... {generated} of {total} ({percent} complete)"); + public static final TextKey PREGEN_PROGRESS_GENERATING = TextKey.of("iris.desktop.pregen.progress_generating", "Generating {generated} of {total} ({percent} complete)"); + public static final TextKey PREGEN_SPEED = TextKey.of("iris.desktop.pregen.speed", "Speed: {chunksPerSecond} chunks/s, {regionsPerMinute} regions/m, {chunksPerMinute} chunks/m"); + public static final TextKey PREGEN_SPEED_CACHED = TextKey.of("iris.desktop.pregen.speed_cached", "Speed: cached {chunksPerSecond} chunks/s, {regionsPerMinute} regions/m, {chunksPerMinute} chunks/m"); + public static final TextKey PREGEN_TIME = TextKey.of("iris.desktop.pregen.time", "{remaining} remaining ({elapsed} elapsed)"); + public static final TextKey PREGEN_METHOD = TextKey.of("iris.desktop.pregen.method", "Generation method: {method}"); + public static final TextKey PREGEN_MEMORY = TextKey.of("iris.desktop.pregen.memory", "Memory: {used} ({usage}) Pressure: {pressure}/s"); + + private static final List KEYS = List.of( + VISION_TITLE, VISION_VIEW, VISION_GRID, VISION_FOLLOW, VISION_LOW_QUALITY_SHORT, + VISION_REFRESHING, VISION_FPS, VISION_ZOOM_RESET, VISION_GRID_ENABLED, VISION_GRID_DISABLED, + VISION_FOLLOWING, VISION_NO_PLAYER, VISION_FOLLOW_DISABLED, VISION_LOW_QUALITY, VISION_HIGH_QUALITY, + VISION_STATUS_LEFT, VISION_STATUS_RIGHT, VISION_ENTITY_POSITION, VISION_ENTITY_HEALTH, + VISION_BLOCK_POSITION, VISION_CHUNK_POSITION, VISION_REGION_POSITION, VISION_BIOME_KEY, + VISION_BIOME_FILE, VISION_VELOCITY, VISION_TILES, VISION_WORKERS, VISION_CENTER, + VISION_HELP_TOGGLE, VISION_HELP_REFRESH, VISION_HELP_FOLLOW, VISION_HELP_ZOOM, + VISION_HELP_RESET_ZOOM, VISION_HELP_CYCLE_MODE, VISION_HELP_QUALITY, VISION_HELP_FPS, + VISION_HELP_GRID, VISION_HELP_BIOME, VISION_HELP_TELEPORT, VISION_HELP_EDITOR, VISION_OPENED, + VISION_TELEPORTING, VISION_MODE_BIOME, VISION_MODE_BIOME_LAND, VISION_MODE_BIOME_SEA, + VISION_MODE_REGION, VISION_MODE_CAVE_LAND, VISION_MODE_HEIGHT, VISION_MODE_OBJECT_LOAD, + VISION_MODE_DECORATOR_LOAD, VISION_MODE_CONTINENT, VISION_MODE_LAYER_LOAD, NOISE_TITLE, + NOISE_TITLE_GENERATOR, NOISE_SEARCH, NOISE_STATUS, NOISE_CATEGORY_CUSTOM, + NOISE_CATEGORY_PACK_GENERATORS, NOISE_CATEGORY_SIMPLEX, NOISE_CATEGORY_PERLIN, + NOISE_CATEGORY_CELLULAR, NOISE_CATEGORY_IRIS, NOISE_CATEGORY_CLOVER, NOISE_CATEGORY_HEXAGON, + NOISE_CATEGORY_VASCULAR, NOISE_CATEGORY_GLOBE, NOISE_CATEGORY_CUBIC, NOISE_CATEGORY_FRACTAL, + NOISE_CATEGORY_STATIC, NOISE_CATEGORY_NOWHERE, NOISE_CATEGORY_SIERPINSKI, + NOISE_CATEGORY_UTILITY, NOISE_CATEGORY_OTHER, PREGEN_INITIALIZING, PREGEN_TITLE, + PREGEN_METHOD_PENDING, PREGEN_PAUSED, PREGEN_RESUME_HINT, PREGEN_PAUSE_HINT, + PREGEN_PROGRESS_PAUSED, PREGEN_PROGRESS_SAVING, PREGEN_PROGRESS_GENERATING, PREGEN_SPEED, + PREGEN_SPEED_CACHED, PREGEN_TIME, PREGEN_METHOD, PREGEN_MEMORY + ); + + private DesktopUiMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java b/core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java new file mode 100644 index 000000000..d43e5a1fa --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/DirectorCommandMessages.java @@ -0,0 +1,1109 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class DirectorCommandMessages { + public static final TextKey COMMAND_DATAPACK_DIRECTOR_DOWNLOAD_MANAGE_EXTERNAL_DATAPACK_IMPORTS_MODRINTH = TextKey.of( + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth", + "Download & manage external datapack imports (Modrinth)" + ); + public static final TextKey COMMAND_DATAPACK_DIRECTOR_DOWNLOAD_UPDATE_EVERY_DATAPACK_LISTED_PACK_DIMENSION_S_DATAPACKIMPORTS_INSTALL_IT_INTO = TextKey.of( + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into", + "Download/update every datapack listed in a pack dimension's 'datapackImports' and install it into the world so its structures register like vanilla" + ); + public static final TextKey COMMAND_DATAPACK_PARAM_RESTART_SERVER_WHEN_NEW_DATAPACKS_ARE_INSTALLED_REQUIRED_NEW_STRUCTURES_REGISTER_GENERATE = TextKey.of( + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate", + "Restart the server when new datapacks are installed (required for new structures to register and generate)" + ); + public static final TextKey COMMAND_DATAPACK_DIRECTOR_LIST_CONFIGURED_DATAPACK_IMPORTS_THEIR_INSTALLED_VERSIONS = TextKey.of( + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions", + "List configured datapack imports and their installed versions" + ); + public static final TextKey COMMAND_DATAPACK_DIRECTOR_REMOVE_INSTALLED_DATAPACK_BY_ID_ALSO_DELETE_ITS_URL_FROM_DATAPACKIMPORTS_KEEP = TextKey.of( + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep", + "Remove an installed datapack by id (also delete its URL from datapackImports to keep it gone)" + ); + public static final TextKey COMMAND_DATAPACK_PARAM_DATAPACK_ID_FOLDER_NAME_SHOWN_BY_IRIS_DATAPACK_LIST = TextKey.of( + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list", + "The datapack id (folder name) shown by /iris datapack list" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_IRIS_WORLD_MANAGER = TextKey.of( + "iris.director.commanddeveloper.director.iris_world_manager", + "Iris World Manager" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_GET_LOADED_TECTONICPLATES_COUNT = TextKey.of( + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count", + "Get Loaded TectonicPlates Count" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_SEND_TEST_EXCEPTION_SENTRY = TextKey.of( + "iris.director.commanddeveloper.director.send_test_exception_sentry", + "Send a test exception to sentry" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_HASH_GENERATED_BLOCK_OUTPUT_FIXED_AREA_DETERMINISM_IDENTITY_TESTING = TextKey.of( + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing", + "Hash generated block output of a fixed area for determinism/identity testing" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_WORLD_HASH = TextKey.of( + "iris.director.commanddeveloper.param.world_hash", + "The world to hash" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_CENTER = TextKey.of( + "iris.director.commanddeveloper.param.radius_chunks_around_center", + "Radius in chunks around the center" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_X = TextKey.of( + "iris.director.commanddeveloper.param.center_chunk_x", + "Center chunk X" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_Z = TextKey.of( + "iris.director.commanddeveloper.param.center_chunk_z", + "Center chunk Z" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_UPDATE_PACK_WORLD_UNSAFE = TextKey.of( + "iris.director.commanddeveloper.director.update_pack_world_unsafe", + "Update the pack of a world (UNSAFE!)" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_WORLD_UPDATE = TextKey.of( + "iris.director.commanddeveloper.param.world_update", + "The world to update" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_PACK_INSTALL_INTO_WORLD = TextKey.of( + "iris.director.commanddeveloper.param.pack_install_into_world", + "The pack to install into the world" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_MAKE_SURE_MAKE_BACKUP_READ_WARNINGS_FIRST = TextKey.of( + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first", + "Make sure to make a backup & read the warnings first!" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_SHOULD_IRIS_DOWNLOAD_PACK_AGAIN_YOU = TextKey.of( + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you", + "Should Iris download the pack again for you" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_TEST = TextKey.of( + "iris.director.commanddeveloper.director.test", + "Test" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_DUMP_WHOLE_TECTONIC_PLATE_INSTEAD_SINGLE_SECTION = TextKey.of( + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section", + "Dump the whole tectonic plate instead of a single section" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_DUMP_FILE_ID_UNDER_PLUGINS_IRIS_DUMP_PV_ID = TextKey.of( + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id", + "The dump file id under plugins/Iris/dump (pv..*)" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_TEST_2 = TextKey.of( + "iris.director.commanddeveloper.director.test_2", + "Test" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_PACK_BENCH = TextKey.of( + "iris.director.commanddeveloper.param.pack_bench", + "The pack to bench" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_RADIUS_REGIONS = TextKey.of( + "iris.director.commanddeveloper.param.radius_regions", + "Radius in regions" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_OPEN_GUI_WHILE_BENCHMARKING = TextKey.of( + "iris.director.commanddeveloper.param.open_gui_while_benchmarking", + "Open GUI while benchmarking" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_UPGRADE_ANOTHER_MINECRAFT_VERSION = TextKey.of( + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version", + "Upgrade to another Minecraft version" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_VERSION_UPGRADE = TextKey.of( + "iris.director.commanddeveloper.param.version_upgrade", + "The version to upgrade to" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_TEST_3 = TextKey.of( + "iris.director.commanddeveloper.director.test_3", + "test" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_WORLD_FOLDER_SCAN_MCA_REGION_FILES = TextKey.of( + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files", + "The world folder to scan for .mca region files" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_DELETE_NEARBY_CHUNK_BLOCKS_REGEN_TESTING = TextKey.of( + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing", + "Delete nearby chunk blocks for regen testing" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_YOUR_CURRENT_CHUNK = TextKey.of( + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk", + "Radius in chunks around your current chunk" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_TEST_4 = TextKey.of( + "iris.director.commanddeveloper.director.test_4", + "Test" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_DELETE_REGENERATE_NEARBY_CHUNKS_PLACE_USING_IRIS_GENERATION = TextKey.of( + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation", + "Delete and regenerate nearby chunks in place using Iris generation" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_RADIUS_NEARBY_CHUNKS = TextKey.of( + "iris.director.commanddeveloper.param.radius_nearby_chunks", + "The radius of nearby chunks" + ); + public static final TextKey COMMAND_DEVELOPER_DIRECTOR_GENERATE_CHUNKS_INTO_BUFFERS_NO_WORLD_WRITES_HASH_BLOCKS_BIOMES_CAPTURES_GOLDEN = TextKey.of( + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden", + "Generate chunks into buffers (no world writes) and hash blocks+biomes; captures a golden file or verifies against an existing one. Resets mantle in the scanned area - use on disposable test worlds." + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_WORLD_SCAN = TextKey.of( + "iris.director.commanddeveloper.param.world_scan", + "The world to scan" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_CENTER_2 = TextKey.of( + "iris.director.commanddeveloper.param.radius_chunks_around_center_2", + "Radius in chunks around the center" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_X_2 = TextKey.of( + "iris.director.commanddeveloper.param.center_chunk_x_2", + "Center chunk X" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_Z_2 = TextKey.of( + "iris.director.commanddeveloper.param.center_chunk_z_2", + "Center chunk Z" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_DELETE_MANTLE_DATA_SCAN_AREA_FIRST_FULL_REGENERATION_FROM_SCRATCH = TextKey.of( + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch", + "Delete mantle data in the scan area first for full regeneration from scratch" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_CONCURRENT_CHUNK_GENERATIONS_1_STRICTLY_SERIAL_ORDER_DEPENDENCE_TESTING = TextKey.of( + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing", + "Concurrent chunk generations; 1 = strictly serial for order-dependence testing" + ); + public static final TextKey COMMAND_DEVELOPER_PARAM_ALSO_DUMP_FULL_PER_CHUNK_NON_AIR_BLOCKSTATES_OFFLINE_DIFFING = TextKey.of( + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing", + "Also dump full per-chunk non-air blockstates for offline diffing" + ); + public static final TextKey COMMAND_EDIT_DIRECTOR_EDIT_SOMETHING = TextKey.of( + "iris.director.commandedit.director.edit_something", + "Edit something" + ); + public static final TextKey COMMAND_EDIT_DIRECTOR_EDIT_BIOME_YOU_SPECIFIED = TextKey.of( + "iris.director.commandedit.director.edit_biome_you_specified", + "Edit the biome you specified" + ); + public static final TextKey COMMAND_EDIT_PARAM_BIOME_EDIT = TextKey.of( + "iris.director.commandedit.param.biome_edit", + "The biome to edit" + ); + public static final TextKey COMMAND_EDIT_DIRECTOR_EDIT_REGION_YOU_SPECIFIED = TextKey.of( + "iris.director.commandedit.director.edit_region_you_specified", + "Edit the region you specified" + ); + public static final TextKey COMMAND_EDIT_PARAM_REGION_EDIT = TextKey.of( + "iris.director.commandedit.param.region_edit", + "The region to edit" + ); + public static final TextKey COMMAND_EDIT_DIRECTOR_EDIT_DIMENSION_YOU_SPECIFIED = TextKey.of( + "iris.director.commandedit.director.edit_dimension_you_specified", + "Edit the dimension you specified" + ); + public static final TextKey COMMAND_EDIT_PARAM_DIMENSION_EDIT = TextKey.of( + "iris.director.commandedit.param.dimension_edit", + "The dimension to edit" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_IRIS_FIND_COMMANDS = TextKey.of( + "iris.director.commandfind.director.iris_find_commands", + "Iris Find commands" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_FIND_BIOME = TextKey.of( + "iris.director.commandfind.director.find_biome", + "Find a biome" + ); + public static final TextKey COMMAND_FIND_PARAM_BIOME_LOOK = TextKey.of( + "iris.director.commandfind.param.biome_look", + "The biome to look for" + ); + public static final TextKey COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED = TextKey.of( + "iris.director.commandfind.param.should_you_be_teleported", + "Should you be teleported" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_FIND_REGION = TextKey.of( + "iris.director.commandfind.director.find_region", + "Find a region" + ); + public static final TextKey COMMAND_FIND_PARAM_REGION_LOOK = TextKey.of( + "iris.director.commandfind.param.region_look", + "The region to look for" + ); + public static final TextKey COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_2 = TextKey.of( + "iris.director.commandfind.param.should_you_be_teleported_2", + "Should you be teleported" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_FIND_POINT_INTEREST = TextKey.of( + "iris.director.commandfind.director.find_point_interest", + "Find a point of interest." + ); + public static final TextKey COMMAND_FIND_PARAM_TYPE_POI_LOOK = TextKey.of( + "iris.director.commandfind.param.type_poi_look", + "The type of PoI to look for." + ); + public static final TextKey COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_3 = TextKey.of( + "iris.director.commandfind.param.should_you_be_teleported_3", + "Should you be teleported" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_FIND_STRUCTURE_VANILLA_KEY_LIKE_MINECRAFT_VILLAGE_PLAINS_MINECRAFT_STRONGHOLD_IMPORTED_IRIS = TextKey.of( + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris", + "Find a structure (a vanilla key like minecraft:village_plains or minecraft:stronghold, or an imported iris structure key)" + ); + public static final TextKey COMMAND_FIND_PARAM_STRUCTURE_LOOK_E_G_MINECRAFT_VILLAGE_PLAINS_MINECRAFT_STRONGHOLD_MINECRAFT_ANCIENT_CITY = TextKey.of( + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city", + "The structure to look for (e.g. minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)" + ); + public static final TextKey COMMAND_FIND_DIRECTOR_FIND_OBJECT = TextKey.of( + "iris.director.commandfind.director.find_object", + "Find an object" + ); + public static final TextKey COMMAND_FIND_PARAM_OBJECT_LOOK = TextKey.of( + "iris.director.commandfind.param.object_look", + "The object to look for" + ); + public static final TextKey COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_4 = TextKey.of( + "iris.director.commandfind.param.should_you_be_teleported_4", + "Should you be teleported" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_BASIC_COMMAND = TextKey.of( + "iris.director.commandiris.director.basic_command", + "Basic Command" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_CREATE_NEW_WORLD = TextKey.of( + "iris.director.commandiris.director.create_new_world", + "Create a new world" + ); + public static final TextKey COMMAND_IRIS_PARAM_NAME_WORLD_CREATE = TextKey.of( + "iris.director.commandiris.param.name_world_create", + "The name of the world to create" + ); + public static final TextKey COMMAND_IRIS_PARAM_DIMENSION_PACK_CREATE_WORLD_WITH = TextKey.of( + "iris.director.commandiris.param.dimension_pack_create_world_with", + "The dimension/pack to create the world with" + ); + public static final TextKey COMMAND_IRIS_PARAM_SEED_GENERATE_WORLD_WITH = TextKey.of( + "iris.director.commandiris.param.seed_generate_world_with", + "The seed to generate the world with" + ); + public static final TextKey COMMAND_IRIS_PARAM_WHETHER_NOT_AUTOMATICALLY_USE_THIS_WORLD_AS_MAIN_WORLD = TextKey.of( + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world", + "Whether or not to automatically use this world as the main world" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_TELEPORT_ANOTHER_WORLD = TextKey.of( + "iris.director.commandiris.director.teleport_another_world", + "Teleport to another world" + ); + public static final TextKey COMMAND_IRIS_PARAM_WORLD_TELEPORT = TextKey.of( + "iris.director.commandiris.param.world_teleport", + "World to teleport to" + ); + public static final TextKey COMMAND_IRIS_PARAM_PLAYER_TELEPORT = TextKey.of( + "iris.director.commandiris.param.player_teleport", + "Player to teleport" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_PRINT_VERSION_INFORMATION = TextKey.of( + "iris.director.commandiris.director.print_version_information", + "Print version information" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_BENCHMARK_PACK = TextKey.of( + "iris.director.commandiris.director.benchmark_pack", + "Benchmark a pack" + ); + public static final TextKey COMMAND_IRIS_PARAM_DIMENSION_BENCHMARK = TextKey.of( + "iris.director.commandiris.param.dimension_benchmark", + "Dimension to benchmark" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_PRINT_WORLD_HEIGHT_INFORMATION = TextKey.of( + "iris.director.commandiris.director.print_world_height_information", + "Print world height information" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_CHECK_ACCESS_ALL_WORLDS = TextKey.of( + "iris.director.commandiris.director.check_access_all_worlds", + "Check access of all worlds." + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_REMOVE_IRIS_WORLD = TextKey.of( + "iris.director.commandiris.director.remove_iris_world", + "Remove an Iris world" + ); + public static final TextKey COMMAND_IRIS_PARAM_WORLD_REMOVE = TextKey.of( + "iris.director.commandiris.param.world_remove", + "The world to remove" + ); + public static final TextKey COMMAND_IRIS_PARAM_WHETHER_ALSO_REMOVE_FOLDER_IF_SET_FALSE_JUST_DOES_NOT_LOAD_WORLD = TextKey.of( + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world", + "Whether to also remove the folder (if set to false, just does not load the world)" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_TOGGLE_DEBUG = TextKey.of( + "iris.director.commandiris.director.toggle_debug", + "Toggle debug" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_DOWNLOAD_PROJECT = TextKey.of( + "iris.director.commandiris.director.download_project", + "Download a project." + ); + public static final TextKey COMMAND_IRIS_PARAM_PACK_DOWNLOAD = TextKey.of( + "iris.director.commandiris.param.pack_download", + "The pack to download" + ); + public static final TextKey COMMAND_IRIS_PARAM_BRANCH_DOWNLOAD_FROM = TextKey.of( + "iris.director.commandiris.param.branch_download_from", + "The branch to download from" + ); + public static final TextKey COMMAND_IRIS_PARAM_WHETHER_NOT_OVERWRITE_PACK_WITH_DOWNLOADED_ONE = TextKey.of( + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one", + "Whether or not to overwrite the pack with the downloaded one" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_GET_METRICS_YOUR_WORLD = TextKey.of( + "iris.director.commandiris.director.get_metrics_your_world", + "Get metrics for your world" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_RELOAD_CONFIGURATION_FILE_THIS_IS_ALSO_DONE_AUTOMATICALLY = TextKey.of( + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically", + "Reload configuration file (this is also done automatically)" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_UNLOAD_IRIS_WORLD = TextKey.of( + "iris.director.commandiris.director.unload_iris_world", + "Unload an Iris World" + ); + public static final TextKey COMMAND_IRIS_PARAM_WORLD_UNLOAD = TextKey.of( + "iris.director.commandiris.param.world_unload", + "The world to unload" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_LOAD_IRIS_WORLD = TextKey.of( + "iris.director.commandiris.director.load_iris_world", + "Load an Iris World" + ); + public static final TextKey COMMAND_IRIS_PARAM_NAME_WORLD_LOAD = TextKey.of( + "iris.director.commandiris.param.name_world_load", + "The name of the world to load" + ); + public static final TextKey COMMAND_IRIS_DIRECTOR_EVACUATE_IRIS_WORLD = TextKey.of( + "iris.director.commandiris.director.evacuate_iris_world", + "Evacuate an iris world" + ); + public static final TextKey COMMAND_IRIS_PARAM_EVACUATE_WORLD = TextKey.of( + "iris.director.commandiris.param.evacuate_world", + "Evacuate the world" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_IRIS_OBJECT_MANIPULATION = TextKey.of( + "iris.director.commandobject.director.iris_object_manipulation", + "Iris object manipulation" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_OPEN_OBJECT_STUDIO_WORLD_GRID_EVERY_OBJECT_DIMENSION_OPTIONAL_DEFAULTS_ALL_PACKS = TextKey.of( + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs", + "Open an object studio world (grid of every object; dimension optional, defaults to all packs)" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OPTIONAL_DIMENSION_WHOSE_OBJECT_PACK_LAY_OUT_OMIT_AGGREGATE_OBJECTS_FROM_EVERY = TextKey.of( + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every", + "Optional dimension whose object pack to lay out; omit to aggregate objects from every pack" + ); + public static final TextKey COMMAND_OBJECT_PARAM_SEED_GENERATE_STUDIO_WITH = TextKey.of( + "iris.director.commandobject.param.seed_generate_studio_with", + "The seed to generate the studio with" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_CHECK_COMPOSITION_OBJECT = TextKey.of( + "iris.director.commandobject.director.check_composition_object", + "Check the composition of an object" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OBJECT_ANALYZE = TextKey.of( + "iris.director.commandobject.param.object_analyze", + "The object to analyze" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_SHRINK_OBJECT_ITS_MINIMUM_SIZE = TextKey.of( + "iris.director.commandobject.director.shrink_object_its_minimum_size", + "Shrink an object to its minimum size" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OBJECT_SHRINK = TextKey.of( + "iris.director.commandobject.param.object_shrink", + "The object to shrink" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_GROW_ORGANIC_BRANCHES_THROUGH_CANOPY_SO_EVERY_LEAF_SURVIVES_VANILLA_DECAY = TextKey.of( + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay", + "Grow organic branches through the canopy so every leaf survives vanilla decay" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OBJECT_KEY_PREFIX_TREES_FILESYSTEM_PATH = TextKey.of( + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path", + "Object key, prefix (trees/), or filesystem path" + ); + public static final TextKey COMMAND_OBJECT_PARAM_DRYRUN_TRUE_ANALYZES_ONLY_WRITES_NOTHING = TextKey.of( + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing", + "dryrun=true analyzes only, writes nothing" + ); + public static final TextKey COMMAND_OBJECT_PARAM_REACH_N_MAX_BRANCH_LENGTH_BLOCKS_FROM_EXISTING_WOOD_FARTHER_LEAF_CLUSTERS = TextKey.of( + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters", + "reach=N max branch length in blocks from existing wood; farther leaf clusters are pinned persistent instead. reach=0 grows unlimited" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_CONVERT_SCHEM_FILES_CONVERT_FOLDER_IOB_FILES = TextKey.of( + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files", + "Convert .schem files in the 'convert' folder to .iob files." + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_GET_POWDER_THAT_REVEALS_OBJECTS = TextKey.of( + "iris.director.commandobject.director.get_powder_that_reveals_objects", + "Get a powder that reveals objects" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_CONTRACT_SELECTION_BASED_ON_YOUR_LOOKING_DIRECTION = TextKey.of( + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction", + "Contract a selection based on your looking direction" + ); + public static final TextKey COMMAND_OBJECT_PARAM_AMOUNT_INSET_BY = TextKey.of( + "iris.director.commandobject.param.amount_inset_by", + "The amount to inset by" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_SET_POINT_1_LOOK = TextKey.of( + "iris.director.commandobject.director.set_point_1_look", + "Set point 1 to look" + ); + public static final TextKey COMMAND_OBJECT_PARAM_WHETHER_USE_YOUR_CURRENT_POSITION_WHERE_YOU_LOOK = TextKey.of( + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look", + "Whether to use your current position, or where you look" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_SET_POINT_2_LOOK = TextKey.of( + "iris.director.commandobject.director.set_point_2_look", + "Set point 2 to look" + ); + public static final TextKey COMMAND_OBJECT_PARAM_WHETHER_USE_YOUR_CURRENT_POSITION_WHERE_YOU_LOOK_2 = TextKey.of( + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2", + "Whether to use your current position, or where you look" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_PASTE_OBJECT = TextKey.of( + "iris.director.commandobject.director.paste_object", + "Paste an object" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OBJECT_PASTE = TextKey.of( + "iris.director.commandobject.param.object_paste", + "The object to paste" + ); + public static final TextKey COMMAND_OBJECT_PARAM_WHETHER_NOT_EDIT_OBJECT_NEED_HOLD_WAND = TextKey.of( + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand", + "Whether or not to edit the object (need to hold wand)" + ); + public static final TextKey COMMAND_OBJECT_PARAM_AMOUNT_DEGREES_ROTATE_BY = TextKey.of( + "iris.director.commandobject.param.amount_degrees_rotate_by", + "The amount of degrees to rotate by" + ); + public static final TextKey COMMAND_OBJECT_PARAM_FACTOR_BY_WHICH_SCALE_OBJECT_PLACEMENT = TextKey.of( + "iris.director.commandobject.param.factor_by_which_scale_object_placement", + "The factor by which to scale the object placement" + ); + public static final TextKey COMMAND_OBJECT_PARAM_SCALE_INTERPOLATOR_USE = TextKey.of( + "iris.director.commandobject.param.scale_interpolator_use", + "The scale interpolator to use" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_SAVE_OBJECT = TextKey.of( + "iris.director.commandobject.director.save_object", + "Save an object" + ); + public static final TextKey COMMAND_OBJECT_PARAM_DIMENSION_STORE_OBJECT = TextKey.of( + "iris.director.commandobject.param.dimension_store_object", + "The dimension to store the object in" + ); + public static final TextKey COMMAND_OBJECT_PARAM_FILE_STORE_IT_CAN_USE_SUBFOLDERS = TextKey.of( + "iris.director.commandobject.param.file_store_it_can_use_subfolders", + "The file to store it in, can use / for subfolders" + ); + public static final TextKey COMMAND_OBJECT_PARAM_OVERWRITE_EXISTING_OBJECT_FILES = TextKey.of( + "iris.director.commandobject.param.overwrite_existing_object_files", + "Overwrite existing object files" + ); + public static final TextKey COMMAND_OBJECT_PARAM_USE_LEGACY_TILESTATE_SERIALIZATION_IF_POSSIBLE = TextKey.of( + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible", + "Use legacy TileState serialization if possible" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_SHIFT_SELECTION_YOUR_LOOKING_DIRECTION = TextKey.of( + "iris.director.commandobject.director.shift_selection_your_looking_direction", + "Shift a selection in your looking direction" + ); + public static final TextKey COMMAND_OBJECT_PARAM_AMOUNT_SHIFT_BY = TextKey.of( + "iris.director.commandobject.param.amount_shift_by", + "The amount to shift by" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_UNDO_NUMBER_PASTES = TextKey.of( + "iris.director.commandobject.director.undo_number_pastes", + "Undo a number of pastes" + ); + public static final TextKey COMMAND_OBJECT_PARAM_AMOUNT_PASTES_UNDO = TextKey.of( + "iris.director.commandobject.param.amount_pastes_undo", + "The amount of pastes to undo" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_GETS_OBJECT_WAND_GRABS_CURRENT_WORLDEDIT_SELECTION = TextKey.of( + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection", + "Gets an object wand and grabs the current WorldEdit selection." + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_GET_OBJECT_WAND = TextKey.of( + "iris.director.commandobject.director.get_object_wand", + "Get an object wand" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_AUTOSELECT_UP_DOWN_OUT = TextKey.of( + "iris.director.commandobject.director.autoselect_up_down_out", + "Autoselect up, down & out" + ); + public static final TextKey COMMAND_OBJECT_DIRECTOR_AUTOSELECT_UP_OUT = TextKey.of( + "iris.director.commandobject.director.autoselect_up_out", + "Autoselect up & out" + ); + public static final TextKey COMMAND_PACK_DIRECTOR_PACK_VALIDATION_MAINTENANCE = TextKey.of( + "iris.director.commandpack.director.pack_validation_maintenance", + "Pack validation and maintenance" + ); + public static final TextKey COMMAND_PACK_DIRECTOR_VALIDATE_PACK_ALL_PACKS_RE_PUBLISH_RESULTS = TextKey.of( + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results", + "Validate a pack (or all packs) and re-publish results" + ); + public static final TextKey COMMAND_PACK_PARAM_PACK_FOLDER_NAME_VALIDATE_LEAVE_EMPTY_ALL = TextKey.of( + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all", + "The pack folder name to validate (leave empty for all)" + ); + public static final TextKey COMMAND_PACK_DIRECTOR_PREVIEW_APPLY_UNUSED_RESOURCE_CLEANUP = TextKey.of( + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup", + "Preview or apply unused-resource cleanup" + ); + public static final TextKey COMMAND_PACK_PARAM_PACK_FOLDER_NAME_CLEAN = TextKey.of( + "iris.director.commandpack.param.pack_folder_name_clean", + "The pack folder name to clean" + ); + public static final TextKey COMMAND_PACK_PARAM_PREVIEW_APPLY = TextKey.of( + "iris.director.commandpack.param.preview_apply", + "preview or apply" + ); + public static final TextKey COMMAND_PACK_DIRECTOR_PREVIEW_APPLY_RESTORATION_LATEST_QUARANTINE = TextKey.of( + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine", + "Preview or apply restoration of the latest quarantine" + ); + public static final TextKey COMMAND_PACK_PARAM_PACK_FOLDER_NAME_RESTORE = TextKey.of( + "iris.director.commandpack.param.pack_folder_name_restore", + "The pack folder name to restore" + ); + public static final TextKey COMMAND_PACK_PARAM_PREVIEW_APPLY_2 = TextKey.of( + "iris.director.commandpack.param.preview_apply_2", + "preview or apply" + ); + public static final TextKey COMMAND_PACK_DIRECTOR_SHOW_CACHED_VALIDATION_STATUS_PACK = TextKey.of( + "iris.director.commandpack.director.show_cached_validation_status_pack", + "Show cached validation status for a pack" + ); + public static final TextKey COMMAND_PACK_PARAM_PACK_FOLDER_NAME = TextKey.of( + "iris.director.commandpack.param.pack_folder_name", + "The pack folder name" + ); + public static final TextKey COMMAND_PREGEN_DIRECTOR_PREGENERATE_YOUR_IRIS_WORLDS = TextKey.of( + "iris.director.commandpregen.director.pregenerate_your_iris_worlds", + "Pregenerate your Iris worlds!" + ); + public static final TextKey COMMAND_PREGEN_DIRECTOR_PREGENERATE_WORLD = TextKey.of( + "iris.director.commandpregen.director.pregenerate_world", + "Pregenerate a world" + ); + public static final TextKey COMMAND_PREGEN_PARAM_RADIUS_PREGEN_BLOCKS = TextKey.of( + "iris.director.commandpregen.param.radius_pregen_blocks", + "The radius of the pregen in blocks" + ); + public static final TextKey COMMAND_PREGEN_PARAM_WORLD_PREGEN = TextKey.of( + "iris.director.commandpregen.param.world_pregen", + "The world to pregen" + ); + public static final TextKey COMMAND_PREGEN_PARAM_CENTER_LOCATION_PREGEN_USE_ME_YOUR_CURRENT_LOCATION = TextKey.of( + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location", + "The center location of the pregen. Use \"me\" for your current location" + ); + public static final TextKey COMMAND_PREGEN_PARAM_OPEN_IRIS_PREGEN_GUI = TextKey.of( + "iris.director.commandpregen.param.open_iris_pregen_gui", + "Open the Iris pregen gui" + ); + public static final TextKey COMMAND_PREGEN_PARAM_GENERATE_ONLY_ONE_CHUNK_AT_TIME = TextKey.of( + "iris.director.commandpregen.param.generate_only_one_chunk_at_time", + "Generate only one chunk at a time" + ); + public static final TextKey COMMAND_PREGEN_DIRECTOR_STOP_ACTIVE_PREGENERATION_TASK = TextKey.of( + "iris.director.commandpregen.director.stop_active_pregeneration_task", + "Stop the active pregeneration task" + ); + public static final TextKey COMMAND_PREGEN_DIRECTOR_PAUSE_CONTINUE_ACTIVE_PREGENERATION_TASK = TextKey.of( + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task", + "Pause / continue the active pregeneration task" + ); + public static final TextKey COMMAND_PREGEN_DIRECTOR_SHOW_ACTIVE_PREGENERATION_STATUS = TextKey.of( + "iris.director.commandpregen.director.show_active_pregeneration_status", + "Show the active pregeneration status" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_IRIS_STRUCTURE_TOOLS_INDEX_IMPORT_INFO = TextKey.of( + "iris.director.commandstructure.director.iris_structure_tools_index_import_info", + "Iris structure tools (index, import, info)" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_REGENERATE_STRUCTURE_INDEX_JSON_LISTING_ALL_VANILLA_DATAPACK_IRIS_STRUCTURES = TextKey.of( + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures", + "Regenerate structure-index.json listing all vanilla, datapack & iris structures" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_INDEX = TextKey.of( + "iris.director.commandstructure.param.dimension_whose_pack_index", + "The dimension whose pack to index" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_IMPORT_EVERY_STRUCTURE_VANILLA_INGESTED_DATAPACKS_INTO_THIS_PACK_AS_EDITABLE_IRIS = TextKey.of( + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris", + "Import EVERY structure - vanilla AND ingested datapacks - into this pack as editable Iris resources, always overwriting. Rebuilds jigsaw structures (villages, outposts, datapack jigsaws) as editable pool/piece graphs, imports every structure template NBT as an object, and assembles the multi-template structures (shipwrecks, ruined portals, ocean ruins, nether fossils). Run after ingesting a datapack and restarting. Regenerate chunks or use a fresh world for the imported copies to place." + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_IMPORT_INTO = TextKey.of( + "iris.director.commandstructure.param.dimension_whose_pack_import_into", + "The dimension whose pack to import into" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_CAPTURE_CODE_GENERATED_STRUCTURES_THAT_HAVE_NO_NBT_TEMPLATE_SWAMP_HUTS_IGLOOS = TextKey.of( + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos", + "Capture code-generated structures that have no NBT template (swamp huts, igloos, etc.) into editable Iris objects by generating each one in a throwaway scratch world and reading back its blocks. Skips structures that already import as a structure, structures wider/taller than the capture cap (strongholds, mansions, monuments stay vanilla), and anything that will not generate in a flat overworld. Each captured structure becomes a single-piece Iris structure you can place from a biome/region/dimension 'structures' list. Runs automatically as the last pass of /iris structure import." + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_CAPTURE_INTO = TextKey.of( + "iris.director.commandstructure.param.dimension_whose_pack_capture_into", + "The dimension whose pack to capture into" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_VERIFY_NATIVE_STRUCTURE_ELIGIBILITY_LOCATE_IRIS_PLACED_STRUCTURES_WITHOUT_RUNNING_BLOCKING_NATIVE = TextKey.of( + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native", + "Verify native structure eligibility and locate Iris-placed structures without running blocking native searches." + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_VERIFY = TextKey.of( + "iris.director.commandstructure.param.dimension_verify", + "The dimension to verify" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_SEARCH_RADIUS_CHUNKS_AROUND_ORIGIN_LARGER_IS_MUCH_SLOWER = TextKey.of( + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower", + "Search radius in chunks around the origin (larger is much slower)" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_RESOLVE_IRIS_STRUCTURE_S_JIGSAW_GRAPH_REPORT_PIECE_COUNT_BOUNDS = TextKey.of( + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds", + "Resolve an iris structure's jigsaw graph and report piece count & bounds" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_HOLDS_STRUCTURE = TextKey.of( + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure", + "The dimension whose pack holds the structure" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_IRIS_STRUCTURE_KEY_INSPECT = TextKey.of( + "iris.director.commandstructure.param.iris_structure_key_inspect", + "The iris structure key to inspect" + ); + public static final TextKey COMMAND_STRUCTURE_DIRECTOR_ASSEMBLE_PLACE_IRIS_STRUCTURE_AT_YOUR_LOCATION_STUDIO_TESTING = TextKey.of( + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing", + "Assemble and place an iris structure at your location (studio testing)" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_HOLDS_STRUCTURE_2 = TextKey.of( + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2", + "The dimension whose pack holds the structure" + ); + public static final TextKey COMMAND_STRUCTURE_PARAM_IRIS_STRUCTURE_KEY_PLACE = TextKey.of( + "iris.director.commandstructure.param.iris_structure_key_place", + "The iris structure key to place" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_STUDIO_COMMANDS = TextKey.of( + "iris.director.commandstudio.director.studio_commands", + "Studio Commands" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_OPEN_NEW_STUDIO_WORLD = TextKey.of( + "iris.director.commandstudio.director.open_new_studio_world", + "Open a new studio world" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_PACK_OPEN_STUDIO = TextKey.of( + "iris.director.commandstudio.param.dimension_pack_open_studio", + "The dimension pack to open a studio for" + ); + public static final TextKey COMMAND_STUDIO_PARAM_SEED_GENERATE_STUDIO_WITH = TextKey.of( + "iris.director.commandstudio.param.seed_generate_studio_with", + "The seed to generate the studio with" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_IMPORT_VANILLA_TREES_MUSHROOMS_OBJECTS_STRUCTURES_JIGSAW_FROM_SERVER_INTO_PACK_S = TextKey.of( + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s", + "Import vanilla trees, mushrooms & objects (and structures/jigsaw) from the server into a pack's objects/vanilla folder" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_PACK_IMPORT_VANILLA_CONTENT_INTO = TextKey.of( + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into", + "The dimension pack to import vanilla content into" + ); + public static final TextKey COMMAND_STUDIO_PARAM_HOW_MANY_VARIANTS_CAPTURE_PER_TREE_OBJECT_FEATURE = TextKey.of( + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature", + "How many variants to capture per tree/object feature" + ); + public static final TextKey COMMAND_STUDIO_PARAM_ALSO_IMPORT_VANILLA_DATAPACK_STRUCTURES_JIGSAW_INTO_PACK = TextKey.of( + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack", + "Also import vanilla & datapack structures/jigsaw into the pack" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_OPEN_VSCODE_DIMENSION = TextKey.of( + "iris.director.commandstudio.director.open_vscode_dimension", + "Open VSCode for a dimension" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_OPEN_VSCODE = TextKey.of( + "iris.director.commandstudio.param.dimension_open_vscode", + "The dimension to open VSCode for" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_CLOSE_OPEN_STUDIO_PROJECT = TextKey.of( + "iris.director.commandstudio.director.close_open_studio_project", + "Close an open studio project" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_TOGGLE_YOUR_STUDIO_DEBUG_SCOREBOARD = TextKey.of( + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard", + "Toggle your Studio debug scoreboard" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_CREATE_NEW_STUDIO_PROJECT = TextKey.of( + "iris.director.commandstudio.director.create_new_studio_project", + "Create a new studio project" + ); + public static final TextKey COMMAND_STUDIO_PARAM_NAME_THIS_NEW_IRIS_PROJECT = TextKey.of( + "iris.director.commandstudio.param.name_this_new_iris_project", + "The name of this new Iris Project." + ); + public static final TextKey COMMAND_STUDIO_PARAM_COPY_CONTENTS_EXISTING_PROJECT_YOUR_PACKS_FOLDER_USE_IT_AS_TEMPLATE_THIS = TextKey.of( + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this", + "Copy the contents of an existing project in your packs folder and use it as a template in this new project." + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_GET_VERSION_PACK = TextKey.of( + "iris.director.commandstudio.director.get_version_pack", + "Get the version of a pack" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_GET_VERSION = TextKey.of( + "iris.director.commandstudio.param.dimension_get_version", + "The dimension get the version of" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_OPEN_NOISE_EXPLORER_EXTERNAL_GUI = TextKey.of( + "iris.director.commandstudio.director.open_noise_explorer_external_gui", + "Open the noise explorer (External GUI)" + ); + public static final TextKey COMMAND_STUDIO_PARAM_OPTIONAL_PACK_GENERATOR_PREVIEW = TextKey.of( + "iris.director.commandstudio.param.optional_pack_generator_preview", + "Optional pack generator to preview" + ); + public static final TextKey COMMAND_STUDIO_PARAM_SEED_PREVIEW_GENERATOR_WITH = TextKey.of( + "iris.director.commandstudio.param.seed_preview_generator_with", + "The seed to preview the generator with" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_SHOW_LOOT_IF_CHEST_WERE_RIGHT_HERE = TextKey.of( + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here", + "Show loot if a chest were right here" + ); + public static final TextKey COMMAND_STUDIO_PARAM_FAST_INSERTION_ITEMS_VIRTUAL_INVENTORY_MAY_CAUSE_PERFORMANCE_DROP = TextKey.of( + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop", + "Fast insertion of items in virtual inventory (may cause performance drop)" + ); + public static final TextKey COMMAND_STUDIO_PARAM_WHETHER_NOT_APPEND_INVENTORY_CURRENTLY_OPEN_IF_FALSE_CLEARS_OPENED_INVENTORY = TextKey.of( + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory", + "Whether or not to append to the inventory currently open (if false, clears opened inventory)" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_CALCULATE_CHANCE_EACH_REGION_GENERATE = TextKey.of( + "iris.director.commandstudio.director.calculate_chance_each_region_generate", + "Calculate the chance for each region to generate" + ); + public static final TextKey COMMAND_STUDIO_PARAM_RADIUS_CHUNKS = TextKey.of( + "iris.director.commandstudio.param.radius_chunks", + "The radius in chunks" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_RENDER_WORLD_MAP_EXTERNAL_GUI = TextKey.of( + "iris.director.commandstudio.director.render_world_map_external_gui", + "Render a world map (External GUI)" + ); + public static final TextKey COMMAND_STUDIO_PARAM_WORLD_OPEN_GENERATOR = TextKey.of( + "iris.director.commandstudio.param.world_open_generator", + "The world to open the generator for" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_PACKAGE_DIMENSION_INTO_COMPRESSED_FORMAT = TextKey.of( + "iris.director.commandstudio.director.package_dimension_into_compressed_format", + "Package a dimension into a compressed format" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_PACK_COMPRESS = TextKey.of( + "iris.director.commandstudio.param.dimension_pack_compress", + "The dimension pack to compress" + ); + public static final TextKey COMMAND_STUDIO_PARAM_WHETHER_NOT_OBFUSCATE_PACK = TextKey.of( + "iris.director.commandstudio.param.whether_not_obfuscate_pack", + "Whether or not to obfuscate the pack" + ); + public static final TextKey COMMAND_STUDIO_PARAM_WHETHER_NOT_MINIFY_PACK = TextKey.of( + "iris.director.commandstudio.param.whether_not_minify_pack", + "Whether or not to minify the pack" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_PROFILES_PERFORMANCE_DIMENSION = TextKey.of( + "iris.director.commandstudio.director.profiles_performance_dimension", + "Profiles the performance of a dimension" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_PROFILE = TextKey.of( + "iris.director.commandstudio.param.dimension_profile", + "The dimension to profile" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_SPAWN_IRIS_ENTITY = TextKey.of( + "iris.director.commandstudio.director.spawn_iris_entity", + "Spawn an Iris entity" + ); + public static final TextKey COMMAND_STUDIO_PARAM_ENTITY_SPAWN = TextKey.of( + "iris.director.commandstudio.param.entity_spawn", + "The entity to spawn" + ); + public static final TextKey COMMAND_STUDIO_PARAM_LOCATION_SPAWN_ENTITY_AT = TextKey.of( + "iris.director.commandstudio.param.location_spawn_entity_at", + "The location to spawn the entity at" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_TELEPORT_ACTIVE_STUDIO_WORLD = TextKey.of( + "iris.director.commandstudio.director.teleport_active_studio_world", + "Teleport to the active studio world" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_UPDATE_YOUR_DIMENSION_PROJECTS_VSCODE_WORKSPACE = TextKey.of( + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace", + "Update your dimension projects VSCode workspace" + ); + public static final TextKey COMMAND_STUDIO_PARAM_DIMENSION_UPDATE_WORKSPACE = TextKey.of( + "iris.director.commandstudio.param.dimension_update_workspace", + "The dimension to update the workspace of" + ); + public static final TextKey COMMAND_STUDIO_DIRECTOR_CAPTURE_IGENDATA_CHUNK_REPORT_NEARBY_CHUNKS = TextKey.of( + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks", + "Capture an IGenData chunk report for nearby chunks" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_IRIS_WHAT = TextKey.of( + "iris.director.commandwhat.director.iris_what", + "Iris What?" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_WHAT_IS_MY_HAND = TextKey.of( + "iris.director.commandwhat.director.what_is_my_hand", + "What is in my hand?" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_WHAT_BIOME_AM_I = TextKey.of( + "iris.director.commandwhat.director.what_biome_am_i", + "What biome am i in?" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_WHAT_REGION_AM_I = TextKey.of( + "iris.director.commandwhat.director.what_region_am_i", + "What region am i in?" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_WHAT_BLOCK_AM_I_LOOKING_AT = TextKey.of( + "iris.director.commandwhat.director.what_block_am_i_looking_at", + "What block am i looking at?" + ); + public static final TextKey COMMAND_WHAT_DIRECTOR_SHOW_MARKERS_CHUNK = TextKey.of( + "iris.director.commandwhat.director.show_markers_chunk", + "Show markers in chunk" + ); + public static final TextKey COMMAND_WHAT_PARAM_MARKER_NAME_SUCH_AS_CAVE_FLOOR_CAVE_CEILING = TextKey.of( + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling", + "Marker name such as cave_floor or cave_ceiling" + ); + + private static final List KEYS = List.of( + COMMAND_DATAPACK_DIRECTOR_DOWNLOAD_MANAGE_EXTERNAL_DATAPACK_IMPORTS_MODRINTH, + COMMAND_DATAPACK_DIRECTOR_DOWNLOAD_UPDATE_EVERY_DATAPACK_LISTED_PACK_DIMENSION_S_DATAPACKIMPORTS_INSTALL_IT_INTO, + COMMAND_DATAPACK_PARAM_RESTART_SERVER_WHEN_NEW_DATAPACKS_ARE_INSTALLED_REQUIRED_NEW_STRUCTURES_REGISTER_GENERATE, + COMMAND_DATAPACK_DIRECTOR_LIST_CONFIGURED_DATAPACK_IMPORTS_THEIR_INSTALLED_VERSIONS, + COMMAND_DATAPACK_DIRECTOR_REMOVE_INSTALLED_DATAPACK_BY_ID_ALSO_DELETE_ITS_URL_FROM_DATAPACKIMPORTS_KEEP, + COMMAND_DATAPACK_PARAM_DATAPACK_ID_FOLDER_NAME_SHOWN_BY_IRIS_DATAPACK_LIST, + COMMAND_DEVELOPER_DIRECTOR_IRIS_WORLD_MANAGER, + COMMAND_DEVELOPER_DIRECTOR_GET_LOADED_TECTONICPLATES_COUNT, + COMMAND_DEVELOPER_DIRECTOR_SEND_TEST_EXCEPTION_SENTRY, + COMMAND_DEVELOPER_DIRECTOR_HASH_GENERATED_BLOCK_OUTPUT_FIXED_AREA_DETERMINISM_IDENTITY_TESTING, + COMMAND_DEVELOPER_PARAM_WORLD_HASH, + COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_CENTER, + COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_X, + COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_Z, + COMMAND_DEVELOPER_DIRECTOR_UPDATE_PACK_WORLD_UNSAFE, + COMMAND_DEVELOPER_PARAM_WORLD_UPDATE, + COMMAND_DEVELOPER_PARAM_PACK_INSTALL_INTO_WORLD, + COMMAND_DEVELOPER_PARAM_MAKE_SURE_MAKE_BACKUP_READ_WARNINGS_FIRST, + COMMAND_DEVELOPER_PARAM_SHOULD_IRIS_DOWNLOAD_PACK_AGAIN_YOU, + COMMAND_DEVELOPER_DIRECTOR_TEST, + COMMAND_DEVELOPER_PARAM_DUMP_WHOLE_TECTONIC_PLATE_INSTEAD_SINGLE_SECTION, + COMMAND_DEVELOPER_PARAM_DUMP_FILE_ID_UNDER_PLUGINS_IRIS_DUMP_PV_ID, + COMMAND_DEVELOPER_DIRECTOR_TEST_2, + COMMAND_DEVELOPER_PARAM_PACK_BENCH, + COMMAND_DEVELOPER_PARAM_RADIUS_REGIONS, + COMMAND_DEVELOPER_PARAM_OPEN_GUI_WHILE_BENCHMARKING, + COMMAND_DEVELOPER_DIRECTOR_UPGRADE_ANOTHER_MINECRAFT_VERSION, + COMMAND_DEVELOPER_PARAM_VERSION_UPGRADE, + COMMAND_DEVELOPER_DIRECTOR_TEST_3, + COMMAND_DEVELOPER_PARAM_WORLD_FOLDER_SCAN_MCA_REGION_FILES, + COMMAND_DEVELOPER_DIRECTOR_DELETE_NEARBY_CHUNK_BLOCKS_REGEN_TESTING, + COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_YOUR_CURRENT_CHUNK, + COMMAND_DEVELOPER_DIRECTOR_TEST_4, + COMMAND_DEVELOPER_DIRECTOR_DELETE_REGENERATE_NEARBY_CHUNKS_PLACE_USING_IRIS_GENERATION, + COMMAND_DEVELOPER_PARAM_RADIUS_NEARBY_CHUNKS, + COMMAND_DEVELOPER_DIRECTOR_GENERATE_CHUNKS_INTO_BUFFERS_NO_WORLD_WRITES_HASH_BLOCKS_BIOMES_CAPTURES_GOLDEN, + COMMAND_DEVELOPER_PARAM_WORLD_SCAN, + COMMAND_DEVELOPER_PARAM_RADIUS_CHUNKS_AROUND_CENTER_2, + COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_X_2, + COMMAND_DEVELOPER_PARAM_CENTER_CHUNK_Z_2, + COMMAND_DEVELOPER_PARAM_DELETE_MANTLE_DATA_SCAN_AREA_FIRST_FULL_REGENERATION_FROM_SCRATCH, + COMMAND_DEVELOPER_PARAM_CONCURRENT_CHUNK_GENERATIONS_1_STRICTLY_SERIAL_ORDER_DEPENDENCE_TESTING, + COMMAND_DEVELOPER_PARAM_ALSO_DUMP_FULL_PER_CHUNK_NON_AIR_BLOCKSTATES_OFFLINE_DIFFING, + COMMAND_EDIT_DIRECTOR_EDIT_SOMETHING, + COMMAND_EDIT_DIRECTOR_EDIT_BIOME_YOU_SPECIFIED, + COMMAND_EDIT_PARAM_BIOME_EDIT, + COMMAND_EDIT_DIRECTOR_EDIT_REGION_YOU_SPECIFIED, + COMMAND_EDIT_PARAM_REGION_EDIT, + COMMAND_EDIT_DIRECTOR_EDIT_DIMENSION_YOU_SPECIFIED, + COMMAND_EDIT_PARAM_DIMENSION_EDIT, + COMMAND_FIND_DIRECTOR_IRIS_FIND_COMMANDS, + COMMAND_FIND_DIRECTOR_FIND_BIOME, + COMMAND_FIND_PARAM_BIOME_LOOK, + COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED, + COMMAND_FIND_DIRECTOR_FIND_REGION, + COMMAND_FIND_PARAM_REGION_LOOK, + COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_2, + COMMAND_FIND_DIRECTOR_FIND_POINT_INTEREST, + COMMAND_FIND_PARAM_TYPE_POI_LOOK, + COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_3, + COMMAND_FIND_DIRECTOR_FIND_STRUCTURE_VANILLA_KEY_LIKE_MINECRAFT_VILLAGE_PLAINS_MINECRAFT_STRONGHOLD_IMPORTED_IRIS, + COMMAND_FIND_PARAM_STRUCTURE_LOOK_E_G_MINECRAFT_VILLAGE_PLAINS_MINECRAFT_STRONGHOLD_MINECRAFT_ANCIENT_CITY, + COMMAND_FIND_DIRECTOR_FIND_OBJECT, + COMMAND_FIND_PARAM_OBJECT_LOOK, + COMMAND_FIND_PARAM_SHOULD_YOU_BE_TELEPORTED_4, + COMMAND_IRIS_DIRECTOR_BASIC_COMMAND, + COMMAND_IRIS_DIRECTOR_CREATE_NEW_WORLD, + COMMAND_IRIS_PARAM_NAME_WORLD_CREATE, + COMMAND_IRIS_PARAM_DIMENSION_PACK_CREATE_WORLD_WITH, + COMMAND_IRIS_PARAM_SEED_GENERATE_WORLD_WITH, + COMMAND_IRIS_PARAM_WHETHER_NOT_AUTOMATICALLY_USE_THIS_WORLD_AS_MAIN_WORLD, + COMMAND_IRIS_DIRECTOR_TELEPORT_ANOTHER_WORLD, + COMMAND_IRIS_PARAM_WORLD_TELEPORT, + COMMAND_IRIS_PARAM_PLAYER_TELEPORT, + COMMAND_IRIS_DIRECTOR_PRINT_VERSION_INFORMATION, + COMMAND_IRIS_DIRECTOR_BENCHMARK_PACK, + COMMAND_IRIS_PARAM_DIMENSION_BENCHMARK, + COMMAND_IRIS_DIRECTOR_PRINT_WORLD_HEIGHT_INFORMATION, + COMMAND_IRIS_DIRECTOR_CHECK_ACCESS_ALL_WORLDS, + COMMAND_IRIS_DIRECTOR_REMOVE_IRIS_WORLD, + COMMAND_IRIS_PARAM_WORLD_REMOVE, + COMMAND_IRIS_PARAM_WHETHER_ALSO_REMOVE_FOLDER_IF_SET_FALSE_JUST_DOES_NOT_LOAD_WORLD, + COMMAND_IRIS_DIRECTOR_TOGGLE_DEBUG, + COMMAND_IRIS_DIRECTOR_DOWNLOAD_PROJECT, + COMMAND_IRIS_PARAM_PACK_DOWNLOAD, + COMMAND_IRIS_PARAM_BRANCH_DOWNLOAD_FROM, + COMMAND_IRIS_PARAM_WHETHER_NOT_OVERWRITE_PACK_WITH_DOWNLOADED_ONE, + COMMAND_IRIS_DIRECTOR_GET_METRICS_YOUR_WORLD, + COMMAND_IRIS_DIRECTOR_RELOAD_CONFIGURATION_FILE_THIS_IS_ALSO_DONE_AUTOMATICALLY, + COMMAND_IRIS_DIRECTOR_UNLOAD_IRIS_WORLD, + COMMAND_IRIS_PARAM_WORLD_UNLOAD, + COMMAND_IRIS_DIRECTOR_LOAD_IRIS_WORLD, + COMMAND_IRIS_PARAM_NAME_WORLD_LOAD, + COMMAND_IRIS_DIRECTOR_EVACUATE_IRIS_WORLD, + COMMAND_IRIS_PARAM_EVACUATE_WORLD, + COMMAND_OBJECT_DIRECTOR_IRIS_OBJECT_MANIPULATION, + COMMAND_OBJECT_DIRECTOR_OPEN_OBJECT_STUDIO_WORLD_GRID_EVERY_OBJECT_DIMENSION_OPTIONAL_DEFAULTS_ALL_PACKS, + COMMAND_OBJECT_PARAM_OPTIONAL_DIMENSION_WHOSE_OBJECT_PACK_LAY_OUT_OMIT_AGGREGATE_OBJECTS_FROM_EVERY, + COMMAND_OBJECT_PARAM_SEED_GENERATE_STUDIO_WITH, + COMMAND_OBJECT_DIRECTOR_CHECK_COMPOSITION_OBJECT, + COMMAND_OBJECT_PARAM_OBJECT_ANALYZE, + COMMAND_OBJECT_DIRECTOR_SHRINK_OBJECT_ITS_MINIMUM_SIZE, + COMMAND_OBJECT_PARAM_OBJECT_SHRINK, + COMMAND_OBJECT_DIRECTOR_GROW_ORGANIC_BRANCHES_THROUGH_CANOPY_SO_EVERY_LEAF_SURVIVES_VANILLA_DECAY, + COMMAND_OBJECT_PARAM_OBJECT_KEY_PREFIX_TREES_FILESYSTEM_PATH, + COMMAND_OBJECT_PARAM_DRYRUN_TRUE_ANALYZES_ONLY_WRITES_NOTHING, + COMMAND_OBJECT_PARAM_REACH_N_MAX_BRANCH_LENGTH_BLOCKS_FROM_EXISTING_WOOD_FARTHER_LEAF_CLUSTERS, + COMMAND_OBJECT_DIRECTOR_CONVERT_SCHEM_FILES_CONVERT_FOLDER_IOB_FILES, + COMMAND_OBJECT_DIRECTOR_GET_POWDER_THAT_REVEALS_OBJECTS, + COMMAND_OBJECT_DIRECTOR_CONTRACT_SELECTION_BASED_ON_YOUR_LOOKING_DIRECTION, + COMMAND_OBJECT_PARAM_AMOUNT_INSET_BY, + COMMAND_OBJECT_DIRECTOR_SET_POINT_1_LOOK, + COMMAND_OBJECT_PARAM_WHETHER_USE_YOUR_CURRENT_POSITION_WHERE_YOU_LOOK, + COMMAND_OBJECT_DIRECTOR_SET_POINT_2_LOOK, + COMMAND_OBJECT_PARAM_WHETHER_USE_YOUR_CURRENT_POSITION_WHERE_YOU_LOOK_2, + COMMAND_OBJECT_DIRECTOR_PASTE_OBJECT, + COMMAND_OBJECT_PARAM_OBJECT_PASTE, + COMMAND_OBJECT_PARAM_WHETHER_NOT_EDIT_OBJECT_NEED_HOLD_WAND, + COMMAND_OBJECT_PARAM_AMOUNT_DEGREES_ROTATE_BY, + COMMAND_OBJECT_PARAM_FACTOR_BY_WHICH_SCALE_OBJECT_PLACEMENT, + COMMAND_OBJECT_PARAM_SCALE_INTERPOLATOR_USE, + COMMAND_OBJECT_DIRECTOR_SAVE_OBJECT, + COMMAND_OBJECT_PARAM_DIMENSION_STORE_OBJECT, + COMMAND_OBJECT_PARAM_FILE_STORE_IT_CAN_USE_SUBFOLDERS, + COMMAND_OBJECT_PARAM_OVERWRITE_EXISTING_OBJECT_FILES, + COMMAND_OBJECT_PARAM_USE_LEGACY_TILESTATE_SERIALIZATION_IF_POSSIBLE, + COMMAND_OBJECT_DIRECTOR_SHIFT_SELECTION_YOUR_LOOKING_DIRECTION, + COMMAND_OBJECT_PARAM_AMOUNT_SHIFT_BY, + COMMAND_OBJECT_DIRECTOR_UNDO_NUMBER_PASTES, + COMMAND_OBJECT_PARAM_AMOUNT_PASTES_UNDO, + COMMAND_OBJECT_DIRECTOR_GETS_OBJECT_WAND_GRABS_CURRENT_WORLDEDIT_SELECTION, + COMMAND_OBJECT_DIRECTOR_GET_OBJECT_WAND, + COMMAND_OBJECT_DIRECTOR_AUTOSELECT_UP_DOWN_OUT, + COMMAND_OBJECT_DIRECTOR_AUTOSELECT_UP_OUT, + COMMAND_PACK_DIRECTOR_PACK_VALIDATION_MAINTENANCE, + COMMAND_PACK_DIRECTOR_VALIDATE_PACK_ALL_PACKS_RE_PUBLISH_RESULTS, + COMMAND_PACK_PARAM_PACK_FOLDER_NAME_VALIDATE_LEAVE_EMPTY_ALL, + COMMAND_PACK_DIRECTOR_PREVIEW_APPLY_UNUSED_RESOURCE_CLEANUP, + COMMAND_PACK_PARAM_PACK_FOLDER_NAME_CLEAN, + COMMAND_PACK_PARAM_PREVIEW_APPLY, + COMMAND_PACK_DIRECTOR_PREVIEW_APPLY_RESTORATION_LATEST_QUARANTINE, + COMMAND_PACK_PARAM_PACK_FOLDER_NAME_RESTORE, + COMMAND_PACK_PARAM_PREVIEW_APPLY_2, + COMMAND_PACK_DIRECTOR_SHOW_CACHED_VALIDATION_STATUS_PACK, + COMMAND_PACK_PARAM_PACK_FOLDER_NAME, + COMMAND_PREGEN_DIRECTOR_PREGENERATE_YOUR_IRIS_WORLDS, + COMMAND_PREGEN_DIRECTOR_PREGENERATE_WORLD, + COMMAND_PREGEN_PARAM_RADIUS_PREGEN_BLOCKS, + COMMAND_PREGEN_PARAM_WORLD_PREGEN, + COMMAND_PREGEN_PARAM_CENTER_LOCATION_PREGEN_USE_ME_YOUR_CURRENT_LOCATION, + COMMAND_PREGEN_PARAM_OPEN_IRIS_PREGEN_GUI, + COMMAND_PREGEN_PARAM_GENERATE_ONLY_ONE_CHUNK_AT_TIME, + COMMAND_PREGEN_DIRECTOR_STOP_ACTIVE_PREGENERATION_TASK, + COMMAND_PREGEN_DIRECTOR_PAUSE_CONTINUE_ACTIVE_PREGENERATION_TASK, + COMMAND_PREGEN_DIRECTOR_SHOW_ACTIVE_PREGENERATION_STATUS, + COMMAND_STRUCTURE_DIRECTOR_IRIS_STRUCTURE_TOOLS_INDEX_IMPORT_INFO, + COMMAND_STRUCTURE_DIRECTOR_REGENERATE_STRUCTURE_INDEX_JSON_LISTING_ALL_VANILLA_DATAPACK_IRIS_STRUCTURES, + COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_INDEX, + COMMAND_STRUCTURE_DIRECTOR_IMPORT_EVERY_STRUCTURE_VANILLA_INGESTED_DATAPACKS_INTO_THIS_PACK_AS_EDITABLE_IRIS, + COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_IMPORT_INTO, + COMMAND_STRUCTURE_DIRECTOR_CAPTURE_CODE_GENERATED_STRUCTURES_THAT_HAVE_NO_NBT_TEMPLATE_SWAMP_HUTS_IGLOOS, + COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_CAPTURE_INTO, + COMMAND_STRUCTURE_DIRECTOR_VERIFY_NATIVE_STRUCTURE_ELIGIBILITY_LOCATE_IRIS_PLACED_STRUCTURES_WITHOUT_RUNNING_BLOCKING_NATIVE, + COMMAND_STRUCTURE_PARAM_DIMENSION_VERIFY, + COMMAND_STRUCTURE_PARAM_SEARCH_RADIUS_CHUNKS_AROUND_ORIGIN_LARGER_IS_MUCH_SLOWER, + COMMAND_STRUCTURE_DIRECTOR_RESOLVE_IRIS_STRUCTURE_S_JIGSAW_GRAPH_REPORT_PIECE_COUNT_BOUNDS, + COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_HOLDS_STRUCTURE, + COMMAND_STRUCTURE_PARAM_IRIS_STRUCTURE_KEY_INSPECT, + COMMAND_STRUCTURE_DIRECTOR_ASSEMBLE_PLACE_IRIS_STRUCTURE_AT_YOUR_LOCATION_STUDIO_TESTING, + COMMAND_STRUCTURE_PARAM_DIMENSION_WHOSE_PACK_HOLDS_STRUCTURE_2, + COMMAND_STRUCTURE_PARAM_IRIS_STRUCTURE_KEY_PLACE, + COMMAND_STUDIO_DIRECTOR_STUDIO_COMMANDS, + COMMAND_STUDIO_DIRECTOR_OPEN_NEW_STUDIO_WORLD, + COMMAND_STUDIO_PARAM_DIMENSION_PACK_OPEN_STUDIO, + COMMAND_STUDIO_PARAM_SEED_GENERATE_STUDIO_WITH, + COMMAND_STUDIO_DIRECTOR_IMPORT_VANILLA_TREES_MUSHROOMS_OBJECTS_STRUCTURES_JIGSAW_FROM_SERVER_INTO_PACK_S, + COMMAND_STUDIO_PARAM_DIMENSION_PACK_IMPORT_VANILLA_CONTENT_INTO, + COMMAND_STUDIO_PARAM_HOW_MANY_VARIANTS_CAPTURE_PER_TREE_OBJECT_FEATURE, + COMMAND_STUDIO_PARAM_ALSO_IMPORT_VANILLA_DATAPACK_STRUCTURES_JIGSAW_INTO_PACK, + COMMAND_STUDIO_DIRECTOR_OPEN_VSCODE_DIMENSION, + COMMAND_STUDIO_PARAM_DIMENSION_OPEN_VSCODE, + COMMAND_STUDIO_DIRECTOR_CLOSE_OPEN_STUDIO_PROJECT, + COMMAND_STUDIO_DIRECTOR_TOGGLE_YOUR_STUDIO_DEBUG_SCOREBOARD, + COMMAND_STUDIO_DIRECTOR_CREATE_NEW_STUDIO_PROJECT, + COMMAND_STUDIO_PARAM_NAME_THIS_NEW_IRIS_PROJECT, + COMMAND_STUDIO_PARAM_COPY_CONTENTS_EXISTING_PROJECT_YOUR_PACKS_FOLDER_USE_IT_AS_TEMPLATE_THIS, + COMMAND_STUDIO_DIRECTOR_GET_VERSION_PACK, + COMMAND_STUDIO_PARAM_DIMENSION_GET_VERSION, + COMMAND_STUDIO_DIRECTOR_OPEN_NOISE_EXPLORER_EXTERNAL_GUI, + COMMAND_STUDIO_PARAM_OPTIONAL_PACK_GENERATOR_PREVIEW, + COMMAND_STUDIO_PARAM_SEED_PREVIEW_GENERATOR_WITH, + COMMAND_STUDIO_DIRECTOR_SHOW_LOOT_IF_CHEST_WERE_RIGHT_HERE, + COMMAND_STUDIO_PARAM_FAST_INSERTION_ITEMS_VIRTUAL_INVENTORY_MAY_CAUSE_PERFORMANCE_DROP, + COMMAND_STUDIO_PARAM_WHETHER_NOT_APPEND_INVENTORY_CURRENTLY_OPEN_IF_FALSE_CLEARS_OPENED_INVENTORY, + COMMAND_STUDIO_DIRECTOR_CALCULATE_CHANCE_EACH_REGION_GENERATE, + COMMAND_STUDIO_PARAM_RADIUS_CHUNKS, + COMMAND_STUDIO_DIRECTOR_RENDER_WORLD_MAP_EXTERNAL_GUI, + COMMAND_STUDIO_PARAM_WORLD_OPEN_GENERATOR, + COMMAND_STUDIO_DIRECTOR_PACKAGE_DIMENSION_INTO_COMPRESSED_FORMAT, + COMMAND_STUDIO_PARAM_DIMENSION_PACK_COMPRESS, + COMMAND_STUDIO_PARAM_WHETHER_NOT_OBFUSCATE_PACK, + COMMAND_STUDIO_PARAM_WHETHER_NOT_MINIFY_PACK, + COMMAND_STUDIO_DIRECTOR_PROFILES_PERFORMANCE_DIMENSION, + COMMAND_STUDIO_PARAM_DIMENSION_PROFILE, + COMMAND_STUDIO_DIRECTOR_SPAWN_IRIS_ENTITY, + COMMAND_STUDIO_PARAM_ENTITY_SPAWN, + COMMAND_STUDIO_PARAM_LOCATION_SPAWN_ENTITY_AT, + COMMAND_STUDIO_DIRECTOR_TELEPORT_ACTIVE_STUDIO_WORLD, + COMMAND_STUDIO_DIRECTOR_UPDATE_YOUR_DIMENSION_PROJECTS_VSCODE_WORKSPACE, + COMMAND_STUDIO_PARAM_DIMENSION_UPDATE_WORKSPACE, + COMMAND_STUDIO_DIRECTOR_CAPTURE_IGENDATA_CHUNK_REPORT_NEARBY_CHUNKS, + COMMAND_WHAT_DIRECTOR_IRIS_WHAT, + COMMAND_WHAT_DIRECTOR_WHAT_IS_MY_HAND, + COMMAND_WHAT_DIRECTOR_WHAT_BIOME_AM_I, + COMMAND_WHAT_DIRECTOR_WHAT_REGION_AM_I, + COMMAND_WHAT_DIRECTOR_WHAT_BLOCK_AM_I_LOOKING_AT, + COMMAND_WHAT_DIRECTOR_SHOW_MARKERS_CHUNK, + COMMAND_WHAT_PARAM_MARKER_NAME_SUCH_AS_CAVE_FLOOR_CAVE_CEILING + ); + + private DirectorCommandMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java b/core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java new file mode 100644 index 000000000..4c7ef1b8d --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/IrisLanguage.java @@ -0,0 +1,467 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.core.IrisSettings; +import art.arcane.iris.spi.IrisLogging; +import art.arcane.iris.spi.IrisPlatforms; +import art.arcane.volmlib.util.director.DirectorTextResolver; +import art.arcane.volmlib.util.localization.LinesKey; +import art.arcane.volmlib.util.localization.LocaleOverlay; +import art.arcane.volmlib.util.localization.LocalizationCandidate; +import art.arcane.volmlib.util.localization.LocalizationIssue; +import art.arcane.volmlib.util.localization.LocalizationManager; +import art.arcane.volmlib.util.localization.LocalizationReloadResult; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.volmlib.util.localization.MessageArgumentKind; +import art.arcane.volmlib.util.localization.MessageArgs; +import art.arcane.volmlib.util.localization.MessageCatalog; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.PluralKey; +import art.arcane.volmlib.util.localization.PluralSelector; +import art.arcane.volmlib.util.localization.ResolvedLines; +import art.arcane.volmlib.util.localization.ResolvedText; +import art.arcane.volmlib.util.localization.TextKey; +import art.arcane.volmlib.util.localization.VolmitLocales; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.io.File; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +public final class IrisLanguage { + private static final long MAX_LOCALE_BYTES = 2L * 1024L * 1024L; + private static final int MAX_REPORTED_ISSUES = 12; + private static final Pattern LOCALE_NAME = Pattern.compile("[A-Za-z0-9_-]+"); + private static final Pattern LEGACY_COLOR = Pattern.compile("(?i)\\u00a7[0-9A-FK-ORX]"); + private static final MessageCatalog CATALOG = IrisMessages.catalog(); + private static final LocalizationManager MANAGER = new LocalizationManager( + LocalizationCandidate.english(CATALOG, PluralSelector.oneOther()) + ); + + private static volatile File dataFolder; + private static volatile File watchedFile; + private static volatile long watchedSignature = Long.MIN_VALUE; + private static volatile String activeLocale = CATALOG.englishLocale(); + + private IrisLanguage() { + } + + public static boolean initialize() { + if (!IrisPlatforms.isBound()) { + return false; + } + return reload(IrisPlatforms.get().dataFolder(), configuredLocale()); + } + + public static synchronized boolean reload() { + File root = dataFolder; + if (root == null && IrisPlatforms.isBound()) { + root = IrisPlatforms.get().dataFolder(); + } + if (root == null) { + return false; + } + return reload(root, configuredLocale()); + } + + public static synchronized boolean reload(File root, String locale) { + File resolvedRoot = root == null ? null : root.getAbsoluteFile(); + if (resolvedRoot == null) { + throw new IllegalArgumentException("Iris locale data folder cannot be null"); + } + String requestedLocale; + try { + requestedLocale = normalizeLocale(locale); + } catch (RuntimeException exception) { + dataFolder = resolvedRoot; + IrisLogging.error("Rejected locale setting '" + locale + "'; continuing with " + activeLocale + "."); + IrisLogging.reportError(exception); + exception.printStackTrace(); + return false; + } + LocalizationReloadResult result = MANAGER.reload(() -> loadCandidate(resolvedRoot, requestedLocale)); + dataFolder = resolvedRoot; + File override = overrideFile(resolvedRoot, requestedLocale); + watchedFile = override; + watchedSignature = signature(override); + if (!result.applied()) { + reportRejectedReload(requestedLocale, result); + return false; + } + + activeLocale = requestedLocale; + int warnings = result.validation().warnings().size(); + IrisLogging.info("Loaded locale " + requestedLocale + " with " + warnings + " fallback " + + (warnings == 1 ? "entry" : "entries") + "."); + return true; + } + + public static synchronized boolean update() { + File root = dataFolder; + if (root == null) { + return initialize(); + } + String locale; + try { + locale = normalizeLocale(configuredLocale()); + } catch (RuntimeException exception) { + return reload(root, configuredLocale()); + } + File expected = overrideFile(root, locale); + long signature = signature(expected); + if (expected.equals(watchedFile) && signature == watchedSignature) { + return true; + } + return reload(root, locale); + } + + public static String activeLocale() { + return activeLocale; + } + + public static File overrideFolder() { + File root = dataFolder; + if (root == null && IrisPlatforms.isBound()) { + root = IrisPlatforms.get().dataFolder(); + } + if (root == null) { + return null; + } + return new File(root, "languages/overrides"); + } + + public static String text(MessageKey key, MessageArgument... arguments) { + MessageArgs.Builder builder = MessageArgs.builder(); + for (MessageArgument argument : arguments) { + builder.add(argument); + } + return text(key, builder.build()); + } + + public static String text(MessageKey key) { + return text(key, MessageArgs.empty()); + } + + public static String text(MessageKey key, MessageArgs arguments) { + return render(resolve(key, arguments)); + } + + public static String plain(MessageKey key, MessageArgument... arguments) { + MessageArgs.Builder builder = MessageArgs.builder(); + for (MessageArgument argument : arguments) { + builder.add(argument); + } + return plain(key, builder.build()); + } + + public static String plain(MessageKey key) { + return plain(key, MessageArgs.empty()); + } + + public static String plain(MessageKey key, MessageArgs arguments) { + String rendered = render(resolve(key, arguments)); + return IrisLogging.clean(rendered); + } + + public static String errorDetail(Throwable throwable) { + String message = throwable == null ? null : throwable.getMessage(); + if (message == null || message.isBlank()) { + return ""; + } + return plain(RuntimeUiMessages.ERROR_DETAIL_SUFFIX, MessageArgument.untrusted("error", message)); + } + + public static DirectorTextResolver directorResolver() { + return (key, arguments) -> { + MessageKey definition = CATALOG.key(key.id()); + if (!(definition instanceof TextKey textKey)) { + return DirectorTextResolver.ENGLISH.resolve(key, arguments); + } + return plain(textKey, arguments); + }; + } + + public static MessageCatalog catalog() { + return CATALOG; + } + + private static ResolvedText resolve(MessageKey key, MessageArgs arguments) { + if (key instanceof TextKey textKey) { + return MANAGER.snapshot().resolve(textKey, arguments); + } + if (key instanceof PluralKey pluralKey) { + return MANAGER.snapshot().resolve(pluralKey, arguments); + } + if (key instanceof LinesKey linesKey) { + ResolvedLines lines = MANAGER.snapshot().resolve(linesKey, arguments); + return new ResolvedText(lines.key(), lines.locale(), String.join("\n", lines.lines()), lines.arguments()); + } + throw new IllegalArgumentException("Unsupported Iris message key: " + key.id()); + } + + private static LocalizationCandidate loadCandidate(File root, String locale) throws Exception { + File folder = new File(root, "languages/overrides"); + Files.createDirectories(folder.toPath()); + List overlays = new ArrayList<>(2); + File override = overrideFile(root, locale); + if (override.exists()) { + overlays.add(loadFileOverlay(override, locale)); + } + + if (!CATALOG.englishLocale().equals(locale)) { + LocaleOverlay bundled = loadBundledOverlay(locale); + if (bundled != null) { + overlays.add(bundled); + } + } + return new LocalizationCandidate(CATALOG, overlays, PluralSelector.oneOther()); + } + + static LocaleOverlay loadBundledOverlay(String locale) throws Exception { + String normalizedLocale = normalizeLocale(locale); + if (CATALOG.englishLocale().equals(normalizedLocale)) { + return null; + } + String resourceName = "/languages/" + normalizedLocale + ".json"; + InputStream input = IrisLanguage.class.getResourceAsStream(resourceName); + if (input == null) { + if (VolmitLocales.isBundled(normalizedLocale)) { + throw new IllegalStateException("Missing bundled Iris locale resource: " + resourceName); + } + return null; + } + try (InputStream stream = input) { + byte[] bytes = stream.readNBytes((int) MAX_LOCALE_BYTES + 1); + if (bytes.length > MAX_LOCALE_BYTES) { + throw new IllegalArgumentException("Bundled locale is too large: " + resourceName); + } + return parseOverlay("bundled:" + resourceName, normalizedLocale, new String(bytes, StandardCharsets.UTF_8)); + } + } + + private static LocaleOverlay loadFileOverlay(File override, String locale) throws Exception { + if (!override.isFile()) { + throw new IllegalArgumentException("Locale override is not a regular file: " + override.getPath()); + } + if (override.length() > MAX_LOCALE_BYTES) { + throw new IllegalArgumentException("Locale override is too large: " + override.getPath()); + } + String raw = Files.readString(override.toPath(), StandardCharsets.UTF_8); + return parseOverlay(override.getPath(), locale, raw); + } + + private static LocaleOverlay parseOverlay(String source, String locale, String raw) { + JsonElement parsed = JsonParser.parseString(raw == null || raw.isBlank() ? "{}" : raw); + if (!parsed.isJsonObject()) { + throw new IllegalArgumentException("Locale source is not a JSON object: " + source); + } + JsonObject root = parsed.getAsJsonObject(); + for (String key : root.keySet()) { + if (!key.equals("locale") && !key.equals("messages")) { + throw new IllegalArgumentException("Unknown locale root key: " + key); + } + } + if (root.has("locale")) { + JsonElement declaredLocale = root.get("locale"); + if (!declaredLocale.isJsonPrimitive() || !locale.equals(normalizeLocale(declaredLocale.getAsString()))) { + throw new IllegalArgumentException("Locale source declares a different locale than its file: " + source); + } + } + LocaleOverlay.Builder builder = LocaleOverlay.builder(source, locale); + if (!root.has("messages")) { + return builder.build(); + } + JsonElement messages = root.get("messages"); + if (!messages.isJsonObject()) { + throw new IllegalArgumentException("Locale messages must be a JSON object: " + source); + } + appendMessages(builder, messages.getAsJsonObject(), ""); + return builder.build(); + } + + private static void appendMessages(LocaleOverlay.Builder builder, JsonObject object, String prefix) { + for (Map.Entry entry : object.entrySet()) { + String key = prefix.isEmpty() ? entry.getKey() : prefix + "." + entry.getKey(); + JsonElement value = entry.getValue(); + if (value == null || value.isJsonNull()) { + throw new IllegalArgumentException("Locale value cannot be null: " + key); + } + MessageKey definition = CATALOG.key(key); + if (value.isJsonObject() && definition instanceof PluralKey) { + builder.plural(key, readPlural(key, value.getAsJsonObject())); + } else if (value.isJsonObject()) { + appendMessages(builder, value.getAsJsonObject(), key); + } else if (value.isJsonArray()) { + builder.lines(key, readLines(key, value.getAsJsonArray())); + } else if (value.isJsonPrimitive() && value.getAsJsonPrimitive().isString()) { + builder.text(key, value.getAsString()); + } else { + throw new IllegalArgumentException("Locale value must be text, lines, or plural forms: " + key); + } + } + } + + private static List readLines(String key, JsonArray array) { + List lines = new ArrayList<>(array.size()); + for (JsonElement value : array) { + if (value == null || !value.isJsonPrimitive() || !value.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException("Locale line must be text: " + key); + } + lines.add(value.getAsString()); + } + return lines; + } + + private static Map readPlural(String key, JsonObject object) { + Map forms = new LinkedHashMap<>(); + for (Map.Entry entry : object.entrySet()) { + JsonElement value = entry.getValue(); + if (value == null || !value.isJsonPrimitive() || !value.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException("Locale plural form must be text: " + key + "." + entry.getKey()); + } + forms.put(entry.getKey(), value.getAsString()); + } + return forms; + } + + private static String render(ResolvedText resolved) { + String prepared = resolved.template(); + List replacements = new ArrayList<>(resolved.arguments().size()); + int index = 0; + for (MessageArgument argument : resolved.arguments().arguments().values()) { + String token = "\uE000" + index + "\uE001"; + prepared = prepared.replace("{" + argument.name() + "}", token); + replacements.add(new RenderedArgument(token, argument)); + index++; + } + + String rendered = translateColors(prepared); + StringBuilder output = new StringBuilder(rendered.length()); + int cursor = 0; + while (cursor < rendered.length()) { + if (rendered.charAt(cursor) != '\uE000') { + output.append(rendered.charAt(cursor)); + cursor++; + continue; + } + int end = rendered.indexOf('\uE001', cursor + 1); + int replacementIndex = end < 0 ? -1 : parseReplacementIndex(rendered, cursor + 1, end); + if (replacementIndex < 0 || replacementIndex >= replacements.size()) { + output.append(rendered.charAt(cursor)); + cursor++; + continue; + } + RenderedArgument replacement = replacements.get(replacementIndex); + if (replacement.token().length() != end - cursor + 1 + || !rendered.regionMatches(cursor, replacement.token(), 0, replacement.token().length())) { + output.append(rendered.charAt(cursor)); + cursor++; + continue; + } + MessageArgument argument = replacement.argument(); + String value = String.valueOf(argument.value()); + output.append(argument.kind() == MessageArgumentKind.TRUSTED + ? translateColors(value) + : escapeUntrusted(value)); + cursor = end + 1; + } + return output.toString(); + } + + private static int parseReplacementIndex(String value, int start, int end) { + if (start >= end) { + return -1; + } + int result = 0; + for (int index = start; index < end; index++) { + char character = value.charAt(index); + if (character < '0' || character > '9') { + return -1; + } + int digit = character - '0'; + if (result > (Integer.MAX_VALUE - digit) / 10) { + return -1; + } + result = result * 10 + digit; + } + return result; + } + + private static String translateColors(String value) { + if (value == null || value.isEmpty()) { + return ""; + } + char[] characters = value.toCharArray(); + for (int index = 0; index < characters.length - 1; index++) { + if (characters[index] == '&' && isColorCode(characters[index + 1])) { + characters[index] = '\u00a7'; + characters[index + 1] = Character.toLowerCase(characters[index + 1]); + } + } + return new String(characters); + } + + private static boolean isColorCode(char value) { + char lowered = Character.toLowerCase(value); + return lowered >= '0' && lowered <= '9' || lowered >= 'a' && lowered <= 'f' + || lowered >= 'k' && lowered <= 'o' || lowered == 'r' || lowered == 'x'; + } + + private static String escapeUntrusted(String value) { + return LEGACY_COLOR.matcher(value).replaceAll("") + .replace("&", "&") + .replace("<", "‹") + .replace(">", "›"); + } + + private static String configuredLocale() { + IrisSettings.IrisSettingsGeneral general = IrisSettings.get().getGeneral(); + return general == null ? CATALOG.englishLocale() : general.getLanguage(); + } + + private static String normalizeLocale(String locale) { + String value = locale == null || locale.isBlank() ? CATALOG.englishLocale() : locale.trim(); + if (!LOCALE_NAME.matcher(value).matches()) { + throw new IllegalArgumentException("Invalid locale name: " + value); + } + return value; + } + + private static File overrideFile(File root, String locale) { + return new File(new File(root, "languages/overrides"), normalizeLocale(locale) + ".json").getAbsoluteFile(); + } + + private static long signature(File file) { + if (file == null || !file.exists()) { + return 0L; + } + return file.lastModified() * 31L + file.length(); + } + + private static void reportRejectedReload(String locale, LocalizationReloadResult result) { + IrisLogging.error("Rejected locale reload for " + locale + "; continuing with " + activeLocale + "."); + List issues = result.validation().errors(); + for (int index = 0; index < Math.min(issues.size(), MAX_REPORTED_ISSUES); index++) { + LocalizationIssue issue = issues.get(index); + IrisLogging.error(issue.source() + " [" + issue.key() + "]: " + issue.detail()); + } + if (issues.size() > MAX_REPORTED_ISSUES) { + IrisLogging.error((issues.size() - MAX_REPORTED_ISSUES) + " additional locale errors were omitted."); + } + if (result.failure() != null) { + IrisLogging.reportError(result.failure()); + result.failure().printStackTrace(); + } + } + + private record RenderedArgument(String token, MessageArgument argument) { + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java b/core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java new file mode 100644 index 000000000..b4063f05e --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/IrisMessages.java @@ -0,0 +1,126 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.director.DirectorMessages; +import art.arcane.volmlib.util.localization.MessageCatalog; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; +import art.arcane.volmlib.util.localization.VolmitLocales; + +import java.util.List; + +public final class IrisMessages { + public static final TextKey COMMAND_PERMISSION_DENIED = TextKey.of( + "iris.command.permission_denied", + "You lack the permission '{permission}'" + ); + public static final TextKey COMMAND_UNKNOWN = TextKey.of( + "iris.command.unknown", + "Unknown Iris command" + ); + public static final TextKey COMMAND_PLAYER_ONLY = TextKey.of( + "iris.command.player_only", + "This command can only be used by players." + ); + public static final TextKey COMMAND_IRIS_WORLD_REQUIRED = TextKey.of( + "iris.command.iris_world_required", + "This dimension is not generated by Iris." + ); + public static final TextKey COMMAND_RELOAD_SUCCESS = TextKey.of( + "iris.command.reload.success", + "Hotloaded settings and locale {locale}." + ); + public static final TextKey COMMAND_RELOAD_FAILED = TextKey.of( + "iris.command.reload.failed", + "Settings were reloaded, but locale {locale} was rejected; continuing with {activeLocale}." + ); + public static final TextKey MODDED_HELP_UNKNOWN_SECTION = TextKey.of( + "iris.modded.help.unknown_section", + "Unknown Iris help section: {section}" + ); + public static final TextKey MODDED_HELP_BACK_HOVER = TextKey.of( + "iris.modded.help.back_hover", + "Return to {parent}." + ); + public static final TextKey MODDED_HELP_COMMAND_PARAMETER = TextKey.of( + "iris.modded.help.command_parameter", + "Command parameter" + ); + public static final TextKey MODDED_HELP_PARAMETER_REQUIRED = TextKey.of( + "iris.modded.help.parameter_required", + "This parameter is required." + ); + public static final TextKey MODDED_HELP_PARAMETER_OPTIONAL = TextKey.of( + "iris.modded.help.parameter_optional", + "This parameter is optional." + ); + public static final TextKey MODDED_HELP_BRIGADIER_TEXT = TextKey.of( + "iris.modded.help.brigadier_text", + "This parameter is read as text by Brigadier." + ); + public static final TextKey MODDED_HELP_OPERATOR_NOTICE = TextKey.of( + "iris.modded.help.operator_notice", + "Iris commands need operator permission (level 2)." + ); + public static final TextKey MODDED_HELP_OPERATOR_INSTRUCTION = TextKey.of( + "iris.modded.help.operator_instruction", + "Run {command} from the console (or enable cheats in singleplayer); until then these commands will not run or tab-complete." + ); + public static final TextKey MODDED_PROPERTIES_NONE = TextKey.of( + "iris.modded.command.properties.none", + "Properties: (none)" + ); + public static final TextKey MODDED_PROPERTIES = TextKey.of( + "iris.modded.command.properties.list", + "Properties: {properties}" + ); + + private static final List RUNTIME_KEYS = List.of( + COMMAND_PERMISSION_DENIED, + COMMAND_UNKNOWN, + COMMAND_PLAYER_ONLY, + COMMAND_IRIS_WORLD_REQUIRED, + COMMAND_RELOAD_SUCCESS, + COMMAND_RELOAD_FAILED, + MODDED_HELP_UNKNOWN_SECTION, + MODDED_HELP_BACK_HOVER, + MODDED_HELP_COMMAND_PARAMETER, + MODDED_HELP_PARAMETER_REQUIRED, + MODDED_HELP_PARAMETER_OPTIONAL, + MODDED_HELP_BRIGADIER_TEXT, + MODDED_HELP_OPERATOR_NOTICE, + MODDED_HELP_OPERATOR_INSTRUCTION, + MODDED_PROPERTIES_NONE, + MODDED_PROPERTIES + ); + private static final MessageCatalog CATALOG = createCatalog(); + + private IrisMessages() { + } + + public static MessageCatalog catalog() { + return CATALOG; + } + + public static MessageKey require(String id) { + return CATALOG.require(id); + } + + private static MessageCatalog createCatalog() { + MessageCatalog.Builder builder = MessageCatalog.builder(VolmitLocales.ENGLISH); + builder.addAll(DirectorMessages.keys()); + builder.addAll(RUNTIME_KEYS); + builder.addAll(BukkitCommandMessages.keys()); + builder.addAll(BukkitCommandMessagesExtended.keys()); + builder.addAll(ModdedCommandMessages.keys()); + builder.addAll(DirectorCommandMessages.keys()); + builder.addAll(ModdedHelpMessages.keys()); + builder.addAll(RuntimeUiMessages.keys()); + builder.addAll(BukkitRuntimeMessages.keys()); + builder.addAll(RuntimeProgressMessages.keys()); + builder.addAll(PackDownloadMessages.keys()); + builder.addAll(ClientUiMessages.keys()); + builder.addAll(BukkitUiMessages.keys()); + builder.addAll(DesktopUiMessages.keys()); + return builder.build(); + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/ModdedCommandMessages.java b/core/src/main/java/art/arcane/iris/core/localization/ModdedCommandMessages.java new file mode 100644 index 000000000..b965d5d97 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/ModdedCommandMessages.java @@ -0,0 +1,1575 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class ModdedCommandMessages { + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_BIOME_IRIS_EDIT_BIOME_KEY = TextKey.of( + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key", + "Console must name a biome: /iris edit biome " + ); + public static final TextKey IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.biome_lookup_failed", + "Biome lookup failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_BIOME = TextKey.of( + "iris.modded.irismoddedcommands.unknown_biome", + "Unknown biome: " + "{key}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_2 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_REGION_IRIS_EDIT_REGION_KEY = TextKey.of( + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key", + "Console must name a region: /iris edit region " + ); + public static final TextKey IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.region_lookup_failed", + "Region lookup failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_REGION = TextKey.of( + "iris.modded.irismoddedcommands.unknown_region", + "Unknown region: " + "{key}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_3 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CANNOT_OPEN_FILES_HERE = TextKey.of( + "iris.modded.irismoddedcommands.cannot_open_files_here", + "Cannot open files here: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM = TextKey.of( + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from", + "Cannot find the file; perhaps it was not loaded directly from a file?" + ); + public static final TextKey IRIS_MODDED_COMMANDS_COULD_NOT_OPEN = TextKey.of( + "iris.modded.irismoddedcommands.could_not_open", + "Could not open " + "{value}" + ": " + "{value2}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_OPENING_YOUR_EDITOR = TextKey.of( + "iris.modded.irismoddedcommands.opening_your_editor", + "Opening " + "{value}" + " " + "{value2}" + " in your editor." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_PLAYER_IRIS_TP_DIMENSION_PLAYER = TextKey.of( + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player", + "Console must name a player: /iris tp " + ); + public static final TextKey IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.is_not_generated_by_iris", + "{value}" + " is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_TELEPORT_FAILED_DIMENSION_IS_NOT_LOADED = TextKey.of( + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded", + "Teleport failed: dimension " + "{dimensionId}" + " is not loaded." + ); + public static final TextKey IRIS_MODDED_COMMANDS_TELEPORTING = TextKey.of( + "iris.modded.irismoddedcommands.teleporting", + "Teleporting " + "{value}" + " to " + "{dimensionId}" + "..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_2 = TextKey.of( + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2", + "{value}" + " is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CANNOT_EVACUATE_PRIMARY_WORLD_THERE_IS_NOWHERE_SEND_PLAYERS = TextKey.of( + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players", + "Cannot evacuate the primary world; there is nowhere to send players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_EVACUATED_PLAYER_S_FROM = TextKey.of( + "iris.modded.irismoddedcommands.evacuated_player_s_from", + "Evacuated " + "{count}" + " player(s) from " + "{value}" + " to " + "{value2}" + "." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SET_DEBUG = TextKey.of( + "iris.modded.irismoddedcommands.set_debug", + "Set debug to: " + "{to}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_HOTLOADED_SETTINGS = TextKey.of( + "iris.modded.irismoddedcommands.hotloaded_settings", + "Hotloaded settings" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects", + "This command can only be used by players (it inspects your held item)." + ); + public static final TextKey IRIS_MODDED_COMMANDS_YOUR_MAIN_HAND_IS_EMPTY = TextKey.of( + "iris.modded.irismoddedcommands.your_main_hand_is_empty", + "Your main hand is empty." + ); + public static final TextKey IRIS_MODDED_COMMANDS_HAND_X = TextKey.of( + "iris.modded.irismoddedcommands.hand_x", + "Hand: " + "{value}" + " x" + "{value2}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players", + "This command can only be used by players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_4 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_5 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_SEE_IRIS_INFO_LOADED_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris", + "{value}" + " is not generated by Iris; see /iris info for loaded Iris dimensions." + ); + public static final TextKey IRIS_MODDED_COMMANDS_CURRENT_DIMENSION_IS_NOT_GENERATED_BY_IRIS_NAME_ONE_EXPLICITLY = TextKey.of( + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly", + "The current dimension (" + "{value}" + ") is not generated by Iris. Name one explicitly: /iris pregen start " + "{radius}" + " ; see /iris info for loaded Iris dimensions." + ); + public static final TextKey IRIS_MODDED_COMMANDS_PREGENERATION_TASK_IS_ALREADY_RUNNING_STOP_IT_FIRST_WITH_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris", + "A pregeneration task is already running. Stop it first with /iris pregen stop." + ); + public static final TextKey IRIS_MODDED_COMMANDS_PREGEN_STARTED_BY_BLOCKS_FROM_PROGRESS_LOGS_CONSOLE_SEE_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris", + "Pregen started in " + "{value}" + " of " + "{value2}" + " by " + "{value3}" + " blocks from " + "{centerX}" + "," + "{centerZ}" + "." + "{modeNote}" + " Progress logs to console; see /iris pregen status." + "{guiNote}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_STOPPING_PREGENERATION_FINISHING_UP_CURRENT_REGION = TextKey.of( + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region", + "Stopping pregeneration; finishing up the current region..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_STOP = TextKey.of( + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop", + "No active pregeneration task to stop." + ); + public static final TextKey IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_PAUSE_RESUME = TextKey.of( + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume", + "No active pregeneration task to pause/resume." + ); + public static final TextKey IRIS_MODDED_COMMANDS_PREGENERATION_IS_NOW = TextKey.of( + "iris.modded.irismoddedcommands.pregeneration_is_now", + "Pregeneration is now " + "{value}" + "." + ); + public static final TextKey IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK = TextKey.of( + "iris.modded.irismoddedcommands.no_active_pregeneration_task", + "No active pregeneration task." + ); + public static final TextKey IRIS_MODDED_COMMANDS_IRIS_BY_VOLMIT_SOFTWARE_ON_MINECRAFT_IRIS_DIMENSION_S = TextKey.of( + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s", + "Iris " + "{value}" + " by Volmit Software on " + "{value2}" + " (Minecraft " + "{value3}" + "), " + "{engines}" + " Iris dimension(s)" + ); + public static final TextKey IRIS_MODDED_COMMANDS_LOADED_DIMENSIONS_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.loaded_dimensions_iris", + "Loaded dimensions: " + "{total}" + " (" + "{iris}" + " Iris)" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2 = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2", + "This command can only be used by players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_6 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_BIOME = TextKey.of( + "iris.modded.irismoddedcommands.biome", + "Biome: " + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED_2 = TextKey.of( + "iris.modded.irismoddedcommands.biome_lookup_failed_2", + "Biome lookup failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_REGION = TextKey.of( + "iris.modded.irismoddedcommands.region", + "Region: " + "{value}" + " (" + "{value2}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED_2 = TextKey.of( + "iris.modded.irismoddedcommands.region_lookup_failed_2", + "Region lookup failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_CAVE_BIOME = TextKey.of( + "iris.modded.irismoddedcommands.cave_biome", + "Cave biome: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_CAVE_BIOME_LOOKUP_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.cave_biome_lookup_failed", + "Cave biome lookup failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_SURFACE_BLOCK_Y = TextKey.of( + "iris.modded.irismoddedcommands.surface_block_y", + "Surface block: " + "{value}" + " (y=" + "{value2}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_POSITION_CHUNK = TextKey.of( + "iris.modded.irismoddedcommands.position_chunk", + "Position: " + "{value}" + " " + "{value2}" + " " + "{value3}" + " (chunk " + "{value4}" + "," + "{value5}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS_2 = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2", + "This command can only be used by players (it inspects the block you are looking at)." + ); + public static final TextKey IRIS_MODDED_COMMANDS_LOOK_AT_BLOCK_NOT_SKY = TextKey.of( + "iris.modded.irismoddedcommands.look_at_block_not_sky", + "Look at a block, not the sky." + ); + public static final TextKey IRIS_MODDED_COMMANDS_BLOCK_Y = TextKey.of( + "iris.modded.irismoddedcommands.block_y", + "Block: " + "{value}" + " (y=" + "{value2}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_MARKERS_RENDER = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render", + "This command can only be used by players (markers render as particles around you)." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_7 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SCANNING_MARKERS_AROUND_YOU = TextKey.of( + "iris.modded.irismoddedcommands.scanning_markers_around_you", + "Scanning for '" + "{marker}" + "' markers around you..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_MARKER_SCAN_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.marker_scan_failed", + "Marker scan failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_FOUND_NEARBY_MARKER_S = TextKey.of( + "iris.modded.irismoddedcommands.found_nearby_marker_s", + "Found " + "{value}" + " nearby marker(s) (" + "{marker}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3 = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3", + "This command can only be used by players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_8 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_BIOME_2 = TextKey.of( + "iris.modded.irismoddedcommands.unknown_biome_2", + "Unknown biome: " + "{key}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_4 = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4", + "This command can only be used by players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_9 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_REGION_2 = TextKey.of( + "iris.modded.irismoddedcommands.unknown_region_2", + "Unknown region: " + "{key}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_IS_NOT_DEFINED_DIMENSION = TextKey.of( + "iris.modded.irismoddedcommands.is_not_defined_dimension", + "{value}" + " is not defined in the dimension!" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_10 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS_OBJECT_KEYS = TextKey.of( + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys", + "{key}" + " is not configured in any region/biome object placements (" + "{value}" + " object keys loaded)." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_OBJECT_KEY = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key", + "This command can only be used by players. (object key '" + "{key}" + "' resolved against " + "{value}" + " loaded object keys)" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_11 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_NAME_IRIS_NATIVE_STRUCTURE_LOCATE = TextKey.of( + "iris.modded.irismoddedcommands.name_iris_native_structure_locate", + "Name an Iris or native structure to locate." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_5 = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5", + "This command can only be used by players." + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_USE_TAB_COMPLETION_CHOOSE_IRIS_PLACEMENT_REGISTERED_NATIVE = TextKey.of( + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native", + "Unknown structure '" + "{key}" + "'. Use tab completion to choose an Iris placement or a registered native/datapack structure." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCHING_NATIVE_STRUCTURE_WITHIN_CHUNKS = TextKey.of( + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks", + "Searching for native structure " + "{value}" + " within " + "{NATIVESTRUCTURELOCATERADIUS}" + " chunks..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCHING_IRIS_PLACED_STRUCTURE = TextKey.of( + "iris.modded.irismoddedcommands.searching_iris_placed_structure", + "Searching for Iris-placed structure " + "{key}" + "..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNABLE_LOCATE_IRIS_PLACED_STRUCTURE_DENSITY_SEARCH_SAFETY_LIMIT_WAS = TextKey.of( + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was", + "Unable to locate Iris-placed structure " + "{key}" + ": the density search safety limit was reached before the full 1024-chunk radius was searched." + ); + public static final TextKey IRIS_MODDED_COMMANDS_COULD_NOT_FIND_IRIS_PLACED_STRUCTURE_WITHIN_1024_CHUNKS = TextKey.of( + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks", + "Could not find Iris-placed structure " + "{key}" + " within 1024 chunks." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCH_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.search_failed", + "Search failed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_COULD_NOT_FIND_NATIVE_STRUCTURE_WITHIN_CHUNKS = TextKey.of( + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks", + "Could not find native structure " + "{value}" + " within " + "{NATIVESTRUCTURELOCATERADIUS}" + " chunks." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCH_NATIVE_STRUCTURE_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.search_native_structure_failed", + "Search for native structure " + "{value}" + " failed: " + "{value2}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_PLAYER_DISCONNECTED_BEFORE_STRUCTURE_SEARCH_COMPLETED = TextKey.of( + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed", + "The player disconnected before the structure search completed." + ); + public static final TextKey IRIS_MODDED_COMMANDS_YOU_CHANGED_DIMENSIONS_BEFORE_STRUCTURE_SEARCH_COMPLETED_RUN_COMMAND_AGAIN = TextKey.of( + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again", + "You changed dimensions before the structure search completed; run the command again." + ); + public static final TextKey IRIS_MODDED_COMMANDS_FOUND_AT_BUT_TELEPORTATION_FAILED = TextKey.of( + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed", + "Found " + "{label}" + " at " + "{targetX}" + " " + "{clampedY}" + " " + "{targetZ}" + ", but teleportation failed." + ); + public static final TextKey IRIS_MODDED_COMMANDS_TELEPORTED_AT = TextKey.of( + "iris.modded.irismoddedcommands.teleported_at", + "Teleported to " + "{label}" + " at " + "{targetX}" + " " + "{clampedY}" + " " + "{targetZ}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_12 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_STRUCTURE_REACHABILITY_NATIVE_GENERATION_ELIGIBLE_IRIS_PLACED_NATIVE_DISABLED_NATIVE = TextKey.of( + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native", + "Structure reachability: " + "{available}" + " native generation-eligible, " + "{irisPlaced}" + " Iris-placed, " + "{disabled}" + " native disabled, " + "{suppressed}" + " native replaced by Iris placements, " + "{unreachableBiomes}" + " native excluded by this pack's biomes, and " + "{unsupported}" + " registered native structures unsupported in this dimension. Use /iris structure verify for one structure." + ); + public static final TextKey IRIS_MODDED_COMMANDS_STRUCTURE_IS_IRIS_PLACED_LOCATABLE_WITH_IRIS_GOTO_STRUCTURE = TextKey.of( + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure", + "Structure " + "{key}" + " is Iris-placed and locatable with /iris goto structure " + "{key2}" + "." + ); + public static final TextKey IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_IT_IS_NEITHER_IRIS_PLACED_NOR_REGISTERED_BY = TextKey.of( + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by", + "Unknown structure '" + "{key}" + "'. It is neither Iris-placed nor registered by vanilla or a datapack." + ); + public static final TextKey IRIS_MODDED_COMMANDS_STRUCTURE_IS_EXPLICITLY_REPLACED_BY_IRIS_PLACEMENT_LOCATABLE_WITH_IRIS = TextKey.of( + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris", + "Structure " + "{value}" + " is explicitly replaced by an Iris placement and locatable with /iris goto structure " + "{value2}" + "." + ); + public static final TextKey IRIS_MODDED_COMMANDS_NATIVE_STRUCTURE_IS_ENABLED_SUPPORTED_BY_THIS_DIMENSION_S_GENERATOR = TextKey.of( + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator", + "Native structure " + "{value}" + " is enabled, supported by this dimension's generator state, and locatable with /iris goto structure " + "{value2}" + "." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_13 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_POI_TYPE = TextKey.of( + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type", + "This command can only be used by players. (POI type '" + "{type}" + "' accepted)" + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCHING = TextKey.of( + "iris.modded.irismoddedcommands.searching", + "Searching for " + "{label}" + "..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_ENGINE_THIS_WORLD_HAS_BEEN_CLOSED_REJOIN_DIMENSION_TRY_AGAIN = TextKey.of( + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again", + "The engine for this world has been closed; rejoin the dimension and try again." + ); + public static final TextKey IRIS_MODDED_COMMANDS_SEARCH_FAILED_2 = TextKey.of( + "iris.modded.irismoddedcommands.search_failed_2", + "Search failed: " + "{failure}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_COULD_NOT_FIND_WITHIN_SEARCH_TIMEOUT = TextKey.of( + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout", + "Could not find " + "{label}" + " within the search timeout." + ); + public static final TextKey IRIS_MODDED_COMMANDS_TELEPORTED_AT_2 = TextKey.of( + "iris.modded.irismoddedcommands.teleported_at_2", + "Teleported to " + "{label}" + " at " + "{blockX}" + " " + "{blockY}" + " " + "{blockZ}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_ENGINE_CHANGED_WHILE_LOCATING_TRY_AGAIN = TextKey.of( + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again", + "The engine changed while locating " + "{label}" + "; try again." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_14 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_WORLD_SEED = TextKey.of( + "iris.modded.irismoddedcommands.world_seed", + "World seed: " + "{value}" + ); + public static final TextKey IRIS_MODDED_COMMANDS_ENGINE_SEED_MIXED = TextKey.of( + "iris.modded.irismoddedcommands.engine_seed_mixed", + "Engine seed: " + "{value}" + " (mixed: " + "{value2}" + ")" + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_15 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_DOWNLOADING_IRISDIMENSIONS = TextKey.of( + "iris.modded.irismoddedcommands.downloading_irisdimensions", + "Downloading IrisDimensions/" + "{pack}" + " (" + "{downloadSource}" + ")..." + ); + public static final TextKey IRIS_MODDED_COMMANDS_PACK_INSTALLED_ITS_EXACT_DIMENSION_TYPES_CUSTOM_BIOMES_JOIN_FORCED = TextKey.of( + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced", + "Pack '" + "{pack}" + "' installed. Its exact dimension types and custom biomes join the forced Iris datapack on the next server restart; restart before creating worlds from this pack." + ); + public static final TextKey IRIS_MODDED_COMMANDS_PACK_DOWNLOAD_FAILED_SEE_CONSOLE = TextKey.of( + "iris.modded.irismoddedcommands.pack_download_failed_see_console", + "Pack download failed for " + "{pack}" + " (" + "{downloadSource}" + "; see console)." + ); + public static final TextKey IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_16 = TextKey.of( + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16", + "This dimension is not generated by Iris." + ); + public static final TextKey IRIS_MODDED_COMMANDS_GENERATED_CHUNK_S_S = TextKey.of( + "iris.modded.irismoddedcommands.generated_chunk_s_s", + "Generated: " + "{value}" + " chunk(s), " + "{value2}" + "/s" + ); + public static final TextKey IRIS_MODDED_COMMANDS_MS = TextKey.of( + "iris.modded.irismoddedcommands.ms", + " " + "{value}" + ": " + "{value2}" + "ms" + ); + public static final TextKey MODDED_COMMAND_HELP_UNKNOWN_IRIS_HELP_SECTION = TextKey.of( + "iris.modded.moddedcommandhelp.unknown_iris_help_section", + "Unknown Iris help section: " + "{normalized}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_ENGINE_NOT_STARTED_PACK_HEIGHTS_UNKNOWN = TextKey.of( + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown", + "{dimensionId}" + ": type=" + "{typeKey}" + " active=" + "{activeMin}" + ".." + "{activeMax}" + " logical=" + "{value}" + " (pack=" + "{value2}" + ", engine not started; pack heights unknown)" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_WANTS_LOGICAL = TextKey.of( + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical", + "{dimensionId}" + ": type=" + "{typeKey}" + " active=" + "{activeMin}" + ".." + "{activeMax}" + " logical=" + "{value}" + " | pack '" + "{value2}" + "' wants " + "{packMin}" + ".." + "{packMax}" + " logical=" + "{packLogical}" + " | " + "{value3}" + "{value4}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_WARNING_ACTIVE_DIMENSION_TYPE_DOES_NOT_MATCH_PACK_IRIS_WILL = TextKey.of( + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will", + " WARNING: the active dimension type does not match the pack. Iris will refuse to start this world engine instead of clipping terrain. Run /iris world enable for new worlds, or /iris datapack install for already-loaded Iris dimensions, then restart." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_ARE_LOADED = TextKey.of( + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded", + "No Iris dimensions are loaded." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_ALL_IRIS_DIMENSION_S_MATCH_THEIR_PACK_HEIGHT_RANGES = TextKey.of( + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges", + "All " + "{irisLevels}" + " Iris dimension(s) match their pack height ranges." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_ENGINE_NOT_STARTED_CANNOT_DERIVE_ITS_DIMENSION_TYPE_YET = TextKey.of( + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet", + "{value}" + ": engine not started; cannot derive its dimension type yet." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_DIMENSION_TYPE_GENERATION_FAILED = TextKey.of( + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed", + "{value}" + ": dimension type generation failed: " + "{value2}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_FAILED_WRITE = TextKey.of( + "iris.modded.moddeddatapackcommands.failed_write", + "Failed to write " + "{output}" + ": " + "{value}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_WITH_RUNNING_ENGINES_FOUND_NOTHING_WAS_INSTALLED = TextKey.of( + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed", + "No Iris dimensions with running engines found; nothing was installed." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_FAILED_WRITE_2 = TextKey.of( + "iris.modded.moddeddatapackcommands.failed_write_2", + "Failed to write " + "{mcmeta}" + ": " + "{value}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_WROTE = TextKey.of( + "iris.modded.moddeddatapackcommands.wrote", + "Wrote " + "{path}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_WORLD_DATAPACK_DIMENSION_TYPE_OVERRIDES_INSTALLED_RESTART_SERVER_DIMENSION_TYPES = TextKey.of( + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types", + "World datapack '" + "{WORLDPACKNAME}" + "' dimension type overrides installed. Restart the server for the dimension types to apply." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_CONFIGURED_DATAPACK_IMPORTS = TextKey.of( + "iris.modded.moddeddatapackcommands.configured_datapack_imports", + "Configured datapack imports: " + "{value}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_MESSAGE = TextKey.of( + "iris.modded.moddeddatapackcommands.message", + " - " + "{url}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_MODRINTH_INGEST_IS_BUKKIT_ONLY_INSTALL_THESE_MANUALLY_INTO_WORLD = TextKey.of( + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world", + "Modrinth ingest is Bukkit-only; install these manually into world/datapacks if needed." + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_INSTALLED_WORLD_DATAPACKS = TextKey.of( + "iris.modded.moddeddatapackcommands.installed_world_datapacks", + "Installed world datapacks: " + "{value}" + ); + public static final TextKey MODDED_DATAPACK_COMMANDS_MESSAGE_2 = TextKey.of( + "iris.modded.moddeddatapackcommands.message_2", + " - " + "{name}" + ); + public static final TextKey MODDED_DEVELOPER_COMMANDS_DISPATCHED_TEST_EXCEPTION_IRIS_ERROR_REPORTER_SENTRY_IF_ENABLED = TextKey.of( + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled", + "Dispatched a test exception to the Iris error reporter (Sentry if enabled)." + ); + public static final TextKey MODDED_DEVELOPER_COMMANDS_MESSAGE = TextKey.of( + "iris.modded.moddeddevelopercommands.message", + " " + "{value}" + ); + public static final TextKey MODDED_DEVELOPER_COMMANDS_NETWORK_SCAN_FAILED = TextKey.of( + "iris.modded.moddeddevelopercommands.network_scan_failed", + "Network scan failed: " + "{value}" + ); + public static final TextKey MODDED_GOLDEN_HASH_GOLDENHASH_SCAN_IS_ALREADY_RUNNING = TextKey.of( + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running", + "A goldenhash scan is already running." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_WAND_IS = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is", + "This command can only be used by players. (the wand is a physical item)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL = TextKey.of( + "iris.modded.moddedobjectcommands.your_inventory_is_full", + "Your inventory is full." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_POOF_GOOD_LUCK_BUILDING_LEFT_CLICK_CORNER_1_RIGHT_CLICK = TextKey.of( + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click", + "Poof! Good luck building! (left click = corner 1, right click = corner 2)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_DUST_IS = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is", + "This command can only be used by players. (the dust is a physical item)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL_2 = TextKey.of( + "iris.modded.moddedobjectcommands.your_inventory_is_full_2", + "Your inventory is full." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_RIGHT_CLICK_BLOCK_REVEAL_OBJECT_IT_BELONGS = TextKey.of( + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs", + "Right click a block to reveal the object it belongs to." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAVING_CAPTURES = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures", + "This command can only be used by players. (saving captures your wand selection)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_OBJECTS_SAVE_INTO = TextKey.of( + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into", + "This dimension is not generated by Iris; objects save into the dimension's pack." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND = TextKey.of( + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand", + "Hold your Iris wand. (/iris wand)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_LEFT_RIGHT_CLICK_BLOCKS_WITH_WAND_FIRST = TextKey.of( + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first", + "No area selected. Left/right click blocks with the wand first." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_INVALID_OBJECT_NAME = TextKey.of( + "iris.modded.moddedobjectcommands.invalid_object_name", + "Invalid object name: " + "{nameRaw}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_BLOCKS_MAX = TextKey.of( + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max", + "Selection too large: " + "{volume}" + " blocks (max " + "{MAXSAVEVOLUME}" + ")." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_FILE_ALREADY_EXISTS_USE_IRIS_OBJECT_SAVE_OVERWRITE = TextKey.of( + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite", + "File already exists. Use /iris object save overwrite " + "{name}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT = TextKey.of( + "iris.modded.moddedobjectcommands.failed_save_object", + "Failed to save object: " + "{value}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_SAVED_OBJECTS_IOB_X_X_BLOCK_S = TextKey.of( + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s", + "Saved " + "{value}" + "/objects/" + "{name}" + ".iob: " + "{w}" + "x" + "{h}" + "x" + "{d}" + ", " + "{value2}" + " block(s)" + "{tileNote}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_UNKNOWN_EMPTY_OBJECT = TextKey.of( + "iris.modded.moddedobjectcommands.unknown_empty_object", + "Unknown or empty object: " + "{key}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_CONSOLE_MUST_SPECIFY_COORDINATES_IRIS_OBJECT_PASTE_AT_X_Y = TextKey.of( + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y", + "Console must specify coordinates: /iris object paste at [rotate ] " + "{key}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK_WITHIN_BLOCKS = TextKey.of( + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks", + "You are not looking at a block within " + "{value}" + " blocks." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_PASTE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO = TextKey.of( + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo", + "Paste failed: " + "{value}" + " (partial changes recorded for undo)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_PLACED_AT_ROT_WRITE_S_NON_AIR = TextKey.of( + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air", + "Placed " + "{key}" + " at " + "{value}" + " " + "{value2}" + " " + "{value3}" + " rot=" + "{rotation}" + " (" + "{value4}" + " write(s), " + "{value5}" + " non-air" + "{tileNote}" + ")" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players", + "This command can only be used by players." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND_2 = TextKey.of( + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2", + "Hold your Iris wand. (/iris wand)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED = TextKey.of( + "iris.modded.moddedobjectcommands.no_area_selected", + "No area selected." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_MESSAGE = TextKey.of( + "iris.modded.moddedobjectcommands.message", + "{value}" + " " + "{amount}" + " " + "{value2}" + ": " + "{value3}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2 = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2", + "This command can only be used by players." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_READY_YOUR_WAND_IRIS_WAND = TextKey.of( + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand", + "Ready your wand. (/iris wand)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK = TextKey.of( + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block", + "You are not looking at a block." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_POSITION_SET = TextKey.of( + "iris.modded.moddedobjectcommands.position_set", + "Position " + "{value}" + " set to " + "{value2}" + " " + "{value3}" + " " + "{value4}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3 = TextKey.of( + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3", + "This command can only be used by players." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_HOLD_YOUR_WAND = TextKey.of( + "iris.modded.moddedobjectcommands.hold_your_wand", + "Hold your wand!" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_2 = TextKey.of( + "iris.modded.moddedobjectcommands.no_area_selected_2", + "No area selected." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_AUTO_SELECT_BLOCKS_MAX = TextKey.of( + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max", + "Selection too large for auto-select: " + "{volume}" + " blocks (max " + "{MAXAUTOSELECTVOLUME}" + ")." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_AUTO_SELECT_COMPLETE = TextKey.of( + "iris.modded.moddedobjectcommands.auto_select_complete", + "Auto-select complete: " + "{value}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT = TextKey.of( + "iris.modded.moddedobjectcommands.unknown_object", + "Unknown object: " + "{key}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_OBJECT_SIZE = TextKey.of( + "iris.modded.moddedobjectcommands.object_size", + "Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_BLOCKS_USED = TextKey.of( + "iris.modded.moddedobjectcommands.blocks_used", + "Blocks Used: " + "{value}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_BLOCKS_OBJECT = TextKey.of( + "iris.modded.moddedobjectcommands.blocks_object", + "== Blocks in object ==" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_MESSAGE_2 = TextKey.of( + "iris.modded.moddedobjectcommands.message_2", + " - " + "{value}" + " * " + "{value2}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_OTHER_BLOCK_STATE_S = TextKey.of( + "iris.modded.moddedobjectcommands.other_block_state_s", + " + " + "{remaining}" + " other block state(s)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT_2 = TextKey.of( + "iris.modded.moddedobjectcommands.unknown_object_2", + "Unknown object: " + "{key}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_CURRENT_OBJECT_SIZE = TextKey.of( + "iris.modded.moddedobjectcommands.current_object_size", + "Current Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NEW_OBJECT_SIZE = TextKey.of( + "iris.modded.moddedobjectcommands.new_object_size", + "New Object Size: " + "{value}" + " * " + "{value2}" + " * " + "{value3}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_OBJECT_HAS_NO_LOAD_FILE_CANNOT_PERSIST_SHRINK = TextKey.of( + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink", + "Object has no load file; cannot persist the shrink." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT_2 = TextKey.of( + "iris.modded.moddedobjectcommands.failed_save_object_2", + "Failed to save object " + "{value}" + ": " + "{value2}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_INVALID_REACH = TextKey.of( + "iris.modded.moddedobjectcommands.invalid_reach", + "Invalid reach: " + "{token}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NO_OBJECTS_MATCHED = TextKey.of( + "iris.modded.moddedobjectcommands.no_objects_matched", + "No objects matched: " + "{target}" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S = TextKey.of( + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s", + "Plausibilize [reach=" + "{reach}" + "{value}" + "] queued " + "{value2}" + " object(s)" + ); + public static final TextKey MODDED_OBJECT_COMMANDS_NOTHING_UNDO = TextKey.of( + "iris.modded.moddedobjectcommands.nothing_undo", + "Nothing to undo." + ); + public static final TextKey MODDED_OBJECT_COMMANDS_REVERTED_PASTE_S = TextKey.of( + "iris.modded.moddedobjectcommands.reverted_paste_s", + "Reverted " + "{reverted}" + " paste(s)!" + ); + public static final TextKey MODDED_PACK_COMMANDS_PACKS_FOLDER_NOT_FOUND = TextKey.of( + "iris.modded.moddedpackcommands.packs_folder_not_found", + "Packs folder not found: " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_NO_PACKS_VALIDATE_UNDER = TextKey.of( + "iris.modded.moddedpackcommands.no_packs_validate_under", + "No packs to validate under " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER = TextKey.of( + "iris.modded.moddedpackcommands.pack_not_found_under", + "Pack '" + "{pack}" + "' not found under " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_VALIDATING_PACK_S = TextKey.of( + "iris.modded.moddedpackcommands.validating_pack_s", + "Validating " + "{value}" + " pack(s)..." + ); + public static final TextKey MODDED_PACK_COMMANDS_VALIDATION_FAILED = TextKey.of( + "iris.modded.moddedpackcommands.validation_failed", + "Validation of '" + "{value}" + "' failed: " + "{value2}" + ); + public static final TextKey MODDED_PACK_COMMANDS_VALIDATION_COMPLETE_BROKEN_PACKS = TextKey.of( + "iris.modded.moddedpackcommands.validation_complete_broken_packs", + "Validation complete. Broken packs: " + "{brokenTotal}" + "/" + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_2 = TextKey.of( + "iris.modded.moddedpackcommands.pack_not_found_under_2", + "Pack '" + "{pack}" + "' not found under " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_3 = TextKey.of( + "iris.modded.moddedpackcommands.pack_not_found_under_3", + "Pack '" + "{pack}" + "' not found under " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST = TextKey.of( + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first", + "No validation results recorded. Run /iris pack validate first." + ); + public static final TextKey MODDED_PACK_COMMANDS_BLOCKING_WARNINGS = TextKey.of( + "iris.modded.moddedpackcommands.blocking_warnings", + "{tag}" + " " + "{value}" + " (blocking=" + "{value2}" + ", warnings=" + "{value3}" + ")" + ); + public static final TextKey MODDED_PACK_COMMANDS_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE = TextKey.of( + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate", + "No validation result for '" + "{pack}" + "'. Run /iris pack validate " + "{pack2}" + "." + ); + public static final TextKey MODDED_PACK_COMMANDS_PACK_IS_LOADABLE_WARNINGS = TextKey.of( + "iris.modded.moddedpackcommands.pack_is_loadable_warnings", + "Pack '" + "{value}" + "' is loadable." + " (warnings=" + "{value2}" + ")" + ); + public static final TextKey MODDED_PACK_COMMANDS_PACK_IS_BROKEN = TextKey.of( + "iris.modded.moddedpackcommands.pack_is_broken", + "Pack '" + "{value}" + "' is BROKEN:" + ); + public static final TextKey MODDED_PACK_COMMANDS_MESSAGE = TextKey.of( + "iris.modded.moddedpackcommands.message", + " - " + "{reason}" + ); + public static final TextKey MODDED_PACK_COMMANDS_MESSAGE_2 = TextKey.of( + "iris.modded.moddedpackcommands.message_2", + " ! " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_MORE_WARNING_S = TextKey.of( + "iris.modded.moddedpackcommands.more_warning_s", + " ... and " + "{value}" + " more warning(s)." + ); + public static final TextKey MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK = TextKey.of( + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack", + "No cleanup candidates found for pack '" + "{pack}" + "'." + ); + public static final TextKey MODDED_PACK_COMMANDS_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED = TextKey.of( + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed", + "Cleanup preview for pack '" + "{pack}" + "': " + "{value}" + " candidate(s). No files were changed." + ); + public static final TextKey MODDED_PACK_COMMANDS_RUN_IRIS_PACK_CLEANUP_APPLY_QUARANTINE_AFTER_FRESH_SCAN = TextKey.of( + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan", + "Run /iris pack cleanup " + "{pack}" + " apply to quarantine after a fresh scan." + ); + public static final TextKey MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK_2 = TextKey.of( + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2", + "No cleanup candidates found for pack '" + "{pack}" + "'." + ); + public static final TextKey MODDED_PACK_COMMANDS_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER = TextKey.of( + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under", + "Quarantined " + "{value}" + " cleanup candidate(s) under " + "{value2}" + "." + ); + public static final TextKey MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK = TextKey.of( + "iris.modded.moddedpackcommands.nothing_restore_pack", + "Nothing to restore for pack '" + "{pack}" + "'." + ); + public static final TextKey MODDED_PACK_COMMANDS_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED = TextKey.of( + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed", + "Restore preview for " + "{value}" + ": " + "{value2}" + " file(s). No files were changed." + ); + public static final TextKey MODDED_PACK_COMMANDS_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S = TextKey.of( + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s", + "Restore is blocked by " + "{value}" + " existing destination(s)." + ); + public static final TextKey MODDED_PACK_COMMANDS_RUN_IRIS_PACK_RESTORE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK = TextKey.of( + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check", + "Run /iris pack restore " + "{pack}" + " apply to restore after a fresh conflict check." + ); + public static final TextKey MODDED_PACK_COMMANDS_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST = TextKey.of( + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist", + "Restore refused because " + "{value}" + " destination(s) already exist." + ); + public static final TextKey MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK_2 = TextKey.of( + "iris.modded.moddedpackcommands.nothing_restore_pack_2", + "Nothing to restore for pack '" + "{pack}" + "'." + ); + public static final TextKey MODDED_PACK_COMMANDS_RESTORED_FILE_S_FROM = TextKey.of( + "iris.modded.moddedpackcommands.restored_file_s_from", + "Restored " + "{value}" + " file(s) from " + "{value2}" + "." + ); + public static final TextKey MODDED_PACK_COMMANDS_MESSAGE_3 = TextKey.of( + "iris.modded.moddedpackcommands.message_3", + " - " + "{label}" + ": " + "{value}" + ); + public static final TextKey MODDED_PACK_COMMANDS_MORE = TextKey.of( + "iris.modded.moddedpackcommands.more", + " ... and " + "{value}" + " more." + ); + public static final TextKey MODDED_REGEN_REGEN_IS_ALREADY_RUNNING = TextKey.of( + "iris.modded.moddedregen.regen_is_already_running", + "A regen is already running." + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_THIS_FROM = TextKey.of( + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from", + "This dimension is not generated by Iris. Run this from an Iris dimension so the pack can be resolved." + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_WROTE_STRUCTURE_INDEX = TextKey.of( + "iris.modded.moddedstructurecommands.wrote_structure_index", + "Wrote structure index: " + "{value}" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK = TextKey.of( + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack", + "No iris structure '" + "{key}" + "' in this pack" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL = TextKey.of( + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool", + "Structure '" + "{key}" + "' assembled 0 pieces (check startPool '" + "{value}" + "')" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234 = TextKey.of( + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234", + "Structure '" + "{key}" + "': " + "{value}" + " pieces, footprint " + "{value2}" + "x" + "{value3}" + " blocks (sample seed 1234)" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_STRUCTURE_IS = TextKey.of( + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is", + "This command can only be used by players (the structure is assembled at your position)." + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK_2 = TextKey.of( + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2", + "No iris structure '" + "{key}" + "' in this pack" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES = TextKey.of( + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces", + "Structure '" + "{key}" + "' assembled 0 pieces" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_PLACE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO = TextKey.of( + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo", + "Place failed: " + "{value}" + " (partial changes recorded for undo)" + ); + public static final TextKey MODDED_STRUCTURE_COMMANDS_PLACED_PIECES_WRITE_S_AT_YOUR_LOCATION_IRIS_OBJECT_UNDO = TextKey.of( + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo", + "Placed '" + "{key}" + "' (" + "{value}" + " pieces, " + "{value2}" + " write(s)" + "{tileNote}" + ") at your location. /iris object undo to revert." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED = TextKey.of( + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed", + "Provide a dimension pack: /iris studio open [seed]" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_ON_SERVER_DISPLAY = TextKey.of( + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display", + "Opening the Noise Explorer on the server display." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_IRIS_STUDIO = TextKey.of( + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio", + "This dimension is not generated by Iris; run /iris studio noise from an Iris dimension to resolve generators, or omit the generator name." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_UNKNOWN_GENERATOR_PACK = TextKey.of( + "iris.modded.moddedstudiocommands.unknown_generator_pack", + "Unknown generator '" + "{generatorKey}" + "' in pack " + "{value}" + "." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_GENERATOR_SEED = TextKey.of( + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed", + "Opening the Noise Explorer for generator '" + "{value}" + "' (seed " + "{seed}" + ")." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_STAND_IRIS_STUDIO = TextKey.of( + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio", + "This dimension is not generated by Iris; stand in an Iris (or studio) dimension and run /iris studio map." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_OPENING_VISION_MAP_ON_SERVER_DISPLAY = TextKey.of( + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display", + "Opening the Vision map for " + "{value}" + " on the server display." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_FAILED_WRITE_WORKSPACE = TextKey.of( + "iris.modded.moddedstudiocommands.failed_write_workspace", + "Failed to write workspace for " + "{value}" + ": " + "{value2}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_WORKSPACE_REGENERATED_WITH_JSON_SCHEMAS_AUTOCOMPLETE = TextKey.of( + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete", + "Workspace regenerated: " + "{value}" + " with JSON schemas for autocomplete." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_COULD_NOT_OPEN = TextKey.of( + "iris.modded.moddedstudiocommands.could_not_open", + "Could not open " + "{value}" + ": " + "{value2}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_OPENING_YOUR_EDITOR = TextKey.of( + "iris.modded.moddedstudiocommands.opening_your_editor", + "Opening " + "{value}" + " in your editor." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_SPECIFY_PACK_NAME = TextKey.of( + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name", + "This dimension is not generated by Iris; specify a pack name explicitly." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_NOT_FOUND_UNDER = TextKey.of( + "iris.modded.moddedstudiocommands.pack_not_found_under", + "Pack '" + "{name}" + "' not found under " + "{value}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED_2 = TextKey.of( + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2", + "Provide a dimension pack: /iris studio open [seed]" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_OPENING_STUDIO_SEED = TextKey.of( + "iris.modded.moddedstudiocommands.opening_studio_seed", + "Opening studio for '" + "{pack}" + "' (seed " + "{seed}" + ")..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_MISSING_DOWNLOADING_IRISDIMENSIONS = TextKey.of( + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions", + "Pack '" + "{pack}" + "' missing; downloading IrisDimensions/" + "{pack2}" + "..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_TRY_IRIS_DOWNLOAD = TextKey.of( + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download", + "Pack '" + "{pack}" + "' could not be downloaded; check the name and try /iris download " + "{pack2}" + "." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON = TextKey.of( + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json", + "Pack '" + "{pack}" + "' has no dimensions/" + "{pack2}" + ".json" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_OPEN_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.studio_open_failed", + "Studio open failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.studio_injection_failed", + "Studio injection failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_CONSOLE_STUDIO_OPEN_NOW_RUNS_SEED_TRANSIENT_NOT_WRITTEN_IRIS = TextKey.of( + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris", + "Console studio open: " + "{dimensionId}" + " now runs '" + "{pack}" + "' seed " + "{seed}" + " (transient; not written to iris-dimensions.json and cleared on restart)." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_ENTER_IT_WITH_EXECUTE_RUN_TP_S_8_5_8 = TextKey.of( + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8", + "Enter it with: /execute in " + "{dimensionId}" + " run tp @s 8.5 " + "{surface}" + " 8.5" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PREGEN_IT_WITH_IRIS_PREGEN_START_RADIUS = TextKey.of( + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius", + "Pregen it with: /iris pregen start " + "{dimensionId}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_REMOVE_IT_WITH_IRIS_STUDIO_CLOSE = TextKey.of( + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close", + "Remove it with: /iris studio close" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED_2 = TextKey.of( + "iris.modded.moddedstudiocommands.studio_injection_failed_2", + "Studio injection failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_OPEN_NOW_RUNS_SEED_USE_IRIS_STUDIO_CLOSE_WHEN = TextKey.of( + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when", + "Studio open: " + "{dimensionId}" + " now runs '" + "{pack}" + "' seed " + "{seed}" + ". Use /iris studio close when done." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN = TextKey.of( + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open", + "You do not have an open studio. Use /iris studio open first." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_CLOSE_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.studio_close_failed", + "Studio close failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_STUDIO_CLOSED_WAS_EVACUATED_UNLOADED_ITS_REGION_DATA_DELETED = TextKey.of( + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted", + "Studio closed: " + "{dimensionId}" + " was evacuated, unloaded and its region data deleted." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_NO_STUDIO_DIMENSIONS_ARE_CURRENTLY_OPEN = TextKey.of( + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open", + "No studio dimensions are currently open." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_ACTIVE_STUDIO_DIMENSION_S = TextKey.of( + "iris.modded.moddedstudiocommands.active_studio_dimension_s", + "Active studio dimension(s): " + "{value}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_SEED_OWNER = TextKey.of( + "iris.modded.moddedstudiocommands.pack_seed_owner", + " " + "{value}" + ": pack '" + "{value2}" + "' seed " + "{value3}" + " owner " + "{ownerName}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS = TextKey.of( + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players", + "This command can only be used by players." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN_2 = TextKey.of( + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2", + "You do not have an open studio. Use /iris studio open first." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_YOUR_STUDIO_DIMENSION_IS_NO_LONGER_LOADED_USE_IRIS_STUDIO = TextKey.of( + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio", + "Your studio dimension is no longer loaded. Use /iris studio open again." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_TELEPORTED_YOUR_STUDIO = TextKey.of( + "iris.modded.moddedstudiocommands.teleported_your_studio", + "Teleported to your studio (" + "{dimensionId}" + ")." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON_2 = TextKey.of( + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2", + "Pack '" + "{value}" + "' has no dimensions/" + "{value2}" + ".json" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_HAS_VERSION = TextKey.of( + "iris.modded.moddedstudiocommands.pack_has_version", + "The \"" + "{value}" + "\" pack has version: " + "{value2}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_INVALID_PROJECT_NAME_ALLOWED_Z_0_9 = TextKey.of( + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9", + "Invalid project name '" + "{nameRaw}" + "' (allowed: a-z, 0-9, _ and -)" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACK_ALREADY_EXISTS_AT = TextKey.of( + "iris.modded.moddedstudiocommands.pack_already_exists_at", + "Pack '" + "{name}" + "' already exists at " + "{value}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_CREATING_PROJECT_FROM_TEMPLATE = TextKey.of( + "iris.modded.moddedstudiocommands.creating_project_from_template", + "Creating project '" + "{name}" + "' from template '" + "{template}" + "'..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_TEMPLATE_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS = TextKey.of( + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions", + "Template '" + "{template}" + "' is not installed; downloading IrisDimensions/" + "{template2}" + "..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_TEMPLATE_COULD_NOT_BE_DOWNLOADED_INSTALL_PACK_WITH_DIMENSIONS_JSON = TextKey.of( + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json", + "Template '" + "{template}" + "' could not be downloaded; install a pack with dimensions/" + "{template2}" + ".json first." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_CREATED_PROJECT_AT = TextKey.of( + "iris.modded.moddedstudiocommands.created_project_at", + "Created project '" + "{name}" + "' at " + "{value}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_EDIT_DIMENSIONS_JSON_REST_PACK_VSCODE_WORKSPACE_WITH_JSON_SCHEMA = TextKey.of( + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema", + "Edit dimensions/" + "{name}" + ".json and the rest of the pack. A VSCode workspace with JSON schema autocomplete was generated; open it or rerun /iris studio vscode." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PROJECT_CREATION_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.project_creation_failed", + "Project creation failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACKAGING_DIMENSION = TextKey.of( + "iris.modded.moddedstudiocommands.packaging_dimension", + "Packaging dimension '" + "{dimKey}" + "'..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACKAGE_COMPILED = TextKey.of( + "iris.modded.moddedstudiocommands.package_compiled", + "Package compiled: " + "{value}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_PACKAGING_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.packaging_failed", + "Packaging failed: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAMPLING_IS = TextKey.of( + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is", + "This command can only be used by players (sampling is centered on your position)." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS = TextKey.of( + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris", + "This dimension is not generated by Iris." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_SAMPLING_REGION_DISTRIBUTION_X_CHUNKS_AROUND_YOU = TextKey.of( + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you", + "Sampling region distribution in " + "{value}" + "x" + "{value2}" + " chunks around you..." + ); + public static final TextKey MODDED_STUDIO_COMMANDS_RARITY = TextKey.of( + "iris.modded.moddedstudiocommands.rarity", + "{key}" + ": rarity=" + "{rarity}" + " / " + "{value}" + "%" + ); + public static final TextKey MODDED_STUDIO_COMMANDS_REGION_SAMPLING_FAILED = TextKey.of( + "iris.modded.moddedstudiocommands.region_sampling_failed", + "Region sampling failed: " + "{value}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS = TextKey.of( + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions", + "Pack '" + "{pack}" + "' is not installed; downloading IrisDimensions/" + "{pack2}" + "..." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH = TextKey.of( + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with", + "Pack '" + "{pack}" + "' could not be downloaded; check the name or install it with /iris download " + "{pack2}" + "." + ); + public static final TextKey MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_WORLD = TextKey.of( + "iris.modded.moddedworldcommands.failed_inject_iris_world", + "Failed to inject Iris world '" + "{dimensionId}" + "': " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_CREATED_IRIS_WORLD_FROM_PACK_DIMENSION_SEED = TextKey.of( + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed", + "Created Iris world " + "{dimensionId}" + " from pack '" + "{pack}" + "' dimension '" + "{packDimension}" + "' (seed " + "{seed}" + ")." + ); + public static final TextKey MODDED_WORLD_COMMANDS_IT_IS_LIVE_NOW_RE_INJECTED_ON_EVERY_STARTUP_TELEPORT = TextKey.of( + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport", + "It is live now and re-injected on every startup. Teleport in with /iris world status or a portal; no restart required." + ); + public static final TextKey MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_PRIMARY_WORLD = TextKey.of( + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world", + "Failed to inject Iris primary world: " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_IRIS_PRIMARY_WORLD_SET_PACK_DIMENSION_SEED = TextKey.of( + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed", + "Iris primary world set to " + "{dimensionId}" + " (pack '" + "{pack}" + "' dimension '" + "{packDimension}" + "' seed " + "{seed}" + ")." + ); + public static final TextKey MODDED_WORLD_COMMANDS_VANILLA_OVERWORLD_GENERATOR_CANNOT_BE_HOT_SWAPPED_SO_THIS_DOES = TextKey.of( + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does", + "The vanilla overworld generator cannot be hot-swapped, so this does NOT regenerate the existing overworld." + ); + public static final TextKey MODDED_WORLD_COMMANDS_INSTEAD_IS_NOW_CONFIGURED_PRIMARY_WORLD_PLAYERS_VANILLA_OVERWORLD_ARE = TextKey.of( + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are", + "Instead, " + "{dimensionId}" + " is now the configured primary world: players in the vanilla overworld are routed there on join, and it re-injects on every startup." + ); + public static final TextKey MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_OVERRIDE_CLEARED_OVERWORLD_KEEPS_ITS_CURRENT_GENERATOR = TextKey.of( + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator", + "Iris main world override cleared. The overworld keeps its current generator; edit server.properties level-type and restart to change it back." + ); + public static final TextKey MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM = TextKey.of( + "iris.modded.moddedworldcommands.invalid_seed_use_number_random", + "Invalid seed '" + "{seedRaw}" + "'. Use a number or 'random'." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS_2 = TextKey.of( + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2", + "Pack '" + "{pack}" + "' is not installed; downloading IrisDimensions/" + "{pack2}" + "..." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH_2 = TextKey.of( + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2", + "Pack '" + "{pack}" + "' could not be downloaded; check the name or install it with /iris download " + "{pack2}" + "." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_IS_NOT_READY_YET_STILL_LOADING_VALIDATING_TRY_COMMAND = TextKey.of( + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command", + "Pack '" + "{pack}" + "' is not ready yet (still loading or validating). Try the command again in a moment." + ); + public static final TextKey MODDED_WORLD_COMMANDS_FAILED_WRITE_SERVER_PROPERTIES_CHECK_FILE_PERMISSIONS_SET_LEVEL_TYPE = TextKey.of( + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type", + "Failed to write server.properties; check file permissions and set level-type manually." + ); + public static final TextKey MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_SET_PRESET_SEED = TextKey.of( + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed", + "Iris main world set to '" + "{pack}" + "' (preset " + "{preset}" + ", seed " + "{value}" + ")." + ); + public static final TextKey MODDED_WORLD_COMMANDS_SERVER_PROPERTIES_LEVEL_TYPE_IS_NOW_ON_NEXT_RESTART_OVERWORLD = TextKey.of( + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld", + "server.properties level-type is now " + "{preset}" + ". On the next restart the overworld, nether, and end regenerate as this Iris world." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PLAYER_DATA_INVENTORIES_ADVANCEMENTS_STATS_IS_KEPT_EXISTING_TERRAIN_THOSE = TextKey.of( + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those", + "Player data (inventories, advancements, stats) is kept; existing terrain in those dimensions is replaced. This applies once." + ); + public static final TextKey MODDED_WORLD_COMMANDS_MAINWORLDAUTORESTART_IS_ENABLED_STOPPING_SERVER_NOW_SO_YOUR_RESTART_WRAPPER = TextKey.of( + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper", + "mainWorldAutoRestart is enabled - stopping the server now so your restart wrapper brings it back on the new main world." + ); + public static final TextKey MODDED_WORLD_COMMANDS_RESTART_SERVER_NOW_GENERATE_IT_SET_MAINWORLDAUTORESTART_TRUE_MODDED_JSON = TextKey.of( + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json", + "Restart the server now to generate it. (Set mainWorldAutoRestart=true in modded.json to have Iris stop the server for you.)" + ); + public static final TextKey MODDED_WORLD_COMMANDS_REFUSING_CREATE_WORLD_USING_PACK_BECAUSE_REQUIRED_VALIDATION_FAILED = TextKey.of( + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed", + "Refusing to create world '" + "{dimensionId}" + "' using pack '" + "{pack}" + "' because required validation failed:" + ); + public static final TextKey MODDED_WORLD_COMMANDS_MESSAGE = TextKey.of( + "iris.modded.moddedworldcommands.message", + " - " + "{reason}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE = TextKey.of( + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate", + "Fix the pack and run /iris pack validate " + "{pack}" + " to revalidate." + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_WAS_NOT_FOUND_UNDER = TextKey.of( + "iris.modded.moddedworldcommands.pack_was_not_found_under", + "Pack '" + "{pack}" + "' was not found under " + "{value}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_PACK_DOES_NOT_CONTAIN_DIMENSIONS_JSON = TextKey.of( + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json", + "Pack '" + "{pack}" + "' does not contain dimensions/" + "{packDimension}" + ".json" + ); + public static final TextKey MODDED_WORLD_COMMANDS_INVALID_PACK_REFERENCE_USE_PACK_PACK_DIMENSIONKEY = TextKey.of( + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey", + "Invalid pack reference '" + "{pack}" + "{value}" + "'. Use pack or pack:dimensionKey." + ); + public static final TextKey MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM_2 = TextKey.of( + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2", + "Invalid seed '" + "{seedRaw}" + "'. Use a number or 'random'." + ); + public static final TextKey MODDED_WORLD_COMMANDS_FAILED_REMOVE_IRIS_WORLD = TextKey.of( + "iris.modded.moddedworldcommands.failed_remove_iris_world", + "Failed to remove Iris world '" + "{dimensionId}" + "': " + "{value}" + "{errorMessage}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY = TextKey.of( + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry", + "Iris world '" + "{dimensionId}" + "' was not loaded; cleared its persistent registry entry and wiped its stored chunk/mantle data." + ); + public static final TextKey MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY_2 = TextKey.of( + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2", + "Iris world '" + "{dimensionId}" + "' was not loaded; cleared its persistent registry entry. World data on disk is kept." + ); + public static final TextKey MODDED_WORLD_COMMANDS_DELETED_IRIS_WORLD_EVACUATED_UNLOADED_CHUNK_MANTLE_DATA_WIPED_DROPPED = TextKey.of( + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped", + "Deleted Iris world '" + "{dimensionId}" + "': evacuated, unloaded, chunk/mantle data wiped, and dropped from the startup registry." + ); + public static final TextKey MODDED_WORLD_COMMANDS_DISABLED_IRIS_WORLD_EVACUATED_UNLOADED_DROPPED_FROM_STARTUP_REGISTRY = TextKey.of( + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry", + "Disabled Iris world '" + "{dimensionId}" + "': evacuated, unloaded, and dropped from the startup registry." + ); + public static final TextKey MODDED_WORLD_COMMANDS_WORLD_DATA_ON_DISK_IS_KEPT_RE_ENABLE_WITH_IRIS = TextKey.of( + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris", + "World data on disk is kept; re-enable with /iris world enable " + "{dimensionId}" + " or delete it with /iris world delete " + "{dimensionId2}" + "." + ); + public static final TextKey MODDED_WORLD_COMMANDS_LOADED_IRIS_LEVEL_PACK_DIMENSION = TextKey.of( + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension", + "Loaded Iris level: " + "{value}" + " -> pack '" + "{value2}" + "' dimension '" + "{value3}" + "'" + ); + public static final TextKey MODDED_WORLD_COMMANDS_PRIMARY_WORLD = TextKey.of( + "iris.modded.moddedworldcommands.primary_world", + "Primary world: " + "{primary}" + "{value}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_NO_IRIS_DIMENSIONS_ARE_CURRENTLY_LOADED_CREATE_ONE_WITH_IRIS = TextKey.of( + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris", + "No Iris dimensions are currently loaded. Create one with /iris world create ." + ); + public static final TextKey MODDED_WORLD_COMMANDS_LOADED_IRIS_DIMENSIONS = TextKey.of( + "iris.modded.moddedworldcommands.loaded_iris_dimensions", + "Loaded Iris dimensions: " + "{value}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_MESSAGE_2 = TextKey.of( + "iris.modded.moddedworldcommands.message_2", + " - " + "{dimension}" + ); + public static final TextKey MODDED_WORLD_COMMANDS_USE_IRIS_WORLD_CREATE_NAME_PACK_INJECT_ONE_WITHOUT_RESTARTING = TextKey.of( + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting", + "Use /iris world create to inject one without restarting." + ); + + private static final List KEYS = List.of( + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS, + IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_BIOME_IRIS_EDIT_BIOME_KEY, + IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED, + IRIS_MODDED_COMMANDS_UNKNOWN_BIOME, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_2, + IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_REGION_IRIS_EDIT_REGION_KEY, + IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED, + IRIS_MODDED_COMMANDS_UNKNOWN_REGION, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_3, + IRIS_MODDED_COMMANDS_CANNOT_OPEN_FILES_HERE, + IRIS_MODDED_COMMANDS_CANNOT_FIND_FILE_PERHAPS_IT_WAS_NOT_LOADED_DIRECTLY_FROM, + IRIS_MODDED_COMMANDS_COULD_NOT_OPEN, + IRIS_MODDED_COMMANDS_OPENING_YOUR_EDITOR, + IRIS_MODDED_COMMANDS_CONSOLE_MUST_NAME_PLAYER_IRIS_TP_DIMENSION_PLAYER, + IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS, + IRIS_MODDED_COMMANDS_TELEPORT_FAILED_DIMENSION_IS_NOT_LOADED, + IRIS_MODDED_COMMANDS_TELEPORTING, + IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_2, + IRIS_MODDED_COMMANDS_CANNOT_EVACUATE_PRIMARY_WORLD_THERE_IS_NOWHERE_SEND_PLAYERS, + IRIS_MODDED_COMMANDS_EVACUATED_PLAYER_S_FROM, + IRIS_MODDED_COMMANDS_SET_DEBUG, + IRIS_MODDED_COMMANDS_HOTLOADED_SETTINGS, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS, + IRIS_MODDED_COMMANDS_YOUR_MAIN_HAND_IS_EMPTY, + IRIS_MODDED_COMMANDS_HAND_X, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_4, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_5, + IRIS_MODDED_COMMANDS_IS_NOT_GENERATED_BY_IRIS_SEE_IRIS_INFO_LOADED_IRIS, + IRIS_MODDED_COMMANDS_CURRENT_DIMENSION_IS_NOT_GENERATED_BY_IRIS_NAME_ONE_EXPLICITLY, + IRIS_MODDED_COMMANDS_PREGENERATION_TASK_IS_ALREADY_RUNNING_STOP_IT_FIRST_WITH_IRIS, + IRIS_MODDED_COMMANDS_PREGEN_STARTED_BY_BLOCKS_FROM_PROGRESS_LOGS_CONSOLE_SEE_IRIS, + IRIS_MODDED_COMMANDS_STOPPING_PREGENERATION_FINISHING_UP_CURRENT_REGION, + IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_STOP, + IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK_PAUSE_RESUME, + IRIS_MODDED_COMMANDS_PREGENERATION_IS_NOW, + IRIS_MODDED_COMMANDS_NO_ACTIVE_PREGENERATION_TASK, + IRIS_MODDED_COMMANDS_IRIS_BY_VOLMIT_SOFTWARE_ON_MINECRAFT_IRIS_DIMENSION_S, + IRIS_MODDED_COMMANDS_LOADED_DIMENSIONS_IRIS, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_6, + IRIS_MODDED_COMMANDS_BIOME, + IRIS_MODDED_COMMANDS_BIOME_LOOKUP_FAILED_2, + IRIS_MODDED_COMMANDS_REGION, + IRIS_MODDED_COMMANDS_REGION_LOOKUP_FAILED_2, + IRIS_MODDED_COMMANDS_CAVE_BIOME, + IRIS_MODDED_COMMANDS_CAVE_BIOME_LOOKUP_FAILED, + IRIS_MODDED_COMMANDS_SURFACE_BLOCK_Y, + IRIS_MODDED_COMMANDS_POSITION_CHUNK, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_IT_INSPECTS_2, + IRIS_MODDED_COMMANDS_LOOK_AT_BLOCK_NOT_SKY, + IRIS_MODDED_COMMANDS_BLOCK_Y, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_MARKERS_RENDER, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_7, + IRIS_MODDED_COMMANDS_SCANNING_MARKERS_AROUND_YOU, + IRIS_MODDED_COMMANDS_MARKER_SCAN_FAILED, + IRIS_MODDED_COMMANDS_FOUND_NEARBY_MARKER_S, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_8, + IRIS_MODDED_COMMANDS_UNKNOWN_BIOME_2, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_4, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_9, + IRIS_MODDED_COMMANDS_UNKNOWN_REGION_2, + IRIS_MODDED_COMMANDS_IS_NOT_DEFINED_DIMENSION, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_10, + IRIS_MODDED_COMMANDS_IS_NOT_CONFIGURED_ANY_REGION_BIOME_OBJECT_PLACEMENTS_OBJECT_KEYS, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_OBJECT_KEY, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_11, + IRIS_MODDED_COMMANDS_NAME_IRIS_NATIVE_STRUCTURE_LOCATE, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_5, + IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_USE_TAB_COMPLETION_CHOOSE_IRIS_PLACEMENT_REGISTERED_NATIVE, + IRIS_MODDED_COMMANDS_SEARCHING_NATIVE_STRUCTURE_WITHIN_CHUNKS, + IRIS_MODDED_COMMANDS_SEARCHING_IRIS_PLACED_STRUCTURE, + IRIS_MODDED_COMMANDS_UNABLE_LOCATE_IRIS_PLACED_STRUCTURE_DENSITY_SEARCH_SAFETY_LIMIT_WAS, + IRIS_MODDED_COMMANDS_COULD_NOT_FIND_IRIS_PLACED_STRUCTURE_WITHIN_1024_CHUNKS, + IRIS_MODDED_COMMANDS_SEARCH_FAILED, + IRIS_MODDED_COMMANDS_COULD_NOT_FIND_NATIVE_STRUCTURE_WITHIN_CHUNKS, + IRIS_MODDED_COMMANDS_SEARCH_NATIVE_STRUCTURE_FAILED, + IRIS_MODDED_COMMANDS_PLAYER_DISCONNECTED_BEFORE_STRUCTURE_SEARCH_COMPLETED, + IRIS_MODDED_COMMANDS_YOU_CHANGED_DIMENSIONS_BEFORE_STRUCTURE_SEARCH_COMPLETED_RUN_COMMAND_AGAIN, + IRIS_MODDED_COMMANDS_FOUND_AT_BUT_TELEPORTATION_FAILED, + IRIS_MODDED_COMMANDS_TELEPORTED_AT, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_12, + IRIS_MODDED_COMMANDS_STRUCTURE_REACHABILITY_NATIVE_GENERATION_ELIGIBLE_IRIS_PLACED_NATIVE_DISABLED_NATIVE, + IRIS_MODDED_COMMANDS_STRUCTURE_IS_IRIS_PLACED_LOCATABLE_WITH_IRIS_GOTO_STRUCTURE, + IRIS_MODDED_COMMANDS_UNKNOWN_STRUCTURE_IT_IS_NEITHER_IRIS_PLACED_NOR_REGISTERED_BY, + IRIS_MODDED_COMMANDS_STRUCTURE_IS_EXPLICITLY_REPLACED_BY_IRIS_PLACEMENT_LOCATABLE_WITH_IRIS, + IRIS_MODDED_COMMANDS_NATIVE_STRUCTURE_IS_ENABLED_SUPPORTED_BY_THIS_DIMENSION_S_GENERATOR, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_13, + IRIS_MODDED_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_POI_TYPE, + IRIS_MODDED_COMMANDS_SEARCHING, + IRIS_MODDED_COMMANDS_ENGINE_THIS_WORLD_HAS_BEEN_CLOSED_REJOIN_DIMENSION_TRY_AGAIN, + IRIS_MODDED_COMMANDS_SEARCH_FAILED_2, + IRIS_MODDED_COMMANDS_COULD_NOT_FIND_WITHIN_SEARCH_TIMEOUT, + IRIS_MODDED_COMMANDS_TELEPORTED_AT_2, + IRIS_MODDED_COMMANDS_ENGINE_CHANGED_WHILE_LOCATING_TRY_AGAIN, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_14, + IRIS_MODDED_COMMANDS_WORLD_SEED, + IRIS_MODDED_COMMANDS_ENGINE_SEED_MIXED, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_15, + IRIS_MODDED_COMMANDS_DOWNLOADING_IRISDIMENSIONS, + IRIS_MODDED_COMMANDS_PACK_INSTALLED_ITS_EXACT_DIMENSION_TYPES_CUSTOM_BIOMES_JOIN_FORCED, + IRIS_MODDED_COMMANDS_PACK_DOWNLOAD_FAILED_SEE_CONSOLE, + IRIS_MODDED_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_16, + IRIS_MODDED_COMMANDS_GENERATED_CHUNK_S_S, + IRIS_MODDED_COMMANDS_MS, + MODDED_COMMAND_HELP_UNKNOWN_IRIS_HELP_SECTION, + MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_ENGINE_NOT_STARTED_PACK_HEIGHTS_UNKNOWN, + MODDED_DATAPACK_COMMANDS_TYPE_ACTIVE_LOGICAL_PACK_WANTS_LOGICAL, + MODDED_DATAPACK_COMMANDS_WARNING_ACTIVE_DIMENSION_TYPE_DOES_NOT_MATCH_PACK_IRIS_WILL, + MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_ARE_LOADED, + MODDED_DATAPACK_COMMANDS_ALL_IRIS_DIMENSION_S_MATCH_THEIR_PACK_HEIGHT_RANGES, + MODDED_DATAPACK_COMMANDS_ENGINE_NOT_STARTED_CANNOT_DERIVE_ITS_DIMENSION_TYPE_YET, + MODDED_DATAPACK_COMMANDS_DIMENSION_TYPE_GENERATION_FAILED, + MODDED_DATAPACK_COMMANDS_FAILED_WRITE, + MODDED_DATAPACK_COMMANDS_NO_IRIS_DIMENSIONS_WITH_RUNNING_ENGINES_FOUND_NOTHING_WAS_INSTALLED, + MODDED_DATAPACK_COMMANDS_FAILED_WRITE_2, + MODDED_DATAPACK_COMMANDS_WROTE, + MODDED_DATAPACK_COMMANDS_WORLD_DATAPACK_DIMENSION_TYPE_OVERRIDES_INSTALLED_RESTART_SERVER_DIMENSION_TYPES, + MODDED_DATAPACK_COMMANDS_CONFIGURED_DATAPACK_IMPORTS, + MODDED_DATAPACK_COMMANDS_MESSAGE, + MODDED_DATAPACK_COMMANDS_MODRINTH_INGEST_IS_BUKKIT_ONLY_INSTALL_THESE_MANUALLY_INTO_WORLD, + MODDED_DATAPACK_COMMANDS_INSTALLED_WORLD_DATAPACKS, + MODDED_DATAPACK_COMMANDS_MESSAGE_2, + MODDED_DEVELOPER_COMMANDS_DISPATCHED_TEST_EXCEPTION_IRIS_ERROR_REPORTER_SENTRY_IF_ENABLED, + MODDED_DEVELOPER_COMMANDS_MESSAGE, + MODDED_DEVELOPER_COMMANDS_NETWORK_SCAN_FAILED, + MODDED_GOLDEN_HASH_GOLDENHASH_SCAN_IS_ALREADY_RUNNING, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_WAND_IS, + MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL, + MODDED_OBJECT_COMMANDS_POOF_GOOD_LUCK_BUILDING_LEFT_CLICK_CORNER_1_RIGHT_CLICK, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_DUST_IS, + MODDED_OBJECT_COMMANDS_YOUR_INVENTORY_IS_FULL_2, + MODDED_OBJECT_COMMANDS_RIGHT_CLICK_BLOCK_REVEAL_OBJECT_IT_BELONGS, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAVING_CAPTURES, + MODDED_OBJECT_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_OBJECTS_SAVE_INTO, + MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND, + MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_LEFT_RIGHT_CLICK_BLOCKS_WITH_WAND_FIRST, + MODDED_OBJECT_COMMANDS_INVALID_OBJECT_NAME, + MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_BLOCKS_MAX, + MODDED_OBJECT_COMMANDS_FILE_ALREADY_EXISTS_USE_IRIS_OBJECT_SAVE_OVERWRITE, + MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT, + MODDED_OBJECT_COMMANDS_SAVED_OBJECTS_IOB_X_X_BLOCK_S, + MODDED_OBJECT_COMMANDS_UNKNOWN_EMPTY_OBJECT, + MODDED_OBJECT_COMMANDS_CONSOLE_MUST_SPECIFY_COORDINATES_IRIS_OBJECT_PASTE_AT_X_Y, + MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK_WITHIN_BLOCKS, + MODDED_OBJECT_COMMANDS_PASTE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO, + MODDED_OBJECT_COMMANDS_PLACED_AT_ROT_WRITE_S_NON_AIR, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS, + MODDED_OBJECT_COMMANDS_HOLD_YOUR_IRIS_WAND_IRIS_WAND_2, + MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED, + MODDED_OBJECT_COMMANDS_MESSAGE, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_2, + MODDED_OBJECT_COMMANDS_READY_YOUR_WAND_IRIS_WAND, + MODDED_OBJECT_COMMANDS_YOU_ARE_NOT_LOOKING_AT_BLOCK, + MODDED_OBJECT_COMMANDS_POSITION_SET, + MODDED_OBJECT_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_3, + MODDED_OBJECT_COMMANDS_HOLD_YOUR_WAND, + MODDED_OBJECT_COMMANDS_NO_AREA_SELECTED_2, + MODDED_OBJECT_COMMANDS_SELECTION_TOO_LARGE_AUTO_SELECT_BLOCKS_MAX, + MODDED_OBJECT_COMMANDS_AUTO_SELECT_COMPLETE, + MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT, + MODDED_OBJECT_COMMANDS_OBJECT_SIZE, + MODDED_OBJECT_COMMANDS_BLOCKS_USED, + MODDED_OBJECT_COMMANDS_BLOCKS_OBJECT, + MODDED_OBJECT_COMMANDS_MESSAGE_2, + MODDED_OBJECT_COMMANDS_OTHER_BLOCK_STATE_S, + MODDED_OBJECT_COMMANDS_UNKNOWN_OBJECT_2, + MODDED_OBJECT_COMMANDS_CURRENT_OBJECT_SIZE, + MODDED_OBJECT_COMMANDS_NEW_OBJECT_SIZE, + MODDED_OBJECT_COMMANDS_OBJECT_HAS_NO_LOAD_FILE_CANNOT_PERSIST_SHRINK, + MODDED_OBJECT_COMMANDS_FAILED_SAVE_OBJECT_2, + MODDED_OBJECT_COMMANDS_INVALID_REACH, + MODDED_OBJECT_COMMANDS_NO_OBJECTS_MATCHED, + MODDED_OBJECT_COMMANDS_PLAUSIBILIZE_REACH_QUEUED_OBJECT_S, + MODDED_OBJECT_COMMANDS_NOTHING_UNDO, + MODDED_OBJECT_COMMANDS_REVERTED_PASTE_S, + MODDED_PACK_COMMANDS_PACKS_FOLDER_NOT_FOUND, + MODDED_PACK_COMMANDS_NO_PACKS_VALIDATE_UNDER, + MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER, + MODDED_PACK_COMMANDS_VALIDATING_PACK_S, + MODDED_PACK_COMMANDS_VALIDATION_FAILED, + MODDED_PACK_COMMANDS_VALIDATION_COMPLETE_BROKEN_PACKS, + MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_2, + MODDED_PACK_COMMANDS_PACK_NOT_FOUND_UNDER_3, + MODDED_PACK_COMMANDS_NO_VALIDATION_RESULTS_RECORDED_RUN_IRIS_PACK_VALIDATE_FIRST, + MODDED_PACK_COMMANDS_BLOCKING_WARNINGS, + MODDED_PACK_COMMANDS_NO_VALIDATION_RESULT_RUN_IRIS_PACK_VALIDATE, + MODDED_PACK_COMMANDS_PACK_IS_LOADABLE_WARNINGS, + MODDED_PACK_COMMANDS_PACK_IS_BROKEN, + MODDED_PACK_COMMANDS_MESSAGE, + MODDED_PACK_COMMANDS_MESSAGE_2, + MODDED_PACK_COMMANDS_MORE_WARNING_S, + MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK, + MODDED_PACK_COMMANDS_CLEANUP_PREVIEW_PACK_CANDIDATE_S_NO_FILES_WERE_CHANGED, + MODDED_PACK_COMMANDS_RUN_IRIS_PACK_CLEANUP_APPLY_QUARANTINE_AFTER_FRESH_SCAN, + MODDED_PACK_COMMANDS_NO_CLEANUP_CANDIDATES_FOUND_PACK_2, + MODDED_PACK_COMMANDS_QUARANTINED_CLEANUP_CANDIDATE_S_UNDER, + MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK, + MODDED_PACK_COMMANDS_RESTORE_PREVIEW_FILE_S_NO_FILES_WERE_CHANGED, + MODDED_PACK_COMMANDS_RESTORE_IS_BLOCKED_BY_EXISTING_DESTINATION_S, + MODDED_PACK_COMMANDS_RUN_IRIS_PACK_RESTORE_APPLY_RESTORE_AFTER_FRESH_CONFLICT_CHECK, + MODDED_PACK_COMMANDS_RESTORE_REFUSED_BECAUSE_DESTINATION_S_ALREADY_EXIST, + MODDED_PACK_COMMANDS_NOTHING_RESTORE_PACK_2, + MODDED_PACK_COMMANDS_RESTORED_FILE_S_FROM, + MODDED_PACK_COMMANDS_MESSAGE_3, + MODDED_PACK_COMMANDS_MORE, + MODDED_REGEN_REGEN_IS_ALREADY_RUNNING, + MODDED_STRUCTURE_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_THIS_FROM, + MODDED_STRUCTURE_COMMANDS_WROTE_STRUCTURE_INDEX, + MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK, + MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES_CHECK_STARTPOOL, + MODDED_STRUCTURE_COMMANDS_STRUCTURE_PIECES_FOOTPRINT_X_BLOCKS_SAMPLE_SEED_1234, + MODDED_STRUCTURE_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_STRUCTURE_IS, + MODDED_STRUCTURE_COMMANDS_NO_IRIS_STRUCTURE_THIS_PACK_2, + MODDED_STRUCTURE_COMMANDS_STRUCTURE_ASSEMBLED_0_PIECES, + MODDED_STRUCTURE_COMMANDS_PLACE_FAILED_PARTIAL_CHANGES_RECORDED_UNDO, + MODDED_STRUCTURE_COMMANDS_PLACED_PIECES_WRITE_S_AT_YOUR_LOCATION_IRIS_OBJECT_UNDO, + MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED, + MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_ON_SERVER_DISPLAY, + MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_RUN_IRIS_STUDIO, + MODDED_STUDIO_COMMANDS_UNKNOWN_GENERATOR_PACK, + MODDED_STUDIO_COMMANDS_OPENING_NOISE_EXPLORER_GENERATOR_SEED, + MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_STAND_IRIS_STUDIO, + MODDED_STUDIO_COMMANDS_OPENING_VISION_MAP_ON_SERVER_DISPLAY, + MODDED_STUDIO_COMMANDS_FAILED_WRITE_WORKSPACE, + MODDED_STUDIO_COMMANDS_WORKSPACE_REGENERATED_WITH_JSON_SCHEMAS_AUTOCOMPLETE, + MODDED_STUDIO_COMMANDS_COULD_NOT_OPEN, + MODDED_STUDIO_COMMANDS_OPENING_YOUR_EDITOR, + MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS_SPECIFY_PACK_NAME, + MODDED_STUDIO_COMMANDS_PACK_NOT_FOUND_UNDER, + MODDED_STUDIO_COMMANDS_PROVIDE_DIMENSION_PACK_IRIS_STUDIO_OPEN_PACK_SEED_2, + MODDED_STUDIO_COMMANDS_OPENING_STUDIO_SEED, + MODDED_STUDIO_COMMANDS_PACK_MISSING_DOWNLOADING_IRISDIMENSIONS, + MODDED_STUDIO_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_TRY_IRIS_DOWNLOAD, + MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON, + MODDED_STUDIO_COMMANDS_STUDIO_OPEN_FAILED, + MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED, + MODDED_STUDIO_COMMANDS_CONSOLE_STUDIO_OPEN_NOW_RUNS_SEED_TRANSIENT_NOT_WRITTEN_IRIS, + MODDED_STUDIO_COMMANDS_ENTER_IT_WITH_EXECUTE_RUN_TP_S_8_5_8, + MODDED_STUDIO_COMMANDS_PREGEN_IT_WITH_IRIS_PREGEN_START_RADIUS, + MODDED_STUDIO_COMMANDS_REMOVE_IT_WITH_IRIS_STUDIO_CLOSE, + MODDED_STUDIO_COMMANDS_STUDIO_INJECTION_FAILED_2, + MODDED_STUDIO_COMMANDS_STUDIO_OPEN_NOW_RUNS_SEED_USE_IRIS_STUDIO_CLOSE_WHEN, + MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN, + MODDED_STUDIO_COMMANDS_STUDIO_CLOSE_FAILED, + MODDED_STUDIO_COMMANDS_STUDIO_CLOSED_WAS_EVACUATED_UNLOADED_ITS_REGION_DATA_DELETED, + MODDED_STUDIO_COMMANDS_NO_STUDIO_DIMENSIONS_ARE_CURRENTLY_OPEN, + MODDED_STUDIO_COMMANDS_ACTIVE_STUDIO_DIMENSION_S, + MODDED_STUDIO_COMMANDS_PACK_SEED_OWNER, + MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS, + MODDED_STUDIO_COMMANDS_YOU_DO_NOT_HAVE_OPEN_STUDIO_USE_IRIS_STUDIO_OPEN_2, + MODDED_STUDIO_COMMANDS_YOUR_STUDIO_DIMENSION_IS_NO_LONGER_LOADED_USE_IRIS_STUDIO, + MODDED_STUDIO_COMMANDS_TELEPORTED_YOUR_STUDIO, + MODDED_STUDIO_COMMANDS_PACK_HAS_NO_DIMENSIONS_JSON_2, + MODDED_STUDIO_COMMANDS_PACK_HAS_VERSION, + MODDED_STUDIO_COMMANDS_INVALID_PROJECT_NAME_ALLOWED_Z_0_9, + MODDED_STUDIO_COMMANDS_PACK_ALREADY_EXISTS_AT, + MODDED_STUDIO_COMMANDS_CREATING_PROJECT_FROM_TEMPLATE, + MODDED_STUDIO_COMMANDS_TEMPLATE_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS, + MODDED_STUDIO_COMMANDS_TEMPLATE_COULD_NOT_BE_DOWNLOADED_INSTALL_PACK_WITH_DIMENSIONS_JSON, + MODDED_STUDIO_COMMANDS_CREATED_PROJECT_AT, + MODDED_STUDIO_COMMANDS_EDIT_DIMENSIONS_JSON_REST_PACK_VSCODE_WORKSPACE_WITH_JSON_SCHEMA, + MODDED_STUDIO_COMMANDS_PROJECT_CREATION_FAILED, + MODDED_STUDIO_COMMANDS_PACKAGING_DIMENSION, + MODDED_STUDIO_COMMANDS_PACKAGE_COMPILED, + MODDED_STUDIO_COMMANDS_PACKAGING_FAILED, + MODDED_STUDIO_COMMANDS_THIS_COMMAND_CAN_ONLY_BE_USED_BY_PLAYERS_SAMPLING_IS, + MODDED_STUDIO_COMMANDS_THIS_DIMENSION_IS_NOT_GENERATED_BY_IRIS, + MODDED_STUDIO_COMMANDS_SAMPLING_REGION_DISTRIBUTION_X_CHUNKS_AROUND_YOU, + MODDED_STUDIO_COMMANDS_RARITY, + MODDED_STUDIO_COMMANDS_REGION_SAMPLING_FAILED, + MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS, + MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH, + MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_WORLD, + MODDED_WORLD_COMMANDS_CREATED_IRIS_WORLD_FROM_PACK_DIMENSION_SEED, + MODDED_WORLD_COMMANDS_IT_IS_LIVE_NOW_RE_INJECTED_ON_EVERY_STARTUP_TELEPORT, + MODDED_WORLD_COMMANDS_FAILED_INJECT_IRIS_PRIMARY_WORLD, + MODDED_WORLD_COMMANDS_IRIS_PRIMARY_WORLD_SET_PACK_DIMENSION_SEED, + MODDED_WORLD_COMMANDS_VANILLA_OVERWORLD_GENERATOR_CANNOT_BE_HOT_SWAPPED_SO_THIS_DOES, + MODDED_WORLD_COMMANDS_INSTEAD_IS_NOW_CONFIGURED_PRIMARY_WORLD_PLAYERS_VANILLA_OVERWORLD_ARE, + MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_OVERRIDE_CLEARED_OVERWORLD_KEEPS_ITS_CURRENT_GENERATOR, + MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM, + MODDED_WORLD_COMMANDS_PACK_IS_NOT_INSTALLED_DOWNLOADING_IRISDIMENSIONS_2, + MODDED_WORLD_COMMANDS_PACK_COULD_NOT_BE_DOWNLOADED_CHECK_NAME_INSTALL_IT_WITH_2, + MODDED_WORLD_COMMANDS_PACK_IS_NOT_READY_YET_STILL_LOADING_VALIDATING_TRY_COMMAND, + MODDED_WORLD_COMMANDS_FAILED_WRITE_SERVER_PROPERTIES_CHECK_FILE_PERMISSIONS_SET_LEVEL_TYPE, + MODDED_WORLD_COMMANDS_IRIS_MAIN_WORLD_SET_PRESET_SEED, + MODDED_WORLD_COMMANDS_SERVER_PROPERTIES_LEVEL_TYPE_IS_NOW_ON_NEXT_RESTART_OVERWORLD, + MODDED_WORLD_COMMANDS_PLAYER_DATA_INVENTORIES_ADVANCEMENTS_STATS_IS_KEPT_EXISTING_TERRAIN_THOSE, + MODDED_WORLD_COMMANDS_MAINWORLDAUTORESTART_IS_ENABLED_STOPPING_SERVER_NOW_SO_YOUR_RESTART_WRAPPER, + MODDED_WORLD_COMMANDS_RESTART_SERVER_NOW_GENERATE_IT_SET_MAINWORLDAUTORESTART_TRUE_MODDED_JSON, + MODDED_WORLD_COMMANDS_REFUSING_CREATE_WORLD_USING_PACK_BECAUSE_REQUIRED_VALIDATION_FAILED, + MODDED_WORLD_COMMANDS_MESSAGE, + MODDED_WORLD_COMMANDS_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE, + MODDED_WORLD_COMMANDS_PACK_WAS_NOT_FOUND_UNDER, + MODDED_WORLD_COMMANDS_PACK_DOES_NOT_CONTAIN_DIMENSIONS_JSON, + MODDED_WORLD_COMMANDS_INVALID_PACK_REFERENCE_USE_PACK_PACK_DIMENSIONKEY, + MODDED_WORLD_COMMANDS_INVALID_SEED_USE_NUMBER_RANDOM_2, + MODDED_WORLD_COMMANDS_FAILED_REMOVE_IRIS_WORLD, + MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY, + MODDED_WORLD_COMMANDS_IRIS_WORLD_WAS_NOT_LOADED_CLEARED_ITS_PERSISTENT_REGISTRY_ENTRY_2, + MODDED_WORLD_COMMANDS_DELETED_IRIS_WORLD_EVACUATED_UNLOADED_CHUNK_MANTLE_DATA_WIPED_DROPPED, + MODDED_WORLD_COMMANDS_DISABLED_IRIS_WORLD_EVACUATED_UNLOADED_DROPPED_FROM_STARTUP_REGISTRY, + MODDED_WORLD_COMMANDS_WORLD_DATA_ON_DISK_IS_KEPT_RE_ENABLE_WITH_IRIS, + MODDED_WORLD_COMMANDS_LOADED_IRIS_LEVEL_PACK_DIMENSION, + MODDED_WORLD_COMMANDS_PRIMARY_WORLD, + MODDED_WORLD_COMMANDS_NO_IRIS_DIMENSIONS_ARE_CURRENTLY_LOADED_CREATE_ONE_WITH_IRIS, + MODDED_WORLD_COMMANDS_LOADED_IRIS_DIMENSIONS, + MODDED_WORLD_COMMANDS_MESSAGE_2, + MODDED_WORLD_COMMANDS_USE_IRIS_WORLD_CREATE_NAME_PACK_INJECT_ONE_WITHOUT_RESTARTING + ); + + private ModdedCommandMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/ModdedHelpMessages.java b/core/src/main/java/art/arcane/iris/core/localization/ModdedHelpMessages.java new file mode 100644 index 000000000..788993874 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/ModdedHelpMessages.java @@ -0,0 +1,454 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class ModdedHelpMessages { + public static final TextKey COMMAND_VERSION_PRINT_VERSION_INFORMATION = TextKey.of( + "iris.modded.help.entry.command.version", + "Print version information" + ); + public static final TextKey COMMAND_INFO_LIST_LOADED_IRIS_DIMENSIONS_AND_PACK_DETAILS = TextKey.of( + "iris.modded.help.entry.command.info", + "List loaded Iris dimensions and pack details" + ); + public static final TextKey COMMAND_WHAT_INSPECT_THE_IRIS_BIOME_REGION_CAVE_BIOME_SURFACE_AND_CHUNK_AT_YOUR = TextKey.of( + "iris.modded.help.entry.command.what", + "Inspect the Iris biome, region, cave biome, surface and chunk at your position, the block you look at, your held item, or nearby markers" + ); + public static final TextKey GROUP_FIND_FIND_AND_TELEPORT_TO_IRIS_BIOMES_REGIONS_OBJECTS_IRIS_STRUCTURES_NATIVE_STRUCTURES = TextKey.of( + "iris.modded.help.entry.group.find", + "Find and teleport to Iris biomes, regions, objects, Iris structures, native structures and points of interest" + ); + public static final TextKey COMMAND_TP_TELEPORT_YOURSELF_OR_A_NAMED_PLAYER_INTO_A_LOADED_IRIS_DIMENSION = TextKey.of( + "iris.modded.help.entry.command.tp", + "Teleport yourself or a named player into a loaded Iris dimension" + ); + public static final TextKey COMMAND_EVACUATE_TELEPORT_EVERY_PLAYER_OUT_OF_AN_IRIS_DIMENSION_TO_THE_PRIMARY_WORLD = TextKey.of( + "iris.modded.help.entry.command.evacuate", + "Teleport every player out of an Iris dimension to the primary world spawn" + ); + public static final TextKey COMMAND_SEED_PRINT_WORLD_AND_ENGINE_SEED_INFORMATION = TextKey.of( + "iris.modded.help.entry.command.seed", + "Print world and engine seed information" + ); + public static final TextKey COMMAND_DEBUG_TOGGLE_IRIS_DEBUG_LOGGING_AND_SAVE_SETTINGS_JSON = TextKey.of( + "iris.modded.help.entry.command.debug", + "Toggle Iris debug logging and save settings.json" + ); + public static final TextKey COMMAND_RELOAD_RELOAD_SETTINGS_JSON_ALSO_HOTLOADED_AUTOMATICALLY_EVERY_3S = TextKey.of( + "iris.modded.help.entry.command.reload", + "Reload settings.json (also hotloaded automatically every 3s)" + ); + public static final TextKey COMMAND_DOWNLOAD_DOWNLOAD_A_PACK_PROJECT = TextKey.of( + "iris.modded.help.entry.command.download", + "Download a pack project" + ); + public static final TextKey COMMAND_METRICS_PRINT_GENERATION_METRICS_FOR_YOUR_CURRENT_IRIS_DIMENSION = TextKey.of( + "iris.modded.help.entry.command.metrics", + "Print generation metrics for your current Iris dimension" + ); + public static final TextKey COMMAND_REGEN_DELETE_AND_REGENERATE_NEARBY_CHUNKS_IN_PLACE = TextKey.of( + "iris.modded.help.entry.command.regen", + "Delete and regenerate nearby chunks in place" + ); + public static final TextKey GROUP_PREGEN_PREGENERATE_AN_IRIS_DIMENSION = TextKey.of( + "iris.modded.help.entry.group.pregen", + "Pregenerate an Iris dimension" + ); + public static final TextKey COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND = TextKey.of( + "iris.modded.help.entry.command.wand", + "Get an Iris object wand" + ); + public static final TextKey GROUP_OBJECT_OBJECT_WAND_SAVE_PASTE_ANALYZE_AND_UNDO_TOOLS = TextKey.of( + "iris.modded.help.entry.group.object", + "Object wand, save, paste, analyze and undo tools" + ); + public static final TextKey GROUP_EDIT_OPEN_PACK_BIOME_REGION_AND_DIMENSION_JSON_FILES_IN_YOUR_DESKTOP_EDITOR = TextKey.of( + "iris.modded.help.entry.group.edit", + "Open pack biome, region and dimension json files in your desktop editor" + ); + public static final TextKey COMMAND_CREATE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_QUOTE_PACK_DIMENSIONKEY_TO_PICK = TextKey.of( + "iris.modded.help.entry.command.create", + "Create and inject a persistent Iris dimension; quote pack:dimensionKey to pick a specific pack dimension" + ); + public static final TextKey GROUP_STUDIO_PACK_PROJECT_CREATION_PACKAGING_AND_REPORTS = TextKey.of( + "iris.modded.help.entry.group.studio", + "Pack project creation, packaging and reports" + ); + public static final TextKey GROUP_PACK_PACK_VALIDATION_AND_MAINTENANCE = TextKey.of( + "iris.modded.help.entry.group.pack", + "Pack validation and maintenance" + ); + public static final TextKey GROUP_WORLD_RUNTIME_IRIS_DIMENSION_CREATION_REMOVAL_AND_STATUS = TextKey.of( + "iris.modded.help.entry.group.world", + "Runtime Iris dimension creation, removal and status" + ); + public static final TextKey GROUP_DATAPACK_WORLD_DATAPACK_INSTALL_AND_STATUS_HELPERS = TextKey.of( + "iris.modded.help.entry.group.datapack", + "World datapack install and status helpers" + ); + public static final TextKey GROUP_STRUCTURE_IRIS_STRUCTURE_INDEX_INFO_AND_PLACEMENT_TOOLS = TextKey.of( + "iris.modded.help.entry.group.structure", + "Iris structure index, info and placement tools" + ); + public static final TextKey COMMAND_GOLDENHASH_GENERATE_DETERMINISTIC_BLOCK_HASHES_FOR_PARITY_TESTING = TextKey.of( + "iris.modded.help.entry.command.goldenhash", + "Generate deterministic block hashes for parity testing" + ); + public static final TextKey GROUP_DEVELOPER_DEVELOPER_DIAGNOSTICS_SENTRY_TEST_NETWORK_INTERFACES_REGION_FILE_SCAN = TextKey.of( + "iris.modded.help.entry.group.developer", + "Developer diagnostics: Sentry test, network interfaces, region-file scan" + ); + public static final TextKey COMMAND_BIOME_FIND_AN_IRIS_BIOME = TextKey.of( + "iris.modded.help.entry.command.biome", + "Find an Iris biome" + ); + public static final TextKey COMMAND_REGION_FIND_AN_IRIS_REGION = TextKey.of( + "iris.modded.help.entry.command.region", + "Find an Iris region" + ); + public static final TextKey COMMAND_OBJECT_FIND_AN_OBJECT_PLACEMENT = TextKey.of( + "iris.modded.help.entry.command.object", + "Find an object placement" + ); + public static final TextKey COMMAND_STRUCTURE_FIND_AN_IRIS_PLACED_OR_NATIVE_DATAPACK_STRUCTURE = TextKey.of( + "iris.modded.help.entry.command.structure", + "Find an Iris-placed or native/datapack structure" + ); + public static final TextKey COMMAND_POI_FIND_A_SUPPORTED_POINT_OF_INTEREST = TextKey.of( + "iris.modded.help.entry.command.poi", + "Find a supported point of interest" + ); + public static final TextKey COMMAND_BIOME_OPEN_A_BIOME_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE = TextKey.of( + "iris.modded.help.entry.command.biome_2", + "Open a biome json in your desktop editor; no key opens the biome at your position" + ); + public static final TextKey COMMAND_REGION_OPEN_A_REGION_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE = TextKey.of( + "iris.modded.help.entry.command.region_2", + "Open a region json in your desktop editor; no key opens the region at your position" + ); + public static final TextKey COMMAND_DIMENSION_OPEN_THE_CURRENT_PACK_S_DIMENSION_JSON_IN_YOUR_DESKTOP_EDITOR = TextKey.of( + "iris.modded.help.entry.command.dimension", + "Open the current pack's dimension json in your desktop editor" + ); + public static final TextKey COMMAND_START_START_PREGENERATION_RADIUS_IN_BLOCKS_RESUMABLE_CHECKPOINT_CACHE_ON_BY_DEFAULT_CENTER = TextKey.of( + "iris.modded.help.entry.command.start", + "Start pregeneration; radius in blocks, resumable checkpoint cache on by default, center via 'at ', flags compose in any order" + ); + public static final TextKey COMMAND_STOP_STOP_THE_ACTIVE_PREGENERATION_TASK = TextKey.of( + "iris.modded.help.entry.command.stop", + "Stop the active pregeneration task" + ); + public static final TextKey COMMAND_PAUSE_PAUSE_OR_RESUME_PREGENERATION = TextKey.of( + "iris.modded.help.entry.command.pause", + "Pause or resume pregeneration" + ); + public static final TextKey COMMAND_STATUS_SHOW_PREGENERATION_STATUS = TextKey.of( + "iris.modded.help.entry.command.status", + "Show pregeneration status" + ); + public static final TextKey COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND_2 = TextKey.of( + "iris.modded.help.entry.command.wand_3", + "Get an Iris object wand" + ); + public static final TextKey COMMAND_DUST_GET_DUST_THAT_REVEALS_OBJECT_PLACEMENTS = TextKey.of( + "iris.modded.help.entry.command.dust", + "Get dust that reveals object placements" + ); + public static final TextKey COMMAND_SAVE_SAVE_THE_SELECTED_WAND_VOLUME_AS_AN_OBJECT = TextKey.of( + "iris.modded.help.entry.command.save", + "Save the selected wand volume as an object" + ); + public static final TextKey COMMAND_PASTE_PASTE_AN_OBJECT_AT_YOUR_POSITION_OR_A_GIVEN_POSITION_OPTIONALLY_ROTATED = TextKey.of( + "iris.modded.help.entry.command.paste", + "Paste an object at your position or a given position, optionally rotated" + ); + public static final TextKey COMMAND_EXPAND_EXPAND_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION = TextKey.of( + "iris.modded.help.entry.command.expand", + "Expand the wand selection in your looking direction" + ); + public static final TextKey COMMAND_CONTRACT_CONTRACT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION = TextKey.of( + "iris.modded.help.entry.command.contract", + "Contract the wand selection in your looking direction" + ); + public static final TextKey COMMAND_SHIFT_SHIFT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION = TextKey.of( + "iris.modded.help.entry.command.shift", + "Shift the wand selection in your looking direction" + ); + public static final TextKey COMMAND_POSITION1_SET_SELECTION_POINT_1 = TextKey.of( + "iris.modded.help.entry.command.position1", + "Set selection point 1" + ); + public static final TextKey COMMAND_POSITION2_SET_SELECTION_POINT_2 = TextKey.of( + "iris.modded.help.entry.command.position2", + "Set selection point 2" + ); + public static final TextKey COMMAND_X_Y_AUTOSELECT_UP_AND_OUT = TextKey.of( + "iris.modded.help.entry.command.x_y", + "Autoselect up and out" + ); + public static final TextKey COMMAND_X_Y_AUTOSELECT_UP_DOWN_AND_OUT = TextKey.of( + "iris.modded.help.entry.command.x_y_2", + "Autoselect up, down and out" + ); + public static final TextKey COMMAND_ANALYZE_SHOW_OBJECT_COMPOSITION = TextKey.of( + "iris.modded.help.entry.command.analyze", + "Show object composition" + ); + public static final TextKey COMMAND_SHRINK_SHRINK_AN_OBJECT_TO_ITS_MINIMUM_SIZE = TextKey.of( + "iris.modded.help.entry.command.shrink", + "Shrink an object to its minimum size" + ); + public static final TextKey COMMAND_PLAUSIBILIZE_GROW_BRANCHES_SO_TREE_LEAVES_SURVIVE_VANILLA_DECAY = TextKey.of( + "iris.modded.help.entry.command.plausibilize", + "Grow branches so tree leaves survive vanilla decay" + ); + public static final TextKey COMMAND_UNDO_UNDO_PASTED_OBJECTS = TextKey.of( + "iris.modded.help.entry.command.undo", + "Undo pasted objects" + ); + public static final TextKey COMMAND_CREATE_CREATE_A_NEW_PACK_PROJECT = TextKey.of( + "iris.modded.help.entry.command.create_2", + "Create a new pack project" + ); + public static final TextKey COMMAND_PACKAGE_PACKAGE_A_DIMENSION_INTO_A_COMPRESSED_FORMAT = TextKey.of( + "iris.modded.help.entry.command.package", + "Package a dimension into a compressed format" + ); + public static final TextKey COMMAND_VERSION_PRINT_A_PACK_VERSION = TextKey.of( + "iris.modded.help.entry.command.version_2", + "Print a pack version" + ); + public static final TextKey COMMAND_REGIONS_CALCULATE_NEARBY_REGION_DISTRIBUTION = TextKey.of( + "iris.modded.help.entry.command.regions", + "Calculate nearby region distribution" + ); + public static final TextKey COMMAND_OPEN_OPEN_A_TEMPORARY_STUDIO_DIMENSION_FOR_A_PACK = TextKey.of( + "iris.modded.help.entry.command.open", + "Open a temporary studio dimension for a pack" + ); + public static final TextKey COMMAND_CLOSE_CLOSE_THE_OPEN_STUDIO_DIMENSION_AND_DISCARD_ITS_WORLD = TextKey.of( + "iris.modded.help.entry.command.close", + "Close the open studio dimension and discard its world" + ); + public static final TextKey COMMAND_TPSTUDIO_TELEPORT_INTO_THE_OPEN_STUDIO_DIMENSION = TextKey.of( + "iris.modded.help.entry.command.tpstudio", + "Teleport into the open studio dimension" + ); + public static final TextKey COMMAND_STATUS_SHOW_THE_OPEN_STUDIO_DIMENSION_AND_ITS_PACK = TextKey.of( + "iris.modded.help.entry.command.status_studio", + "Show the open studio dimension and its pack" + ); + public static final TextKey COMMAND_NOISE_OPEN_THE_NOISE_EXPLORER_GUI_ON_THE_SERVER_DISPLAY = TextKey.of( + "iris.modded.help.entry.command.noise", + "Open the Noise Explorer GUI on the server display" + ); + public static final TextKey COMMAND_MAP_OPEN_THE_VISION_MAP_GUI_ON_THE_SERVER_DISPLAY = TextKey.of( + "iris.modded.help.entry.command.map", + "Open the Vision map GUI on the server display" + ); + public static final TextKey COMMAND_VSCODE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK_AND_OPEN_IT_IN_YOUR = TextKey.of( + "iris.modded.help.entry.command.vscode", + "Regenerate the .code-workspace for a pack and open it in your desktop editor" + ); + public static final TextKey COMMAND_UPDATE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK = TextKey.of( + "iris.modded.help.entry.command.update", + "Regenerate the .code-workspace for a pack" + ); + public static final TextKey COMMAND_IMPORTVANILLA_EXPLAIN_VANILLA_IMPORT_WORKFLOW = TextKey.of( + "iris.modded.help.entry.command.importvanilla", + "Explain vanilla import workflow" + ); + public static final TextKey COMMAND_VALIDATE_VALIDATE_A_PACK_OR_EVERY_PACK = TextKey.of( + "iris.modded.help.entry.command.validate", + "Validate a pack or every pack" + ); + public static final TextKey COMMAND_CLEANUP_PREVIEW_OR_QUARANTINE_UNUSED_RESOURCE_CANDIDATES = TextKey.of( + "iris.modded.help.entry.command.cleanup", + "Preview or quarantine unused-resource candidates" + ); + public static final TextKey COMMAND_RESTORE_PREVIEW_OR_RESTORE_THE_LATEST_QUARANTINE = TextKey.of( + "iris.modded.help.entry.command.restore", + "Preview or restore the latest quarantine" + ); + public static final TextKey COMMAND_STATUS_SHOW_CACHED_VALIDATION_STATUS = TextKey.of( + "iris.modded.help.entry.command.status_validation", + "Show cached validation status" + ); + public static final TextKey COMMAND_ENABLE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_AT_RUNTIME_DOWNLOADS_THE_PACK = TextKey.of( + "iris.modded.help.entry.command.enable", + "Create and inject a persistent Iris dimension at runtime; downloads the pack if missing, quote pack:dimensionKey to pick a specific pack dimension" + ); + public static final TextKey COMMAND_REPLACE_OVERWORLD_INJECT_AN_IRIS_PRIMARY_WORLD_AND_ROUTE_PLAYERS_THERE_INSTEAD_OF_THE = TextKey.of( + "iris.modded.help.entry.command.replace_overworld", + "Inject an Iris primary world and route players there instead of the vanilla overworld" + ); + public static final TextKey COMMAND_DISABLE_EVACUATE_AND_UNLOAD_AN_IRIS_DIMENSION_WORLD_DATA_ON_DISK_IS_KEPT = TextKey.of( + "iris.modded.help.entry.command.disable", + "Evacuate and unload an Iris dimension; world data on disk is kept for re-enabling" + ); + public static final TextKey COMMAND_DELETE_DISABLE_AN_IRIS_DIMENSION_AND_WIPE_ITS_CHUNK_AND_MANTLE_DATA_FROM = TextKey.of( + "iris.modded.help.entry.command.delete", + "Disable an Iris dimension and wipe its chunk and mantle data from disk" + ); + public static final TextKey COMMAND_LIST_LIST_LOADED_IRIS_DIMENSIONS = TextKey.of( + "iris.modded.help.entry.command.list", + "List loaded Iris dimensions" + ); + public static final TextKey COMMAND_STATUS_SHOW_LOADED_IRIS_DIMENSIONS_AND_THE_CONFIGURED_PRIMARY_WORLD = TextKey.of( + "iris.modded.help.entry.command.status_world", + "Show loaded Iris dimensions and the configured primary world" + ); + public static final TextKey COMMAND_STATUS_CHECK_LOADED_IRIS_DIMENSION_TYPE_OVERRIDES = TextKey.of( + "iris.modded.help.entry.command.status_datapack", + "Check loaded Iris dimension type overrides" + ); + public static final TextKey COMMAND_INSTALL_INSTALL_DIMENSION_TYPE_OVERRIDES_FOR_LOADED_IRIS_DIMENSIONS = TextKey.of( + "iris.modded.help.entry.command.install", + "Install dimension type overrides for loaded Iris dimensions" + ); + public static final TextKey COMMAND_LIST_LIST_CONFIGURED_AND_INSTALLED_DATAPACKS = TextKey.of( + "iris.modded.help.entry.command.list_datapacks", + "List configured and installed datapacks" + ); + public static final TextKey COMMAND_INGEST_EXPLAIN_BUKKIT_DATAPACK_INGEST_WORKFLOW = TextKey.of( + "iris.modded.help.entry.command.ingest", + "Explain Bukkit datapack ingest workflow" + ); + public static final TextKey COMMAND_REMOVE_EXPLAIN_DATAPACK_REMOVAL_WORKFLOW = TextKey.of( + "iris.modded.help.entry.command.remove", + "Explain datapack removal workflow" + ); + public static final TextKey COMMAND_LIST_REGENERATE_STRUCTURE_INDEX_JSON = TextKey.of( + "iris.modded.help.entry.command.list_structures", + "Regenerate structure-index.json" + ); + public static final TextKey COMMAND_INFO_RESOLVE_AN_IRIS_STRUCTURE_GRAPH_AND_REPORT_BOUNDS = TextKey.of( + "iris.modded.help.entry.command.info_2", + "Resolve an Iris structure graph and report bounds" + ); + public static final TextKey COMMAND_PLACE_ASSEMBLE_AND_PLACE_AN_IRIS_STRUCTURE_AT_YOUR_LOCATION = TextKey.of( + "iris.modded.help.entry.command.place", + "Assemble and place an Iris structure at your location" + ); + public static final TextKey COMMAND_IMPORT_EXPLAIN_BUKKIT_STRUCTURE_IMPORT_WORKFLOW = TextKey.of( + "iris.modded.help.entry.command.import", + "Explain Bukkit structure import workflow" + ); + public static final TextKey COMMAND_CAPTURE_EXPLAIN_BUKKIT_STRUCTURE_CAPTURE_WORKFLOW = TextKey.of( + "iris.modded.help.entry.command.capture", + "Explain Bukkit structure capture workflow" + ); + public static final TextKey COMMAND_VERIFY_REPORT_NATIVE_AND_IRIS_STRUCTURE_REACHABILITY_IN_THE_CURRENT_DIMENSION = TextKey.of( + "iris.modded.help.entry.command.verify", + "Report native and Iris structure reachability in the current dimension" + ); + public static final TextKey COMMAND_SENTRY_SEND_A_TEST_EXCEPTION_TO_THE_IRIS_ERROR_REPORTER = TextKey.of( + "iris.modded.help.entry.command.sentry", + "Send a test exception to the Iris error reporter" + ); + public static final TextKey COMMAND_NETWORK_LIST_NETWORK_INTERFACES_AND_THEIR_ADDRESSES = TextKey.of( + "iris.modded.help.entry.command.network", + "List network interfaces and their addresses" + ); + + private static final List KEYS = List.of( + COMMAND_VERSION_PRINT_VERSION_INFORMATION, + COMMAND_INFO_LIST_LOADED_IRIS_DIMENSIONS_AND_PACK_DETAILS, + COMMAND_WHAT_INSPECT_THE_IRIS_BIOME_REGION_CAVE_BIOME_SURFACE_AND_CHUNK_AT_YOUR, + GROUP_FIND_FIND_AND_TELEPORT_TO_IRIS_BIOMES_REGIONS_OBJECTS_IRIS_STRUCTURES_NATIVE_STRUCTURES, + COMMAND_TP_TELEPORT_YOURSELF_OR_A_NAMED_PLAYER_INTO_A_LOADED_IRIS_DIMENSION, + COMMAND_EVACUATE_TELEPORT_EVERY_PLAYER_OUT_OF_AN_IRIS_DIMENSION_TO_THE_PRIMARY_WORLD, + COMMAND_SEED_PRINT_WORLD_AND_ENGINE_SEED_INFORMATION, + COMMAND_DEBUG_TOGGLE_IRIS_DEBUG_LOGGING_AND_SAVE_SETTINGS_JSON, + COMMAND_RELOAD_RELOAD_SETTINGS_JSON_ALSO_HOTLOADED_AUTOMATICALLY_EVERY_3S, + COMMAND_DOWNLOAD_DOWNLOAD_A_PACK_PROJECT, + COMMAND_METRICS_PRINT_GENERATION_METRICS_FOR_YOUR_CURRENT_IRIS_DIMENSION, + COMMAND_REGEN_DELETE_AND_REGENERATE_NEARBY_CHUNKS_IN_PLACE, + GROUP_PREGEN_PREGENERATE_AN_IRIS_DIMENSION, + COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND, + GROUP_OBJECT_OBJECT_WAND_SAVE_PASTE_ANALYZE_AND_UNDO_TOOLS, + GROUP_EDIT_OPEN_PACK_BIOME_REGION_AND_DIMENSION_JSON_FILES_IN_YOUR_DESKTOP_EDITOR, + COMMAND_CREATE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_QUOTE_PACK_DIMENSIONKEY_TO_PICK, + GROUP_STUDIO_PACK_PROJECT_CREATION_PACKAGING_AND_REPORTS, + GROUP_PACK_PACK_VALIDATION_AND_MAINTENANCE, + GROUP_WORLD_RUNTIME_IRIS_DIMENSION_CREATION_REMOVAL_AND_STATUS, + GROUP_DATAPACK_WORLD_DATAPACK_INSTALL_AND_STATUS_HELPERS, + GROUP_STRUCTURE_IRIS_STRUCTURE_INDEX_INFO_AND_PLACEMENT_TOOLS, + COMMAND_GOLDENHASH_GENERATE_DETERMINISTIC_BLOCK_HASHES_FOR_PARITY_TESTING, + GROUP_DEVELOPER_DEVELOPER_DIAGNOSTICS_SENTRY_TEST_NETWORK_INTERFACES_REGION_FILE_SCAN, + COMMAND_BIOME_FIND_AN_IRIS_BIOME, + COMMAND_REGION_FIND_AN_IRIS_REGION, + COMMAND_OBJECT_FIND_AN_OBJECT_PLACEMENT, + COMMAND_STRUCTURE_FIND_AN_IRIS_PLACED_OR_NATIVE_DATAPACK_STRUCTURE, + COMMAND_POI_FIND_A_SUPPORTED_POINT_OF_INTEREST, + COMMAND_BIOME_OPEN_A_BIOME_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE, + COMMAND_REGION_OPEN_A_REGION_JSON_IN_YOUR_DESKTOP_EDITOR_NO_KEY_OPENS_THE, + COMMAND_DIMENSION_OPEN_THE_CURRENT_PACK_S_DIMENSION_JSON_IN_YOUR_DESKTOP_EDITOR, + COMMAND_START_START_PREGENERATION_RADIUS_IN_BLOCKS_RESUMABLE_CHECKPOINT_CACHE_ON_BY_DEFAULT_CENTER, + COMMAND_STOP_STOP_THE_ACTIVE_PREGENERATION_TASK, + COMMAND_PAUSE_PAUSE_OR_RESUME_PREGENERATION, + COMMAND_STATUS_SHOW_PREGENERATION_STATUS, + COMMAND_WAND_GET_AN_IRIS_OBJECT_WAND_2, + COMMAND_DUST_GET_DUST_THAT_REVEALS_OBJECT_PLACEMENTS, + COMMAND_SAVE_SAVE_THE_SELECTED_WAND_VOLUME_AS_AN_OBJECT, + COMMAND_PASTE_PASTE_AN_OBJECT_AT_YOUR_POSITION_OR_A_GIVEN_POSITION_OPTIONALLY_ROTATED, + COMMAND_EXPAND_EXPAND_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION, + COMMAND_CONTRACT_CONTRACT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION, + COMMAND_SHIFT_SHIFT_THE_WAND_SELECTION_IN_YOUR_LOOKING_DIRECTION, + COMMAND_POSITION1_SET_SELECTION_POINT_1, + COMMAND_POSITION2_SET_SELECTION_POINT_2, + COMMAND_X_Y_AUTOSELECT_UP_AND_OUT, + COMMAND_X_Y_AUTOSELECT_UP_DOWN_AND_OUT, + COMMAND_ANALYZE_SHOW_OBJECT_COMPOSITION, + COMMAND_SHRINK_SHRINK_AN_OBJECT_TO_ITS_MINIMUM_SIZE, + COMMAND_PLAUSIBILIZE_GROW_BRANCHES_SO_TREE_LEAVES_SURVIVE_VANILLA_DECAY, + COMMAND_UNDO_UNDO_PASTED_OBJECTS, + COMMAND_CREATE_CREATE_A_NEW_PACK_PROJECT, + COMMAND_PACKAGE_PACKAGE_A_DIMENSION_INTO_A_COMPRESSED_FORMAT, + COMMAND_VERSION_PRINT_A_PACK_VERSION, + COMMAND_REGIONS_CALCULATE_NEARBY_REGION_DISTRIBUTION, + COMMAND_OPEN_OPEN_A_TEMPORARY_STUDIO_DIMENSION_FOR_A_PACK, + COMMAND_CLOSE_CLOSE_THE_OPEN_STUDIO_DIMENSION_AND_DISCARD_ITS_WORLD, + COMMAND_TPSTUDIO_TELEPORT_INTO_THE_OPEN_STUDIO_DIMENSION, + COMMAND_STATUS_SHOW_THE_OPEN_STUDIO_DIMENSION_AND_ITS_PACK, + COMMAND_NOISE_OPEN_THE_NOISE_EXPLORER_GUI_ON_THE_SERVER_DISPLAY, + COMMAND_MAP_OPEN_THE_VISION_MAP_GUI_ON_THE_SERVER_DISPLAY, + COMMAND_VSCODE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK_AND_OPEN_IT_IN_YOUR, + COMMAND_UPDATE_REGENERATE_THE_CODE_WORKSPACE_FOR_A_PACK, + COMMAND_IMPORTVANILLA_EXPLAIN_VANILLA_IMPORT_WORKFLOW, + COMMAND_VALIDATE_VALIDATE_A_PACK_OR_EVERY_PACK, + COMMAND_CLEANUP_PREVIEW_OR_QUARANTINE_UNUSED_RESOURCE_CANDIDATES, + COMMAND_RESTORE_PREVIEW_OR_RESTORE_THE_LATEST_QUARANTINE, + COMMAND_STATUS_SHOW_CACHED_VALIDATION_STATUS, + COMMAND_ENABLE_CREATE_AND_INJECT_A_PERSISTENT_IRIS_DIMENSION_AT_RUNTIME_DOWNLOADS_THE_PACK, + COMMAND_REPLACE_OVERWORLD_INJECT_AN_IRIS_PRIMARY_WORLD_AND_ROUTE_PLAYERS_THERE_INSTEAD_OF_THE, + COMMAND_DISABLE_EVACUATE_AND_UNLOAD_AN_IRIS_DIMENSION_WORLD_DATA_ON_DISK_IS_KEPT, + COMMAND_DELETE_DISABLE_AN_IRIS_DIMENSION_AND_WIPE_ITS_CHUNK_AND_MANTLE_DATA_FROM, + COMMAND_LIST_LIST_LOADED_IRIS_DIMENSIONS, + COMMAND_STATUS_SHOW_LOADED_IRIS_DIMENSIONS_AND_THE_CONFIGURED_PRIMARY_WORLD, + COMMAND_STATUS_CHECK_LOADED_IRIS_DIMENSION_TYPE_OVERRIDES, + COMMAND_INSTALL_INSTALL_DIMENSION_TYPE_OVERRIDES_FOR_LOADED_IRIS_DIMENSIONS, + COMMAND_LIST_LIST_CONFIGURED_AND_INSTALLED_DATAPACKS, + COMMAND_INGEST_EXPLAIN_BUKKIT_DATAPACK_INGEST_WORKFLOW, + COMMAND_REMOVE_EXPLAIN_DATAPACK_REMOVAL_WORKFLOW, + COMMAND_LIST_REGENERATE_STRUCTURE_INDEX_JSON, + COMMAND_INFO_RESOLVE_AN_IRIS_STRUCTURE_GRAPH_AND_REPORT_BOUNDS, + COMMAND_PLACE_ASSEMBLE_AND_PLACE_AN_IRIS_STRUCTURE_AT_YOUR_LOCATION, + COMMAND_IMPORT_EXPLAIN_BUKKIT_STRUCTURE_IMPORT_WORKFLOW, + COMMAND_CAPTURE_EXPLAIN_BUKKIT_STRUCTURE_CAPTURE_WORKFLOW, + COMMAND_VERIFY_REPORT_NATIVE_AND_IRIS_STRUCTURE_REACHABILITY_IN_THE_CURRENT_DIMENSION, + COMMAND_SENTRY_SEND_A_TEST_EXCEPTION_TO_THE_IRIS_ERROR_REPORTER, + COMMAND_NETWORK_LIST_NETWORK_INTERFACES_AND_THEIR_ADDRESSES + ); + + private ModdedHelpMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java b/core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java new file mode 100644 index 000000000..9296c7de6 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/PackDownloadMessages.java @@ -0,0 +1,151 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.LinesKey; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.PluralKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; +import java.util.Map; + +public final class PackDownloadMessages { + public static final TextKey INVALID_PACK_NAME = TextKey.of( + "iris.runtime.pack_download.invalid_pack_name", + "Invalid pack name '{pack}' (allowed: a-z, 0-9, _ and -)" + ); + public static final TextKey INVALID_BRANCH_NAME = TextKey.of( + "iris.runtime.pack_download.invalid_branch_name", + "Invalid branch name '{branch}' (allowed: letters, digits, . _ and -)" + ); + public static final TextKey DOWNLOAD_FAILED = TextKey.of( + "iris.runtime.pack_download.failed", + "Pack download failed: {type}{errorMessage}" + ); + public static final TextKey DOWNLOADING = TextKey.of( + "iris.runtime.pack_download.downloading", + "Downloading {url}" + ); + public static final TextKey FAILED_TO_FIND = TextKey.of( + "iris.runtime.pack_download.failed_to_find", + "Failed to find pack at {url}" + ); + public static final TextKey CHECK_REPOSITORY_AND_BRANCH = TextKey.of( + "iris.runtime.pack_download.check_repository_and_branch", + "Make sure you specified the correct repo and branch!" + ); + public static final TextKey EXAMPLE_COMMAND = TextKey.of( + "iris.runtime.pack_download.example_command", + "For example: /iris download overworld branch=stable" + ); + public static final TextKey UNPACKING = TextKey.of( + "iris.runtime.pack_download.unpacking", + "Unpacking {repository}" + ); + public static final LinesKey UNPACK_FAILED = LinesKey.of( + "iris.runtime.pack_download.unpack_failed", + "Issue when unpacking. Please check/do the following:", + "1. Do you have a functioning internet connection?", + "2. Did the download corrupt?", + "3. Try deleting the */plugins/iris/packs folder and re-download.", + "4. Download the pack from the GitHub repo: https://github.com/IrisDimensions/overworld", + "5. Contact support (if all other options do not help)" + ); + public static final TextKey NO_EXTRACTED_FILES = TextKey.of( + "iris.runtime.pack_download.no_extracted_files", + "No files were extracted from the zip file." + ); + public static final TextKey HOME_DIRECTORY_ERROR = TextKey.of( + "iris.runtime.pack_download.home_directory_error", + "Error when finding home directory. Are there any non-text characters in the file name?" + ); + public static final TextKey INVALID_ARCHIVE_FORMAT = TextKey.of( + "iris.runtime.pack_download.invalid_archive_format", + "Invalid format. Missing root folder or too many folders!" + ); + public static final TextKey NO_DIMENSION_FILE = TextKey.of( + "iris.runtime.pack_download.no_dimension_file", + "No dimension file found in the extracted zip file." + ); + public static final TextKey CHECK_GITHUB = TextKey.of( + "iris.runtime.pack_download.check_github", + "Check that it is present on GitHub and report this to staff!" + ); + public static final TextKey ONE_DIMENSION_REQUIRED = TextKey.of( + "iris.runtime.pack_download.one_dimension_required", + "The dimensions folder must contain exactly one file." + ); + public static final TextKey INVALID_DIMENSION = TextKey.of( + "iris.runtime.pack_download.invalid_dimension", + "Invalid dimension folder under dimensions/." + ); + public static final TextKey IMPORTING = TextKey.of( + "iris.runtime.pack_download.importing", + "Importing {name} ({key})" + ); + public static final TextKey DIMENSION_KEY_CONFLICT = TextKey.of( + "iris.runtime.pack_download.dimension_key_conflict", + "Another dimension in the packs folder is already using the key {key}. Import failed!" + ); + public static final TextKey PACK_KEY_CONFLICT = TextKey.of( + "iris.runtime.pack_download.pack_key_conflict", + "Another pack is using the key {key}. Import failed!" + ); + public static final TextKey ACQUIRED = TextKey.of( + "iris.runtime.pack_download.acquired", + "Successfully acquired {name}." + ); + public static final TextKey VALIDATION_FAILED = TextKey.of( + "iris.runtime.pack_download.validation_failed", + "Pack '{pack}' failed validation; world and Studio creation will be refused. Reasons:" + ); + public static final TextKey VALIDATION_REASON = TextKey.of( + "iris.runtime.pack_download.validation_reason", + " - {reason}" + ); + public static final PluralKey VALIDATED_WITH_WARNINGS = PluralKey.of( + "iris.runtime.pack_download.validated_with_warnings", + "count", + Map.of( + "one", "Pack '{pack}' validated with {count} warning.", + "other", "Pack '{pack}' validated with {count} warnings." + ) + ); + public static final TextKey VALIDATED = TextKey.of( + "iris.runtime.pack_download.validated", + "Pack '{pack}' validated." + ); + + private static final List KEYS = List.of( + INVALID_PACK_NAME, + INVALID_BRANCH_NAME, + DOWNLOAD_FAILED, + DOWNLOADING, + FAILED_TO_FIND, + CHECK_REPOSITORY_AND_BRANCH, + EXAMPLE_COMMAND, + UNPACKING, + UNPACK_FAILED, + NO_EXTRACTED_FILES, + HOME_DIRECTORY_ERROR, + INVALID_ARCHIVE_FORMAT, + NO_DIMENSION_FILE, + CHECK_GITHUB, + ONE_DIMENSION_REQUIRED, + INVALID_DIMENSION, + IMPORTING, + DIMENSION_KEY_CONFLICT, + PACK_KEY_CONFLICT, + ACQUIRED, + VALIDATION_FAILED, + VALIDATION_REASON, + VALIDATED_WITH_WARNINGS, + VALIDATED + ); + + private PackDownloadMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java b/core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java new file mode 100644 index 000000000..f846049d7 --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/RuntimeProgressMessages.java @@ -0,0 +1,169 @@ +package art.arcane.iris.core.localization; + +import art.arcane.iris.util.common.format.C; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.PluralKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; +import java.util.Map; + +public final class RuntimeProgressMessages { + public static final TextKey STUDIO_OPENING = TextKey.of("iris.runtime.studio.opening", C.GOLD + "Studio " + C.AQUA + "OPENING"); + public static final TextKey STUDIO_OPENING_PROGRESS = TextKey.of("iris.runtime.studio.opening_progress", C.GOLD + "Studio " + C.AQUA + "OPENING" + C.GRAY + " {percent}%"); + public static final TextKey STUDIO_FAILED_PROGRESS = TextKey.of("iris.runtime.studio.failed_progress", C.GOLD + "Studio " + C.RED + "FAILED" + C.GRAY + " {percent}%"); + public static final TextKey STUDIO_READY_PROGRESS = TextKey.of("iris.runtime.studio.ready_progress", C.GOLD + "Studio " + C.GREEN + "READY" + C.GRAY + " 100%"); + public static final TextKey STUDIO_ACTION_FAILED = TextKey.of("iris.runtime.studio.action.failed", "{bar}" + C.GRAY + " " + C.RED + "FAILED" + C.GRAY + " | " + C.WHITE + "{stage}"); + public static final TextKey STUDIO_ACTION_READY = TextKey.of("iris.runtime.studio.action.ready", "{bar}" + C.GRAY + " " + C.GREEN + "100%" + C.GRAY + " | " + C.GREEN + "Studio ready" + C.DARK_GRAY + " {elapsed}"); + public static final TextKey STUDIO_ACTION_PROGRESS = TextKey.of("iris.runtime.studio.action.progress", "{bar}" + C.GRAY + " " + C.YELLOW + "{percent}%" + C.GRAY + " | " + C.WHITE + "{stage}" + C.DARK_GRAY + " {elapsed}"); + public static final TextKey STUDIO_CONSOLE_PROGRESS = TextKey.of("iris.runtime.studio.console.progress", C.GOLD + "Studio " + C.AQUA + "{bar}" + C.YELLOW + " {percent}%" + C.GRAY + " {stage}" + C.DARK_GRAY + " ({elapsed})"); + public static final TextKey STUDIO_STAGE_INITIALIZING = TextKey.of("iris.runtime.studio.stage.initializing", "Initializing"); + public static final TextKey STUDIO_STAGE_QUEUED = TextKey.of("iris.runtime.studio.stage.queued", "Queued"); + public static final TextKey STUDIO_STAGE_RESOLVE_DIMENSION = TextKey.of("iris.runtime.studio.stage.resolve_dimension", "Resolving dimension"); + public static final TextKey STUDIO_STAGE_PREPARE_WORLD_PACK = TextKey.of("iris.runtime.studio.stage.prepare_world_pack", "Preparing world pack"); + public static final TextKey STUDIO_STAGE_INSTALL_DATAPACKS = TextKey.of("iris.runtime.studio.stage.install_datapacks", "Installing datapacks"); + public static final TextKey STUDIO_STAGE_CREATE_WORLD = TextKey.of("iris.runtime.studio.stage.create_world", "Creating world"); + public static final TextKey STUDIO_STAGE_APPLY_WORLD_RULES = TextKey.of("iris.runtime.studio.stage.apply_world_rules", "Applying world rules"); + public static final TextKey STUDIO_STAGE_PREPARE_GENERATOR = TextKey.of("iris.runtime.studio.stage.prepare_generator", "Preparing generator"); + public static final TextKey STUDIO_STAGE_REQUEST_ENTRY_CHUNK = TextKey.of("iris.runtime.studio.stage.request_entry_chunk", "Loading entry chunk"); + public static final TextKey STUDIO_STAGE_RESOLVE_SAFE_ENTRY = TextKey.of("iris.runtime.studio.stage.resolve_safe_entry", "Finding safe spawn"); + public static final TextKey STUDIO_STAGE_TELEPORT_PLAYER = TextKey.of("iris.runtime.studio.stage.teleport_player", "Teleporting"); + public static final TextKey STUDIO_STAGE_FINALIZE_OPEN = TextKey.of("iris.runtime.studio.stage.finalize_open", "Finalizing"); + public static final TextKey STUDIO_STAGE_CLEANUP = TextKey.of("iris.runtime.studio.stage.cleanup", "Cleaning up"); + public static final TextKey WORLD_CREATE_TELEPORT_FAILED = TextKey.of("iris.runtime.world_create.teleport_failed", C.YELLOW + "The world was created, but automatic teleport failed. Try /iris teleport world={world}"); + public static final TextKey WORLD_CREATE_ACTION = TextKey.of("iris.runtime.world_create.action", "{bar}" + C.GRAY + " " + C.YELLOW + "{percent}%" + C.DARK_GRAY + " {generated}/{required} chunks"); + public static final TextKey WORLD_CREATE_CONSOLE = TextKey.of("iris.runtime.world_create.console", C.GOLD + "Generating " + C.YELLOW + "{percent}%" + C.GRAY + " {generated}/{required} chunks" + C.DARK_GRAY + " ({remaining} left)"); + public static final TextKey WORLD_PREGEN_ACTION = TextKey.of("iris.runtime.world_create.pregen.action", "{bar}" + C.GRAY + " " + C.YELLOW + "{percent}%" + C.GRAY + " | " + C.WHITE + "Pregenerating"); + public static final TextKey WORLD_PREGEN_CONSOLE = TextKey.of("iris.runtime.world_create.pregen.console", C.GOLD + "Pregenerating " + C.YELLOW + "{percent}%"); + public static final TextKey CHUNK_TITLE_REGEN = TextKey.of("iris.runtime.chunk_job.title.regen", "Regen"); + public static final TextKey CHUNK_TITLE_DELETE = TextKey.of("iris.runtime.chunk_job.title.delete", "Delete"); + public static final TextKey CHUNK_TITLE_GOLDEN_HASH = TextKey.of("iris.runtime.chunk_job.title.golden_hash", "GoldenHash"); + public static final TextKey CHUNK_STAGE_PREPARING = TextKey.of("iris.runtime.chunk_job.stage.preparing", "Preparing"); + public static final TextKey CHUNK_STAGE_CLEARING = TextKey.of("iris.runtime.chunk_job.stage.clearing", "Clearing"); + public static final TextKey CHUNK_STAGE_RESETTING_MANTLE = TextKey.of("iris.runtime.chunk_job.stage.resetting_mantle", "Resetting mantle"); + public static final TextKey CHUNK_STAGE_REGENERATING = TextKey.of("iris.runtime.chunk_job.stage.regenerating", "Regenerating"); + public static final TextKey CHUNK_STAGE_GENERATING = TextKey.of("iris.runtime.chunk_job.stage.generating", "Generating"); + public static final TextKey CHUNK_STAGE_COMPARING = TextKey.of("iris.runtime.chunk_job.stage.comparing", "Comparing"); + public static final TextKey CHUNK_STAGE_DIAGNOSING = TextKey.of("iris.runtime.chunk_job.stage.diagnosing", "Diagnosing"); + public static final TextKey CHUNK_BOSSBAR_WORKING = TextKey.of("iris.runtime.chunk_job.bossbar.working", C.GOLD + "{title} " + C.AQUA + "WORKING"); + public static final TextKey CHUNK_BOSSBAR_PROGRESS = TextKey.of("iris.runtime.chunk_job.bossbar.progress", C.GOLD + "{title} " + C.AQUA + "{stage}" + C.GRAY + " " + C.YELLOW + "{percent}%"); + public static final TextKey CHUNK_ACTION_PROGRESS = TextKey.of("iris.runtime.chunk_job.action.progress", "{bar}" + C.GRAY + " " + C.YELLOW + "{percent}%" + C.GRAY + " | " + C.WHITE + "{stage} {applied}/{total}"); + public static final TextKey CHUNK_SUMMARY = TextKey.of("iris.runtime.chunk_job.summary", "{applied}/{total} chunks in {elapsed}"); + public static final TextKey CHUNK_SUMMARY_FAILED = TextKey.of("iris.runtime.chunk_job.summary.failed", "{applied}/{total} chunks in {elapsed} ({failures} failed)"); + public static final TextKey CHUNK_BOSSBAR_DONE = TextKey.of("iris.runtime.chunk_job.bossbar.done", C.GOLD + "{title} " + C.GREEN + "DONE" + C.GRAY + " " + C.YELLOW + "{summary}"); + public static final TextKey CHUNK_BOSSBAR_FAILED = TextKey.of("iris.runtime.chunk_job.bossbar.failed", C.GOLD + "{title} " + C.RED + "FAILED" + C.GRAY + " " + C.YELLOW + "{summary}"); + public static final TextKey CHUNK_ACTION_DONE = TextKey.of("iris.runtime.chunk_job.action.done", "{bar}" + C.GRAY + " " + C.GREEN + "Done" + C.GRAY + " | " + C.WHITE + "{summary}"); + public static final TextKey CHUNK_ACTION_FAILED = TextKey.of("iris.runtime.chunk_job.action.failed", "{bar}" + C.GRAY + " " + C.RED + "Failed" + C.GRAY + " | " + C.WHITE + "{summary}"); + public static final TextKey CHUNK_COMPLETE = TextKey.of("iris.runtime.chunk_job.complete", C.GREEN + "{title} complete: {summary}"); + public static final TextKey CHUNK_FAILED = TextKey.of("iris.runtime.chunk_job.failed", C.RED + "{title} finished with errors: {summary}"); + public static final TextKey GOLDEN_NO_CAPTURE = TextKey.of("iris.runtime.golden.no_capture", "No golden capture at {path}; run a capture first."); + public static final PluralKey GOLDEN_ABORTED = PluralKey.of( + "iris.runtime.golden.aborted", + "failed", + Map.of( + "one", "GoldenHash aborted: {failed} chunk failed to generate. No golden file written.", + "other", "GoldenHash aborted: {failed} chunks failed to generate. No golden file written." + ) + ); + public static final TextKey GOLDEN_FAILED = TextKey.of("iris.runtime.golden.failed", "GoldenHash failed: {error}"); + public static final TextKey GOLDEN_MANTLE_RESET = TextKey.of("iris.runtime.golden.mantle_reset", "Mantle reset ({path})"); + public static final TextKey GOLDEN_MANTLE_RESET_FAILED = TextKey.of("iris.runtime.golden.mantle_reset_failed", "Mantle reset failed ({type}); continuing with existing mantle state."); + public static final TextKey GOLDEN_CAPTURED = TextKey.of("iris.runtime.golden.captured", "Golden captured: {chunks} chunks combined={hash}"); + public static final TextKey GOLDEN_WRONG_WORLD = TextKey.of("iris.runtime.golden.wrong_world", "Golden file is for dim={goldenDimension} seed={goldenSeed} but this world is dim={dimension} seed={seed}. Aborting."); + public static final TextKey GOLDEN_VERSION_WARNING = TextKey.of("iris.runtime.golden.version_warning", "Golden was captured on mc={goldenVersion}, running mc={version}. Diffs may be version-induced."); + public static final TextKey GOLDEN_MATCH = TextKey.of("iris.runtime.golden.match", "GOLDEN MATCH: {current}/{golden} chunks, combined={hash}"); + public static final TextKey GOLDEN_MISMATCH = TextKey.of("iris.runtime.golden.mismatch", "GOLDEN MISMATCH: {mismatches}/{chunks} chunks differ."); + public static final TextKey GOLDEN_MISMATCH_CHUNK = TextKey.of("iris.runtime.golden.mismatch_chunk", " chunk {chunk}"); + public static final TextKey GOLDEN_MISSING_IN_GOLDEN = TextKey.of("iris.runtime.golden.missing_in_golden", "{chunk} (missing in golden)"); + public static final TextKey GOLDEN_MISMATCH_MORE = TextKey.of("iris.runtime.golden.mismatch_more", " ... and {count} more"); + public static final TextKey GOLDEN_CURRENT_WRITTEN = TextKey.of("iris.runtime.golden.current_written", "Current hashes written to {file}"); + public static final TextKey GOLDEN_DIAG_STABLE = TextKey.of("iris.runtime.golden.diag.stable", "Repeat-gen STABLE, mantle-reset {mantleStatus} -> {file}"); + public static final TextKey GOLDEN_DIAG_UNSTABLE = TextKey.of("iris.runtime.golden.diag.unstable", "Repeat-gen UNSTABLE ({diffs}+ block diffs), mantle-reset {mantleStatus} -> {file}"); + public static final TextKey GOLDEN_MANTLE_STABLE = TextKey.of("iris.runtime.golden.diag.mantle_stable", "STABLE (mantle rebuild reproduces scan output)"); + public static final TextKey GOLDEN_MANTLE_DIVERGED = TextKey.of("iris.runtime.golden.diag.mantle_diverged", "DIVERGED ({diffs}+ diffs - mantle build is state/order dependent)"); + public static final TextKey GOLDEN_MANTLE_SKIPPED = TextKey.of("iris.runtime.golden.diag.mantle_skipped", "SKIPPED ({type})"); + public static final TextKey GOLDEN_DIAG_FAILED = TextKey.of("iris.runtime.golden.diag.failed", "Diagnosis failed: {error}"); + public static final TextKey GOLDEN_STARTED = TextKey.of("iris.runtime.golden.started", "GoldenHash started: {chunks} chunks around 0,0 in buffers (world untouched), threads={threads} mode={mode}"); + public static final TextKey GOLDEN_CHUNK_HASHED = TextKey.of("iris.runtime.golden.chunk_hashed", "[{done}/{total}] chunk {x},{z} hashed"); + public static final TextKey GOLDEN_CHUNK_FAILED = TextKey.of("iris.runtime.golden.chunk_failed", "Chunk {x},{z} FAILED: {type}"); + + private static final List KEYS = List.of( + STUDIO_OPENING, + STUDIO_OPENING_PROGRESS, + STUDIO_FAILED_PROGRESS, + STUDIO_READY_PROGRESS, + STUDIO_ACTION_FAILED, + STUDIO_ACTION_READY, + STUDIO_ACTION_PROGRESS, + STUDIO_CONSOLE_PROGRESS, + STUDIO_STAGE_INITIALIZING, + STUDIO_STAGE_QUEUED, + STUDIO_STAGE_RESOLVE_DIMENSION, + STUDIO_STAGE_PREPARE_WORLD_PACK, + STUDIO_STAGE_INSTALL_DATAPACKS, + STUDIO_STAGE_CREATE_WORLD, + STUDIO_STAGE_APPLY_WORLD_RULES, + STUDIO_STAGE_PREPARE_GENERATOR, + STUDIO_STAGE_REQUEST_ENTRY_CHUNK, + STUDIO_STAGE_RESOLVE_SAFE_ENTRY, + STUDIO_STAGE_TELEPORT_PLAYER, + STUDIO_STAGE_FINALIZE_OPEN, + STUDIO_STAGE_CLEANUP, + WORLD_CREATE_TELEPORT_FAILED, + WORLD_CREATE_ACTION, + WORLD_CREATE_CONSOLE, + WORLD_PREGEN_ACTION, + WORLD_PREGEN_CONSOLE, + CHUNK_TITLE_REGEN, + CHUNK_TITLE_DELETE, + CHUNK_TITLE_GOLDEN_HASH, + CHUNK_STAGE_PREPARING, + CHUNK_STAGE_CLEARING, + CHUNK_STAGE_RESETTING_MANTLE, + CHUNK_STAGE_REGENERATING, + CHUNK_STAGE_GENERATING, + CHUNK_STAGE_COMPARING, + CHUNK_STAGE_DIAGNOSING, + CHUNK_BOSSBAR_WORKING, + CHUNK_BOSSBAR_PROGRESS, + CHUNK_ACTION_PROGRESS, + CHUNK_SUMMARY, + CHUNK_SUMMARY_FAILED, + CHUNK_BOSSBAR_DONE, + CHUNK_BOSSBAR_FAILED, + CHUNK_ACTION_DONE, + CHUNK_ACTION_FAILED, + CHUNK_COMPLETE, + CHUNK_FAILED, + GOLDEN_NO_CAPTURE, + GOLDEN_ABORTED, + GOLDEN_FAILED, + GOLDEN_MANTLE_RESET, + GOLDEN_MANTLE_RESET_FAILED, + GOLDEN_CAPTURED, + GOLDEN_WRONG_WORLD, + GOLDEN_VERSION_WARNING, + GOLDEN_MATCH, + GOLDEN_MISMATCH, + GOLDEN_MISMATCH_CHUNK, + GOLDEN_MISSING_IN_GOLDEN, + GOLDEN_MISMATCH_MORE, + GOLDEN_CURRENT_WRITTEN, + GOLDEN_DIAG_STABLE, + GOLDEN_DIAG_UNSTABLE, + GOLDEN_MANTLE_STABLE, + GOLDEN_MANTLE_DIVERGED, + GOLDEN_MANTLE_SKIPPED, + GOLDEN_DIAG_FAILED, + GOLDEN_STARTED, + GOLDEN_CHUNK_HASHED, + GOLDEN_CHUNK_FAILED + ); + + private RuntimeProgressMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java b/core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java new file mode 100644 index 000000000..a867f6e3b --- /dev/null +++ b/core/src/main/java/art/arcane/iris/core/localization/RuntimeUiMessages.java @@ -0,0 +1,223 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.TextKey; + +import java.util.List; + +public final class RuntimeUiMessages { + public static final TextKey FINDING_REGIONS = TextKey.of("iris.runtime.progress.finding_regions", "Finding regions"); + public static final TextKey CONVERTING = TextKey.of("iris.runtime.progress.converting", "Converting"); + public static final TextKey STATUS_RUNNING = TextKey.of("iris.runtime.status.running", "Running"); + public static final TextKey STATUS_STOPPED = TextKey.of("iris.runtime.status.stopped", "Stopped"); + public static final TextKey STATUS_PAUSED = TextKey.of("iris.runtime.status.paused", "Paused"); + public static final TextKey STATUS_PAUSED_LOWER = TextKey.of("iris.runtime.status.paused_lower", "paused"); + public static final TextKey STATUS_RUNNING_LOWER = TextKey.of("iris.runtime.status.running_lower", "running"); + public static final TextKey STATUS_ENABLED = TextKey.of("iris.runtime.status.enabled", "enabled."); + public static final TextKey STATUS_DISABLED = TextKey.of("iris.runtime.status.disabled", "disabled."); + public static final TextKey STATUS_UNREGISTERED = TextKey.of("iris.runtime.status.unregistered", "unregistered"); + public static final TextKey STATUS_NONE = TextKey.of("iris.runtime.status.none", "none"); + public static final TextKey STATUS_RANDOM = TextKey.of("iris.runtime.status.random", "random"); + public static final TextKey STATUS_MATCH = TextKey.of("iris.runtime.status.match", "MATCH"); + public static final TextKey STATUS_MISMATCH = TextKey.of("iris.runtime.status.mismatch", "MISMATCH"); + public static final TextKey STATUS_TRUE = TextKey.of("iris.runtime.status.true", "true"); + public static final TextKey STATUS_FALSE = TextKey.of("iris.runtime.status.false", "false"); + public static final TextKey ERROR_DETAIL_SUFFIX = TextKey.of("iris.runtime.error.detail_suffix", " - {error}"); + public static final TextKey DOWNLOAD_OVERWRITE_SUFFIX = TextKey.of("iris.runtime.download.overwrite_suffix", " overwriting"); + public static final TextKey DATAPACK_OVERRIDE_SUFFIX = TextKey.of("iris.runtime.datapack.override_suffix", " (world datapack override installed)"); + public static final TextKey PRIMARY_PLAYERS_ROUTED_SUFFIX = TextKey.of("iris.runtime.primary_world.players_routed_suffix", " (players routed there)"); + public static final TextKey PRIMARY_ROUTING_DISABLED_SUFFIX = TextKey.of("iris.runtime.primary_world.routing_disabled_suffix", " (routing disabled)"); + public static final TextKey MODDED_NO_DIMENSION_MATCH = TextKey.of("iris.runtime.modded.no_dimension_match", "No Iris dimension matches '{filter}'."); + public static final TextKey TELEPORTED_TO_WORLD = TextKey.of("iris.runtime.teleport.world", "You have been teleported to {world}."); + public static final TextKey ENGINE_HOTLOADED = TextKey.of("iris.runtime.engine.hotloaded", "Engine Hotloaded"); + public static final TextKey JOB_COMPLETED = TextKey.of("iris.runtime.job.completed", "Completed {job} in {duration}"); + public static final TextKey JOB_SCANNING_SELECTION = TextKey.of("iris.runtime.job.scanning_selection", "Scanning Selection"); + public static final TextKey JOB_LOADING_CHUNKS = TextKey.of("iris.runtime.job.loading_chunks", "Loading Chunks"); + public static final TextKey JOB_SEARCHED_CHUNKS = TextKey.of("iris.runtime.job.searched_chunks", "Searched {chunks} Chunks"); + public static final TextKey JOB_COMPILE = TextKey.of("iris.runtime.job.compile", "Compile"); + public static final TextKey JOB_SAVING_OBJECT = TextKey.of("iris.runtime.job.saving_object", "Saving Object"); + public static final TextKey JOB_DOWNLOADING = TextKey.of("iris.runtime.job.downloading", "Downloading"); + public static final TextKey JOB_EXTRACTING = TextKey.of("iris.runtime.job.extracting", "Extracting"); + public static final TextKey JOB_INSTALLING = TextKey.of("iris.runtime.job.installing", "Installing"); + public static final TextKey COMPILE_IOB_EMPTY = TextKey.of("iris.runtime.compile.iob_empty", "- IOB {file} has 0 blocks!"); + public static final TextKey COMPILE_IOB_EMPTY_HOVER = TextKey.of("iris.runtime.compile.iob_empty_hover", "Error:\n{path}"); + public static final TextKey COMPILE_IOB_NOT_3D = TextKey.of("iris.runtime.compile.iob_not_3d", "- IOB {file} is not 3D!"); + public static final TextKey COMPILE_IOB_NOT_3D_HOVER = TextKey.of("iris.runtime.compile.iob_not_3d_hover", "Error:\n{path}\nThe width, height, or depth is zero (bad format)"); + public static final TextKey COMPILE_JSON_ERROR = TextKey.of("iris.runtime.compile.json_error", "- JSON Error {file}"); + public static final TextKey COMPILE_JSON_ERROR_HOVER = TextKey.of("iris.runtime.compile.json_error_hover", "Error:\n{path}\n{error}"); + public static final TextKey COMPILE_LOADER_NOT_FOUND = TextKey.of("iris.runtime.compile.loader_not_found", "Can't find loader for {path}"); + public static final TextKey FORCED_DATAPACK_NAME = TextKey.of("iris.runtime.datapack.name", "Iris World Generation"); + public static final TextKey PACK_ALREADY_EXISTS = TextKey.of("iris.runtime.pack.already_exists", "Pack already exists!"); + public static final TextKey TREE_DRY_SUFFIX = TextKey.of("iris.runtime.tree_plausibilize.dry_suffix", ", DRY"); + public static final TextKey TREE_SKIP_LOAD = TextKey.of("iris.runtime.tree_plausibilize.skip_load", "skip {object}: failed to load"); + public static final TextKey TREE_RESULT = TextKey.of("iris.runtime.tree_plausibilize.result", "{object}: +{wood} wood ({branches} branches), {converted} leaves->wood, ~{distances} distances"); + public static final TextKey TREE_RESULT_PINNED = TextKey.of("iris.runtime.tree_plausibilize.result_pinned", "{object}: +{wood} wood ({branches} branches), {converted} leaves->wood, ~{distances} distances, !{pinned} pinned"); + public static final TextKey TREE_PROGRESS = TextKey.of("iris.runtime.tree_plausibilize.progress", "[{current}/{total}]"); + public static final TextKey TREE_FAILED = TextKey.of("iris.runtime.tree_plausibilize.failed", "fail {object}: {type}: {error}"); + public static final TextKey TREE_DONE = TextKey.of("iris.runtime.tree_plausibilize.done", "Done: {processed} processed, {changed} changed, {skipped} skipped, {failed} failed"); + public static final TextKey TREE_DONE_DRY = TextKey.of("iris.runtime.tree_plausibilize.done_dry", "Done: {processed} processed, {changed} changed, {skipped} skipped, {failed} failed (dry run, nothing written)"); + public static final TextKey TREE_TOTALS = TextKey.of("iris.runtime.tree_plausibilize.totals", "Totals: +{wood} wood ({branches} branches), {converted} leaves->wood, ~{distances} distances, !{pinned} pinned, unreachable {before} -> {after}"); + public static final TextKey WAND_NAME = TextKey.of("iris.runtime.item.wand.name", "Wand of Iris"); + public static final TextKey WAND_LORE_FIRST = TextKey.of("iris.runtime.item.wand.lore.first", "Left click a block to set the first corner"); + public static final TextKey WAND_LORE_SECOND = TextKey.of("iris.runtime.item.wand.lore.second", "Right click a block to set the second corner"); + public static final TextKey DUST_NAME = TextKey.of("iris.runtime.item.dust.name", "Dust of Revealing"); + public static final TextKey DUST_LORE = TextKey.of("iris.runtime.item.dust.lore", "Right click a block to reveal its placement structure!"); + public static final TextKey WAND_POSITION_SET = TextKey.of("iris.runtime.wand.position_set", "Position {position} set to {x}, {y}, {z}"); + public static final TextKey DUST_IRIS_WORLD_REQUIRED = TextKey.of("iris.runtime.dust.iris_world_required", "This dimension is not generated by Iris."); + public static final TextKey DUST_FOUND_OBJECT = TextKey.of("iris.runtime.dust.found_object", "Found object {object}"); + public static final TextKey DUST_REVEALED = TextKey.of("iris.runtime.dust.revealed", "Revealed {count} block(s) of {object}"); + public static final TextKey DUST_REVEALED_CAPPED = TextKey.of("iris.runtime.dust.revealed_capped", "Revealed {count} block(s) of {object} (capped)"); + public static final TextKey DUST_HEADER = TextKey.of("iris.runtime.dust.header", "--- Iris Dust @ {x}, {y}, {z} ---"); + public static final TextKey DUST_BLOCK = TextKey.of("iris.runtime.dust.block", "Block: {block}"); + public static final TextKey DUST_POSITION_ABOVE = TextKey.of("iris.runtime.dust.position.above", "Position: +{offset} ABOVE surface (surface Y={surfaceY})"); + public static final TextKey DUST_POSITION_BELOW = TextKey.of("iris.runtime.dust.position.below", "Position: {offset} below surface (surface Y={surfaceY})"); + public static final TextKey DUST_POSITION_AT = TextKey.of("iris.runtime.dust.position.at", "Position: at surface (Y={surfaceY})"); + public static final TextKey DUST_OBJECT_AT_BLOCK = TextKey.of("iris.runtime.dust.object_at_block", "Object @block: {object}"); + public static final TextKey DUST_NONE = TextKey.of("iris.runtime.dust.none", "none"); + public static final TextKey DUST_PLACED_BY_OBJECT_ABOVE = TextKey.of("iris.runtime.dust.placed_by.object_above", "Placed by: object/stilt '{object}' (above surface)"); + public static final TextKey DUST_PLACED_BY_DECORATION_ABOVE = TextKey.of("iris.runtime.dust.placed_by.decoration_above", "Placed by: decoration/object/stilt (above surface)"); + public static final TextKey DUST_PLACED_BY_BURIED_OBJECT = TextKey.of("iris.runtime.dust.placed_by.buried_object", "Placed by: buried object '{object}'"); + public static final TextKey DUST_PLACED_BY_TERRAIN = TextKey.of("iris.runtime.dust.placed_by.terrain", "Placed by: terrain layer (depth {depth} below surface)"); + public static final TextKey DUST_COLUMN_OBJECT = TextKey.of("iris.runtime.dust.column_object", "Column object: {object} -> this block is likely that object's stilt"); + public static final TextKey DUST_COLUMN_OBJECT_NONE = TextKey.of("iris.runtime.dust.column_object_none", "Column object: {detail}"); + public static final TextKey DUST_COLUMN_NONE = TextKey.of("iris.runtime.dust.column_none", "none within 64 (decorator or terrain, NOT an object stilt)"); + public static final TextKey DUST_COLUMN_ABOVE = TextKey.of("iris.runtime.dust.column.above", "{object} @Y={y} (above)"); + public static final TextKey DUST_COLUMN_BELOW = TextKey.of("iris.runtime.dust.column.below", "{object} @Y={y} (below)"); + public static final TextKey DUST_SURFACE_BIOME = TextKey.of("iris.runtime.dust.surface_biome", "Surface biome: {biome}"); + public static final TextKey DUST_SURFACE_BIOME_DETAIL = TextKey.of("iris.runtime.dust.surface_biome_detail", "Surface biome: {biome} ({derivative})"); + public static final TextKey DUST_BIOME_AT_Y = TextKey.of("iris.runtime.dust.biome_at_y", "Biome @Y: {biome}"); + public static final TextKey DUST_CAVE_BIOME = TextKey.of("iris.runtime.dust.cave_biome", "Cave/Mantle biome: {biome}"); + public static final TextKey DUST_SERVER_BIOME = TextKey.of("iris.runtime.dust.server_biome", "Server biome: {biome} (ID: {id})"); + public static final TextKey DUST_REGION = TextKey.of("iris.runtime.dust.region", "Region: {region} ({name})"); + public static final TextKey DUST_OBJECTS_IN_CHUNK = TextKey.of("iris.runtime.dust.objects_in_chunk", "Objects in chunk: {objects}"); + public static final TextKey DUST_COPY_BUTTON = TextKey.of("iris.runtime.dust.copy_button", "[Click to copy these stats]"); + public static final TextKey DUST_COPY_HOVER = TextKey.of("iris.runtime.dust.copy_hover", "Copy block stats to clipboard"); + public static final TextKey PREGEN_STARTING = TextKey.of("iris.runtime.pregen.starting", "Iris Pregen starting..."); + public static final TextKey PREGEN_HEADER = TextKey.of("iris.runtime.pregen.header", "Iris Pregen"); + public static final TextKey PREGEN_BOSSBAR_PAUSED = TextKey.of("iris.runtime.pregen.bossbar.paused", "Iris Pregen {generated}/{total} {percent}% PAUSED"); + public static final TextKey PREGEN_BOSSBAR_RUNNING = TextKey.of("iris.runtime.pregen.bossbar.running", "Iris Pregen {generated}/{total} {percent}% {speed}/s{eta}{failed}"); + public static final TextKey PREGEN_ETA_FRAGMENT = TextKey.of("iris.runtime.pregen.eta_fragment", " ETA {eta}"); + public static final TextKey PREGEN_FAILED_FRAGMENT = TextKey.of("iris.runtime.pregen.failed_fragment", " failed {failed}"); + public static final TextKey PREGEN_STATUS_CONTEXT = TextKey.of("iris.runtime.pregen.status.context", "Dimension {dimension} · Method {method}"); + public static final TextKey PREGEN_STATUS_PROGRESS = TextKey.of("iris.runtime.pregen.status.progress", "{percent}%"); + public static final TextKey PREGEN_STATUS_CHUNKS = TextKey.of("iris.runtime.pregen.status.chunks", "Chunks {generated}/{total} · Speed {speed}/s"); + public static final TextKey PREGEN_STATUS_CHUNKS_FAILED = TextKey.of("iris.runtime.pregen.status.chunks_failed", "Chunks {generated}/{total} · Speed {speed}/s · Failed {failed}"); + public static final TextKey PREGEN_STATUS_TIME = TextKey.of("iris.runtime.pregen.status.time", "ETA {eta} · Elapsed {elapsed}"); + public static final TextKey PREGEN_STATUS_TIME_PAUSED = TextKey.of("iris.runtime.pregen.status.time_paused", "ETA {eta} · Elapsed {elapsed} · PAUSED"); + public static final TextKey PREGEN_PAUSE_BUTTON = TextKey.of("iris.runtime.pregen.button.pause", "Pause/Resume"); + public static final TextKey PREGEN_PAUSE_HOVER = TextKey.of("iris.runtime.pregen.button.pause.hover", "Toggle pregeneration pause state"); + public static final TextKey PREGEN_STOP_BUTTON = TextKey.of("iris.runtime.pregen.button.stop", "Stop"); + public static final TextKey PREGEN_STOP_HOVER = TextKey.of("iris.runtime.pregen.button.stop.hover", "Finish the current region and stop pregeneration"); + + private static final List KEYS = List.of( + FINDING_REGIONS, + CONVERTING, + STATUS_RUNNING, + STATUS_STOPPED, + STATUS_PAUSED, + STATUS_PAUSED_LOWER, + STATUS_RUNNING_LOWER, + STATUS_ENABLED, + STATUS_DISABLED, + STATUS_UNREGISTERED, + STATUS_NONE, + STATUS_RANDOM, + STATUS_MATCH, + STATUS_MISMATCH, + STATUS_TRUE, + STATUS_FALSE, + ERROR_DETAIL_SUFFIX, + DOWNLOAD_OVERWRITE_SUFFIX, + DATAPACK_OVERRIDE_SUFFIX, + PRIMARY_PLAYERS_ROUTED_SUFFIX, + PRIMARY_ROUTING_DISABLED_SUFFIX, + MODDED_NO_DIMENSION_MATCH, + TELEPORTED_TO_WORLD, + ENGINE_HOTLOADED, + JOB_COMPLETED, + JOB_SCANNING_SELECTION, + JOB_LOADING_CHUNKS, + JOB_SEARCHED_CHUNKS, + JOB_COMPILE, + JOB_SAVING_OBJECT, + JOB_DOWNLOADING, + JOB_EXTRACTING, + JOB_INSTALLING, + COMPILE_IOB_EMPTY, + COMPILE_IOB_EMPTY_HOVER, + COMPILE_IOB_NOT_3D, + COMPILE_IOB_NOT_3D_HOVER, + COMPILE_JSON_ERROR, + COMPILE_JSON_ERROR_HOVER, + COMPILE_LOADER_NOT_FOUND, + FORCED_DATAPACK_NAME, + PACK_ALREADY_EXISTS, + TREE_DRY_SUFFIX, + TREE_SKIP_LOAD, + TREE_RESULT, + TREE_RESULT_PINNED, + TREE_PROGRESS, + TREE_FAILED, + TREE_DONE, + TREE_DONE_DRY, + TREE_TOTALS, + WAND_NAME, + WAND_LORE_FIRST, + WAND_LORE_SECOND, + DUST_NAME, + DUST_LORE, + WAND_POSITION_SET, + DUST_IRIS_WORLD_REQUIRED, + DUST_FOUND_OBJECT, + DUST_REVEALED, + DUST_REVEALED_CAPPED, + DUST_HEADER, + DUST_BLOCK, + DUST_POSITION_ABOVE, + DUST_POSITION_BELOW, + DUST_POSITION_AT, + DUST_OBJECT_AT_BLOCK, + DUST_NONE, + DUST_PLACED_BY_OBJECT_ABOVE, + DUST_PLACED_BY_DECORATION_ABOVE, + DUST_PLACED_BY_BURIED_OBJECT, + DUST_PLACED_BY_TERRAIN, + DUST_COLUMN_OBJECT, + DUST_COLUMN_OBJECT_NONE, + DUST_COLUMN_NONE, + DUST_COLUMN_ABOVE, + DUST_COLUMN_BELOW, + DUST_SURFACE_BIOME, + DUST_SURFACE_BIOME_DETAIL, + DUST_BIOME_AT_Y, + DUST_CAVE_BIOME, + DUST_SERVER_BIOME, + DUST_REGION, + DUST_OBJECTS_IN_CHUNK, + DUST_COPY_BUTTON, + DUST_COPY_HOVER, + PREGEN_STARTING, + PREGEN_HEADER, + PREGEN_BOSSBAR_PAUSED, + PREGEN_BOSSBAR_RUNNING, + PREGEN_ETA_FRAGMENT, + PREGEN_FAILED_FRAGMENT, + PREGEN_STATUS_CONTEXT, + PREGEN_STATUS_PROGRESS, + PREGEN_STATUS_CHUNKS, + PREGEN_STATUS_CHUNKS_FAILED, + PREGEN_STATUS_TIME, + PREGEN_STATUS_TIME_PAUSED, + PREGEN_PAUSE_BUTTON, + PREGEN_PAUSE_HOVER, + PREGEN_STOP_BUTTON, + PREGEN_STOP_HOVER + ); + + private RuntimeUiMessages() { + } + + public static List keys() { + return KEYS; + } +} diff --git a/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java b/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java index 12f3c58e7..bf305b66e 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java +++ b/core/src/main/java/art/arcane/iris/core/pack/IrisPackRepository.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.pack; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.core.service.StudioSVC; import art.arcane.volmlib.util.format.Form; @@ -117,8 +119,8 @@ public class IrisPackRepository { File work = new File(IrisPlatforms.get().dataFolder("cache", "temp"), "extk-" + UUID.randomUUID()); new JobCollection(Form.capitalize(getRepo()), new DownloadJob(toURL(), pack), - new SingleJob("Extracting", () -> ZipUtil.unpack(dl, work)), - new SingleJob("Installing", () -> { + new SingleJob(IrisLanguage.text(RuntimeUiMessages.JOB_EXTRACTING), () -> ZipUtil.unpack(dl, work)), + new SingleJob(IrisLanguage.text(RuntimeUiMessages.JOB_INSTALLING), () -> { try { FileUtils.copyDirectory(work.listFiles()[0], pack); } catch (IOException e) { @@ -126,7 +128,7 @@ public class IrisPackRepository { } })).execute(sender, whenComplete); } else { - sender.sendMessage("Pack already exists!"); + sender.sendMessage(IrisLanguage.text(RuntimeUiMessages.PACK_ALREADY_EXISTS)); } } } diff --git a/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java b/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java index 68a090c4a..2ad1a64be 100644 --- a/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java +++ b/core/src/main/java/art/arcane/iris/core/pack/PackDownloader.java @@ -18,11 +18,14 @@ package art.arcane.iris.core.pack; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.PackDownloadMessages; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.engine.object.IrisDimension; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.util.common.misc.WebCache; import art.arcane.volmlib.util.io.IO; +import art.arcane.volmlib.util.localization.MessageArgument; import org.zeroturnaround.zip.ZipUtil; import org.zeroturnaround.zip.commons.FileUtils; @@ -53,38 +56,30 @@ public final class PackDownloader { public static String download(File packsFolder, String repo, String ref, boolean forceOverwrite, boolean directUrl, Consumer feedback) throws IOException { String url = directUrl ? ref : resolveGithubArchiveUrl(repo, ref); - feedback.accept("Downloading " + url + " "); //The extra space stops a bug in adventure API from repeating the last letter of the URL + feedback.accept(IrisLanguage.plain(PackDownloadMessages.DOWNLOADING, MessageArgument.untrusted("url", url)) + " "); //The extra space stops a bug in adventure API from repeating the last letter of the URL File zip = WebCache.getNonCachedFile("pack-" + repo, url); File temp = WebCache.getTemp(); File work = new File(temp, "dl-" + UUID.randomUUID()); if (zip == null || !zip.exists()) { - feedback.accept("Failed to find pack at " + url); - feedback.accept("Make sure you specified the correct repo and branch!"); - feedback.accept("For example: /iris download overworld branch=stable"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.FAILED_TO_FIND, MessageArgument.untrusted("url", url))); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.CHECK_REPOSITORY_AND_BRANCH)); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.EXAMPLE_COMMAND)); return null; } - feedback.accept("Unpacking " + repo); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.UNPACKING, MessageArgument.untrusted("repository", repo))); try { ZipUtil.unpack(zip, work); } catch (Throwable e) { IrisLogging.reportError(e); e.printStackTrace(); - feedback.accept( - """ - Issue when unpacking. Please check/do the following: - 1. Do you have a functioning internet connection? - 2. Did the download corrupt? - 3. Try deleting the */plugins/iris/packs folder and re-download. - 4. Download the pack from the GitHub repo: https://github.com/IrisDimensions/overworld - 5. Contact support (if all other options do not help)""" - ); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.UNPACK_FAILED)); } File dir = null; File[] zipFiles = work.listFiles(); if (zipFiles == null) { - feedback.accept("No files were extracted from the zip file."); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.NO_EXTRACTED_FILES)); return null; } @@ -92,12 +87,12 @@ public final class PackDownloader { dir = zipFiles.length > 1 ? work : zipFiles[0].isDirectory() ? zipFiles[0] : null; } catch (NullPointerException e) { IrisLogging.reportError(e); - feedback.accept("Error when finding home directory. Are there any non-text characters in the file name?"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.HOME_DIRECTORY_ERROR)); return null; } if (dir == null) { - feedback.accept("Invalid Format. Missing root folder or too many folders!"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.INVALID_ARCHIVE_FORMAT)); return null; } @@ -105,13 +100,13 @@ public final class PackDownloader { String[] dimensions = data.getDimensionLoader().getPossibleKeys(); if (dimensions == null || dimensions.length == 0) { - feedback.accept("No dimension file found in the extracted zip file."); - feedback.accept("Check it is there on GitHub and report this to staff!"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.NO_DIMENSION_FILE)); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.CHECK_GITHUB)); return null; } if (dimensions.length != 1) { - feedback.accept("Dimensions folder must have 1 file in it"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.ONE_DIMENSION_REQUIRED)); return null; } @@ -119,12 +114,12 @@ public final class PackDownloader { data.close(); if (d == null) { - feedback.accept("Invalid dimension (folder) in dimensions folder"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.INVALID_DIMENSION)); return null; } String key = d.getLoadKey(); - feedback.accept("Importing " + d.getName() + " (" + key + ")"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.IMPORTING, MessageArgument.untrusted("name", d.getName()), MessageArgument.untrusted("key", key))); File packEntry = new File(packsFolder, key); if (forceOverwrite) { @@ -132,13 +127,13 @@ public final class PackDownloader { } if (IrisData.loadAnyDimension(key, null) != null) { - feedback.accept("Another dimension in the packs folder is already using the key " + key + " IMPORT FAILED!"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.DIMENSION_KEY_CONFLICT, MessageArgument.untrusted("key", key))); return null; } File[] existingEntries = packEntry.listFiles(); if (packEntry.exists() && existingEntries != null && existingEntries.length > 0) { - feedback.accept("Another pack is using the key " + key + ". IMPORT FAILED!"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.PACK_KEY_CONFLICT, MessageArgument.untrusted("key", key))); return null; } @@ -147,7 +142,7 @@ public final class PackDownloader { IrisData.getLoaded(packEntry) .ifPresent(IrisData::hotloaded); - feedback.accept("Successfully Aquired " + d.getName()); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.ACQUIRED, MessageArgument.untrusted("name", d.getName()))); validateDownloaded(packEntry, feedback); return key; } @@ -213,15 +208,18 @@ public final class PackDownloader { PackValidationRegistry.publish(result); if (!result.isLoadable()) { - feedback.accept("Pack '" + result.getPackName() + "' FAILED validation - world/studio creation will be refused. Reasons:"); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.VALIDATION_FAILED, MessageArgument.untrusted("pack", result.getPackName()))); for (String reason : result.getBlockingErrors()) { - feedback.accept(" - " + reason); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.VALIDATION_REASON, MessageArgument.untrusted("reason", reason))); } } else if (!result.getWarnings().isEmpty()) { - feedback.accept("Pack '" + result.getPackName() + "' validated (" - + result.getWarnings().size() + " warning(s))."); + feedback.accept(IrisLanguage.plain( + PackDownloadMessages.VALIDATED_WITH_WARNINGS, + MessageArgument.untrusted("pack", result.getPackName()), + MessageArgument.trusted("count", result.getWarnings().size()) + )); } else { - feedback.accept("Pack '" + result.getPackName() + "' validated."); + feedback.accept(IrisLanguage.plain(PackDownloadMessages.VALIDATED, MessageArgument.untrusted("pack", result.getPackName()))); } } catch (Throwable e) { IrisLogging.reportError("Pack validation failed for '" + packEntry.getName() + "'", e); diff --git a/core/src/main/java/art/arcane/iris/core/project/IrisProject.java b/core/src/main/java/art/arcane/iris/core/project/IrisProject.java index 8c9a65dc5..b6b5bfde0 100644 --- a/core/src/main/java/art/arcane/iris/core/project/IrisProject.java +++ b/core/src/main/java/art/arcane/iris/core/project/IrisProject.java @@ -60,6 +60,9 @@ import art.arcane.iris.util.common.scheduling.jobs.Job; import art.arcane.iris.util.common.scheduling.jobs.JobCollection; import art.arcane.iris.util.common.scheduling.jobs.ParallelQueueJob; import lombok.Data; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.event.HoverEvent; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.World; @@ -82,6 +85,11 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; @SuppressWarnings("ALL") @Data public class IrisProject { @@ -185,12 +193,12 @@ public class IrisProject { { try { if (d == null) { - sender.sendMessage("Could not load dimension \"" + getName() + "\""); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_COULD_NOT_LOAD_DIMENSION, MessageArgument.untrusted("value", String.valueOf(getName())))); return; } if (d.getLoader() == null) { - sender.sendMessage("Could not get dimension loader"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_COULD_NOT_GET_DIMENSION_LOADER)); return; } File f = d.getLoader().getDataFolder(); @@ -282,7 +290,7 @@ public class IrisProject { ? completionException.getCause() : throwable; IrisLogging.reportError("Studio open failed for project \"" + getName() + "\".", error); - sender.sendMessage(C.RED + "Studio open failed: " + error.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_STUDIO_OPEN_FAILED, MessageArgument.untrusted("error", String.valueOf(error.getMessage())))); return; } @@ -316,7 +324,7 @@ public class IrisProject { if (sender.isPlayer() && sender.player() != null) { bossBar = Bukkit.createBossBar( - C.GOLD + "Studio " + C.AQUA + "OPENING", + IrisLanguage.text(RuntimeProgressMessages.STUDIO_OPENING), org.bukkit.boss.BarColor.BLUE, org.bukkit.boss.BarStyle.SEGMENTED_20 ); @@ -340,32 +348,36 @@ public class IrisProject { if (bossBar != null) { bossBar.setProgress(Math.max(0.0D, Math.min(1.0D, currentProgress))); bossBar.setColor(org.bukkit.boss.BarColor.RED); - bossBar.setTitle(C.GOLD + "Studio " + C.RED + "FAILED" + C.GRAY + " " + C.YELLOW + percent + "%"); + bossBar.setTitle(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_FAILED_PROGRESS, + MessageArgument.trusted("percent", percent) + )); J.a(() -> { bossBar.removeAll(); bossBar.setVisible(false); }, 60); } if (sender.isPlayer()) { - String action = buildStudioProgressBar(currentProgress) - + C.GRAY + " " + C.RED + "FAILED" - + C.GRAY + " | " + C.WHITE + currentStage; - sender.sendAction(action); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_ACTION_FAILED, + MessageArgument.trusted("bar", buildStudioProgressBar(currentProgress)), + MessageArgument.trusted("stage", currentStage) + )); } else { - sender.sendMessage(C.RED + "Studio open failed."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_STUDIO_OPEN_FAILED_2)); } } else { if (bossBar != null) { bossBar.setProgress(1.0D); bossBar.setColor(org.bukkit.boss.BarColor.GREEN); - bossBar.setTitle(C.GOLD + "Studio " + C.GREEN + "READY" + C.GRAY + " " + C.YELLOW + "100%"); + bossBar.setTitle(IrisLanguage.text(RuntimeProgressMessages.STUDIO_READY_PROGRESS)); J.a(() -> { bossBar.removeAll(); bossBar.setVisible(false); }, 60); } if (sender.isPlayer()) { - String action = buildStudioProgressBar(1.0D) - + C.GRAY + " " + C.GREEN + "100%" - + C.GRAY + " | " + C.GREEN + "Studio ready" - + C.DARK_GRAY + " " + Form.duration(elapsed, 1); - sender.sendAction(action); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_ACTION_READY, + MessageArgument.trusted("bar", buildStudioProgressBar(1.0D)), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 1)) + )); } else { - sender.sendMessage(C.GREEN + "Studio ready " + C.GRAY + "(" + Form.duration(elapsed, 1) + ")"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_STUDIO_READY, MessageArgument.untrusted("value", String.valueOf(Form.duration(elapsed, 1))))); } } return; @@ -374,20 +386,31 @@ public class IrisProject { if (sender.isPlayer() && sender.player() != null) { if (bossBar != null) { bossBar.setProgress(Math.max(0.0D, Math.min(1.0D, currentProgress))); - bossBar.setTitle(C.GOLD + "Studio " + C.AQUA + "OPENING" + C.GRAY + " " + C.YELLOW + percent + "%"); + bossBar.setTitle(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_OPENING_PROGRESS, + MessageArgument.trusted("percent", percent) + )); } - String action = buildStudioProgressBar(currentProgress) - + C.GRAY + " " + C.YELLOW + percent + "%" - + C.GRAY + " | " + C.WHITE + currentStage - + C.DARK_GRAY + " " + Form.duration(elapsed, 0); - sender.sendAction(action); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_ACTION_PROGRESS, + MessageArgument.trusted("bar", buildStudioProgressBar(currentProgress)), + MessageArgument.trusted("percent", percent), + MessageArgument.trusted("stage", currentStage), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 0)) + )); } else { long now = System.currentTimeMillis(); long nextUpdate = nextConsoleUpdate.get(); if (now >= nextUpdate) { String bar = buildStudioConsoleBar(currentProgress); - sender.sendMessage(C.GOLD + "Studio " + C.AQUA + bar + " " + C.YELLOW + percent + "%" + C.GRAY + " " + currentStage + C.DARK_GRAY + " (" + Form.duration(elapsed, 0) + ")"); + sender.sendMessage(IrisLanguage.text( + RuntimeProgressMessages.STUDIO_CONSOLE_PROGRESS, + MessageArgument.trusted("bar", bar), + MessageArgument.trusted("percent", percent), + MessageArgument.trusted("stage", currentStage), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 0)) + )); nextConsoleUpdate.set(now + 1500L); } } @@ -420,20 +443,22 @@ public class IrisProject { } private static String describeStage(String stage) { - if (stage == null || stage.isBlank()) return "Initializing"; + if (stage == null || stage.isBlank()) { + return IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_INITIALIZING); + } return switch (stage) { - case "Queued" -> "Queued"; - case "resolve_dimension" -> "Resolving dimension"; - case "prepare_world_pack" -> "Preparing world pack"; - case "install_datapacks" -> "Installing datapacks"; - case "create_world" -> "Creating world"; - case "apply_world_rules" -> "Applying world rules"; - case "prepare_generator" -> "Preparing generator"; - case "request_entry_chunk" -> "Loading entry chunk"; - case "resolve_safe_entry" -> "Finding safe spawn"; - case "teleport_player" -> "Teleporting"; - case "finalize_open" -> "Finalizing"; - case "cleanup" -> "Cleaning up"; + case "Queued" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_QUEUED); + case "resolve_dimension" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_RESOLVE_DIMENSION); + case "prepare_world_pack" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_PREPARE_WORLD_PACK); + case "install_datapacks" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_INSTALL_DATAPACKS); + case "create_world" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_CREATE_WORLD); + case "apply_world_rules" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_APPLY_WORLD_RULES); + case "prepare_generator" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_PREPARE_GENERATOR); + case "request_entry_chunk" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_REQUEST_ENTRY_CHUNK); + case "resolve_safe_entry" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_RESOLVE_SAFE_ENTRY); + case "teleport_player" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_TELEPORT_PLAYER); + case "finalize_open" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_FINALIZE_OPEN); + case "cleanup" -> IrisLanguage.text(RuntimeProgressMessages.STUDIO_STAGE_CLEANUP); default -> Form.capitalizeWords(stage.replace('_', ' ')); }; } @@ -665,7 +690,7 @@ public class IrisProject { String a; StringBuilder b = new StringBuilder(); StringBuilder c = new StringBuilder(); - sender.sendMessage("Serializing Objects"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_SERIALIZING_OBJECTS)); for (IrisBiome i : biomes) { for (IrisObjectPlacement j : i.getObjects()) { @@ -704,7 +729,7 @@ public class IrisProject { if (cl.flip()) { int g = ggg.get(); ggg.set(0); - sender.sendMessage("Wrote another " + g + " Objects"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_WROTE_ANOTHER_OBJECTS, MessageArgument.untrusted("g", String.valueOf(g)))); } } catch (Throwable e) { IrisLogging.reportError(e); @@ -778,13 +803,13 @@ public class IrisProject { ZipUtil.pack(folder, p, 9); IO.delete(folder); - sender.sendMessage("Package Compiled!"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_PACKAGE_COMPILED)); return p; } catch (Throwable e) { IrisLogging.reportError(e); e.printStackTrace(); } - sender.sendMessage("Failed!"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_PROJECT_FAILED)); return null; } @@ -827,15 +852,25 @@ public class IrisProject { o.read(f); if (o.getBlocks().isEmpty()) { - sender.sendMessageRaw("" + f.getPath() + - "'>- IOB " + f.getName() + " has 0 blocks!"); + sender.sendComponent(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_IOB_EMPTY, + MessageArgument.untrusted("file", f.getName()) + ), NamedTextColor.RED) + .hoverEvent(HoverEvent.showText(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_IOB_EMPTY_HOVER, + MessageArgument.untrusted("path", f.getPath()) + ), NamedTextColor.YELLOW)))); } if (o.getW() == 0 || o.getH() == 0 || o.getD() == 0) { - sender.sendMessageRaw("" + f.getPath() + "\nThe width height or depth has a zero in it (bad format)" + - "'>- IOB " + f.getName() + " is not 3D!"); + sender.sendComponent(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_IOB_NOT_3D, + MessageArgument.untrusted("file", f.getName()) + ), NamedTextColor.RED) + .hoverEvent(HoverEvent.showText(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_IOB_NOT_3D_HOVER, + MessageArgument.untrusted("path", f.getPath()) + ), NamedTextColor.YELLOW)))); } } catch (IOException e) { e.printStackTrace(); @@ -858,10 +893,15 @@ public class IrisProject { IO.writeAll(f, p.toString(4)); } catch (Throwable e) { - sender.sendMessageRaw("" + f.getPath() + - "\n" + e.getMessage() + - "'>- JSON Error " + f.getName()); + sender.sendComponent(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_JSON_ERROR, + MessageArgument.untrusted("file", f.getName()) + ), NamedTextColor.RED) + .hoverEvent(HoverEvent.showText(Component.text(IrisLanguage.plain( + RuntimeUiMessages.COMPILE_JSON_ERROR_HOVER, + MessageArgument.untrusted("path", f.getPath()), + MessageArgument.untrusted("error", String.valueOf(e.getMessage())) + ), NamedTextColor.YELLOW)))); } } @@ -871,7 +911,7 @@ public class IrisProject { } }.queue(files)); - new JobCollection("Compile", jobs).execute(sender); + new JobCollection(IrisLanguage.text(RuntimeUiMessages.JOB_COMPILE), jobs).execute(sender); } private void scanForErrors(IrisData data, File f, JSONObject p, VolmitSender sender) { @@ -879,7 +919,10 @@ public class IrisProject { ResourceLoader loader = data.getTypedLoaderFor(f); if (loader == null) { - sender.sendMessageBasic("Can't find loader for " + f.getPath()); + sender.sendMessage(IrisLanguage.text( + RuntimeUiMessages.COMPILE_LOADER_NOT_FOUND, + MessageArgument.untrusted("path", f.getPath()) + )); return; } diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java b/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java index 51e637f37..e2e3c15e0 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java +++ b/core/src/main/java/art/arcane/iris/core/runtime/ChunkClearer.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.runtime; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.core.nms.INMS; import art.arcane.iris.engine.framework.Engine; @@ -51,7 +53,7 @@ public final class ChunkClearer { this.centerChunkX = centerChunkX; this.centerChunkZ = centerChunkZ; this.radius = Math.max(0, radius); - this.reporter = new ChunkJobReporter(sender, "Delete", world); + this.reporter = new ChunkJobReporter(sender, IrisLanguage.text(RuntimeProgressMessages.CHUNK_TITLE_DELETE), world); } public void start() { @@ -66,7 +68,7 @@ public final class ChunkClearer { try { List targets = ChunkJobReporter.orderedTargets(centerChunkX, centerChunkZ, radius); reporter.setTotal(targets.size()); - reporter.setStage("Clearing"); + reporter.setStage(IrisLanguage.text(RuntimeProgressMessages.CHUNK_STAGE_CLEARING)); clear(targets); } catch (Throwable e) { IrisLogging.reportError(e); diff --git a/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java b/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java index abb1ee00d..1bb4dc7e3 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java +++ b/core/src/main/java/art/arcane/iris/core/runtime/ChunkJobReporter.java @@ -18,12 +18,15 @@ package art.arcane.iris.core.runtime; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.util.common.format.C; import art.arcane.iris.util.common.math.ChunkSpiral; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.scheduling.J; import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.localization.MessageArgument; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.boss.BarColor; @@ -44,7 +47,9 @@ public final class ChunkJobReporter { private final String title; private final String worldName; - private final AtomicReference stage = new AtomicReference<>("Preparing"); + private final AtomicReference stage = new AtomicReference<>( + IrisLanguage.text(RuntimeProgressMessages.CHUNK_STAGE_PREPARING) + ); private final AtomicReference progress = new AtomicReference<>(0.0D); private final AtomicBoolean complete = new AtomicBoolean(false); private final AtomicBoolean failed = new AtomicBoolean(false); @@ -106,7 +111,10 @@ public final class ChunkJobReporter { private void startReporter() { boolean player = sender.isPlayer() && sender.player() != null; BossBar bossBar = player - ? Bukkit.createBossBar(C.GOLD + title + " " + C.AQUA + "WORKING", BarColor.BLUE, BarStyle.SEGMENTED_20) + ? Bukkit.createBossBar(IrisLanguage.text( + RuntimeProgressMessages.CHUNK_BOSSBAR_WORKING, + MessageArgument.trusted("title", title) + ), BarColor.BLUE, BarStyle.SEGMENTED_20) : null; if (bossBar != null) { bossBar.setProgress(0.0D); @@ -126,28 +134,53 @@ public final class ChunkJobReporter { return; } - String label = stage.get() + " " + applied.get() + "/" + (total <= 0 ? "?" : total); if (bossBar != null) { bossBar.setProgress(Math.min(1.0D, currentProgress)); - bossBar.setTitle(C.GOLD + title + " " + C.AQUA + stage.get() + C.GRAY + " " + C.YELLOW + percent + "%"); + bossBar.setTitle(IrisLanguage.text( + RuntimeProgressMessages.CHUNK_BOSSBAR_PROGRESS, + MessageArgument.trusted("title", title), + MessageArgument.trusted("stage", stage.get()), + MessageArgument.trusted("percent", percent) + )); } if (sender.isPlayer()) { - sender.sendAction(progressBar(currentProgress) + C.GRAY + " " + C.YELLOW + percent + "%" - + C.GRAY + " | " + C.WHITE + label); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.CHUNK_ACTION_PROGRESS, + MessageArgument.trusted("bar", progressBar(currentProgress)), + MessageArgument.trusted("percent", percent), + MessageArgument.trusted("stage", stage.get()), + MessageArgument.trusted("applied", applied.get()), + MessageArgument.trusted("total", total <= 0 ? "?" : total) + )); } }, REPORT_INTERVAL_TICKS)); } private void finishReporter(BossBar bossBar, long elapsed) { boolean ok = !failed.get(); - String summary = applied.get() + "/" + total + " chunk(s) in " + Form.duration(elapsed, 1) - + (failures.get() > 0 ? " (" + failures.get() + " failed)" : ""); + String summary = failures.get() > 0 + ? IrisLanguage.text( + RuntimeProgressMessages.CHUNK_SUMMARY_FAILED, + MessageArgument.trusted("applied", applied.get()), + MessageArgument.trusted("total", total), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 1)), + MessageArgument.trusted("failures", failures.get()) + ) + : IrisLanguage.text( + RuntimeProgressMessages.CHUNK_SUMMARY, + MessageArgument.trusted("applied", applied.get()), + MessageArgument.trusted("total", total), + MessageArgument.trusted("elapsed", Form.duration(elapsed, 1)) + ); if (bossBar != null) { bossBar.setProgress(1.0D); bossBar.setColor(ok ? BarColor.GREEN : BarColor.RED); - bossBar.setTitle(C.GOLD + title + " " + (ok ? C.GREEN + "DONE" : C.RED + "FAILED") - + C.GRAY + " " + C.YELLOW + summary); + bossBar.setTitle(IrisLanguage.text( + ok ? RuntimeProgressMessages.CHUNK_BOSSBAR_DONE : RuntimeProgressMessages.CHUNK_BOSSBAR_FAILED, + MessageArgument.trusted("title", title), + MessageArgument.trusted("summary", summary) + )); J.a(() -> { bossBar.removeAll(); bossBar.setVisible(false); @@ -155,10 +188,17 @@ public final class ChunkJobReporter { } if (sender.isPlayer()) { - sender.sendAction(progressBar(1.0D) + C.GRAY + " " + (ok ? C.GREEN + "Done" : C.RED + "Failed") - + C.GRAY + " | " + C.WHITE + summary); + sender.sendAction(IrisLanguage.text( + ok ? RuntimeProgressMessages.CHUNK_ACTION_DONE : RuntimeProgressMessages.CHUNK_ACTION_FAILED, + MessageArgument.trusted("bar", progressBar(1.0D)), + MessageArgument.trusted("summary", summary) + )); } - sender.sendMessage((ok ? C.GREEN + title + " complete: " : C.RED + title + " finished with errors: ") + summary); + sender.sendMessage(IrisLanguage.text( + ok ? RuntimeProgressMessages.CHUNK_COMPLETE : RuntimeProgressMessages.CHUNK_FAILED, + MessageArgument.trusted("title", title), + MessageArgument.trusted("summary", summary) + )); IrisLogging.info(title + " done: world=" + worldName + " " + summary); } diff --git a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java b/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java index 3569c4c44..5a8588ffa 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java +++ b/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashEngine.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.runtime; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.mantle.EngineMantle; import art.arcane.iris.spi.IrisLogging; @@ -25,6 +27,7 @@ import art.arcane.iris.spi.PlatformBiome; import art.arcane.iris.spi.PlatformBlockState; import art.arcane.iris.util.common.math.ChunkSpiral; import art.arcane.iris.util.common.parallel.MultiBurst; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.mantle.runtime.Mantle; import java.io.File; @@ -137,26 +140,32 @@ public final class GoldenHashEngine { try { boolean exists = goldenFile.exists(); if (request.mode() == Mode.VERIFY && !exists) { - feedback.fail("No golden capture at " + goldenFile.getAbsolutePath() + "; run a capture first."); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_NO_CAPTURE, + MessageArgument.untrusted("path", goldenFile.getAbsolutePath()) + )); return false; } if (request.resetMantle()) { - progress.stage("Resetting mantle"); + progress.stage(IrisLanguage.plain(RuntimeProgressMessages.CHUNK_STAGE_RESETTING_MANTLE)); resetMantleFull(); } List targets = ChunkSpiral.centerOut(request.centerChunkX(), request.centerChunkZ(), radius); progress.total(targets.size()); - progress.stage("Generating"); + progress.stage(IrisLanguage.plain(RuntimeProgressMessages.CHUNK_STAGE_GENERATING)); Map lines = scan(targets); if (lines.size() != targets.size()) { - feedback.fail("GoldenHash aborted: " + (targets.size() - lines.size()) + " chunk(s) failed to generate. No golden file written."); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_ABORTED, + MessageArgument.trusted("failed", targets.size() - lines.size()) + )); return false; } - progress.stage("Comparing"); + progress.stage(IrisLanguage.plain(RuntimeProgressMessages.CHUNK_STAGE_COMPARING)); if (request.mode() == Mode.CAPTURE || (request.mode() == Mode.AUTO && !exists)) { capture(lines); return true; @@ -165,7 +174,10 @@ public final class GoldenHashEngine { return verify(lines); } catch (Throwable e) { IrisLogging.reportError(e); - feedback.fail("GoldenHash failed: " + e); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_FAILED, + MessageArgument.untrusted("error", String.valueOf(e)) + )); return false; } finally { ACTIVE_SCANS.decrementAndGet(); @@ -185,10 +197,16 @@ public final class GoldenHashEngine { } } } - feedback.ok("Mantle reset (" + folder.getAbsolutePath() + ")"); + feedback.ok(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MANTLE_RESET, + MessageArgument.untrusted("path", folder.getAbsolutePath()) + )); } catch (Throwable e) { IrisLogging.reportError(e); - feedback.warn("Mantle reset failed (" + e.getClass().getSimpleName() + "); continuing with existing mantle state."); + feedback.warn(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MANTLE_RESET_FAILED, + MessageArgument.untrusted("type", e.getClass().getSimpleName()) + )); } } @@ -280,7 +298,11 @@ public final class GoldenHashEngine { out.add("#combined=" + combined); Files.write(goldenFile.toPath(), out, StandardCharsets.UTF_8); - feedback.ok("Golden captured: " + body.size() + " chunks combined=" + shortHash(combined)); + feedback.ok(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_CAPTURED, + MessageArgument.trusted("chunks", body.size()), + MessageArgument.trusted("hash", shortHash(combined)) + )); feedback.ok(goldenFile.getAbsolutePath()); IrisLogging.info("goldenhash captured: " + goldenFile.getAbsolutePath() + " combined=" + combined); } @@ -304,12 +326,21 @@ public final class GoldenHashEngine { String expectedSeed = String.valueOf(request.seed()); String expectedDim = engine.getDimension().getLoadKey(); if (!expectedSeed.equals(meta.get("seed")) || !expectedDim.equals(meta.get("dim"))) { - feedback.fail("Golden file is for dim=" + meta.get("dim") + " seed=" + meta.get("seed") - + " but this world is dim=" + expectedDim + " seed=" + expectedSeed + ". Aborting."); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_WRONG_WORLD, + MessageArgument.untrusted("goldenDimension", String.valueOf(meta.get("dim"))), + MessageArgument.untrusted("goldenSeed", String.valueOf(meta.get("seed"))), + MessageArgument.untrusted("dimension", expectedDim), + MessageArgument.untrusted("seed", expectedSeed) + )); return false; } if (!request.mcVersion().equals(meta.get("mc"))) { - feedback.warn("Golden was captured on mc=" + meta.get("mc") + ", running mc=" + request.mcVersion() + ". Diffs may be version-induced."); + feedback.warn(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_VERSION_WARNING, + MessageArgument.untrusted("goldenVersion", String.valueOf(meta.get("mc"))), + MessageArgument.untrusted("version", request.mcVersion()) + )); } List body = orderedBody(lines); @@ -319,33 +350,56 @@ public final class GoldenHashEngine { String key = line.substring(0, second); String golden = goldenChunks.get(key); if (!line.equals(golden)) { - mismatches.add(key + (golden == null ? " (missing in golden)" : "")); + mismatches.add(golden == null + ? IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MISSING_IN_GOLDEN, + MessageArgument.untrusted("chunk", key) + ) + : key); } } String combined = combinedHash(body); if (mismatches.isEmpty()) { - feedback.ok("GOLDEN MATCH: " + body.size() + "/" + goldenChunks.size() + " chunks, combined=" + shortHash(combined)); + feedback.ok(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MATCH, + MessageArgument.trusted("current", body.size()), + MessageArgument.trusted("golden", goldenChunks.size()), + MessageArgument.trusted("hash", shortHash(combined)) + )); IrisLogging.info("goldenhash MATCH: " + goldenFile.getName() + " combined=" + combined); return true; } - feedback.fail("GOLDEN MISMATCH: " + mismatches.size() + "/" + body.size() + " chunks differ."); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MISMATCH, + MessageArgument.trusted("mismatches", mismatches.size()), + MessageArgument.trusted("chunks", body.size()) + )); for (int i = 0; i < Math.min(MAX_REPORTED_MISMATCHES, mismatches.size()); i++) { - feedback.fail(" chunk " + mismatches.get(i)); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MISMATCH_CHUNK, + MessageArgument.untrusted("chunk", mismatches.get(i)) + )); } if (mismatches.size() > MAX_REPORTED_MISMATCHES) { - feedback.fail(" ... and " + (mismatches.size() - MAX_REPORTED_MISMATCHES) + " more"); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MISMATCH_MORE, + MessageArgument.trusted("count", mismatches.size() - MAX_REPORTED_MISMATCHES) + )); } File current = new File(goldenFile.getParentFile(), goldenFile.getName() + ".new"); List out = new ArrayList<>(body); out.add("#combined=" + combined); Files.write(current.toPath(), out, StandardCharsets.UTF_8); - feedback.warn("Current hashes written to " + current.getName()); + feedback.warn(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_CURRENT_WRITTEN, + MessageArgument.untrusted("file", current.getName()) + )); IrisLogging.info("goldenhash MISMATCH: " + mismatches.size() + "/" + body.size() + " -> " + current.getAbsolutePath()); - progress.stage("Diagnosing"); + progress.stage(IrisLanguage.plain(RuntimeProgressMessages.CHUNK_STAGE_DIAGNOSING)); diagnose(mismatches.getFirst()); return false; } @@ -376,6 +430,7 @@ public final class GoldenHashEngine { List mantleDiffs = new ArrayList<>(); String mantleStatus; + boolean mantleStable = false; try { EngineMantle engineMantle = engine.getMantle(); int margin = Math.max(engineMantle.getRadius(), engineMantle.getRealRadius()) + 1; @@ -396,10 +451,19 @@ public final class GoldenHashEngine { } } } - mantleStatus = mantleDiffs.isEmpty() ? "STABLE (mantle rebuild reproduces scan output)" : "DIVERGED (" + mantleDiffs.size() + "+ diffs - mantle build is state/order dependent)"; + mantleStable = mantleDiffs.isEmpty(); + mantleStatus = mantleStable + ? IrisLanguage.plain(RuntimeProgressMessages.GOLDEN_MANTLE_STABLE) + : IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MANTLE_DIVERGED, + MessageArgument.trusted("diffs", mantleDiffs.size()) + ); } catch (Throwable t) { mantleDiffs.clear(); - mantleStatus = "SKIPPED (" + t.getClass().getSimpleName() + ")"; + mantleStatus = IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_MANTLE_SKIPPED, + MessageArgument.untrusted("type", t.getClass().getSimpleName()) + ); } List report = new ArrayList<>(); @@ -422,17 +486,27 @@ public final class GoldenHashEngine { File diag = new File(goldenFile.getParentFile(), goldenFile.getName() + ".diag-c" + chunkX + "x" + chunkZ + ".txt"); Files.write(diag.toPath(), report, StandardCharsets.UTF_8); - String repeatPart = diffs.isEmpty() ? "Repeat-gen STABLE" : "Repeat-gen UNSTABLE (" + diffs.size() + "+ block diffs)"; - String mantlePart = "mantle-reset " + mantleStatus; - if (diffs.isEmpty() && mantleDiffs.isEmpty() && mantleStatus.startsWith("STABLE")) { - feedback.warn(repeatPart + ", " + mantlePart + " -> " + diag.getName()); + if (diffs.isEmpty() && mantleStable) { + feedback.warn(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_DIAG_STABLE, + MessageArgument.trusted("mantleStatus", mantleStatus), + MessageArgument.untrusted("file", diag.getName()) + )); } else { - feedback.fail(repeatPart + ", " + mantlePart + " -> " + diag.getName()); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_DIAG_UNSTABLE, + MessageArgument.trusted("diffs", diffs.size()), + MessageArgument.trusted("mantleStatus", mantleStatus), + MessageArgument.untrusted("file", diag.getName()) + )); } IrisLogging.info("goldenhash diag: chunk=" + chunkX + "," + chunkZ + " repeatStable=" + diffs.isEmpty() + " -> " + diag.getAbsolutePath()); } catch (Throwable e) { IrisLogging.reportError(e); - feedback.fail("Diagnosis failed: " + e.getMessage()); + feedback.fail(IrisLanguage.plain( + RuntimeProgressMessages.GOLDEN_DIAG_FAILED, + MessageArgument.untrusted("error", String.valueOf(e.getMessage())) + )); } } diff --git a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java b/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java index 514f5a54b..ed815ee9a 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java +++ b/core/src/main/java/art/arcane/iris/core/runtime/GoldenHashScanner.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.runtime; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.engine.data.chunk.TerrainChunk; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.spi.IrisPlatforms; @@ -39,7 +41,7 @@ public final class GoldenHashScanner { this.world = world; this.engine = engine; this.sender = sender; - this.reporter = new ChunkJobReporter(sender, "GoldenHash", world); + this.reporter = new ChunkJobReporter(sender, IrisLanguage.text(RuntimeProgressMessages.CHUNK_TITLE_GOLDEN_HASH), world); GoldenHashEngine.Request request = new GoldenHashEngine.Request( world.getName(), world.getSeed(), diff --git a/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java b/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java index 09807ca6d..00d29605c 100644 --- a/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java +++ b/core/src/main/java/art/arcane/iris/core/runtime/InPlaceChunkRegenerator.java @@ -18,6 +18,8 @@ package art.arcane.iris.core.runtime; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.core.nms.INMS; import art.arcane.iris.engine.data.chunk.TerrainChunk; @@ -60,7 +62,7 @@ public final class InPlaceChunkRegenerator { this.centerChunkX = centerChunkX; this.centerChunkZ = centerChunkZ; this.radius = Math.max(0, radius); - this.reporter = new ChunkJobReporter(sender, "Regen", world); + this.reporter = new ChunkJobReporter(sender, IrisLanguage.text(RuntimeProgressMessages.CHUNK_TITLE_REGEN), world); } public void start() { @@ -73,12 +75,12 @@ public final class InPlaceChunkRegenerator { private void run() { boolean error = false; try { - reporter.setStage("Resetting mantle"); + reporter.setStage(IrisLanguage.text(RuntimeProgressMessages.CHUNK_STAGE_RESETTING_MANTLE)); resetMantleMargin(); List targets = ChunkJobReporter.orderedTargets(centerChunkX, centerChunkZ, radius); reporter.setTotal(targets.size()); - reporter.setStage("Regenerating"); + reporter.setStage(IrisLanguage.text(RuntimeProgressMessages.CHUNK_STAGE_REGENERATING)); regenerate(targets); } catch (Throwable e) { IrisLogging.reportError(e); diff --git a/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java b/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java index 380bc3cc4..3b07e6423 100644 --- a/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/BoardSVC.java @@ -18,6 +18,9 @@ package art.arcane.iris.core.service; +import art.arcane.iris.core.localization.BukkitUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.loader.IrisData; @@ -28,11 +31,11 @@ import art.arcane.volmlib.util.board.Board; import art.arcane.volmlib.util.board.BoardProvider; import art.arcane.volmlib.util.board.BoardSettings; import art.arcane.volmlib.util.board.ScoreDirection; -import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.iris.util.common.plugin.IrisService; import art.arcane.iris.util.common.scheduling.J; import art.arcane.volmlib.util.matter.MatterCavern; +import art.arcane.volmlib.util.localization.MessageArgument; import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -171,7 +174,7 @@ public class BoardSVC implements IrisService, BoardProvider { @Override public String getTitle(Player player) { - return C.GREEN + "Iris"; + return IrisLanguage.text(BukkitUiMessages.SCOREBOARD_TITLE); } @Override @@ -333,20 +336,28 @@ public class BoardSVC implements IrisService, BoardProvider { List lines = new ArrayList<>(this.lines.size()); lines.add("&7&m "); - lines.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(engine.getGeneratedPerSecond(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); - lines.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); - lines.add(C.AQUA + "Mantle" + C.GRAY + ": " + engine.getMantle().getLoadedRegionCount()); + lines.add(IrisLanguage.text( + BukkitUiMessages.SCOREBOARD_SPEED, + MessageArgument.trusted("speed", Form.f(engine.getGeneratedPerSecond(), 0)), + MessageArgument.trusted("duration", Form.duration(1000D / engine.getGeneratedPerSecond(), 0)) + )); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_CACHE, MessageArgument.trusted("count", Form.f(IrisData.cacheSize())))); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_MANTLE, MessageArgument.trusted("count", engine.getMantle().getLoadedRegionCount()))); if (IrisSettings.get().getGeneral().debug) { - lines.add(C.LIGHT_PURPLE + "Carving" + C.GRAY + ": " + (engine.getMantle().getMantle().get(x, y, z, MatterCavern.class) != null)); + boolean carving = engine.getMantle().getMantle().get(x, y, z, MatterCavern.class) != null; + lines.add(IrisLanguage.text( + BukkitUiMessages.SCOREBOARD_CARVING, + MessageArgument.trusted("state", IrisLanguage.text(carving ? RuntimeUiMessages.STATUS_TRUE : RuntimeUiMessages.STATUS_FALSE)) + )); } lines.add("&7&m "); - lines.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); - lines.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiomeOrMantle(x, y, z).getName()); - lines.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); - lines.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); - lines.add(C.AQUA + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_REGION, MessageArgument.untrusted("region", engine.getRegion(x, z).getName()))); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_BIOME, MessageArgument.untrusted("biome", engine.getBiomeOrMantle(x, y, z).getName()))); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_HEIGHT, MessageArgument.trusted("height", Math.round(engine.getHeight(x, z))))); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_SLOPE, MessageArgument.trusted("slope", Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)))); + lines.add(IrisLanguage.text(BukkitUiMessages.SCOREBOARD_BLOCK_UPDATES, MessageArgument.trusted("updates", Form.f(engine.getBlockUpdatesPerSecond())))); lines.add("&7&m "); this.lines = lines; } diff --git a/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java b/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java index 98975818a..f2c55f8a6 100644 --- a/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java +++ b/core/src/main/java/art/arcane/iris/core/service/ObjectStudioSaveService.java @@ -52,6 +52,9 @@ import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public class ObjectStudioSaveService implements IrisService { private static ObjectStudioSaveService INSTANCE; @@ -161,11 +164,11 @@ public class ObjectStudioSaveService implements IrisService { Player player = event.getPlayer(); GridCell cell = findCellNear(studio, clicked.getX(), clicked.getZ()); if (cell == null) { - player.sendMessage(C.GRAY + "Object Studio: no cell under click (x=" + clicked.getX() + " z=" + clicked.getZ() + ")."); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CELL_UNDER_CLICK_X_Z, MessageArgument.untrusted("x", String.valueOf(clicked.getX())), MessageArgument.untrusted("z", String.valueOf(clicked.getZ())))); return; } - player.sendMessage(C.AQUA + "Object Studio: saving " + C.WHITE + cell.pack() + "/" + cell.key() + C.GRAY + " (" + cell.w() + "x" + cell.h() + "x" + cell.d() + ")"); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVING_X_X, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key())), MessageArgument.untrusted("w", String.valueOf(cell.w())), MessageArgument.untrusted("h", String.valueOf(cell.h())), MessageArgument.untrusted("d", String.valueOf(cell.d())))); IrisLogging.info("Object Studio save triggered by %s for %s/%s", player.getName(), cell.pack(), cell.key()); J.runRegion(world, cell.chunkMinX(), cell.chunkMinZ(), () -> { try { @@ -255,7 +258,7 @@ public class ObjectStudioSaveService implements IrisService { Long prior = studio.hashes.get(hashKey); if (prior != null && prior == hash) { if (notify != null) { - notify.sendMessage(C.GRAY + "Object Studio: no changes for " + cell.pack() + "/" + cell.key() + "."); + notify.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_CHANGES, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key())))); } return; } @@ -263,7 +266,7 @@ public class ObjectStudioSaveService implements IrisService { if (!anyBlock && prior == null) { studio.hashes.put(hashKey, hash); if (notify != null) { - notify.sendMessage(C.GRAY + "Object Studio: empty cell " + cell.pack() + "/" + cell.key() + " (nothing to write)."); + notify.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_EMPTY_CELL_NOTHING_WRITE, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key())))); } return; } @@ -273,7 +276,7 @@ public class ObjectStudioSaveService implements IrisService { File targetFile = objectFileFor(studio, cell); if (targetFile == null) { if (notify != null) { - notify.sendMessage(C.RED + "Object Studio: no target file for " + cell.pack() + "/" + cell.key() + "."); + notify.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_NO_TARGET_FILE, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key())))); } return; } @@ -288,12 +291,12 @@ public class ObjectStudioSaveService implements IrisService { IrisLogging.info("Object Studio saved: %s/%s (%dx%dx%d)", cell.pack(), cell.key(), cell.w(), cell.h(), cell.d()); if (notify != null) { - J.runEntity(notify, () -> notify.sendMessage(C.GREEN + "Object Studio: saved " + C.WHITE + cell.pack() + "/" + cell.key())); + J.runEntity(notify, () -> notify.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVED, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key()))))); } } catch (Throwable e) { IrisLogging.reportError(e); if (notify != null) { - J.runEntity(notify, () -> notify.sendMessage(C.RED + "Object Studio: save failed for " + cell.pack() + "/" + cell.key() + " (" + e.getMessage() + ")")); + J.runEntity(notify, () -> notify.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.OBJECT_STUDIO_SAVE_SERVICE_OBJECT_STUDIO_SAVE_FAILED, MessageArgument.untrusted("pack", String.valueOf(cell.pack())), MessageArgument.untrusted("key", String.valueOf(cell.key())), MessageArgument.untrusted("error", String.valueOf(e.getMessage()))))); } } }); diff --git a/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java b/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java index eb9425839..62321f454 100644 --- a/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java +++ b/core/src/main/java/art/arcane/iris/core/service/StudioSVC.java @@ -59,6 +59,9 @@ import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public class StudioSVC implements IrisService { public static final String LISTING = "https://raw.githubusercontent.com/IrisDimensions/_listing/main/listing-v2.json"; public static final String WORKSPACE_NAME = "packs"; @@ -137,7 +140,7 @@ public class StudioSVC implements IrisService { public IrisDimension installIntoWorld(VolmitSender sender, IrisDimension dimension, File folder) { File target = new File(folder, "iris/pack"); File source = dimension.getLoader().getDataFolder(); - sender.sendMessage("Installing Package: " + source.getName() + ":" + dimension.getLoadKey()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_INSTALLING_PACKAGE, MessageArgument.untrusted("name", String.valueOf(source.getName())), MessageArgument.untrusted("loadKey", String.valueOf(dimension.getLoadKey())))); try { FileUtils.copyDirectory(source, target); } catch (IOException e) { @@ -148,7 +151,7 @@ public class StudioSVC implements IrisService { } public IrisDimension installInto(VolmitSender sender, String type, File folder) { - sender.sendMessage("Looking for Package: " + type); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_LOOKING_PACKAGE, MessageArgument.untrusted("type", String.valueOf(type)))); IrisDimension dim = IrisData.loadAnyDimension(type, null); if (dim == null) { @@ -156,14 +159,14 @@ public class StudioSVC implements IrisService { if (workspaceFiles != null) { for (File i : workspaceFiles) { if (i.isFile() && i.getName().equals(type + ".iris")) { - sender.sendMessage("Found " + type + ".iris in " + WORKSPACE_NAME + " folder"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FOUND_IRIS_FOLDER, MessageArgument.untrusted("type", String.valueOf(type)), MessageArgument.untrusted("WORKSPACENAME", String.valueOf(WORKSPACE_NAME)))); ZipUtil.unpack(i, folder); break; } } } } else { - sender.sendMessage("Found " + type + " dimension in " + WORKSPACE_NAME + " folder. Repackaging"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FOUND_DIMENSION_FOLDER_REPACKAGING, MessageArgument.untrusted("type", String.valueOf(type)), MessageArgument.untrusted("WORKSPACENAME", String.valueOf(WORKSPACE_NAME)))); File f = new IrisProject(new File(getWorkspaceFolder(), type)).getPath(); try { @@ -204,7 +207,7 @@ public class StudioSVC implements IrisService { } if (!dimensionFile.exists() || !dimensionFile.isFile()) { - sender.sendMessage("Can't find the " + dimensionFile.getName() + " in the dimensions folder of this pack! Failed!"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_CAN_T_FIND_DIMENSIONS_FOLDER_THIS_PACK_FAILED, MessageArgument.untrusted("name", String.valueOf(dimensionFile.getName())))); return null; } @@ -213,11 +216,11 @@ public class StudioSVC implements IrisService { dim = dm.getDimensionLoader().load(type); if (dim == null) { - sender.sendMessage("Can't load the dimension! Failed!"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_CAN_T_LOAD_DIMENSION_FAILED)); return null; } - sender.sendMessage(folder.getName() + " type installed. "); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_TYPE_INSTALLED, MessageArgument.untrusted("name", String.valueOf(folder.getName())))); return dim; } @@ -230,8 +233,8 @@ public class StudioSVC implements IrisService { String url = getListing(false).get(key); if (url == null) { - sender.sendMessage("Pack '" + key + "' was not found in the pack listing."); - sender.sendMessage("Use /iris download branch= to download manually."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_PACK_WAS_NOT_FOUND_PACK_LISTING, MessageArgument.untrusted("key", String.valueOf(key)))); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_USE_IRIS_DOWNLOAD_PACK_BRANCH_BRANCH_DOWNLOAD_MANUALLY)); return; } @@ -243,7 +246,7 @@ public class StudioSVC implements IrisService { } catch (Throwable e) { IrisLogging.reportError(e); e.printStackTrace(); - sender.sendMessage("Failed to download '" + key + "'."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_DOWNLOAD, MessageArgument.untrusted("key", String.valueOf(key)))); } } @@ -256,7 +259,7 @@ public class StudioSVC implements IrisService { } catch (Throwable e) { IrisLogging.reportError(e); e.printStackTrace(); - sender.sendMessage("Failed to download the IrisDimensions/overworld beta release."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_DOWNLOAD_IRISDIMENSIONS_OVERWORLD_BETA_RELEASE)); } } @@ -266,7 +269,7 @@ public class StudioSVC implements IrisService { } catch (Throwable e) { IrisLogging.reportError(e); e.printStackTrace(); - sender.sendMessage("Failed to download '" + repo + "' (branch " + branch + ")."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_DOWNLOAD_BRANCH, MessageArgument.untrusted("repo", String.valueOf(repo)), MessageArgument.untrusted("branch", String.valueOf(branch)))); } } @@ -317,7 +320,7 @@ public class StudioSVC implements IrisService { }); } catch (Exception e) { IrisLogging.reportError("Failed to open studio world \"" + dimm + "\".", e); - sender.sendMessage("Failed to open studio world: " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD, MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } } @@ -326,11 +329,11 @@ public class StudioSVC implements IrisService { if (validation == null || validation.isLoadable()) { return false; } - sender.sendMessage("Cannot open studio '" + dimm + "' - pack has blocking errors:"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_CANNOT_OPEN_STUDIO_PACK_HAS_BLOCKING_ERRORS, MessageArgument.untrusted("dimm", String.valueOf(dimm)))); for (String reason : validation.getBlockingErrors()) { - sender.sendMessage(" - " + reason); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_MESSAGE, MessageArgument.untrusted("reason", String.valueOf(reason)))); } - sender.sendMessage("Fix the pack and run /iris pack validate " + dimm + " to revalidate."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FIX_PACK_RUN_IRIS_PACK_VALIDATE_REVALIDATE, MessageArgument.untrusted("dimm", String.valueOf(dimm)))); return true; } @@ -342,14 +345,14 @@ public class StudioSVC implements IrisService { pendingClose.whenComplete((closeResult, closeThrowable) -> { if (closeThrowable != null) { IrisLogging.reportError("Failed while closing an existing studio project before opening \"" + dimm + "\".", closeThrowable); - J.s(() -> sender.sendMessage("Failed to close the existing studio project: " + closeThrowable.getMessage())); + J.s(() -> sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT, MessageArgument.untrusted("error", String.valueOf(closeThrowable.getMessage()))))); return; } if (closeResult != null && closeResult.failureCause() != null) { Throwable failure = closeResult.failureCause(); IrisLogging.reportError("Failed while closing an existing studio project before opening \"" + dimm + "\".", failure); - J.s(() -> sender.sendMessage("Failed to close the existing studio project: " + failure.getMessage())); + J.s(() -> sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_CLOSE_EXISTING_STUDIO_PROJECT_2, MessageArgument.untrusted("error", String.valueOf(failure.getMessage()))))); return; } @@ -369,7 +372,7 @@ public class StudioSVC implements IrisService { if (activeProject == project) { activeProject = null; } - J.s(() -> sender.sendMessage("Failed to open studio world: " + e.getMessage())); + J.s(() -> sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_FAILED_OPEN_STUDIO_WORLD_2, MessageArgument.untrusted("error", String.valueOf(e.getMessage()))))); } }); } @@ -516,18 +519,18 @@ public class StudioSVC implements IrisService { } if (packFiles == null || packFiles.length == 0) { - sender.sendMessage("Couldn't find the pack to create a new dimension from."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_COULDN_T_FIND_PACK_CREATE_NEW_DIMENSION_FROM)); return; } File importDimensionFile = new File(importPack, "dimensions/" + downloadable + ".json"); if (!importDimensionFile.exists()) { - sender.sendMessage("Missing Imported Dimension File"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_MISSING_IMPORTED_DIMENSION_FILE)); return; } - sender.sendMessage("Importing " + downloadable + " into new Project " + s); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STUDIO_S_V_C_IMPORTING_INTO_NEW_PROJECT, MessageArgument.untrusted("downloadable", String.valueOf(downloadable)), MessageArgument.untrusted("s", String.valueOf(s)))); createFrom(downloadable, s); if (shouldDelete) { importPack.delete(); diff --git a/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java b/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java index 0486e215e..433e8536b 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java +++ b/core/src/main/java/art/arcane/iris/core/structure/BulkStructureImporter.java @@ -34,6 +34,9 @@ import java.util.Map; import java.util.TreeSet; import java.util.function.Predicate; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public final class BulkStructureImporter { public record Report(int total, int imported, int skipped, int failed) { } @@ -56,13 +59,13 @@ public final class BulkStructureImporter { int skipped = 0; int failed = 0; - sender.sendMessage(C.GREEN + "Importing " + C.WHITE + total + C.GREEN + " vanilla & datapack structures (mode=" + mode + ", includeNonJigsaw=" + includeNonJigsaw + ")..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_IMPORTING_VANILLA_DATAPACK_STRUCTURES_MODE_INCLUDENONJIGSAW, MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("mode", String.valueOf(mode)), MessageArgument.untrusted("includeNonJigsaw", String.valueOf(includeNonJigsaw)))); for (String keyString : vanilla) { NamespacedKey nk = NamespacedKey.fromString(keyString.toLowerCase()); if (nk == null) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": invalid key"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY, MessageArgument.untrusted("keyString", String.valueOf(keyString)))); continue; } String name = StructureImporter.deriveName(nk); @@ -71,7 +74,7 @@ public final class BulkStructureImporter { VillageImporter.Result jigsaw = VillageImporter.importVillage(data, nk, name, mode); if (jigsaw.success()) { imported++; - sender.sendMessage(C.GRAY + "[jigsaw] " + keyString + " -> " + name); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_JIGSAW, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("name", String.valueOf(name)))); continue; } @@ -84,15 +87,15 @@ public final class BulkStructureImporter { StructureImporter.Result single = StructureImporter.importStructure(data, nk, name, mode); if (single.success()) { imported++; - sender.sendMessage(C.GRAY + "[single] " + keyString + " -> " + name); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_SINGLE, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("name", String.valueOf(name)))); } else if (single.message() != null && single.message().startsWith("Skipped")) { skipped++; } else if (single.message() != null && single.message().contains("No loadable structure NBT")) { skipped++; - sender.sendMessage(C.YELLOW + "[skip] " + keyString + ": no single-template NBT - vanilla builds this in code or from separate piece templates (imported via the templates pass); nothing to import as one structure."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_SKIP_NO_SINGLE_TEMPLATE_NBT_VANILLA_BUILDS_THIS_CODE_FROM_SEPARATE_PIECE, MessageArgument.untrusted("keyString", String.valueOf(keyString)))); } else { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + single.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(single.message())))); } continue; } @@ -103,16 +106,16 @@ public final class BulkStructureImporter { } failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + message); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_2, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(message)))); } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_3, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } } StructureIndexService.write(data); - sender.sendMessage(C.GREEN + "Bulk import complete: " + C.WHITE + imported + C.GREEN + " imported, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed (" + C.WHITE + total + C.GREEN + " total)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_BULK_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)), MessageArgument.untrusted("total", String.valueOf(total)))); return new Report(total, imported, skipped, failed); } @@ -128,27 +131,27 @@ public final class BulkStructureImporter { int skipped = 0; int failed = 0; - sender.sendMessage(C.GREEN + "Building single-template structures from imported pieces (one variant placed per generation)..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_BUILDING_SINGLE_TEMPLATE_STRUCTURES_FROM_IMPORTED_PIECES_ONE_VARIANT_PLACED_PER_GENERATION)); for (String[] g : groups) { try { StructureImporter.Result result = StructureImporter.importTemplateGroup(data, g[0], g[1], g[2], mode); if (result.success()) { imported++; - sender.sendMessage(C.GRAY + "[group] " + g[1] + " -> " + g[0] + " (" + result.blocks() + " variants)"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_GROUP_VARIANTS, MessageArgument.untrusted("value", String.valueOf(g[1])), MessageArgument.untrusted("value2", String.valueOf(g[0])), MessageArgument.untrusted("blocks", String.valueOf(result.blocks())))); } else if (result.message() != null && result.message().startsWith("Skipped")) { skipped++; } else { skipped++; - sender.sendMessage(C.YELLOW + "[skip] " + g[0] + ": " + result.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_SKIP, MessageArgument.untrusted("value", String.valueOf(g[0])), MessageArgument.untrusted("message", String.valueOf(result.message())))); } } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + g[0] + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_4, MessageArgument.untrusted("value", String.valueOf(g[0])), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } } StructureIndexService.write(data); - sender.sendMessage(C.GREEN + "Single-template structures: " + C.WHITE + imported + C.GREEN + " built, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_SINGLE_TEMPLATE_STRUCTURES_BUILT_SKIPPED_FAILED, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)))); return new Report(groups.length, imported, skipped, failed); } @@ -157,7 +160,7 @@ public final class BulkStructureImporter { try { templateKeys = enumerateTemplateKeys(); } catch (Throwable e) { - sender.sendMessage(C.RED + "Failed to enumerate structure templates via the server ResourceManager: " + e); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAILED_ENUMERATE_STRUCTURE_TEMPLATES_VIA_SERVER_RESOURCEMANAGER, MessageArgument.untrusted("e", String.valueOf(e)))); return new Report(0, 0, 0, 0); } @@ -175,17 +178,17 @@ public final class BulkStructureImporter { int failed = 0; if (total == 0) { - sender.sendMessage(C.YELLOW + "No structure templates were found under the 'structure' resource path."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_NO_STRUCTURE_TEMPLATES_WERE_FOUND_UNDER_STRUCTURE_RESOURCE_PATH)); return new Report(0, 0, 0, 0); } - sender.sendMessage(C.GREEN + "Importing " + C.WHITE + total + C.GREEN + " structure templates (mode=" + mode + ")..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_IMPORTING_STRUCTURE_TEMPLATES_MODE, MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("mode", String.valueOf(mode)))); for (String keyString : all) { NamespacedKey nk = NamespacedKey.fromString(keyString.toLowerCase()); if (nk == null) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": invalid key"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_2, MessageArgument.untrusted("keyString", String.valueOf(keyString)))); continue; } String name = templateNameFor(keyString); @@ -198,22 +201,22 @@ public final class BulkStructureImporter { skipped++; } else { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + result.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_5, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(result.message())))); } } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_6, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } int processed = imported + skipped + failed; if (processed % 50 == 0) { - sender.sendMessage(C.GRAY + "..." + processed + "/" + total + " (" + imported + " imported, " + skipped + " skipped, " + failed + " failed)"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_IMPORTED_SKIPPED_FAILED, MessageArgument.untrusted("processed", String.valueOf(processed)), MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)))); } } StructureIndexService.write(data); - sender.sendMessage(C.GREEN + "Template import complete: " + C.WHITE + imported + C.GREEN + " imported, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed (" + C.WHITE + total + C.GREEN + " total)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_TEMPLATE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED_TOTAL, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)), MessageArgument.untrusted("total", String.valueOf(total)))); return new Report(total, imported, skipped, failed); } @@ -233,14 +236,14 @@ public final class BulkStructureImporter { int failed = 0; if (total == 0) { - sender.sendMessage(C.YELLOW + "No datapack (non-minecraft) structures are registered. Ingest a datapack and restart first, then run this again."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_NO_DATAPACK_NON_MINECRAFT_STRUCTURES_ARE_REGISTERED_INGEST_DATAPACK_RESTART_FIRST_THEN)); } else { - sender.sendMessage(C.GREEN + "Importing " + C.WHITE + total + C.GREEN + " datapack structures (mode=" + mode + ")..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURES_MODE, MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("mode", String.valueOf(mode)))); for (String keyString : datapack) { NamespacedKey nk = NamespacedKey.fromString(keyString.toLowerCase()); if (nk == null) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": invalid key"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_INVALID_KEY_3, MessageArgument.untrusted("keyString", String.valueOf(keyString)))); continue; } String name = StructureImporter.deriveName(nk); @@ -249,7 +252,7 @@ public final class BulkStructureImporter { VillageImporter.Result jigsaw = VillageImporter.importVillage(data, nk, name, mode); if (jigsaw.success()) { imported++; - sender.sendMessage(C.GRAY + "[jigsaw] " + keyString + " -> " + name); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_JIGSAW_2, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("name", String.valueOf(name)))); continue; } @@ -258,14 +261,14 @@ public final class BulkStructureImporter { StructureImporter.Result single = StructureImporter.importStructure(data, nk, name, mode); if (single.success()) { imported++; - sender.sendMessage(C.GRAY + "[single] " + keyString + " -> " + name); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_SINGLE_2, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("name", String.valueOf(name)))); } else if (single.message() != null && single.message().startsWith("Skipped")) { skipped++; } else if (single.message() != null && single.message().contains("No loadable structure NBT")) { skipped++; } else { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + single.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_7, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(single.message())))); } continue; } @@ -276,10 +279,10 @@ public final class BulkStructureImporter { } failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + message); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_8, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(message)))); } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_9, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } } } @@ -294,7 +297,7 @@ public final class BulkStructureImporter { } Collections.sort(datapackTemplates); if (!datapackTemplates.isEmpty()) { - sender.sendMessage(C.GREEN + "Importing " + C.WHITE + datapackTemplates.size() + C.GREEN + " datapack structure templates..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_IMPORTING_DATAPACK_STRUCTURE_TEMPLATES, MessageArgument.untrusted("size", String.valueOf(datapackTemplates.size())))); for (String keyString : datapackTemplates) { NamespacedKey nk = NamespacedKey.fromString(keyString.toLowerCase()); if (nk == null) { @@ -310,20 +313,20 @@ public final class BulkStructureImporter { skipped++; } else { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + result.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_10, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("message", String.valueOf(result.message())))); } } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + keyString + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_FAIL_11, MessageArgument.untrusted("keyString", String.valueOf(keyString)), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } } } } catch (Throwable e) { - sender.sendMessage(C.YELLOW + "Could not enumerate datapack templates via the server ResourceManager: " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_COULD_NOT_ENUMERATE_DATAPACK_TEMPLATES_VIA_SERVER_RESOURCEMANAGER, MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); } StructureIndexService.write(data); - sender.sendMessage(C.GREEN + "Datapack structure import complete: " + C.WHITE + imported + C.GREEN + " imported, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.BULK_STRUCTURE_IMPORTER_DATAPACK_STRUCTURE_IMPORT_COMPLETE_IMPORTED_SKIPPED_FAILED, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)))); return new Report(total, imported, skipped, failed); } diff --git a/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java b/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java index e92af6e58..58186ed89 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java +++ b/core/src/main/java/art/arcane/iris/core/structure/FeatureImporter.java @@ -51,6 +51,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public final class FeatureImporter { public record Report(int total, int imported, int skipped, int failed) { } @@ -72,11 +75,11 @@ public final class FeatureImporter { List rows = parseRows(INMS.get().getObjectFeatureKeys()); int total = rows.size(); if (total == 0) { - sender.sendMessage(C.YELLOW + "No vanilla tree/object features are exposed by the active NMS binding (importing structures only)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_NO_VANILLA_TREE_OBJECT_FEATURES_ARE_EXPOSED_BY_ACTIVE_NMS_BINDING_IMPORTING)); return new Report(0, 0, 0, 0); } - sender.sendMessage(C.GREEN + "Importing " + C.WHITE + total + C.GREEN + " vanilla tree/object features (" + C.WHITE + wantVariants + C.GREEN + " variants each) into a scratch world..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_IMPORTING_VANILLA_TREE_OBJECT_FEATURES_VARIANTS_EACH_INTO_SCRATCH_WORLD, MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("wantVariants", String.valueOf(wantVariants)))); World scratch = createScratchWorld(sender); if (scratch == null) { @@ -120,27 +123,27 @@ public final class FeatureImporter { if (written > 0) { imported++; - sender.sendMessage(C.GRAY + "[obj] " + row.key() + " -> objects/vanilla/" + row.group() + "/" + row.safeName() + " (" + written + ")"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_OBJ_OBJECTS_VANILLA, MessageArgument.untrusted("key", String.valueOf(row.key())), MessageArgument.untrusted("group", String.valueOf(row.group())), MessageArgument.untrusted("safeName", String.valueOf(row.safeName())), MessageArgument.untrusted("written", String.valueOf(written)))); } else { skipped++; - sender.sendMessage(C.YELLOW + "[skip] " + row.key() + ": feature placed nothing after retries."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_SKIP_FEATURE_PLACED_NOTHING_AFTER_RETRIES, MessageArgument.untrusted("key", String.valueOf(row.key())))); } } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + row.key() + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_FAIL, MessageArgument.untrusted("key", String.valueOf(row.key())), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); IrisLogging.reportError(e); } int processed = imported + skipped + failed; if (processed % 25 == 0) { - sender.sendMessage(C.GRAY + "..." + processed + "/" + total + " (" + imported + " imported, " + skipped + " skipped, " + failed + " failed)"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_IMPORTED_SKIPPED_FAILED, MessageArgument.untrusted("processed", String.valueOf(processed)), MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)))); } } } finally { destroyScratchWorld(scratch, sender); } - sender.sendMessage(C.GREEN + "Feature import complete: " + C.WHITE + imported + C.GREEN + " features written, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed (" + C.WHITE + total + C.GREEN + " total)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_FEATURE_IMPORT_COMPLETE_FEATURES_WRITTEN_SKIPPED_FAILED_TOTAL, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)), MessageArgument.untrusted("total", String.valueOf(total)))); return new Report(total, imported, skipped, failed); } @@ -307,7 +310,7 @@ public final class FeatureImporter { .get(); } catch (Throwable e) { IrisLogging.reportError(e); - sender.sendMessage(C.RED + "Could not create the scratch world for feature import (" + e.getMessage() + "); skipping the tree/object pass."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.FEATURE_IMPORTER_COULD_NOT_CREATE_SCRATCH_WORLD_FEATURE_IMPORT_SKIPPING_TREE_OBJECT_PASS, MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); return null; } } diff --git a/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java b/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java index 04f9f0185..13843bf05 100644 --- a/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java +++ b/core/src/main/java/art/arcane/iris/core/structure/StructureCaptureImporter.java @@ -35,6 +35,9 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; public final class StructureCaptureImporter { public record Report(int total, int imported, int skipped, int failed) { } @@ -50,7 +53,7 @@ public final class StructureCaptureImporter { public static Report importAllStructures(IrisData data, StructureImporter.Mode mode, VolmitSender sender) { StructureImporter.Mode activeMode = mode == null ? StructureImporter.Mode.ADD_ONLY : mode; if (!INMS.get().supportsStructureCapture()) { - sender.sendMessage(C.YELLOW + "Structure capture is not supported by the active NMS binding; skipping the capture pass."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_IS_NOT_SUPPORTED_BY_ACTIVE_NMS_BINDING_SKIPPING_CAPTURE_PASS)); return new Report(0, 0, 0, 0); } @@ -74,11 +77,11 @@ public final class StructureCaptureImporter { int total = targets.size(); if (total == 0) { - sender.sendMessage(C.GRAY + "No code-generated structures left to capture (everything is already imported as a structure)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_NO_CODE_GENERATED_STRUCTURES_LEFT_CAPTURE_EVERYTHING_IS_ALREADY_IMPORTED_AS_STRUCTURE)); return new Report(0, 0, 0, 0); } - sender.sendMessage(C.GREEN + "Capturing " + C.WHITE + total + C.GREEN + " code-generated structures (no NBT template) into a scratch world (skipping any wider/taller than " + MAX_SPAN + " blocks)..."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_CAPTURING_CODE_GENERATED_STRUCTURES_NO_NBT_TEMPLATE_INTO_SCRATCH_WORLD_SKIPPING_ANY, MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("MAXSPAN", String.valueOf(MAX_SPAN)))); World scratch = FeatureImporter.createScratchWorld(sender); if (scratch == null) { @@ -97,7 +100,7 @@ public final class StructureCaptureImporter { IrisObject object = captureOne(scratch, key, cellIndex++); if (object == null || object.getBlocks().isEmpty()) { skipped++; - sender.sendMessage(C.YELLOW + "[skip] " + key + ": did not place a capturable structure here (too large, wrong dimension, or no valid placement in a flat world). Stays vanilla-generated."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_SKIP_DID_NOT_PLACE_CAPTURABLE_STRUCTURE_HERE_TOO_LARGE_WRONG_DIMENSION_NO, MessageArgument.untrusted("key", String.valueOf(key)))); continue; } object.shrinkwrap(); @@ -105,28 +108,28 @@ public final class StructureCaptureImporter { data, name, key, object, "CENTER_HEIGHT", activeMode); if (!result.success()) { failed++; - sender.sendMessage(C.RED + "[fail] " + key + ": " + result.message()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_FAIL, MessageArgument.untrusted("key", String.valueOf(key)), MessageArgument.untrusted("message", String.valueOf(result.message())))); continue; } imported++; - sender.sendMessage(C.GRAY + "[capture] " + key + " -> objects/" + name + ".iob (" + object.getW() + "x" + object.getH() + "x" + object.getD() + ")"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_CAPTURE_OBJECTS_IOB_X_X, MessageArgument.untrusted("key", String.valueOf(key)), MessageArgument.untrusted("name", String.valueOf(name)), MessageArgument.untrusted("w", String.valueOf(object.getW())), MessageArgument.untrusted("h", String.valueOf(object.getH())), MessageArgument.untrusted("d", String.valueOf(object.getD())))); } catch (Throwable e) { failed++; - sender.sendMessage(C.RED + "[fail] " + key + ": " + e.getMessage()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_FAIL_2, MessageArgument.untrusted("key", String.valueOf(key)), MessageArgument.untrusted("error", String.valueOf(e.getMessage())))); IrisLogging.reportError(e); e.printStackTrace(); } int processed = imported + skipped + failed; if (processed % 10 == 0) { - sender.sendMessage(C.GRAY + "..." + processed + "/" + total + " (" + imported + " captured, " + skipped + " skipped, " + failed + " failed)"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_CAPTURED_SKIPPED_FAILED, MessageArgument.untrusted("processed", String.valueOf(processed)), MessageArgument.untrusted("total", String.valueOf(total)), MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)))); } } } finally { FeatureImporter.destroyScratchWorld(scratch, sender); } - sender.sendMessage(C.GREEN + "Structure capture complete: " + C.WHITE + imported + C.GREEN + " captured, " + C.WHITE + skipped + C.GREEN + " skipped, " + C.WHITE + failed + C.GREEN + " failed (" + C.WHITE + total + C.GREEN + " total)."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.STRUCTURE_CAPTURE_IMPORTER_STRUCTURE_CAPTURE_COMPLETE_CAPTURED_SKIPPED_FAILED_TOTAL, MessageArgument.untrusted("imported", String.valueOf(imported)), MessageArgument.untrusted("skipped", String.valueOf(skipped)), MessageArgument.untrusted("failed", String.valueOf(failed)), MessageArgument.untrusted("total", String.valueOf(total)))); return new Report(total, imported, skipped, failed); } diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java b/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java index 85fa16c31..ecb9730e2 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisConverter.java @@ -31,6 +31,10 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public class IrisConverter { public static void convertSchematics(VolmitSender sender) { File folder = IrisPlatforms.get().dataFolder("convert"); @@ -38,7 +42,7 @@ public class IrisConverter { FilenameFilter filter = (dir, name) -> name.endsWith(".schem"); File[] fileList = folder.listFiles(filter); if (fileList == null) { - sender.sendMessage("No schematic files to convert found in " + folder.getAbsolutePath()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_NO_SCHEMATIC_FILES_CONVERT_FOUND, MessageArgument.untrusted("path", String.valueOf(folder.getAbsolutePath())))); return; } @@ -76,7 +80,10 @@ public class IrisConverter { IrisLogging.info(C.GRAY + "- It may take a while"); if (sender.isPlayer()) { i = J.ar(() -> { - sender.sendProgress((double) v.get() / mv, "Converting"); + sender.sendProgress( + (double) v.get() / mv, + IrisLanguage.text(RuntimeUiMessages.CONVERTING) + ); }, 0); } } @@ -117,9 +124,9 @@ public class IrisConverter { counter.incrementAndGet(); if (sender.isPlayer()) { if (largeObject) { - sender.sendMessage(C.IRIS + "Converted " + schem.getName() + " -> " + schem.getName().replace(".schem", ".iob") + " in " + Form.duration(p.getMillis())); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_CONVERTED, MessageArgument.untrusted("name", String.valueOf(schem.getName())), MessageArgument.untrusted("value", String.valueOf(schem.getName().replace(".schem", ".iob"))), MessageArgument.untrusted("value2", String.valueOf(Form.duration(p.getMillis()))))); } else { - sender.sendMessage(C.IRIS + "Converted " + schem.getName() + " -> " + schem.getName().replace(".schem", ".iob")); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_CONVERTED_2, MessageArgument.untrusted("name", String.valueOf(schem.getName())), MessageArgument.untrusted("value", String.valueOf(schem.getName().replace(".schem", ".iob"))))); } } if (largeObject) { @@ -129,22 +136,22 @@ public class IrisConverter { } FileUtils.delete(schem); } catch (IOException e) { - sender.sendMessage(C.RED + "Failed to save: " + schem.getName()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_FAILED_SAVE, MessageArgument.untrusted("name", String.valueOf(schem.getName())))); throw new IOException(e); } } catch (Exception e) { - sender.sendMessage(C.RED + "Failed to convert: " + schem.getName()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_FAILED_CONVERT, MessageArgument.untrusted("name", String.valueOf(schem.getName())))); e.printStackTrace(); } } stopwatch.end(); if (counter.get() != 0) { - sender.sendMessage(C.GRAY + "Converted: " + counter.get() + " in " + Form.duration(stopwatch.getMillis())); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_CONVERTED_3, MessageArgument.untrusted("get", String.valueOf(counter.get())), MessageArgument.untrusted("value", String.valueOf(Form.duration(stopwatch.getMillis()))))); } if (counter.get() < fileList.length) { - sender.sendMessage(C.RED + "Some schematics failed to convert. Check the console for details."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_CONVERTER_SOME_SCHEMATICS_FAILED_CONVERT_CHECK_CONSOLE_DETAILS)); } }); } @@ -164,4 +171,3 @@ public class IrisConverter { } } - diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java b/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java index 44a065d98..ae163d9c6 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisCreator.java @@ -33,6 +33,8 @@ import art.arcane.iris.core.ServerConfigurator; import art.arcane.iris.core.lifecycle.WorldLifecycleCaller; import art.arcane.iris.core.lifecycle.WorldLifecycleRequest; import art.arcane.iris.core.lifecycle.WorldLifecycleService; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeProgressMessages; import art.arcane.iris.core.nms.INMS; import art.arcane.iris.core.pregenerator.PregenTask; import art.arcane.iris.core.service.StudioSVC; @@ -41,6 +43,7 @@ import art.arcane.iris.engine.platform.PlatformChunkGenerator; import art.arcane.volmlib.util.exceptions.IrisException; import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.scheduling.J; import art.arcane.volmlib.util.scheduling.FoliaScheduler; @@ -323,8 +326,10 @@ public class IrisCreator { private void reportSenderTeleportFailure(Player player, World world, Throwable throwable) { IrisLogging.reportError("World \"" + world.getName() + "\" was created, but automatic teleport failed for player \"" + player.getName() + "\".", throwable); - J.runEntity(player, () -> new VolmitSender(player).sendMessage(C.YELLOW - + "The world was created, but automatic teleport failed. Try /iris teleport world=" + IrisWorldStorage.logicalName(world))); + J.runEntity(player, () -> new VolmitSender(player).sendMessage(IrisLanguage.text( + RuntimeProgressMessages.WORLD_CREATE_TELEPORT_FAILED, + MessageArgument.untrusted("world", IrisWorldStorage.logicalName(world)) + ))); } private void reportStudioProgress(double progress, String stage) { @@ -393,11 +398,23 @@ public class IrisCreator { bar.append(bi < filled ? C.GREEN : C.DARK_GRAY).append("|"); } bar.append(C.DARK_GRAY).append("]"); - sender.sendAction(bar.toString() + C.GRAY + " " + C.YELLOW + percent + "%" + C.DARK_GRAY + " " + Form.f(generated) + "/" + Form.f(required) + " chunks"); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.WORLD_CREATE_ACTION, + MessageArgument.trusted("bar", bar.toString()), + MessageArgument.trusted("percent", percent), + MessageArgument.trusted("generated", Form.f(generated)), + MessageArgument.trusted("required", Form.f(required)) + )); return; } - sender.sendMessage(C.GOLD + "Generating " + C.YELLOW + percent + "%" + C.GRAY + " " + Form.f(generated) + "/" + Form.f(required) + " chunks" + C.DARK_GRAY + " (" + remaining + " left)"); + sender.sendMessage(IrisLanguage.text( + RuntimeProgressMessages.WORLD_CREATE_CONSOLE, + MessageArgument.trusted("percent", percent), + MessageArgument.trusted("generated", Form.f(generated)), + MessageArgument.trusted("required", Form.f(required)), + MessageArgument.trusted("remaining", remaining) + )); }, interval)); }); return taskId; @@ -423,11 +440,18 @@ public class IrisCreator { bar.append(bi < filled ? C.GREEN : C.DARK_GRAY).append("|"); } bar.append(C.DARK_GRAY).append("]"); - sender.sendAction(bar.toString() + C.GRAY + " " + C.YELLOW + percent + "%" + C.GRAY + " | " + C.WHITE + "Pregenerating"); + sender.sendAction(IrisLanguage.text( + RuntimeProgressMessages.WORLD_PREGEN_ACTION, + MessageArgument.trusted("bar", bar.toString()), + MessageArgument.trusted("percent", percent) + )); return; } - sender.sendMessage(C.GOLD + "Pregenerating " + C.YELLOW + percent + "%"); + sender.sendMessage(IrisLanguage.text( + RuntimeProgressMessages.WORLD_PREGEN_CONSOLE, + MessageArgument.trusted("percent", percent) + )); }, interval)); return taskId; } diff --git a/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java b/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java index 3d9d81f02..a8742428b 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java +++ b/core/src/main/java/art/arcane/iris/core/tools/IrisToolbelt.java @@ -60,6 +60,9 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; /** * Something you really want to wear if working on Iris. Shit gets pretty hectic down there. * Hope you packed snacks & road sodas. @@ -361,7 +364,7 @@ public class IrisToolbelt { for (World i : Bukkit.getWorlds()) { if (!WorldIdentity.key(i).equals(WorldIdentity.key(world))) { for (Player j : new ArrayList<>(world.getPlayers())) { - new VolmitSender(j, BukkitPlatform.volmitPlugin().getTag()).sendMessage("You have been evacuated from this world."); + new VolmitSender(j, BukkitPlatform.volmitPlugin().getTag()).sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD)); Location target = i.getSpawnLocation(); Runnable teleportTask = () -> teleportAsyncSafely(j, target); if (!J.runEntity(j, teleportTask)) { @@ -391,7 +394,7 @@ public class IrisToolbelt { for (World i : Bukkit.getWorlds()) { if (!WorldIdentity.key(i).equals(WorldIdentity.key(world))) { for (Player j : new ArrayList<>(world.getPlayers())) { - new VolmitSender(j, BukkitPlatform.volmitPlugin().getTag()).sendMessage("You have been evacuated from this world. " + m); + new VolmitSender(j, BukkitPlatform.volmitPlugin().getTag()).sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_TOOLBELT_YOU_HAVE_BEEN_EVACUATED_FROM_THIS_WORLD_2, MessageArgument.untrusted("m", String.valueOf(m)))); Location target = i.getSpawnLocation(); Runnable teleportTask = () -> teleportAsyncSafely(j, target); if (!J.runEntity(j, teleportTask)) { diff --git a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java b/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java index ba2b34b3a..ede80be84 100644 --- a/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java +++ b/core/src/main/java/art/arcane/iris/core/tools/TreePlausibilizeBatch.java @@ -20,8 +20,12 @@ package art.arcane.iris.core.tools; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.ResourceLoader; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.engine.object.IrisObject; import art.arcane.iris.spi.IrisLogging; +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.volmlib.util.localization.TextKey; import java.io.File; import java.io.IOException; @@ -86,7 +90,7 @@ public final class TreePlausibilizeBatch { } } - public static void run(List targets, boolean dryRun, int reach, IrisData nearest, Consumer out) { + public static void run(List targets, boolean dryRun, int reach, IrisData nearest, Consumer out) { int processed = 0; int changed = 0; int skipped = 0; @@ -107,7 +111,11 @@ public final class TreePlausibilizeBatch { try { IrisObject o = load(t, nearest); if (o == null) { - out.accept("skip " + t.key() + ": failed to load"); + out.accept(output( + RuntimeUiMessages.TREE_SKIP_LOAD, + false, + MessageArgument.untrusted("object", t.key()) + )); skipped++; continue; } @@ -135,27 +143,74 @@ public final class TreePlausibilizeBatch { totalUnreachableAfter += r.unreachableAfter(); if (r.mutated() || targets.size() == 1) { - out.accept(t.key() + ": +" + r.woodPlaced() + " wood (" + r.branchesGrown() + " branches), " - + r.leavesConvertedToWood() + " leaves->wood, ~" + r.distancesRewritten() + " distances" - + (r.leavesPinnedPersistent() > 0 ? ", !" + r.leavesPinnedPersistent() + " pinned" : "")); + if (r.leavesPinnedPersistent() > 0) { + out.accept(output( + RuntimeUiMessages.TREE_RESULT_PINNED, + false, + MessageArgument.untrusted("object", t.key()), + MessageArgument.trusted("wood", r.woodPlaced()), + MessageArgument.trusted("branches", r.branchesGrown()), + MessageArgument.trusted("converted", r.leavesConvertedToWood()), + MessageArgument.trusted("distances", r.distancesRewritten()), + MessageArgument.trusted("pinned", r.leavesPinnedPersistent()) + )); + } else { + out.accept(output( + RuntimeUiMessages.TREE_RESULT, + false, + MessageArgument.untrusted("object", t.key()), + MessageArgument.trusted("wood", r.woodPlaced()), + MessageArgument.trusted("branches", r.branchesGrown()), + MessageArgument.trusted("converted", r.leavesConvertedToWood()), + MessageArgument.trusted("distances", r.distancesRewritten()) + )); + } } if (targets.size() > 1 && index % progressStep == 0) { - out.accept("[" + index + "/" + targets.size() + "]"); + out.accept(output( + RuntimeUiMessages.TREE_PROGRESS, + true, + MessageArgument.trusted("current", index), + MessageArgument.trusted("total", targets.size()) + )); } } catch (Throwable e) { - out.accept("fail " + t.key() + ": " + e.getClass().getSimpleName() + ": " + e.getMessage()); + out.accept(output( + RuntimeUiMessages.TREE_FAILED, + false, + MessageArgument.untrusted("object", t.key()), + MessageArgument.untrusted("type", e.getClass().getSimpleName()), + MessageArgument.untrusted("error", String.valueOf(e.getMessage())) + )); IrisLogging.reportError(e); failed++; } } - out.accept("Done: " + processed + " processed, " + changed + " changed, " - + skipped + " skipped, " + failed + " failed" - + (dryRun ? " (dry run, nothing written)" : "")); - out.accept("Totals: +" + totalWood + " wood (" + totalBranches + " branches), " - + totalConverted + " leaves->wood, ~" + totalRewritten + " distances, !" - + totalPinned + " pinned, unreachable " + totalUnreachableBefore + " -> " + totalUnreachableAfter); + out.accept(output( + dryRun ? RuntimeUiMessages.TREE_DONE_DRY : RuntimeUiMessages.TREE_DONE, + true, + MessageArgument.trusted("processed", processed), + MessageArgument.trusted("changed", changed), + MessageArgument.trusted("skipped", skipped), + MessageArgument.trusted("failed", failed) + )); + out.accept(output( + RuntimeUiMessages.TREE_TOTALS, + true, + MessageArgument.trusted("wood", totalWood), + MessageArgument.trusted("branches", totalBranches), + MessageArgument.trusted("converted", totalConverted), + MessageArgument.trusted("distances", totalRewritten), + MessageArgument.trusted("pinned", totalPinned), + MessageArgument.trusted("before", totalUnreachableBefore), + MessageArgument.trusted("after", totalUnreachableAfter) + )); + } + + private static Output output(TextKey key, boolean headline, MessageArgument... arguments) { + return new Output(IrisLanguage.plain(key, arguments), headline); } private static IrisObject load(Target t, IrisData nearest) throws IOException { @@ -167,4 +222,7 @@ public final class TreePlausibilizeBatch { } return IrisData.loadAnyObject(t.key(), nearest); } + + public record Output(String text, boolean headline) { + } } diff --git a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java index e9c75e08c..ef5942699 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisEngine.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisEngine.java @@ -18,6 +18,9 @@ package art.arcane.iris.engine; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.ClientUiMessages; +import art.arcane.iris.core.localization.IrisLanguage; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.framework.EngineEffects; import art.arcane.iris.engine.framework.EngineEffectsProvider; @@ -72,6 +75,7 @@ import art.arcane.volmlib.util.format.Form; import art.arcane.iris.util.project.hunk.Hunk; import art.arcane.volmlib.util.io.IO; import art.arcane.volmlib.util.mantle.flag.MantleFlag; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.volmlib.util.math.M; import art.arcane.volmlib.util.math.RNG; import art.arcane.volmlib.util.matter.MatterStructurePOI; @@ -755,8 +759,8 @@ public class IrisEngine implements Engine { protocolServer.broadcastStudioHotload(packKey, 0, failed, message); protocolServer.broadcastToast( failed ? IrisMessage.Toast.KIND_ERROR : IrisMessage.Toast.KIND_SUCCESS, - "Studio Hotload", - failed ? packKey + " failed" : packKey); + IrisLanguage.plain(ClientUiMessages.TOAST_STUDIO_HOTLOAD), + failed ? IrisLanguage.plain(ClientUiMessages.TOAST_PACK_FAILED, MessageArgument.untrusted("pack", packKey)) : packKey); } @Override @@ -906,20 +910,20 @@ public class IrisEngine implements Engine { weights.put(i, weights.get(i) / v); } - sender.sendMessage("Total: " + C.BOLD + C.WHITE + Form.duration(masterWallClock, 0)); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_TOTAL, MessageArgument.untrusted("value", String.valueOf(Form.duration(masterWallClock, 0))))); for (String i : totals.k()) { - sender.sendMessage(" Engine " + C.UNDERLINE + C.GREEN + i + C.RESET + ": " + C.BOLD + C.WHITE + Form.duration(totals.get(i), 0)); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_ENGINE, MessageArgument.untrusted("i", String.valueOf(i)), MessageArgument.untrusted("value", String.valueOf(Form.duration(totals.get(i), 0))))); } - sender.sendMessage("Details: "); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_DETAILS)); for (String i : weights.sortKNumber().reverse()) { String befb = C.UNDERLINE + "" + C.GREEN + "" + i.split("\\Q[\\E")[0] + C.RESET + C.GRAY + "["; String num = C.GOLD + i.split("\\Q[\\E")[1].split("]")[0] + C.RESET + C.GRAY + "]."; String afb = C.ITALIC + "" + C.AQUA + i.split("\\Q]\\E")[1].substring(1) + C.RESET + C.GRAY; - sender.sendMessage(" " + befb + num + afb + ": " + C.BOLD + C.WHITE + Form.pc(weights.get(i), 0)); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.IRIS_ENGINE_MESSAGE, MessageArgument.untrusted("befb", String.valueOf(befb)), MessageArgument.untrusted("num", String.valueOf(num)), MessageArgument.untrusted("afb", String.valueOf(afb)), MessageArgument.untrusted("value", String.valueOf(Form.pc(weights.get(i), 0))))); } } diff --git a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java index f28ef24ef..5d38baf46 100644 --- a/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/IrisWorldManager.java @@ -18,6 +18,8 @@ package art.arcane.iris.engine; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.gui.PregeneratorJob; @@ -1104,7 +1106,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { @Override public String getName() { - return "Loading Chunks"; + return IrisLanguage.text(RuntimeUiMessages.JOB_LOADING_CHUNKS); } }.queue(futures).execute(new VolmitSender(player), true, r); })); diff --git a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java index 2099b1cd5..04e4c6e57 100644 --- a/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java +++ b/core/src/main/java/art/arcane/iris/engine/framework/EngineAssignedWorldManager.java @@ -18,6 +18,8 @@ package art.arcane.iris.engine.framework; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.platform.bukkit.BukkitWorldBinding; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.core.events.IrisEngineHotloadEvent; @@ -92,7 +94,7 @@ public abstract class EngineAssignedWorldManager extends EngineAssignedComponent for (Player i : BukkitWorldBinding.players(e.getEngine().getWorld())) { i.playSound(i.getLocation(), Sound.BLOCK_AMETHYST_BLOCK_BREAK, 1f, 1.8f); VolmitSender s = new VolmitSender(i); - s.sendTitle(C.IRIS + "Engine " + C.AQUA + "Hotloaded", 70, 60, 410); + s.sendTitle(C.IRIS + "" + IrisLanguage.text(RuntimeUiMessages.ENGINE_HOTLOADED), 70, 60, 410); } }); } diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java index 960306f8a..8e5661701 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisObject.java @@ -18,6 +18,8 @@ package art.arcane.iris.engine.object; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.core.loader.IrisData; import art.arcane.iris.core.loader.IrisRegistrant; import art.arcane.iris.engine.data.cache.AtomicCache; @@ -449,7 +451,7 @@ public class IrisObject extends IrisRegistrant { @Override public String getName() { - return "Saving Object"; + return IrisLanguage.text(RuntimeUiMessages.JOB_SAVING_OBJECT); } @Override diff --git a/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java b/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java index 5035e44dd..0bf988c0b 100644 --- a/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java +++ b/core/src/main/java/art/arcane/iris/engine/platform/EngineBukkitOps.java @@ -86,6 +86,10 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; +import art.arcane.volmlib.util.localization.MessageArgument; public final class EngineBukkitOps { private static final ConcurrentHashMap> ACTIVE_LOCATE_REQUESTS = new ConcurrentHashMap<>(); @@ -541,7 +545,7 @@ public final class EngineBukkitOps { public static void gotoRegion(Engine engine, IrisRegion r, Player player, boolean teleport) { if (!engine.getDimension().getRegions().contains(r.getLoadKey())) { - player.sendMessage(C.RED + r.getName() + " is not defined in the dimension!"); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.ENGINE_BUKKIT_OPS_IS_NOT_DEFINED_DIMENSION, MessageArgument.untrusted("name", String.valueOf(r.getName())))); return; } @@ -559,14 +563,14 @@ public final class EngineBukkitOps { private static void find(Engine engine, Locator locator, Player player, boolean teleport, String message) { find(engine, locator, player, 120_000, location -> { if (location == null) { - player.sendMessage(C.RED + "Could not find " + message + " within search range."); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.ENGINE_BUKKIT_OPS_COULD_NOT_FIND_WITHIN_SEARCH_RANGE, MessageArgument.untrusted("message", String.valueOf(message)))); return; } if (teleport) { J.runEntity(player, () -> teleportAsyncSafely(player, location)); - player.sendMessage(C.GREEN + "Teleporting to " + message + "..."); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.ENGINE_BUKKIT_OPS_TELEPORTING, MessageArgument.untrusted("message", String.valueOf(message)))); } else { - player.sendMessage(C.GREEN + message + " at: " + location.getBlockX() + " " + location.getBlockY() + " " + location.getBlockZ()); + player.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.ENGINE_BUKKIT_OPS_AT, MessageArgument.untrusted("message", String.valueOf(message)), MessageArgument.untrusted("blockX", String.valueOf(location.getBlockX())), MessageArgument.untrusted("blockY", String.valueOf(location.getBlockY())), MessageArgument.untrusted("blockZ", String.valueOf(location.getBlockZ())))); } }); } @@ -578,7 +582,7 @@ public final class EngineBukkitOps { Location origin = player.getLocation(); int originChunkX = origin.getBlockX() >> 4; int originChunkZ = origin.getBlockZ() >> 4; - new SingleJob("Searching", () -> { + new SingleJob(IrisLanguage.text(RuntimeUiMessages.JOB_SEARCHED_CHUNKS, MessageArgument.trusted("chunks", 0)), () -> { CompletableFuture search = null; boolean resultDispatched = false; UUID playerId = player.getUniqueId(); @@ -619,7 +623,10 @@ public final class EngineBukkitOps { }) { @Override public String getName() { - return "Searched " + Form.f(checks.get()) + " Chunks"; + return IrisLanguage.text( + RuntimeUiMessages.JOB_SEARCHED_CHUNKS, + MessageArgument.trusted("chunks", Form.f(checks.get())) + ); } @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java index b2ff06862..ce871f1eb 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/MortarCommand.java @@ -28,6 +28,9 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Comparator; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; /** * Represents a pawn command * @@ -92,11 +95,11 @@ public abstract class MortarCommand implements ICommand { b = true; - sender.sendMessage("" + C.GREEN + i.getNode() + " " + "" + (getArgsUsage().trim().isEmpty() ? "" : (C.WHITE + i.getArgsUsage())) + C.GRAY + " - " + i.getDescription()); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.MORTAR_COMMAND_FONT_MINECRAFT_UNIFORM, MessageArgument.untrusted("node", String.valueOf(i.getNode())), MessageArgument.untrusted("value", String.valueOf((getArgsUsage().trim().isEmpty() ? "" : (C.WHITE + i.getArgsUsage())))), MessageArgument.untrusted("description", String.valueOf(i.getDescription())))); } if (!b) { - sender.sendMessage("There are either no sub-commands or you do not have permission to use them."); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.MORTAR_COMMAND_THERE_ARE_EITHER_NO_SUB_COMMANDS_YOU_DO_NOT_HAVE_PERMISSION_USE)); } if (sender.isPlayer() && IrisSettings.get().getGeneral().isCommandSounds()) { @@ -145,7 +148,7 @@ public abstract class MortarCommand implements ICommand { } if (!m.toString().trim().isEmpty()) { - sender.sendMessage("Parameters Ignored: " + m); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.MORTAR_COMMAND_PARAMETERS_IGNORED, MessageArgument.untrusted("m", String.valueOf(m)))); } } } diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java index ff4719118..6d1c7a55d 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VirtualCommand.java @@ -30,6 +30,9 @@ import org.bukkit.command.CommandSender; import java.lang.reflect.Field; +import art.arcane.iris.core.localization.BukkitRuntimeMessages; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.volmlib.util.localization.MessageArgument; /** * Represents a virtual command. A chain of iterative processing through * subcommands. @@ -171,12 +174,12 @@ public class VirtualCommand { for (String i : command.getRequiredPermissions()) { if (!sender.hasPermission(i)) { failed = true; - J.s(() -> sender.sendMessage("- " + C.WHITE + i), 0); + J.s(() -> sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.VIRTUAL_COMMAND_MESSAGE, MessageArgument.untrusted("i", String.valueOf(i)))), 0); } } if (failed) { - sender.sendMessage("Insufficient Permissions"); + sender.sendMessage(IrisLanguage.text(BukkitRuntimeMessages.VIRTUAL_COMMAND_INSUFFICIENT_PERMISSIONS)); return false; } diff --git a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java index 114950750..a0b284ea3 100644 --- a/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java +++ b/core/src/main/java/art/arcane/iris/util/common/plugin/VolmitSender.java @@ -18,18 +18,13 @@ package art.arcane.iris.util.common.plugin; -import art.arcane.iris.spi.IrisLogging; import art.arcane.iris.spi.IrisPlatforms; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.core.IrisSettings; import art.arcane.volmlib.util.collection.KList; -import art.arcane.volmlib.util.collection.KMap; -import art.arcane.volmlib.util.director.visual.DirectorVisualCommand; -import art.arcane.volmlib.util.director.visual.DirectorVisualCommand.DirectorVisualParameter; import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.format.Form; import art.arcane.volmlib.util.math.M; -import art.arcane.volmlib.util.math.RNG; import art.arcane.iris.util.common.scheduling.J; import lombok.Getter; import lombok.Setter; @@ -63,8 +58,6 @@ import java.util.concurrent.atomic.AtomicReference; * @author cyberpwn */ public class VolmitSender implements CommandSender { - @Getter - private static final KMap helpCache = new KMap<>(); private final CommandSender s; private String tag; @Getter @@ -519,192 +512,6 @@ public class VolmitSender implements CommandSender { return s.spigot(); } - private String pickRandoms(int max, DirectorVisualCommand i) { - KList m = new KList<>(); - for (int ix = 0; ix < max; ix++) { - m.add((i.isNode() - ? (i.getNode().getParameters().isNotEmpty()) - ? "<#c2f7d2>✦ <#5ef288>" - + i.getParentPath() - + " <#32bfad>" - + i.getName() + " " - + i.getNode().getParameters().shuffleCopy(RNG.r).convert((f) - -> (f.isRequired() || RNG.r.b(0.5) - ? "<#f2e15e>" + f.getNames().getRandom() + "=" - + "<#5ef288>" + f.example() - : "")) - .toString(" ") - : "" - : "")); - } - - return m.removeDuplicates().convert((iff) -> iff.replaceAll("\\Q \\E", " ")).toString("\n"); - } - - static String escapeMiniMessageQuotedText(String text) { - return text.replace("\\", "\\\\").replace("'", "\\'"); - } - - public void sendHeader(String name, int overrideLength) { - int len = overrideLength; - int h = name.length() + 2; - String s = Form.repeat(" ", len - h - 4); - String si = Form.repeat("(", 3); - String so = Form.repeat(")", 3); - String sf = "["; - String se = "]"; - - if (name.trim().isEmpty()) { - sendMessageRaw("" + sf + s + "" + s + se); - } else { - sendMessageRaw("" + sf + s + si + " " + name + " " + so + s + se); - } - } - - public void sendHeader(String name) { - sendHeader(name, 44); - } - - public void sendDirectorHelp(DirectorVisualCommand v) { - sendDirectorHelp(v, 0); - } - - public void sendDirectorHelp(DirectorVisualCommand v, int page) { - if (!isPlayer()) { - for (DirectorVisualCommand i : v.getNodes()) { - sendDirectorHelpNode(i); - } - - return; - } - - sendMessageRaw("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - - if (v.getNodes().isNotEmpty()) { - sendHeader(v.getPath() + (page > 0 ? (" {" + (page + 1) + "}") : "")); - if (isPlayer() && v.getParent() != null) { - String backHover = escapeMiniMessageQuotedText("<#2b7a3f>Click to go back to <#32bfad>" + Form.capitalize(v.getParent().getName()) + " Help"); - sendMessageRaw("<#6fe98f>〈 Back"); - } - - AtomicBoolean next = new AtomicBoolean(false); - for (DirectorVisualCommand i : paginate(v.getNodes(), 17, page, next)) { - sendDirectorHelpNode(i); - } - - String s = ""; - int l = 75 - (page > 0 ? 10 : 0) - (next.get() ? 10 : 0); - - if (page > 0) { - String previousPageHover = escapeMiniMessageQuotedText("Click to go back to page " + page); - s += "〈 Page " + page + " "; - } - - s += "" + Form.repeat(" ", l) + ""; - - if (next.get()) { - String nextPageHover = escapeMiniMessageQuotedText("Click to go to back to page " + (page + 2)); - s += " Page " + (page + 2) + " ❭"; - } - - sendMessageRaw(s); - } else { - sendMessage(C.RED + "There are no subcommands in this group! Contact support, this is a command design issue!"); - } - } - - public void sendDirectorHelpNode(DirectorVisualCommand i) { - if (isPlayer() || s instanceof CommandDummy) { - sendMessageRaw(helpCache.computeIfAbsent(i.getPath(), (k) -> { - String newline = "\n"; - - String realText = i.getPath() + " >" + "<#46826a>⇀ " + i.getName(); - String hoverTitle = i.getNames().copy().reverse().convert((f) -> "<#5ef288>" + f).toString(", "); - String description = "<#3fe05a>✎ <#6ad97d>" + i.getDescription(); - String usage = "<#bbe03f>✒ <#a8e0a2>"; - String onClick; - if (i.isNode()) { - if (i.getNode().getParameters().isEmpty()) { - usage += "There are no parameters. Click to type command."; - onClick = "suggest_command"; - } else { - usage += "Hover over all of the parameters to learn more."; - onClick = "suggest_command"; - } - } else { - usage += "This is a command category. Click to run."; - onClick = "run_command"; - } - - String suggestion = ""; - String suggestions = ""; - if (i.isNode() && i.getNode().getParameters().isNotEmpty()) { - suggestion += newline + "<#c2f7d2>✦ <#5ef288>" + i.getParentPath() + " <#32bfad>" + i.getName() + " " - + i.getNode().getParameters().convert((f) -> "<#5ef288>" + f.example()).toString(" "); - suggestions += newline + "" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i); - } - - StringBuilder nodes = new StringBuilder(); - if (i.isNode()) { - for (DirectorVisualParameter p : i.getNode().getParameters()) { - String nTitle = "" + p.getName(); - String nHoverTitle = p.getNames().convert((ff) -> "<#5ef288>" + ff).toString(", "); - String nDescription = "<#3fe05a>✎ <#6ad97d>" + p.getDescription(); - String nUsage; - String fullTitle; - IrisLogging.debug("Contextual: " + p.isContextual() + " / player: " + isPlayer()); - if (p.isContextual() && (isPlayer() || s instanceof CommandDummy)) { - fullTitle = "<#ffcc00>[" + nTitle + "<#ffcc00>] "; - nUsage = "<#ff9900>➱ <#ffcc00>The value may be derived from environment context."; - } else if (p.isRequired()) { - fullTitle = "[" + nTitle + "] "; - nUsage = "<#db4321>⚠ <#faa796>This parameter is required."; - } else if (p.hasDefault()) { - fullTitle = "<#4f4f4f>⊰" + nTitle + "<#4f4f4f>⊱"; - nUsage = "<#3fbe6f>✔ <#9de5b6>Defaults to \"" + p.getParam().defaultValue() + "\" if undefined."; - } else { - fullTitle = "<#4f4f4f>⊰" + nTitle + "<#4f4f4f>⊱"; - nUsage = "<#3fbe6f>✔ <#9de5b6>This parameter is optional."; - } - String type = "<#4fbf7f>✢ <#8ad9af>This parameter is of type " + p.getType().getSimpleName() + "."; - String parameterHover = escapeMiniMessageQuotedText(nHoverTitle + newline + nDescription + newline + nUsage + newline + type); - - nodes - .append("") - .append(fullTitle) - .append(""); - } - } else { - nodes = new StringBuilder(" - Category of Commands"); - } - - String entryHover = escapeMiniMessageQuotedText( - hoverTitle + newline + - description + newline + - usage + - suggestion + - suggestions - ); - - return "" + - "" + - "" + - " " + - nodes; - })); - } else { - sendMessage(i.getPath()); - } - } - public void playSound(Sound sound, float volume, float pitch) { if (isPlayer()) { player().playSound(player().getLocation(), sound, volume, pitch); diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java index 0dfc65e46..ae7cae035 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/DownloadJob.java @@ -18,6 +18,8 @@ package art.arcane.iris.util.common.scheduling.jobs; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.volmlib.util.network.DL; import art.arcane.volmlib.util.network.DownloadMonitor; @@ -50,7 +52,7 @@ public class DownloadJob implements Job { @Override public String getName() { - return "Downloading"; + return IrisLanguage.text(RuntimeUiMessages.JOB_DOWNLOADING); } @Override diff --git a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java index 70c4e879a..b9c9ff725 100644 --- a/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java +++ b/core/src/main/java/art/arcane/iris/util/common/scheduling/jobs/Job.java @@ -18,8 +18,11 @@ package art.arcane.iris.util.common.scheduling.jobs; +import art.arcane.iris.core.localization.IrisLanguage; +import art.arcane.iris.core.localization.RuntimeUiMessages; import art.arcane.iris.util.common.format.C; import art.arcane.volmlib.util.format.Form; +import art.arcane.volmlib.util.localization.MessageArgument; import art.arcane.iris.util.common.plugin.VolmitSender; import art.arcane.iris.util.common.scheduling.J; import art.arcane.volmlib.util.scheduling.PrecisionStopwatch; @@ -73,7 +76,11 @@ public interface Job { f.whenComplete((fs, ff) -> { J.car(c); if (!silentMsg) { - sender.sendMessage(C.AQUA + "Completed " + getName() + " in " + Form.duration(p.getMilliseconds(), 1)); + sender.sendMessage(C.AQUA + IrisLanguage.text( + RuntimeUiMessages.JOB_COMPLETED, + MessageArgument.untrusted("job", getName()), + MessageArgument.trusted("duration", Form.duration(p.getMilliseconds(), 1)) + )); } whenComplete.run(); }); diff --git a/core/src/main/resources/languages/de_DE.json b/core/src/main/resources/languages/de_DE.json new file mode 100644 index 000000000..19209710e --- /dev/null +++ b/core/src/main/resources/languages/de_DE.json @@ -0,0 +1,1435 @@ +{ + "locale": "de_DE", + "messages": { + "director.help.navigation.parent.hover": "Zur übergeordneten Befehlsgruppe zurückkehren", + "director.help.navigation.back": "Zurück", + "director.help.no_subcommands": "Auf dieser Seite gibt es keine Unterbefehle.", + "director.help.no_description": "Keine Beschreibung vorhanden", + "director.help.aliases": "Aliase", + "director.help.command_group": "Befehlsgruppe. Zum Öffnen klicken.", + "director.help.no_parameters": "Keine Parameter. Klicken, um den Befehl vorab auszufüllen.", + "director.help.parameters": "Parameter", + "director.help.parameter.required": "erforderlich", + "director.help.parameter.optional": "optional", + "director.help.parameter.default": "Standard", + "director.help.navigation.previous.hover": "Vorherige Seite", + "director.help.navigation.next.hover": "Nächste Seite", + "director.help.navigation.page": "Seite", + "director.runtime.error.invalid_origin": "Dieser Befehl kann von diesem Ursprung aus nicht ausgeführt werden.", + "director.runtime.error.unknown_parameter": "Unbekannter Parameterschlüssel: {key}", + "director.runtime.error.unexpected_argument": "Unerwartetes Argument \"{argument}\". Optionale Parameter müssen als Schlüssel angegeben werden, z. B. seed=123", + "director.runtime.error.conversion_failed": "\"{value}\" kann für {parameter} nicht in {type} konvertiert werden", + "director.runtime.error.default_parse_failed": "Der Standardwert für Parameter {parameter} kann nicht gelesen werden", + "director.runtime.error.missing_argument": "Fehlendes Argument \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Befehl {command} konnte nicht ausgeführt werden: {reason}", + "director.runtime.usage": "Verwendung: {usage}", + "iris.command.permission_denied": "Dir fehlt die Berechtigung '{permission}'", + "iris.command.unknown": "Unbekannter Iris-Befehl", + "iris.command.player_only": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.command.iris_world_required": "Diese Dimension wurde nicht von Iris generiert.", + "iris.command.reload.success": "Einstellungen und Sprache {locale} wurden neu geladen.", + "iris.command.reload.failed": "Die Einstellungen wurden neu geladen, aber die Sprache {locale} wurde abgelehnt; {activeLocale} bleibt aktiv.", + "iris.modded.help.unknown_section": "Unbekannter Iris-Hilfeabschnitt: {section}", + "iris.modded.help.back_hover": "Zurück zum {parent}.", + "iris.modded.help.command_parameter": "Befehlsparameter", + "iris.modded.help.parameter_required": "Dieser Parameter ist erforderlich.", + "iris.modded.help.parameter_optional": "Dieser Parameter ist optional.", + "iris.modded.help.brigadier_text": "Dieser Parameter wird von Brigadier als Text gelesen.", + "iris.modded.help.operator_notice": "Iris-Befehle benötigen eine Operatorberechtigung (Level 2).", + "iris.modded.help.operator_instruction": "Führe {command} in der Konsole aus oder aktiviere Cheats im Einzelspieler. Bis dahin können diese Befehle weder ausgeführt noch per Tab vervollständigt werden.", + "iris.modded.command.properties.none": "Eigenschaften: (keine)", + "iris.modded.command.properties.list": "Eigenschaften: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Datapack-Import wird gestartet...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aKonfigurierte Datapack-Importe: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aInstallierte Datenpakete: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eFüge Modrinth-URLs zur Liste 'datapackImports' einer Dimension hinzu und führe dann /iris datapack ingest aus.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash gestartet: {value} Chunks...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash ist bei Chunk {rx},{rz} fehlgeschlagen: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash global=§6{value}§a Chunks={value2} solide={solidBlocks} in {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Nicht in einer Iris-Welt!", + "iris.bukkit.commandfind.unknown_structure": "§cUnbekannte Struktur: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Führe diesen Befehl im Spiel aus, um dich zu einer Struktur zu teleportieren.", + "iris.bukkit.commandfind.locating": "§7Suche nach {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Führe diesen Befehl im Spiel aus, um dich zu einer Struktur zu teleportieren.", + "iris.bukkit.commandfind.locating_2": "§7Suche nach {structure}...", + "iris.bukkit.commandfind.teleported": "§aZu {structure} @ {value}, {y}, {value2} teleportiert", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aWeltordner erfolgreich entfernt", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aWeltordner erfolgreich entfernt", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cWeltordner konnte nicht entfernt werden", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cAuf diesem Server wurden keine Packs mit Objekten gefunden.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cIn den ausgewählten Packs sind keine platzierbaren Objekte vorhanden.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aObject Studio wird für {scope} geöffnet ({totalObjects} Objekte)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cObject Studio konnte nicht geöffnet werden: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cDu musst einen Namen für das Pack angeben.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPack '{pack}' wurde unter packs/ nicht gefunden.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... und {value} mehr.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aÜberprüfung der Strukturen in §f{value}§a von {value2},{value3} innerhalb {searchRadius} Chunks...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aInhalte aus vanilla werden in §f{value}§a importiert...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla abgeschlossen: §f{imported}§a objects/structures geschrieben, §f{failed}§a fehlgeschlagen.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Bäume und Objekte liegen unter objects/vanilla/...; referenziere sie in den Objektplatzierungen eines Bioms.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cKeine offenen Studioprojekte.", + "iris.bukkit.commandstudio.closing_studio": "§eStudio wird geschlossen...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStudio konnte nicht geschlossen werden: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStudio konnte nicht geschlossen werden: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio geschlossen. Die verbleibende Bereinigung der zugehörigen Weltordner wurde als Ausweichvorgang für den nächsten Start vorgemerkt.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio geschlossen.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cSie müssen in einer Studio-Welt sein, um die Debug-Anzeigetafel umzuschalten.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio-Debug Scoreboard {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cDas Studio-Debug-Scoreboard konnte derzeit nicht aktualisiert werden.", + "iris.bukkit.commandstudio.opened_inventory": "§aInventar geöffnet!", + "iris.bukkit.commandstudio.generating_data": "§7Daten werden generiert...", + "iris.bukkit.commandstudio.done": "§aFertig!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Dir fehlt die Berechtigung '{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Status:", + "iris.bukkit.irisenginestatus.service": "§5- Service: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metriken: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Wartungszeitraum: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Worker-Parallelität: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Aktive Weltaufgaben: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tektonische Platten:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Konfigurierte Aufbewahrung: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heap-Nutzung: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Resident: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- In Warteschlange: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Durchschnittliche Leerlaufdauer: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Maximale Leerlaufdauer: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Minimale Leerlaufdauer: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Caches:", + "iris.bukkit.irisenginestatus.resource": "§5- Ressource: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2D-Stream: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3D-Stream: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Sonstige: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Sonstige:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris-Welten: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Geladene Chunks: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cDie Welt ist null.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cWähle eine Iris-Welt aus, bevor du einen Mantle-Dump liest.", + "iris.bukkit.commanddeveloper.upgrading": "§aUpgrade auf {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aUpgrade abgeschlossen! Du kannst deinen Server jetzt auf Version {value} aktualisieren", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cDer Radius muss mindestens 0 betragen.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cDies ist keine Iris-Welt.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cDer Engine-Zugriff für diese Welt ist null.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aLöschen gestartet: §6{chunks}§a Chunk(s) um §6{centerX},{centerZ}§a. Blöcke werden durch Luft ersetzt.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cDer Radius muss mindestens 0 betragen.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cDu musst dich in einer Iris-Welt befinden, um regen zu verwenden.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cDer Engine-Zugriff für diese Welt ist null. Generiere zuerst einige Chunks in der Nähe.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegenerierung gestartet: §6{chunks}§a Chunk(s) um §6{centerX},{centerZ}§a. Sie werden gelöscht und an Ort und Stelle neu generiert.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cDer Radius muss mindestens 0 betragen.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cDas Ziel muss eine Iris-Welt sein.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cDer Engine-Zugriff für diese Welt ist null.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash gestartet: §6{chunks}§a Chunk(s) um §6{centerX},{centerZ}§a in Puffern (Welt bleibt unverändert).", + "iris.bukkit.commandedit.players_only": "§cNur Spieler!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cKeine Studio-Welt ist offen!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cDu musst in einer Studiowelt sein!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cKann keine Dateien in kopflosen Umgebungen öffnen!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cDesktop wird von dieser Umgebung nicht unterstützt!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Kann die Datei nicht finden; Vielleicht wurde sie nicht direkt aus einer Datei geladen?", + "iris.bukkit.commandedit.opening_vscode": "§a{value} {value2} wird in VSCode geöffnet! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cDie Datei wurde nicht gefunden oder die Registrierung existiert nicht", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Kann die Datei nicht finden; Vielleicht wurde sie nicht direkt aus einer Datei geladen?", + "iris.bukkit.commandedit.opening_vscode_2": "§a{value} {value2} wird in VSCode geöffnet! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cDie Datei wurde nicht gefunden oder die Registrierung existiert nicht", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Kann die Datei nicht finden; Vielleicht wurde sie nicht direkt aus einer Datei geladen?", + "iris.bukkit.commandedit.opening_vscode_3": "§a{value} {value2} wird in VSCode geöffnet! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cDie Datei wurde nicht gefunden oder die Registrierung existiert nicht", + "iris.bukkit.commandfind.not_iris_world_5": "§6Nicht in einer Iris-Welt!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Nicht in einer Iris-Welt!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Nicht in einer Iris-Welt!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Nicht in einer Iris-Welt!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: Teleportation zum {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} ist in keiner Region/Biom-Objektplatzierung konfiguriert.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cDu kannst den Weltnamen \"iris\" nicht verwenden, weil Iris dieses Verzeichnis für Studio-Welten nutzt.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cWie wäre es stattdessen mit dem Namen \"IrisWorld\"?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cDu kannst den Weltnamen \"benchmark\" nicht verwenden, weil Iris dieses Verzeichnis für Pack-Benchmarks nutzt.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cWie wäre es stattdessen mit dem Namen \"IrisWorld\"?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cDieser Ordner existiert bereits!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cDimension \"{resolvedType}\" konnte weder gefunden noch heruntergeladen werden.", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eVersuche eine der folgenden Optionen: overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eOder manuell herunterladen: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aVorbereitung der Welt abgeschlossen. Starte den Server neu, um \"{worldName}\" zu generieren/zu laden.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cBei der Erstellung ist eine Ausnahme aufgetreten. Weitere Details findest du in der Konsole.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aDeine Welt wurde erfolgreich erstellt!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aIhre Welt wird automatisch als Hauptwelt festgelegt, wenn der Server neu gestartet wird.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eDie Erstellung von Welten zur Laufzeit ist unter Folia deaktiviert.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eWeltdateien und bukkit.yml werden für den nächsten Start vorbereitet...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cDie Weltdateien für Dimension \"{value}\" konnten nicht vorbereitet werden.", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aDie Eigenschaft level-name in server.properties wurde auf \"{name}\" gesetzt.", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cDie Welt wurde vorbereitet, aber die Hauptwelt in server.properties konnte nicht aktualisiert werden.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris-Welt \"{name}\" mit Generator Iris:{value} und Seed {seed} vorbereitet.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aDiese Welt ist für den nächsten Neustart als Hauptwelt konfiguriert.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cbukkit.yml konnte nicht aktualisiert werden: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cDer angegebene Spieler existiert nicht.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v{value} von Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} bis {value2}", + "iris.bukkit.commandiris.total_height": "§aGesamthöhe: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris-Welten: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit-Welten: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cDies ist keine Iris-Welt. Iris-Welten: {value}", + "iris.bukkit.commandiris.removing_world": "§aWelt wird entfernt: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cEs ist nicht gelungen, die Welt zu evakuieren: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cWelt konnte nicht entladen werden: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§a{value} wurde erfolgreich aus bukkit.yml entfernt", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eDie Welt wurde anscheinend bereits aus bukkit.yml entfernt", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cbukkit.yml konnte wegen {value} nicht gespeichert werden", + "iris.bukkit.commandiris.set_debug": "§aDebug gesetzt auf: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aDownload des Pack: {pack} (Beta-Version){value}", + "iris.bukkit.commandiris.downloading_pack": "§aDownload des Pack: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cDu musst dich in einer Iris-Welt befinden", + "iris.bukkit.commandiris.sending_metrics": "§aÜbermittlung von Metriken...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cDies ist keine Iris-Welt. Iris-Welten: {value}", + "iris.bukkit.commandiris.unloading_world": "§aWelt wird entladen: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aWelt erfolgreich entladen.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cDie Welt konnte nicht entladen werden.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cDie Welt konnte nicht entladen werden: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} existiert nicht auf dem Server.", + "iris.bukkit.commandiris.generator": "§9Generator: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} ist keine Iris-Welt.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cDie Iris-Dimension für {logicalWorldName} konnte nicht bestimmt werden.", + "iris.bukkit.commandiris.loading_world": "§aWelt wird geladen: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia kann zur Laufzeit keine neuen Welten laden. Starte den Server neu, um \"{logicalWorldName}\" zu laden.", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} erfolgreich geladen.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cDies ist keine Iris-Welt. Iris-Welten: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aWelt wird evakuiert{value}", + "iris.bukkit.commandobject.object_size": "Objektgröße: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Verwendete Blöcke: {value}", + "iris.bukkit.commandobject.blocks_object": "== Blöcke im Objekt ==", + "iris.bukkit.commandobject.other_block_types": " + {value} Andere Blocktypen", + "iris.bukkit.commandobject.current_object_size": "Aktuelle Objektgröße: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Neue Objektgröße: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Objekt {value} konnte nicht gespeichert werden: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cKeine übereinstimmenden Objekte: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}] hat {value2} Objekt(e) eingereiht", + "iris.bukkit.commandobject.hold_your_wand": "Halte deinen Zauberstab.", + "iris.bukkit.commandobject.no_area_selected": "Kein Bereich ausgewählt.", + "iris.bukkit.commandobject.ready_your_wand": "Bereite deinen Zauberstab vor.", + "iris.bukkit.commandobject.ready_your_wand_2": "Bereite deinen Zauberstab vor.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eDie angezeigte Skala überschreitet das Maximum. Auf Maximum herabgesetzt: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Zauberstab für objects/{value}.iob aktualisiert ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Neuen Zauberstab für objects/{value}.iob erhalten ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Zauberstab für objects/{value}.iob aktualisiert ", + "iris.bukkit.commandobject.placed": "§a{object} platziert", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eDu musst deinen Zauberstab halten!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cFile existiert bereits. Setze overwrite=true, um es zu überschreiben.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cDas Objekt konnte wegen einer IOException nicht gespeichert werden: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aObjekt erfolgreich gespeichert unter: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Halte deinen Zauberstab.", + "iris.bukkit.commandobject.no_area_selected_2": "Kein Bereich ausgewählt.", + "iris.bukkit.commandobject.reverted_pastes": "§9Zurückgesetzt {actualReverts}§9 Einfügungen!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cOhne WorldEdit kann keine WorldEdit-Auswahl abgerufen werden.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cDu hast in dieser Welt keine WorldEdit-Auswahl.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aEin neuer Zauberstab mit deiner aktuellen WorldEdit-Auswahl!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPuff! Viel Glück beim Bauen!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eHalten Sie Ihren Zauberstab!", + "iris.bukkit.commandobject.no_area_selected_3": "Kein Bereich ausgewählt.", + "iris.bukkit.commandobject.auto_select_complete": "§aAutomatische Auswahl abgeschlossen!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eHalten Sie Ihren Zauberstab!", + "iris.bukkit.commandobject.no_area_selected_4": "Kein Bereich ausgewählt.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAutomatische Auswahl abgeschlossen!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cDer Vorgenerierungsradius muss größer als null Blöcke sein.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cDie strikt serielle Vorgenerierung erfordert Paper oder einen Paper-kompatiblen Server.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cDer Engine-Zugriff für diese Welt ist null!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cStelle sicher, dass die Welt geladen und die Engine initialisiert ist. Generiere zum Beispiel einen neuen Chunk.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cDie Vorgenerierung konnte nicht gestartet werden. Details findest du in der Konsole.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eKeine aktiven Vorgenerationsaufgaben zu stoppen", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aPausenstatus der Vorgenerierungsaufgabe umgeschaltet. Aktueller Status: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eKeine aktiven Vorgenerierungsaufgaben zum Pausieren oder Fortsetzen.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eKeine aktive Vorgenerationsaufgabe.", + "iris.bukkit.commandpregen.pregen": "§aVorgenerierung §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aGeschwindigkeit: §6{value}/s§a ETA: §6{value2}§a Verstrichen: §6{value3}§a Methode: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstructure.wrote_structure_index": "§aStrukturindex geschrieben: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aAlle Vanilla- und Datapack-Strukturen werden in §f{value}§a importiert (überschreiben)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImport abgeschlossen: §f{imported}§a structures/objects geschrieben, §f{failed}§a fehlgeschlagen.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Referenziere sie in der 'structures'-Liste eines Bioms, einer Region oder Dimension, oder führe /iris structure list {value} aus, um den Index zu aktualisieren. Regeneriere Chunks, damit die Änderungen wirksam werden.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7{value} Strukturen erfasst. Platziere sie über eine 'structures'-Liste und regeneriere Chunks. Lösche eine Datei unter structures/*.json, um sie erneut zu erfassen.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cKeine geladene Iris-Welt für {value} gefunden. Betritt oder erstelle zuerst eine Welt (die Suche wird in einer laufenden Welt ausgeführt).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cDie ausgewählte Iris-Welt besitzt keine aktive Generator-Engine.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cKeine Iris-Struktur '{structure}' in diesem Pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cStruktur '{structure}' wurde aus 0 Teilen zusammengesetzt (startPool '{value}' prüfen)", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStruktur '{structure}': §f{value}§a Teile, Fußabdruck §f{value2}x{value3}§a blocks (sample seed 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cKeine Iris-Struktur '{structure}' in diesem Pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cStruktur '{structure}' wurde aus 0 Teilen zusammengesetzt", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a'{structure}' ({value} Teile) an deiner Position platziert.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aStudio für den Pack \"{value}\" wird geöffnet (Seed: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cGib ein Dimensions-Pack an: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cDer Pack für Dimension {value} konnte nicht aufgelöst werden", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aVSCode wird für den Pack \"{value}\" geöffnet", + "iris.bukkit.commandstudio.pack_has_version": "§aDer Pack \"{value}\" hat die Version {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aNoise Explorer wird geöffnet!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cKann keine Elemente zum virtuellen Inventar hinzufügen, weil: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aInventar wird jetzt geöffnet!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cFunktioniert nur in einer Iris-Welt!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cDu musst dich in einer von Iris generierten Welt befinden oder eine solche angeben!", + "iris.bukkit.commandstudio.opening_map": "§aKarte öffnen!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Leistungsmetriken für Noise-Generatoren werden berechnet", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Berechnung der Interpolator-Zeiten...", + "iris.bukkit.commandstudio.processing_generator_scores": "Generatorbewertungen werden verarbeitet: ", + "iris.bukkit.commandstudio.score": "Punktzahl: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aFertig! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cDu musst dich in einer Iris-Welt befinden, damit Entitäten korrekt gespawnt werden. Es wird die bestmögliche Platzierung versucht.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cKeine Studio-Welt ist offen!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cSie befinden sich bereits in einer Studiowelt!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aWir schicken Sie in die Studiowelt!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Code-Workspace für {value} wird aktualisiert...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aCode-Workspace für {value} aktualisiert", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cUngültiges Projekt: {value}. Löschen Sie die Code-Workspace-Datei und versuchen Sie es erneut.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cDu musst dich in einer Iris-Welt befinden", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Du musst in einer Iris-Welt sein.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "IGenData wird aus {value} nahe gelegenen Chunks erfasst.", + "iris.bukkit.commandstudio.reported": "Gemeldet an: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cIn den Einstellungen müssen vom Server gestartete GUIs aktiviert sein!", + "iris.bukkit.commandstudio.players_only": "§cNur Spieler!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cKeine Studio-Welt ist offen!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cDu musst in einer Studiowelt sein!", + "iris.bukkit.commandwhat.material": "Material: §a{value}", + "iris.bukkit.commandwhat.full": "Voll: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Bitte halte einen Block oder Gegenstand", + "iris.bukkit.commandwhat.material_2": "Material: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Bitte halte einen Block oder Gegenstand", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Nicht-Iris Biom: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Datapack-Biom: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aNur Iris-Welten.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Bitte schauen Sie sich einen Block an, nicht den Himmel", + "iris.bukkit.commandwhat.material_3": "Material: §a{value}", + "iris.bukkit.commandwhat.full_2": "Voll: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Speicherblock (Beute möglich)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Leuchtender Block (Lichtquelle möglich)", + "iris.bukkit.commandwhat.foliage_block": "§e* Laubblock", + "iris.bukkit.commandwhat.decorant_block": "§e* Dekorblock", + "iris.bukkit.commandwhat.fluid_block": "§e* Fluidblock", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Pflanzbarer Laubblock", + "iris.bukkit.commandwhat.solid_block": "§e* Solider Block", + "iris.bukkit.commandwhat.found_nearby_markers": "{value} Marker in der Nähe gefunden ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aNur Iris-Welten.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Die Konsole muss ein Biom benennen: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biom-Suche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Unbekanntes Biom: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Die Konsole muss eine Region benennen: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Regionssuche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Unbekannte Region: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Hier können keine Dateien geöffnet werden: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Die Datei wurde nicht gefunden; möglicherweise wurde sie nicht direkt aus einer Datei geladen.", + "iris.modded.irismoddedcommands.could_not_open": "{value} konnte nicht geöffnet werden: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Öffne {value} {value2} in deinem Editor.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Die Konsole muss einen Spieler benennen: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} wird nicht von Iris generiert.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleportation fehlgeschlagen: Dimension {dimensionId} ist nicht geladen.", + "iris.modded.irismoddedcommands.teleporting": "Teleportiere {value} nach {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} wird nicht von Iris generiert.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Die primäre Welt kann nicht evakuiert werden, da es kein Ziel für die Spieler gibt.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "{count} Spieler von {value} nach {value2} evakuiert.", + "iris.modded.irismoddedcommands.set_debug": "Debug-Modus auf {to} gesetzt.", + "iris.modded.irismoddedcommands.hotloaded_settings": "Einstellungen direkt neu geladen", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Dieser Befehl kann nur von Spielern verwendet werden (er überprüft Ihren gehaltenen Gegenstand).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Ihre Haupthand ist leer.", + "iris.modded.irismoddedcommands.hand_x": "Hand {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} wird nicht von Iris generiert. Mit /iris info kannst du die geladenen Iris-Dimensionen anzeigen.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Die aktuelle Dimension ({value}) wird nicht von Iris generiert. Gib eine Dimension ausdrücklich an: /iris pregen start {radius} . Mit /iris info kannst du die geladenen Iris-Dimensionen anzeigen.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Es läuft bereits eine Vorgenerierungsaufgabe. Beende sie zuerst mit /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Vorgenerierung in {value} von {value2} über {value3} Blöcke ab {centerX},{centerZ} gestartet.{modeNote} Fortschritt wird in der Konsole protokolliert; siehe /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Vorgenerierung wird beendet; die aktuelle Region wird noch fertiggestellt...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Keine aktive Vorgenerationsaufgabe zu stoppen.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Keine aktive Vorgenerationsaufgabe zum Anhalten/Wieder aufnehmen.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Die Vorgenerierung ist jetzt {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Keine aktive Vorgenerationsaufgabe.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} von Volmit Software auf {value2} (Minecraft {value3}), {engines} Iris-Dimension(en)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Geladene Dimensionen: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.biome": "Biom: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biom-Suche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.region": "Region: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Regionssuche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Höhlenbiom: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Höhlenbiom-Suche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Oberflächenblock: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Position: {value} {value2} {value3} (Chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Dieser Befehl kann nur von Spielern verwendet werden (er überprüft den Block, den Sie sich ansehen).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Schauen Sie sich einen Block an, nicht den Himmel.", + "iris.modded.irismoddedcommands.block_y": "Block: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Dieser Befehl kann nur von Spielern verwendet werden (Marker als Partikel um dich herum).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Suche nach '{marker}'-Markierungen in deiner Nähe...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Marker-Scan fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "{value} Markierung(en) in der Nähe gefunden ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Unbekanntes Biom: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.unknown_region_2": "Unbekannte Region: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} ist nicht in der Dimension definiert!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} ist in keiner Objektplatzierung einer Region oder eines Bioms konfiguriert ({value} Objektschlüssel geladen).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Dieser Befehl kann nur von Spielern verwendet werden. (Objektschlüssel '{key}' wurde anhand von {value} geladenen Objektschlüsseln aufgelöst.)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Gib eine Iris- oder native Struktur an, die gesucht werden soll.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Unbekannte Struktur '{key}'. Wähle per Tab-Vervollständigung eine Iris-Platzierung oder eine registrierte native/Datapack-Struktur aus.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Suche nach der nativen Struktur {value} im Umkreis von {NATIVESTRUCTURELOCATERADIUS} Chunks...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Suche nach der von Iris platzierten Struktur {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Die von Iris platzierte Struktur {key} konnte nicht gefunden werden: Die Sicherheitsgrenze der Dichtesuche wurde erreicht, bevor der gesamte Radius von 1024 Chunks durchsucht war.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Die von Iris platzierte Struktur {key} wurde im Umkreis von 1024 Chunks nicht gefunden.", + "iris.modded.irismoddedcommands.search_failed": "Suche fehlgeschlagen: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Die native Struktur {value} wurde im Umkreis von {NATIVESTRUCTURELOCATERADIUS} Chunks nicht gefunden.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Suche nach der nativen Struktur {value} fehlgeschlagen: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Der Spieler trennte sich, bevor die Struktursuche abgeschlossen wurde.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Sie haben die Dimensionen vor Abschluss der Struktursuche geändert; führen Sie den Befehl erneut aus.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "{label} bei {targetX} {clampedY} {targetZ} gefunden, aber die Teleportation ist fehlgeschlagen.", + "iris.modded.irismoddedcommands.teleported_at": "Zu {label} bei {targetX} {clampedY} {targetZ} teleportiert.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Strukturerreichbarkeit: {available} native generierbar, {irisPlaced} von Iris platziert, {disabled} native deaktiviert, {suppressed} native durch Iris-Platzierungen ersetzt, {unreachableBiomes} native durch die Biome dieses Pack ausgeschlossen und {unsupported} registrierte native Strukturen in dieser Dimension nicht unterstützt. Verwende /iris structure verify , um eine Struktur zu prüfen.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Struktur {key} wird von Iris platziert und kann mit /iris goto structure {key2} gefunden werden.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Unbekannte Struktur '{key}'. Sie wird weder von Iris platziert noch von vanilla oder einem Datapack registriert.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Struktur {value} wird ausdrücklich durch eine Iris-Platzierung ersetzt und kann mit /iris goto structure {value2} gefunden werden.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Native Struktur {value} ist aktiviert, unterstützt durch den Generatorzustand dieser Dimension und ortbar mit /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Dieser Befehl kann nur von Spielern verwendet werden. (POI-Typ '{type}' wurde akzeptiert.)", + "iris.modded.irismoddedcommands.searching": "Suche nach {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Die Engine dieser Welt wurde geschlossen. Betritt die Dimension erneut und versuche es noch einmal.", + "iris.modded.irismoddedcommands.search_failed_2": "Suche fehlgeschlagen: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "{label} konnte nicht innerhalb des Zeitlimits gefunden werden.", + "iris.modded.irismoddedcommands.teleported_at_2": "Zu {label} bei {blockX} {blockY} {blockZ} teleportiert.", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Die Engine hat sich während der Suche nach {label} geändert. Versuche es erneut.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.world_seed": "Welt-Seed: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Engine-Seed: {value} (gemischt: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Download IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack '{pack}' installiert. Seine exakten Dimensionstypen und benutzerdefinierten Biome werden beim nächsten Serverneustart in das erzwungene Iris-Datapack aufgenommen. Starte den Server neu, bevor du Welten aus diesem Pack erstellst.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Download von Pack {pack} fehlgeschlagen ({downloadSource}; siehe Konsole).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Generiert: {value} Chunk(s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Unbekannt Iris Hilfeabschnitt: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: type={typeKey} active={activeMin}..{activeMax} logical={value} (Pack={value2}, Engine nicht gestartet; Höhen des Pack unbekannt)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: type={typeKey} active={activeMin}..{activeMax} logical={value} | Pack '{value2}' benötigt {packMin}..{packMax} logical={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNUNG: Der aktive Dimensionstyp stimmt nicht mit dem Pack überein. Iris verweigert den Start dieser Welt-Engine, damit das Gelände nicht abgeschnitten wird. Führe für neue Welten /iris world enable oder für bereits geladene Iris-Dimensionen /iris datapack install aus und starte den Server anschließend neu.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Es sind keine Iris-Dimensionen geladen.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Alle {irisLevels} Iris-Dimension(en) entsprechen den Höhenbereichen ihres Pack.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: Engine noch nicht gestartet; der Dimensionstyp kann noch nicht ermittelt werden.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: Dimensionstyp-Generierung fehlgeschlagen: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Schreiben von {output} fehlgeschlagen: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Keine Iris-Dimensionen mit laufender Engine gefunden; es wurde nichts installiert.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Schreiben von {mcmeta} fehlgeschlagen: {value}", + "iris.modded.moddeddatapackcommands.wrote": "{path} geschrieben", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Dimensionstyp-Überschreibungen des Welt-Datapack '{WORLDPACKNAME}' installiert. Starte den Server neu, damit sie angewendet werden.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Konfigurierte Datapack-Importe: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Der Modrinth-Import ist nur unter Bukkit verfügbar; installiere diese Datapacks bei Bedarf manuell unter world/datapacks.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Installierte Weltdatenpakete: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Eine Testausnahme wurde an den Iris-Fehlerreporter gesendet (Sentry, falls aktiviert).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Netzwerk-Scan fehlgeschlagen: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Es läuft bereits ein GoldenHash-Scan.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Dieser Befehl kann nur von Spielern verwendet werden. (Der Zauberstab ist ein physischer Gegenstand)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Ihr Inventar ist voll.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Puff! Viel Spaß beim Bauen! (Linksklick = Ecke 1, Rechtsklick = Ecke 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Dieser Befehl kann nur von Spielern verwendet werden. (Der Staub ist ein physischer Gegenstand)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Ihr Inventar ist voll.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Klicken Sie mit der rechten Maustaste auf einen Block, um das Objekt zu enthüllen, zu dem es gehört.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Dieser Befehl kann nur von Spielern verwendet werden. (Beim Speichern wird die Auswahl deines Zauberstabs erfasst.)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Diese Dimension wird nicht von Iris generiert; Objekte werden im Pack der Dimension gespeichert.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Halte deinen Iris-Zauberstab. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Kein Bereich ausgewählt. Klicke zuerst mit dem Zauberstab links und rechts auf Blöcke.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Ungültiger Objektname: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Auswahl zu groß: {volume} Blöcke (max. {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Die Datei ist bereits vorhanden. Verwende /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Objekt konnte nicht gespeichert werden: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "{value}/objects/{name}.iob gespeichert: {w}x{h}x{d}, {value2} Block/Blöcke{tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Unbekanntes oder leeres Objekt: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Die Konsole muss Koordinaten angeben: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Du blickst auf keinen Block innerhalb von {value} Blöcken.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Einfügen fehlgeschlagen: {value} (Teiländerungen wurden zum Rückgängigmachen aufgezeichnet)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "{key} bei {value} {value2} {value3} mit rot={rotation} platziert ({value4} Schreibvorgänge, {value5} Nicht-Luft-Blöcke{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Halte deinen Iris-Zauberstab. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Kein Bereich ausgewählt.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Nimm deinen Zauberstab zur Hand. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Sie schauen nicht auf einen Block.", + "iris.modded.moddedobjectcommands.position_set": "Position {value} auf {value2} {value3} {value4} gesetzt", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Halten Sie Ihren Zauberstab!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Kein Bereich ausgewählt.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Auswahl für die automatische Auswahl zu groß: {volume} Blöcke (maximal {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Automatische Auswahl abgeschlossen: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Unbekanntes Objekt: {key}", + "iris.modded.moddedobjectcommands.object_size": "Objektgröße: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Verwendete Blöcke: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Blöcke im Objekt ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} sonstiger Blockzustand(e)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Unbekanntes Objekt: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Aktuelle Objektgröße: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Neue Objektgröße: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Das Objekt besitzt keine Quelldatei; die Verkleinerung kann nicht dauerhaft gespeichert werden.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Objekt {value} konnte nicht gespeichert werden: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Ungültige Reichweite: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Keine übereinstimmenden Objekte: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilisierung [reach={reach}{value}]: {value2} Objekt(e) eingereiht", + "iris.modded.moddedobjectcommands.nothing_undo": "Nichts zu rückgängig machen.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "{reverted} Einfügevorgang/-vorgänge rückgängig gemacht!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Pack-Ordner nicht gefunden: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Unter {value} sind keine Packs zum Validieren vorhanden.", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pack '{pack}' wurde unter {value} nicht gefunden.", + "iris.modded.moddedpackcommands.validating_pack_s": "Validiere {value} Pack(s)...", + "iris.modded.moddedpackcommands.validation_failed": "Validierung von '{value}' fehlgeschlagen: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validierung abgeschlossen. Fehlerhafte Packs: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pack '{pack}' wurde unter {value} nicht gefunden.", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pack '{pack}' wurde unter {value} nicht gefunden.", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Es wurden keine Validierungsergebnisse aufgezeichnet. Führe zuerst /iris pack validate aus.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blockierend={value2}, Warnungen={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Kein Validierungsergebnis für '{pack}'. Führe /iris pack validate {pack2} aus.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Pack '{value}' kann geladen werden. (Warnungen={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Pack '{value}' ist fehlerhaft:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... und {value} weitere Warnung(en).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Keine Bereinigungskandidaten für Pack '{pack}' gefunden.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Bereinigungsvorschau für Pack '{pack}': {value} Kandidat(en). Es wurden keine Dateien geändert.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Führe /iris pack cleanup {pack} apply aus, um die Dateien nach einem erneuten Scan unter Quarantäne zu stellen.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Keine Bereinigungskandidaten für Pack '{pack}' gefunden.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "{value} Bereinigungskandidat(en) unter {value2} unter Quarantäne gestellt.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Für Pack '{pack}' ist nichts wiederherzustellen.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Wiederherstellungsvorschau für {value}: {value2} Datei(en). Es wurden keine Dateien geändert.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Die Wiederherstellung wird durch {value} vorhandene(s) Ziel(e) blockiert.", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Führe /iris pack restore {pack} apply aus, um nach einer erneuten Konfliktprüfung wiederherzustellen.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Wiederherstellung abgelehnt, da {value} Ziel(e) bereits vorhanden sind.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Für Pack '{pack}' ist nichts wiederherzustellen.", + "iris.modded.moddedpackcommands.restored_file_s_from": "{value} Datei(en) aus {value2} wiederhergestellt.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... und {value} mehr.", + "iris.modded.moddedregen.regen_is_already_running": "Es läuft bereits eine Regenerierung.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Diese Dimension wird nicht von Iris generiert. Führe den Befehl in einer Iris-Dimension aus, damit das Pack ermittelt werden kann.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Strukturindex geschrieben: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Keine Iris-Struktur '{key}' in diesem Pack gefunden.", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Struktur '{key}' wurde aus 0 Teilen zusammengesetzt (startPool '{value}' prüfen).", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Struktur '{key}': {value} Teile, Grundfläche {value2}x{value3} Blöcke (Beispiel-Seed 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Dieser Befehl kann nur von Spielern verwendet werden (die Struktur wird an Ihrer Position zusammengestellt).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Keine Iris-Struktur '{key}' in diesem Pack gefunden.", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Struktur '{key}' wurde aus 0 Teilen zusammengesetzt.", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Platzierung fehlgeschlagen: {value} (Teiländerungen wurden zum Rückgängigmachen aufgezeichnet)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "'{key}' an deiner Position platziert ({value} Teile, {value2} Schreibvorgänge{tileNote}). Mit /iris object undo kannst du die Platzierung rückgängig machen.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Gib ein Dimensions-Pack an: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Noise Explorer wird auf dem Serverbildschirm geöffnet.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Diese Dimension wird nicht von Iris generiert. Führe /iris studio noise in einer Iris-Dimension aus, um Generatoren aufzulösen, oder lasse den Generatornamen weg.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Unbekannter Generator '{generatorKey}' im Pack {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Noise Explorer wird für Generator '{value}' geöffnet (Seed {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Diese Dimension wird nicht von Iris generiert. Stelle dich in eine Iris- oder Studio-Dimension und führe /iris studio map aus.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Vision-Karte für {value} wird auf dem Serverbildschirm geöffnet.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Arbeitsbereich für {value} konnte nicht geschrieben werden: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Arbeitsbereich neu erstellt: {value}, einschließlich JSON-Schemas für die Autovervollständigung.", + "iris.modded.moddedstudiocommands.could_not_open": "{value} konnte nicht geöffnet werden: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Öffne {value} in deinem Editor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Diese Dimension wird nicht von Iris generiert; gib ausdrücklich einen Pack-Namen an.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pack '{name}' wurde unter {value} nicht gefunden.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Gib ein Dimensions-Pack an: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Öffne Studio für '{pack}' (Seed {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pack '{pack}' fehlt; IrisDimensions/{pack2} wird heruntergeladen...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Pack '{pack}' konnte nicht heruntergeladen werden. Prüfe den Namen und versuche /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Pack '{pack}' enthält keine dimensions/{pack2}.json.", + "iris.modded.moddedstudiocommands.studio_open_failed": "Studio konnte nicht geöffnet werden: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Studio-Injektion fehlgeschlagen: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Konsolenstudio geöffnet: {dimensionId} führt jetzt '{pack}' Seed {seed} aus (transient; nicht in iris-dimensions.json geschrieben und beim Neustart gelöscht).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Betritt sie mit: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Generiere sie vor mit: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Entfernen Sie es mit: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Studio-Injektion fehlgeschlagen: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio geöffnet: {dimensionId} verwendet jetzt '{pack}' mit Seed {seed}. Führe danach /iris studio close aus.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Du hast kein geöffnetes Studio. Verwende zuerst /iris studio open .", + "iris.modded.moddedstudiocommands.studio_close_failed": "Studio konnte nicht geschlossen werden: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio geschlossen: {dimensionId} wurde evakuiert, entladen und seine Regionsdaten gelöscht.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Derzeit sind keine Studio-Dimensionen geöffnet.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Aktive Studiodimension(en): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: Pack '{value2}', Seed {value3}, Besitzer {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Dieser Befehl kann nur von Spielern verwendet werden.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Du hast kein geöffnetes Studio. Verwende zuerst /iris studio open .", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Deine Studio-Dimension ist nicht mehr geladen. Verwende erneut /iris studio open .", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Teleportiert zu Ihrem Studio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Pack '{value}' enthält keine dimensions/{value2}.json.", + "iris.modded.moddedstudiocommands.pack_has_version": "Das Pack \"{value}\" hat die Version {value2}.", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Ungültiger Projektname '{nameRaw}' (zulässig: a-z, 0-9, _ und -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Pack '{name}' ist unter {value} bereits vorhanden.", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Erstelle Projekt '{name}' aus Vorlage '{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Vorlage '{template}' ist nicht installiert; IrisDimensions/{template2} wird heruntergeladen...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Vorlage '{template}' konnte nicht heruntergeladen werden. Installiere zuerst ein Pack mit dimensions/{template2}.json.", + "iris.modded.moddedstudiocommands.created_project_at": "Projekt '{name}' unter {value} erstellt.", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Bearbeite dimensions/{name}.json und den Rest des Pack. Ein VSCode-Arbeitsbereich mit JSON-Schema-Autovervollständigung wurde erstellt; öffne ihn oder führe /iris studio vscode erneut aus.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Projekterstellung gescheitert: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Packe Dimension '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paket kompiliert: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Verpackung fehlgeschlagen: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Dieser Befehl kann nur von Spielern verwendet werden (das Abtasten konzentriert sich auf Ihre Position).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Diese Dimension wurde nicht von Iris generiert.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Verteilung der Probenahmeregionen in {value}x{value2} Chunks um dich herum...", + "iris.modded.moddedstudiocommands.rarity": "{key}: Seltenheit ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Regionalbeprobung fehlgeschlagen: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Pack '{pack}' ist nicht installiert; IrisDimensions/{pack2} wird heruntergeladen...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Pack '{pack}' konnte nicht heruntergeladen werden. Prüfe den Namen oder installiere es mit /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Iris-Welt '{dimensionId}' konnte nicht eingebunden werden: {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Iris-Welt {dimensionId} aus Pack '{pack}', Dimension '{packDimension}', erstellt (Seed {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Sie ist jetzt aktiv und wird bei jedem Start erneut eingebunden. Teleportiere dich über /iris world status oder ein Portal hinein; ein Neustart ist nicht erforderlich.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Primäre Iris-Welt konnte nicht eingebunden werden: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Primäre Iris-Welt auf {dimensionId} gesetzt (Pack '{pack}', Dimension '{packDimension}', Seed {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Der Vanilla-Overworld-Generator kann nicht im laufenden Betrieb ausgetauscht werden; daher wird die bestehende Overworld dadurch NICHT neu generiert.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Stattdessen ist {dimensionId} jetzt als primäre Welt konfiguriert: Spieler in der vanilla-Oberwelt werden beim Beitritt dorthin geleitet, und die Welt wird bei jedem Start erneut eingebunden.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Überschreibung der Iris-Hauptwelt entfernt. Die Oberwelt behält ihren aktuellen Generator; bearbeite level-type in server.properties und starte den Server neu, um ihn zurückzuändern.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Ungültiger Seed '{seedRaw}'. Verwende eine Zahl oder 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Pack '{pack}' ist nicht installiert; IrisDimensions/{pack2} wird heruntergeladen...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Pack '{pack}' konnte nicht heruntergeladen werden. Prüfe den Namen oder installiere es mit /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Pack '{pack}' ist noch nicht bereit, da es noch geladen oder validiert wird. Versuche den Befehl gleich noch einmal.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "server.properties konnte nicht geschrieben werden. Prüfe die Dateiberechtigungen und setze level-type manuell.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris-Hauptwelt auf '{pack}' gesetzt (Voreinstellung {preset}, Seed {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "level-type in server.properties ist jetzt {preset}. Beim nächsten Neustart werden Oberwelt, Nether und Ende als diese Iris-Welt neu generiert.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Spielerdaten (Inventare, Weiterentwicklungen, Statistiken) werden beibehalten; vorhandenes Gelände in diesen Dimensionen wird ersetzt. Dies gilt einmal.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart ist aktiviert – der Server wird jetzt beendet, damit dein Neustart-Wrapper ihn mit der neuen Hauptwelt wieder startet.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Starten Sie den Server jetzt neu, um ihn zu generieren.(Setzen Sie mainWorldAutoRestart=true in modded.json, damit Iris den Server für Sie stoppt.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Welt '{dimensionId}' wird nicht mit Pack '{pack}' erstellt, da die erforderliche Validierung fehlgeschlagen ist:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Behebe das Pack und führe /iris pack validate {pack} aus, um es erneut zu validieren.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pack '{pack}' wurde unter {value} nicht gefunden.", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Pack '{pack}' enthält keine dimensions/{packDimension}.json.", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Ungültige Pack-Referenz '{pack}{value}'. Verwende pack oder pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Ungültiger Seed '{seedRaw}'. Verwende eine Zahl oder 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Iris-Welt '{dimensionId}' konnte nicht entfernt werden: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris Welt{dimensionId}' nicht geladen wurde; seinen persistenten Registereintrag gelöscht und seine gespeicherten Chunk-/Mantle-Daten gelöscht hat.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris Welt{dimensionId}' wurde nicht geladen; seinen persistenten Registereintrag gelöscht. Weltdaten auf der Festplatte werden gespeichert.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Gelöscht Iris Welt{dimensionId}': evakuiert, entladen, Chunk/Mantle-Daten gelöscht und aus der Startregistrierung entfernt.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Iris-Welt '{dimensionId}' deaktiviert: evakuiert, entladen und aus der Startregistrierung entfernt.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Die Weltdaten auf dem Datenträger bleiben erhalten. Aktiviere sie mit /iris world enable {dimensionId} erneut oder lösche sie mit /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Geladenes Iris-Level: {value} -> Pack '{value2}', Dimension '{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Primärwelt: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Derzeit sind keine Iris-Dimensionen geladen. Erstelle eine mit /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Geladene Iris-Dimensionen: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Verwende /iris world create , um eine Dimension ohne Neustart einzubinden.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Externe Datapack-Importe von Modrinth herunterladen und verwalten", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Alle in 'datapackImports' einer Pack-Dimension aufgeführten Datapacks herunterladen oder aktualisieren und in der Welt installieren, damit ihre Strukturen wie bei vanilla registriert werden", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Starten Sie den Server neu, wenn neue Datenpakete installiert sind (für die Registrierung und Generierung neuer Strukturen erforderlich)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Liste der konfigurierten Datenpaketimporte und ihrer installierten Versionen", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Entfernen Sie ein installiertes Datenpaket nach ID (löschen Sie auch die URL von datapackImports, um es zu entfernen)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Die Datapack-ID (Ordnername) wird angezeigt von /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris-Weltverwaltung", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Anzahl geladener TectonicPlates abrufen", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Eine Testausnahme an Sentry senden", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Generierte Blockausgabe eines festen Bereichs für Determinismus- und Identitätstests hashen", + "iris.director.commanddeveloper.param.world_hash": "Die zu hashende Welt", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Radius in Chunks um die Mitte", + "iris.director.commanddeveloper.param.center_chunk_x": "X-Koordinate des zentralen Chunk", + "iris.director.commanddeveloper.param.center_chunk_z": "Z-Koordinate des zentralen Chunk", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Pack einer Welt aktualisieren (UNSICHER!)", + "iris.director.commanddeveloper.param.world_update": "Die Welt aktualisiert", + "iris.director.commanddeveloper.param.pack_install_into_world": "Das in der Welt zu installierende Pack", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Stellen Sie sicher, dass Sie ein Backup erstellen & Lesen Sie zuerst die Warnungen!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Ob Iris das Pack erneut herunterladen soll", + "iris.director.commanddeveloper.director.test": "Prüfung", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Dump die gesamte tektonische Platte anstelle eines einzigen Abschnitts", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Die Dump File ID unter plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Prüfung", + "iris.director.commanddeveloper.param.pack_bench": "Das zu benchmarkende Pack", + "iris.director.commanddeveloper.param.radius_regions": "Radius in Regionen", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Offen GUI während Benchmarking", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Upgrade auf ein anderes Minecraft Fassung", + "iris.director.commanddeveloper.param.version_upgrade": "Die Version zum Upgrade auf", + "iris.director.commanddeveloper.director.test_3": "Prüfung", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Der Weltordner zum Scannen nach .mca Region Dateien", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Blöcke in nahe gelegenen Chunks für Regenerationstests löschen", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Radius in Chunks um deinen aktuellen Chunk", + "iris.director.commanddeveloper.director.test_4": "Prüfung", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Nahe gelegene Chunks löschen und direkt mit der Iris-Generierung neu erzeugen", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Der Radius der nahe gelegenen Chunks", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Chunks in Puffern generieren, ohne die Welt zu schreiben, und Blöcke sowie Biome hashen; erfasst eine Golden-Datei oder prüft gegen eine vorhandene. Setzt Mantle im gescannten Bereich zurück – nur in entbehrlichen Testwelten verwenden.", + "iris.director.commanddeveloper.param.world_scan": "Die Welt zum Scannen", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Radius in Chunks um die Mitte", + "iris.director.commanddeveloper.param.center_chunk_x_2": "X-Koordinate des zentralen Chunk", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Z-Koordinate des zentralen Chunk", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Löschen Sie zuerst die Mantle-Daten im Scanbereich für eine vollständige Regeneration von Grund auf neu", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "gleichzeitige Chunk-Generationen; 1 = streng seriell für Orderabhängigkeitstests", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Dump auch Full Per-Chunk Non-Air Blockstates für Offline Diffing", + "iris.director.commandedit.director.edit_something": "Etwas bearbeiten", + "iris.director.commandedit.director.edit_biome_you_specified": "Bearbeiten Sie das von Ihnen angegebene Biom", + "iris.director.commandedit.param.biome_edit": "Das Biom zum Bearbeiten", + "iris.director.commandedit.director.edit_region_you_specified": "Bearbeiten der von Ihnen angegebenen Region", + "iris.director.commandedit.param.region_edit": "Die Region zum Bearbeiten", + "iris.director.commandedit.director.edit_dimension_you_specified": "Bearbeiten der von Ihnen angegebenen Dimension", + "iris.director.commandedit.param.dimension_edit": "Die Dimension zum Bearbeiten", + "iris.director.commandfind.director.iris_find_commands": "Iris Suchbefehle", + "iris.director.commandfind.director.find_biome": "Finden Sie ein Biom", + "iris.director.commandfind.param.biome_look": "Das Biom zu suchen", + "iris.director.commandfind.param.should_you_be_teleported": "Ob du teleportiert werden sollst", + "iris.director.commandfind.director.find_region": "Finden Sie eine Region", + "iris.director.commandfind.param.region_look": "Die Region zu suchen", + "iris.director.commandfind.param.should_you_be_teleported_2": "Ob du teleportiert werden sollst", + "iris.director.commandfind.director.find_point_interest": "Finden Sie einen Punkt von Interesse.", + "iris.director.commandfind.param.type_poi_look": "Art der PoI zu suchen.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Ob du teleportiert werden sollst", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Eine Struktur finden: einen Schlüssel aus vanilla wie minecraft:village_plains oder minecraft:stronghold oder einen importierten Iris-Strukturschlüssel", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Die zu suchende Struktur, z. B. minecraft:village_plains, minecraft:stronghold oder minecraft_ancient_city", + "iris.director.commandfind.director.find_object": "Finden Sie ein Objekt", + "iris.director.commandfind.param.object_look": "Das Objekt zu suchen", + "iris.director.commandfind.param.should_you_be_teleported_4": "Ob du teleportiert werden sollst", + "iris.director.commandiris.director.basic_command": "Basisbefehl", + "iris.director.commandiris.director.create_new_world": "Erschaffe eine neue Welt", + "iris.director.commandiris.param.name_world_create": "Name der zu erstellenden Welt", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Dimension oder Pack, mit der bzw. dem die Welt erstellt wird", + "iris.director.commandiris.param.seed_generate_world_with": "Seed für die Generierung der Welt", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Ob man diese Welt automatisch als Hauptwelt benutzt oder nicht", + "iris.director.commandiris.director.teleport_another_world": "Teleportieren in eine andere Welt", + "iris.director.commandiris.param.world_teleport": "Zielwelt der Teleportation", + "iris.director.commandiris.param.player_teleport": "Zu teleportierender Spieler", + "iris.director.commandiris.director.print_version_information": "Versionsinformationen anzeigen", + "iris.director.commandiris.director.benchmark_pack": "Ein Pack benchmarken", + "iris.director.commandiris.param.dimension_benchmark": "Zu benchmarkende Dimension", + "iris.director.commandiris.director.print_world_height_information": "Welthöheninformationen ausdrucken", + "iris.director.commandiris.director.check_access_all_worlds": "Überprüfen Sie den Zugang aller Welten.", + "iris.director.commandiris.director.remove_iris_world": "Entfernen einer Iris Welt", + "iris.director.commandiris.param.world_remove": "Die Welt zu entfernen", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Ob auch der Ordner entfernt werden soll (wenn auf false gesetzt, lädt die Welt einfach nicht)", + "iris.director.commandiris.director.toggle_debug": "Toggle-Debug", + "iris.director.commandiris.director.download_project": "Download eines Projekts.", + "iris.director.commandiris.param.pack_download": "Das herunterzuladende Pack", + "iris.director.commandiris.param.branch_download_from": "Der Branch zum Download von", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Ob das Pack durch das heruntergeladene Pack überschrieben werden soll", + "iris.director.commandiris.director.get_metrics_your_world": "Holen Sie sich Metriken für Ihre Welt", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Konfigurationsdatei neu laden (dies erfolgt auch automatisch)", + "iris.director.commandiris.director.unload_iris_world": "Eine Iris-Welt entladen", + "iris.director.commandiris.param.world_unload": "Die Welt zum Entladen", + "iris.director.commandiris.director.load_iris_world": "Eine Iris-Welt laden", + "iris.director.commandiris.param.name_world_load": "Der Name der Welt zum Laden", + "iris.director.commandiris.director.evacuate_iris_world": "Evakuieren einer Iris-Welt", + "iris.director.commandiris.param.evacuate_world": "Evakuieren der Welt", + "iris.director.commandobject.director.iris_object_manipulation": "Iris Objektmanipulation", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Eine Object-Studio-Welt als Raster aller Objekte öffnen; Dimension optional, standardmäßig aus allen Packs", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Optionale Dimension, deren Objekt-Pack angeordnet wird; leer lassen, um Objekte aus jedem Pack zusammenzuführen", + "iris.director.commandobject.param.seed_generate_studio_with": "Seed für die Generierung des Studios", + "iris.director.commandobject.director.check_composition_object": "Überprüfen Sie die Zusammensetzung eines Objekts", + "iris.director.commandobject.param.object_analyze": "Das Objekt zu analysieren", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Schrumpfen Sie ein Objekt auf seine minimale Größe", + "iris.director.commandobject.param.object_shrink": "Das Objekt zu schrumpfen", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Organische Äste durch die Krone wachsen lassen, damit jedes Blatt den Zerfall in vanilla übersteht", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Objektschlüssel, Präfix (Bäume/) oder Dateisystempfad", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true analysiert nur und schreibt nichts", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N legt die maximale Astlänge in Blöcken ab vorhandenem Holz fest; weiter entfernte Blattgruppen bleiben stattdessen dauerhaft bestehen. reach=0 wächst unbegrenzt", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Konvertieren Sie .schem-Dateien im Ordner 'konvertieren' in .iob- Dateien.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Holen Sie sich ein Pulver, das Objekte enthüllt", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Auswahl abhängig von deiner Blickrichtung verkleinern", + "iris.director.commandobject.param.amount_inset_by": "Der einzusetzende Betrag", + "iris.director.commandobject.director.set_point_1_look": "Punkt 1 auf die betrachtete Position setzen", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Ob Sie Ihre aktuelle Position verwenden oder wohin Sie schauen", + "iris.director.commandobject.director.set_point_2_look": "Punkt 2 auf die betrachtete Position setzen", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Ob Sie Ihre aktuelle Position verwenden oder wohin Sie schauen", + "iris.director.commandobject.director.paste_object": "Einfügen eines Objekts", + "iris.director.commandobject.param.object_paste": "Das einzufügende Objekt", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Ob das Objekt bearbeitet werden soll oder nicht (muss den Zauberstab halten)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Die Anzahl der Grade, um sich zu drehen", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Der Faktor, um den die Objektplatzierung skaliert werden soll", + "iris.director.commandobject.param.scale_interpolator_use": "Der Scale Interpolator zur Verwendung", + "iris.director.commandobject.director.save_object": "Speichern eines Objekts", + "iris.director.commandobject.param.dimension_store_object": "Die Dimension zum Speichern des Objekts in", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Die Datei, um es zu speichern, kann / für Unterordner verwenden", + "iris.director.commandobject.param.overwrite_existing_object_files": "Bestehende Objektdateien überschreiben", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Wenn möglich die ältere TileState-Serialisierung verwenden", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Verschieben Sie eine Auswahl in Ihre Blickrichtung", + "iris.director.commandobject.param.amount_shift_by": "Der Betrag zur Verschiebung", + "iris.director.commandobject.director.undo_number_pastes": "Mehrere Einfügevorgänge rückgängig machen", + "iris.director.commandobject.param.amount_pastes_undo": "Die Menge der Einfügungen, um rückgängig zu machen", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Einen Objektzauberstab erhalten und die aktuelle WorldEdit-Auswahl übernehmen", + "iris.director.commandobject.director.get_object_wand": "Holen Sie sich einen Objektstab", + "iris.director.commandobject.director.autoselect_up_down_out": "automatisch auswählen nach oben, unten & aus", + "iris.director.commandobject.director.autoselect_up_out": "automatisch auswählen auf & aus", + "iris.director.commandpack.director.pack_validation_maintenance": "Validierung und Wartung von Packs", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Ein Pack oder alle Packs validieren und die Ergebnisse erneut veröffentlichen", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Name des zu validierenden Pack-Ordners; für alle leer lassen", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Vorschau oder Anwendung der Säuberung unbenutzter Ressourcen", + "iris.director.commandpack.param.pack_folder_name_clean": "Name des zu bereinigenden Pack-Ordners", + "iris.director.commandpack.param.preview_apply": "preview oder apply", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Vorschau oder Anwendung der Wiederherstellung der neuesten Quarantäne", + "iris.director.commandpack.param.pack_folder_name_restore": "Name des wiederherzustellenden Pack-Ordners", + "iris.director.commandpack.param.preview_apply_2": "preview oder apply", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Cache-Validierungsstatus für ein Pack anzeigen", + "iris.director.commandpack.param.pack_folder_name": "Der Pack-Ordnername", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Deine Iris-Welten vorgenerieren!", + "iris.director.commandpregen.director.pregenerate_world": "Eine Welt vorgenerieren", + "iris.director.commandpregen.param.radius_pregen_blocks": "Radius der Vorgenerierung in Blöcken", + "iris.director.commandpregen.param.world_pregen": "Vorzubearbeitende Welt", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Zentrum der Vorgenerierung; verwende \"me\" für deine aktuelle Position", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Iris-Vorgenerierungs-GUI öffnen", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Nur jeweils einen Chunk generieren", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Stoppen Sie die aktive Vorgenerationsaufgabe", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pause / Fortsetzung der aktiven Vorgenerationsaufgabe", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Zeigen Sie den aktiven Vorgenerationsstatus", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris Strukturtools (Index, Import, Info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "structure-index.json mit allen Strukturen aus vanilla, Datapacks und Iris neu erstellen", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Dimension, deren Pack indexiert werden soll", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "JEDE Struktur aus vanilla und importierten Datapacks als bearbeitbare Iris-Ressource in dieses Pack importieren und vorhandene Dateien überschreiben. Jigsaw-Strukturen wie Dörfer, Außenposten und Datapack-Jigsaws werden als bearbeitbare Pool-/Teilegraphen rekonstruiert, jede NBT-Strukturvorlage wird als Objekt importiert und Strukturen aus mehreren Vorlagen werden zusammengesetzt. Nach dem Datapack-Import und einem Neustart ausführen. Chunks neu generieren oder eine neue Welt verwenden, damit die importierten Kopien platziert werden.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Dimension, in deren Pack importiert werden soll", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Codegenerierte Strukturen ohne NBT-Vorlage wie Sumpfhütten und Iglus als bearbeitbare Iris-Objekte erfassen, indem sie in einer temporären Testwelt erzeugt und ihre Blöcke eingelesen werden. Bereits importierbare, zu große oder in einer flachen Oberwelt nicht generierbare Strukturen werden übersprungen; Festungen, Waldanwesen und Monumente bleiben bei vanilla. Jede erfasste Struktur wird zu einer einteiligen Iris-Struktur. Dieser Schritt läuft automatisch zuletzt bei /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Dimension, in deren Pack erfasst werden soll", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Überprüfen Sie die Eignung einer nativen Struktur und lokalisieren Iris-Platzierte Strukturen, ohne native Suchen zu blockieren.", + "iris.director.commandstructure.param.dimension_verify": "Die zu prüfende Dimension", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Suchradius in Chunks um den Ursprung (größer ist viel langsamer)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Lösen Sie den Puzzlegraphen einer Irisstruktur und melden Sie die Stückzahl & Grenzen", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Dimension, deren Pack die Struktur enthält", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Die Irisstruktur Schlüssel zu überprüfen", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Montage und Platzieren einer Irisstruktur an Ihrem Standort (Studio-Tests)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Dimension, deren Pack die Struktur enthält", + "iris.director.commandstructure.param.iris_structure_key_place": "Der Irisstrukturschlüssel zum Platzieren", + "iris.director.commandstudio.director.studio_commands": "Studio-Befehle", + "iris.director.commandstudio.director.open_new_studio_world": "Eröffne eine neue Studiowelt", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Dimensions-Pack, für das ein Studio geöffnet werden soll", + "iris.director.commandstudio.param.seed_generate_studio_with": "Seed für die Generierung des Studios", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Bäume, Pilze und Objekte sowie structures/jigsaw aus vanilla vom Server in den Ordner objects/vanilla eines Pack importieren", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Dimensions-Pack, in das Inhalte aus vanilla importiert werden sollen", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Wie viele Varianten pro Baum / Objekt-Funktion zu erfassen", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Auch structures/jigsaw aus vanilla und Datapacks in das Pack importieren", + "iris.director.commandstudio.director.open_vscode_dimension": "Offen VSCode für eine Dimension", + "iris.director.commandstudio.param.dimension_open_vscode": "Die Dimension zu öffnen VSCode für", + "iris.director.commandstudio.director.close_open_studio_project": "Schließen Sie ein offenes Studioprojekt", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Schalten Sie Ihr Studio Debug Scoreboard um", + "iris.director.commandstudio.director.create_new_studio_project": "Erstellen Sie ein neues Studioprojekt", + "iris.director.commandstudio.param.name_this_new_iris_project": "Der Name dieses neuen Iris Projekt.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Inhalt eines bestehenden Projekts im Pack-Ordner kopieren und als Vorlage für dieses neue Projekt verwenden", + "iris.director.commandstudio.director.get_version_pack": "Version eines Pack abrufen", + "iris.director.commandstudio.param.dimension_get_version": "Die Dimension erhält die Version von", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Noise Explorer als externe GUI öffnen", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Optionaler Pack-Generator zur Vorschau", + "iris.director.commandstudio.param.seed_preview_generator_with": "Der Seed zur Vorschau des Generators mit", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Beute anzeigen, die eine Truhe an dieser Stelle enthalten würde", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Schnelles Einfügen von Elementen in das virtuelle Inventar (kann zu Leistungseinbußen führen)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Angabe, ob das derzeit geöffnete Inventar angehängt werden soll oder nicht (falls falsch, löscht eröffnetes Inventars)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Berechnen Sie die Chance für jede Region zu generieren", + "iris.director.commandstudio.param.radius_chunks": "Radius in Chunks", + "iris.director.commandstudio.director.render_world_map_external_gui": "Rendern einer Weltkarte (Externes GUI)", + "iris.director.commandstudio.param.world_open_generator": "Die Welt öffnet den Generator für", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Packen Sie eine Dimension in ein komprimiertes Format", + "iris.director.commandstudio.param.dimension_pack_compress": "Zu komprimierendes Dimensions-Pack", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Ob das Pack verschleiert werden soll", + "iris.director.commandstudio.param.whether_not_minify_pack": "Ob das Pack minimiert werden soll", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiliert die Leistung einer Dimension", + "iris.director.commandstudio.param.dimension_profile": "Dimension zum Profil", + "iris.director.commandstudio.director.spawn_iris_entity": "Eine Iris-Entität spawnen", + "iris.director.commandstudio.param.entity_spawn": "Die zu spawnende Entität", + "iris.director.commandstudio.param.location_spawn_entity_at": "Position, an der die Entität erscheinen soll", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teleportieren in die aktive Studiowelt", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "VSCode-Arbeitsbereich des Dimensionsprojekts aktualisieren", + "iris.director.commandstudio.param.dimension_update_workspace": "Die Dimension zum Aktualisieren des Workspace von", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "IGenData-Chunk-Bericht für nahe gelegene Chunks erfassen", + "iris.director.commandwhat.director.iris_what": "Iris Was?", + "iris.director.commandwhat.director.what_is_my_hand": "Was ist in meiner Hand?", + "iris.director.commandwhat.director.what_biome_am_i": "In welchem Biom bin ich?", + "iris.director.commandwhat.director.what_region_am_i": "In welcher Region bin ich?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Welchen Block schaue ich mir an?", + "iris.director.commandwhat.director.show_markers_chunk": "Markierungen im Chunk anzeigen", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Markierungsname wie cave floor oder cave ceiling", + "iris.modded.help.entry.command.version": "Versionsinformationen anzeigen", + "iris.modded.help.entry.command.info": "Geladene Iris-Dimensionen und Details zu ihrem Pack auflisten", + "iris.modded.help.entry.command.what": "Iris-Biom, Region, Höhlenbiom, Oberfläche und Chunk an deiner Position sowie den angesehenen Block, den gehaltenen Gegenstand oder nahe Markierungen untersuchen", + "iris.modded.help.entry.group.find": "Finden und teleportieren Sie Iris-Biome, Regionen, Objekte, Iris-Strukturen, native Strukturen und Sehenswürdigkeiten", + "iris.modded.help.entry.command.tp": "Dich selbst oder einen angegebenen Spieler in eine geladene Iris-Dimension teleportieren", + "iris.modded.help.entry.command.evacuate": "Alle Spieler aus einer Iris-Dimension zum Spawn der primären Welt teleportieren", + "iris.modded.help.entry.command.seed": "Seed-Informationen der Welt und Engine anzeigen", + "iris.modded.help.entry.command.debug": "Iris-Debugprotokollierung umschalten und settings.json speichern", + "iris.modded.help.entry.command.reload": "settings.json neu laden; die Datei wird außerdem automatisch alle 3 Sekunden direkt neu geladen", + "iris.modded.help.entry.command.download": "Ein Pack-Projekt herunterladen", + "iris.modded.help.entry.command.metrics": "Generierungsmetriken der aktuellen Iris-Dimension anzeigen", + "iris.modded.help.entry.command.regen": "Löschen und regenerieren Sie nahe gelegene Chunks an Ort und Stelle", + "iris.modded.help.entry.group.pregen": "Eine Iris-Dimension vorgenerieren", + "iris.modded.help.entry.command.wand": "Einen Iris-Objektzauberstab erhalten", + "iris.modded.help.entry.group.object": "Werkzeuge für Objektzauberstab, Speichern, Einfügen, Analyse und Rückgängigmachen", + "iris.modded.help.entry.group.edit": "JSON-Dateien für Biom, Region und Dimension eines Pack im Desktop-Editor öffnen", + "iris.modded.help.entry.command.create": "Eine dauerhafte Iris-Dimension erstellen und einbinden; pack:dimensionKey in Anführungszeichen wählt eine bestimmte Dimension aus dem Pack", + "iris.modded.help.entry.group.studio": "Erstellung, Paketierung und Berichte für Pack-Projekte", + "iris.modded.help.entry.group.pack": "Validierung und Wartung von Packs", + "iris.modded.help.entry.group.world": "Iris-Dimensionen zur Laufzeit erstellen, entfernen und ihren Status anzeigen", + "iris.modded.help.entry.group.datapack": "Hilfen für Installation und Status von Welt-Datapacks", + "iris.modded.help.entry.group.structure": "Werkzeuge für Iris-Strukturindex, Informationen und Platzierung", + "iris.modded.help.entry.command.goldenhash": "Generieren Sie deterministische Block-Hashes für Paritätstests", + "iris.modded.help.entry.group.developer": "Entwicklerdiagnostik: Sentry-Test, Netzwerkschnittstellen, Region-Datei-Scan", + "iris.modded.help.entry.command.biome": "Ein Iris-Biom finden", + "iris.modded.help.entry.command.region": "Eine Iris-Region finden", + "iris.modded.help.entry.command.object": "Finden Sie eine Objektplatzierung", + "iris.modded.help.entry.command.structure": "Eine von Iris platzierte oder native/Datapack-Struktur finden", + "iris.modded.help.entry.command.poi": "Finden Sie einen unterstützten Punkt von Interesse", + "iris.modded.help.entry.command.biome_2": "Öffnen Sie ein Biom-Json in Ihrem Desktop-Editor; kein Schlüssel öffnet das Biom an Ihrer Position", + "iris.modded.help.entry.command.region_2": "Öffnen Sie eine Region Json in Ihrem Desktop-Editor; kein Schlüssel öffnet die Region an Ihrer Position", + "iris.modded.help.entry.command.dimension": "Dimensions-JSON des aktuellen Pack im Desktop-Editor öffnen", + "iris.modded.help.entry.command.start": "Vorgenerierung starten; Radius in Blöcken, fortsetzbarer Checkpoint-Cache standardmäßig aktiv, Zentrum über 'at '; Optionen können in beliebiger Reihenfolge kombiniert werden", + "iris.modded.help.entry.command.stop": "Stoppen Sie die aktive Vorgenerationsaufgabe", + "iris.modded.help.entry.command.pause": "Pause oder Wiederaufnahme der Vorgeneration", + "iris.modded.help.entry.command.status": "Vorgenerationsstatus anzeigen", + "iris.modded.help.entry.command.wand_3": "Einen Iris-Objektzauberstab erhalten", + "iris.modded.help.entry.command.dust": "Holen Sie sich Staub, der Objektplatzierungen enthüllt", + "iris.modded.help.entry.command.save": "Speichern Sie das ausgewählte Zauberstabvolumen als Objekt", + "iris.modded.help.entry.command.paste": "Fügen Sie ein Objekt an Ihrer Position oder einer bestimmten Position, optional gedreht", + "iris.modded.help.entry.command.expand": "Erweitern Sie die Zauberstabauswahl in Ihre Blickrichtung", + "iris.modded.help.entry.command.contract": "Zauberstabauswahl entgegen deiner Blickrichtung verkleinern", + "iris.modded.help.entry.command.shift": "Verschieben Sie die Zauberstabauswahl in Ihre Blickrichtung", + "iris.modded.help.entry.command.position1": "Auswahlpunkt 1 setzen", + "iris.modded.help.entry.command.position2": "Auswahlpunkt 2 setzen", + "iris.modded.help.entry.command.x_y": "Nach oben und außen automatisch auswählen", + "iris.modded.help.entry.command.x_y_2": "Nach oben, unten und außen automatisch auswählen", + "iris.modded.help.entry.command.analyze": "Objektzusammensetzung zeigen", + "iris.modded.help.entry.command.shrink": "Schrumpfen Sie ein Objekt auf seine minimale Größe", + "iris.modded.help.entry.command.plausibilize": "Äste wachsen lassen, damit Baumblätter den Zerfall in vanilla überstehen", + "iris.modded.help.entry.command.undo": "Eingefügte Objekte rückgängig machen", + "iris.modded.help.entry.command.create_2": "Erstellen Sie ein neues Pack-Projekt", + "iris.modded.help.entry.command.package": "Eine Dimension in ein komprimiertes Format packen", + "iris.modded.help.entry.command.version_2": "Version eines Pack anzeigen", + "iris.modded.help.entry.command.regions": "Verteilung der Regionen in der Nähe berechnen", + "iris.modded.help.entry.command.open": "Öffnen Sie eine temporäre Studio-Dimension für ein Pack", + "iris.modded.help.entry.command.close": "Schließen Sie die offene Studio-Dimension und verwerfen Sie ihre Welt", + "iris.modded.help.entry.command.tpstudio": "Teleportieren in die offene Studio-Dimension", + "iris.modded.help.entry.command.status_studio": "Geöffnete Studio-Dimension und ihr Pack anzeigen", + "iris.modded.help.entry.command.noise": "Öffnen Sie den Noise Explorer GUI auf dem Server Display", + "iris.modded.help.entry.command.map": "Öffnen Sie die Vision Map GUI auf dem Server Display", + "iris.modded.help.entry.command.vscode": "Regenerieren Sie den .code-Workspace für ein Pack und öffnen Sie ihn in Ihrem Desktop Editor", + "iris.modded.help.entry.command.update": "Regenerieren Sie den .code-Workspace für ein Pack", + "iris.modded.help.entry.command.importvanilla": "Importablauf für vanilla erklären", + "iris.modded.help.entry.command.validate": "Ein Pack oder alle Packs validieren", + "iris.modded.help.entry.command.cleanup": "Vorschau- oder Quarantänekandidaten für ungenutzte Ressourcen", + "iris.modded.help.entry.command.restore": "Vorschau oder Wiederherstellung der neuesten Quarantäne", + "iris.modded.help.entry.command.status_validation": "Validierungsstatus im Zwischenspeicher anzeigen", + "iris.modded.help.entry.command.enable": "Eine dauerhafte Iris-Dimension zur Laufzeit erstellen und einbinden; fehlendes Pack wird heruntergeladen, pack:dimensionKey in Anführungszeichen wählt eine bestimmte Dimension aus dem Pack", + "iris.modded.help.entry.command.replace_overworld": "Eine primäre Iris-Welt einbinden und Spieler statt in die vanilla-Oberwelt dorthin leiten", + "iris.modded.help.entry.command.disable": "Eine Iris-Dimension evakuieren und entladen; ihre Weltdaten bleiben zum erneuten Aktivieren erhalten", + "iris.modded.help.entry.command.delete": "Eine Iris-Dimension deaktivieren und ihre Chunk- und Mantle-Daten vom Datenträger löschen", + "iris.modded.help.entry.command.list": "Geladene Iris-Dimensionen auflisten", + "iris.modded.help.entry.command.status_world": "Geladene Iris-Dimensionen und die konfigurierte primäre Welt anzeigen", + "iris.modded.help.entry.command.status_datapack": "Geladene Iris-Überschreibungen für Dimensionstypen prüfen", + "iris.modded.help.entry.command.install": "Dimensionstyp-Überschreibungen für geladene Iris-Dimensionen installieren", + "iris.modded.help.entry.command.list_datapacks": "Liste konfigurierter und installierter Datenpakete", + "iris.modded.help.entry.command.ingest": "Bukkit-Ablauf für den Datapack-Import erklären", + "iris.modded.help.entry.command.remove": "Erläutern Sie den Datapack-Entfernungsworkflow", + "iris.modded.help.entry.command.list_structures": "structure-index.json neu erstellen", + "iris.modded.help.entry.command.info_2": "Graph einer Iris-Struktur auflösen und ihre Grenzen anzeigen", + "iris.modded.help.entry.command.place": "Eine Iris-Struktur zusammensetzen und an deiner Position platzieren", + "iris.modded.help.entry.command.import": "Bukkit-Ablauf für den Strukturimport erklären", + "iris.modded.help.entry.command.capture": "Bukkit-Ablauf für die Strukturerfassung erklären", + "iris.modded.help.entry.command.verify": "Erreichbarkeit nativer und Iris-Strukturen in der aktuellen Dimension anzeigen", + "iris.modded.help.entry.command.sentry": "Eine Testausnahme an den Iris-Fehlerbericht senden", + "iris.modded.help.entry.command.network": "Liste der Netzwerkschnittstellen und ihrer Adressen", + "iris.runtime.progress.finding_regions": "Regionen werden gesucht", + "iris.runtime.progress.converting": "Umwandlung", + "iris.runtime.status.running": "Läuft", + "iris.runtime.status.stopped": "Gestoppt", + "iris.runtime.status.paused": "Angehalten", + "iris.runtime.status.paused_lower": "pausiert", + "iris.runtime.status.running_lower": "läuft", + "iris.runtime.status.enabled": "aktiviert.", + "iris.runtime.status.disabled": "deaktiviert.", + "iris.runtime.status.unregistered": "nicht registriert", + "iris.runtime.status.none": "keine", + "iris.runtime.status.random": "Zufall", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "wahr", + "iris.runtime.status.false": "falsch", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " wird überschrieben", + "iris.runtime.datapack.override_suffix": " (World Datapack Override installiert)", + "iris.runtime.primary_world.players_routed_suffix": " (Spieler dort geroutet)", + "iris.runtime.primary_world.routing_disabled_suffix": " (Routing deaktiviert)", + "iris.runtime.modded.no_dimension_match": "Keine Iris-Dimension entspricht '{filter}'.", + "iris.runtime.teleport.world": "Du wurdest nach {world} teleportiert.", + "iris.runtime.engine.hotloaded": "Engine neu geladen", + "iris.runtime.job.completed": "{job} in {duration} abgeschlossen", + "iris.runtime.job.scanning_selection": "Auswahl wird gescannt", + "iris.runtime.job.loading_chunks": "Chunks werden geladen", + "iris.runtime.job.searched_chunks": "{chunks} Chunks durchsucht", + "iris.runtime.job.compile": "Kompilieren", + "iris.runtime.job.saving_object": "Objekt wird gespeichert", + "iris.runtime.job.downloading": "Wird heruntergeladen", + "iris.runtime.job.extracting": "Wird extrahiert", + "iris.runtime.job.installing": "Wird installiert", + "iris.runtime.compile.iob_empty": "- IOB {file} hat 0 Blöcke!", + "iris.runtime.compile.iob_empty_hover": "Fehler:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} ist nicht 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Fehler:\n{path}\nDie Breite, Höhe oder Tiefe ist Null (schlechtes Format)", + "iris.runtime.compile.json_error": "- JSON Fehler {file}", + "iris.runtime.compile.json_error_hover": "Fehler:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Kann keinen Loader für {path} finden", + "iris.runtime.datapack.name": "Iris-Weltgenerierung", + "iris.runtime.pack.already_exists": "Pack existiert bereits!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "{object} übersprungen: Laden fehlgeschlagen", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} Holz ({branches} Äste), {converted} Blätter->Holz, ~{distances} Distanzen", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} Holz ({branches} Äste), {converted} Blätter->Holz, ~{distances} Distanzen, !{pinned} fixiert", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "Fehler bei {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Fertig: {processed} verarbeitet, {changed} geändert, {skipped} übersprungen, {failed} fehlgeschlagen", + "iris.runtime.tree_plausibilize.done_dry": "Fertig: {processed} verarbeitet, {changed} geändert, {skipped} übersprungen, {failed} fehlgeschlagen (Testlauf, nichts geschrieben)", + "iris.runtime.tree_plausibilize.totals": "Gesamt: +{wood} Holz ({branches} Äste), {converted} Blätter->Holz, ~{distances} Distanzen, !{pinned} fixiert, nicht erreichbar {before} -> {after}", + "iris.runtime.item.wand.name": "Zauberstab von Iris", + "iris.runtime.item.wand.lore.first": "Linksklicke auf einen Block, um die erste Ecke festzulegen", + "iris.runtime.item.wand.lore.second": "Rechtsklicke auf einen Block, um die zweite Ecke festzulegen", + "iris.runtime.item.dust.name": "Aufschlussstaub", + "iris.runtime.item.dust.lore": "Klicken Sie mit der rechten Maustaste auf einen Block, um seine Platzierungsstruktur zu enthüllen!", + "iris.runtime.wand.position_set": "Position {position} auf {x}, {y}, {z} gesetzt", + "iris.runtime.dust.iris_world_required": "Diese Dimension wurde nicht von Iris generiert.", + "iris.runtime.dust.found_object": "Objekt {object} gefunden", + "iris.runtime.dust.revealed": "{count} Block/Blöcke von {object} aufgedeckt", + "iris.runtime.dust.revealed_capped": "{count} Block/Blöcke von {object} aufgedeckt (begrenzt)", + "iris.runtime.dust.header": "--- Iris-Staub @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Block: {block}", + "iris.runtime.dust.position.above": "Position: +{offset} über der Oberfläche (Oberflächen-Y={surfaceY})", + "iris.runtime.dust.position.below": "Position: {offset} unter der Oberfläche (Oberflächen-Y={surfaceY})", + "iris.runtime.dust.position.at": "Position: an der Oberfläche (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Objekt @block: {object}", + "iris.runtime.dust.none": "keine", + "iris.runtime.dust.placed_by.object_above": "Platziert von: Objekt / Stelze '{object}' (über der Oberfläche)", + "iris.runtime.dust.placed_by.decoration_above": "Platziert von: Dekoration/Objekt/Stelze (über der Oberfläche)", + "iris.runtime.dust.placed_by.buried_object": "Platziert von: begrabenes Objekt '{object}'", + "iris.runtime.dust.placed_by.terrain": "Platziert von: Geländeschicht (Tiefe {depth} unter der Oberfläche)", + "iris.runtime.dust.column_object": "Spaltenobjekt: {object} -> Dieser Block ist wahrscheinlich die Stelze dieses Objekts", + "iris.runtime.dust.column_object_none": "Spaltenobjekt: {detail}", + "iris.runtime.dust.column_none": "keines innerhalb von 64 (Dekoration oder Terrain, KEINE Objektstelze)", + "iris.runtime.dust.column.above": "{object} @Y={y} (oben)", + "iris.runtime.dust.column.below": "{object} @Y={y} (unten)", + "iris.runtime.dust.surface_biome": "Oberflächenbiom: {biome}", + "iris.runtime.dust.surface_biome_detail": "Oberflächenbiom: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biom @Y: {biome}", + "iris.runtime.dust.cave_biome": "Höhle/Mantle Biom: {biome}", + "iris.runtime.dust.server_biome": "Serverbiom: {biome} (ID: {id})", + "iris.runtime.dust.region": "Region: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objekte in Chunk: {objects}", + "iris.runtime.dust.copy_button": "[Klicken Sie, um diese Statistiken zu kopieren]", + "iris.runtime.dust.copy_hover": "Blockstatistiken in die Zwischenablage kopieren", + "iris.runtime.pregen.starting": "Iris-Vorgenerierung wird gestartet...", + "iris.runtime.pregen.header": "Iris-Vorgenerierung", + "iris.runtime.pregen.bossbar.paused": "Iris-Vorgenerierung {generated}/{total} {percent}% PAUSIERT", + "iris.runtime.pregen.bossbar.running": "Iris-Vorgenerierung {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " fehlgeschlagen {failed}", + "iris.runtime.pregen.status.context": "Dimension {dimension} · Methode {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunks {generated}/{total} · Geschwindigkeit {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunks {generated}/{total} · Geschwindigkeit {speed}/s · Fehlgeschlagen {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Verstrichen {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Verstrichen {elapsed} · PAUSIERT", + "iris.runtime.pregen.button.pause": "Pause/Wiederaufnahme", + "iris.runtime.pregen.button.pause.hover": "Pausenstatus der Vorgenerierung umschalten", + "iris.runtime.pregen.button.stop": "Stopp", + "iris.runtime.pregen.button.stop.hover": "Aktuelle Region abschließen und Vorgenerierung stoppen", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cOrdner packs/ nicht gefunden.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eKeine Packs zum Validieren vorhanden.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidierung abgeschlossen. Fehlerhafte Packs: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPack '{pack}' wurde unter packs/ nicht gefunden.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aKeine Bereinigungskandidaten für Pack '{pack}' gefunden.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a{size} Bereinigungskandidat(en) unter {quarantinePath} unter Quarantäne gestellt.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cDer Bereinigungsmodus muss preview oder apply sein.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aKeine Bereinigungskandidaten für Pack '{pack}' gefunden.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eBereinigungsvorschau für Pack '{pack}': {size} Kandidat(en). Es wurden keine Dateien geändert.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Führe /iris pack cleanup {pack} mode=apply aus, um diese Kandidaten nach einem erneuten Scan unter Quarantäne zu stellen.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cWiederherstellung abgelehnt, da {size} Ziel(e) bereits vorhanden sind.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eFür Pack '{pack}' ist nichts wiederherzustellen.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a{size} Datei(en) aus {dumpPath} wiederhergestellt.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cDer Wiederherstellungsmodus muss preview oder apply sein.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eFür Pack '{pack}' ist nichts wiederherzustellen.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eWiederherstellungsvorschau für {dumpPath}: {size} Datei(en). Es wurden keine Dateien geändert.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cDie Wiederherstellung wird durch {size} vorhandene(s) Ziel(e) blockiert.", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Führe /iris pack restore {pack} mode=apply aus, um die Wiederherstellung nach einer erneuten Konfliktprüfung anzuwenden.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eEs wurden keine Validierungsergebnisse aufgezeichnet. Führe zuerst /iris pack validate aus.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK§r {pack}§7 (blockierend={blocking}, Warnungen={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBROKEN§r {pack}§7 (blockierend={blocking}, Warnungen={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cBereinigung fehlgeschlagen: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cWiederherstellung fehlgeschlagen: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "weiterhin unter Quarantäne", + "iris.bukkit.runtime.commandpack.path.quarantined": "unter Quarantäne", + "iris.bukkit.runtime.commandpack.path.candidate": "Kandidat", + "iris.bukkit.runtime.commandpack.path.conflict": "Konflikt", + "iris.bukkit.runtime.commandpack.path.restored": "wiederhergestellt", + "iris.bukkit.runtime.commandpack.path.file": "Datei", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eKein Validierungsergebnis für '{pack}'. Führe /iris pack validate {pack2} aus.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cValidierung von '{name}' fehlgeschlagen: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPack '{packName}' kann geladen werden.§7 (Warnungen={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPack '{packName}' ist fehlerhaft:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... und {count} weitere Warnungen.", + "one": "§7 ... und {count} weitere Warnung." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cErstelle vor der Verwendung immer eine Sicherungskopie.", + "§eMögliche Probleme sind unter anderem:", + "§e - Beschädigte Chunk-Übergänge zwischen alten und neuen Chunks (vor und nach dem Update)", + "§e - Regenerierte Chunks, die nicht zu den alten Chunks passen", + "§e - Strukturen, die bei der Regeneration nicht erneut erzeugt werden", + "§e - Nicht zusammenpassende Höhlengänge", + "§e - Nicht zusammenpassende Geländeschichten", + "§cWenn du die Risiken verstanden und eine Sicherungskopie erstellt hast:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportiere §f{total}§a Strukturen aus vanilla und Datapacks (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[Fehler] {keyString}: ungültiger Schlüssel", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[übersprungen] {keyString}: kein NBT mit einer einzelnen Vorlage – vanilla erzeugt diese Struktur im Code oder aus getrennten Teilvorlagen, die im Vorlagendurchlauf importiert werden; es gibt keine einzelne Struktur zu importieren.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[Fehler] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aMassenimport abgeschlossen: §f{imported}§a importiert, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen (§f{total}§a insgesamt).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aErstelle Strukturen mit einzelner Vorlage aus importierten Teilen (pro Generierung wird eine Variante platziert)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[Gruppe] {value} -> {value2} ({blocks} Varianten)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[übersprungen] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[Fehler] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aStrukturen mit einzelner Vorlage: §f{imported}§a erstellt, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cStrukturvorlagen konnten nicht über den ResourceManager des Servers ermittelt werden: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eUnter dem Ressourcenpfad 'structure' wurden keine Strukturvorlagen gefunden.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportiere §f{total}§a Strukturvorlagen (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[Fehler] {keyString}: ungültiger Schlüssel", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[Fehler] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importiert, {skipped} übersprungen, {failed} fehlgeschlagen)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aVorlagenimport abgeschlossen: §f{imported}§a importiert, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen (§f{total}§a insgesamt).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eEs sind keine Datapack-Strukturen außerhalb von Minecraft registriert. Importiere zuerst ein Datapack, starte den Server neu und führe diesen Vorgang anschließend erneut aus.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportiere §f{total}§a Datapack-Strukturen (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[Fehler] {keyString}: ungültiger Schlüssel", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[Fehler] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportiere §f{size}§a Datapack-Strukturvorlagen...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[Fehler] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[Fehler] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eDatapack-Vorlagen konnten nicht über den ResourceManager des Servers ermittelt werden: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aImport der Datapack-Strukturen abgeschlossen: §f{imported}§a importiert, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eDie aktive NMS-Anbindung unterstützt keine Strukturerfassung; der Erfassungsdurchlauf wird übersprungen.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Es sind keine codegenerierten Strukturen mehr zu erfassen (alle wurden bereits als Struktur importiert).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aErfasse §f{total}§a codegenerierte Strukturen ohne NBT-Vorlage in einer temporären Arbeitswelt; Strukturen mit mehr als {MAXSPAN} Blöcken Breite oder Höhe werden übersprungen...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[übersprungen] {key}: Hier wurde keine erfassbare Struktur platziert (zu groß, falsche Dimension oder keine gültige Platzierung in einer flachen Welt). Sie wird weiterhin von vanilla generiert.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[Fehler] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[Erfassung] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[Fehler] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} erfasst, {skipped} übersprungen, {failed} fehlgeschlagen)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aStrukturerfassung abgeschlossen: §f{imported}§a erfasst, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen (§f{total}§a insgesamt).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eDie aktive NMS-Anbindung stellt keine Baum-/Objekt-Features aus vanilla bereit; es werden nur Strukturen importiert.", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportiere §f{total}§a Baum-/Objekt-Features aus vanilla mit jeweils §f{wantVariants}§a Varianten in eine temporäre Arbeitswelt...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[Objekt] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[übersprungen] {key}: Das Feature hat auch nach mehreren Versuchen nichts platziert.", + "iris.bukkit.runtime.featureimporter.fail": "§c[Fehler] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importiert, {skipped} übersprungen, {failed} fehlgeschlagen)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aFeature-Import abgeschlossen: §f{imported}§a Features geschrieben, §f{skipped}§a übersprungen, §f{failed}§a fehlgeschlagen (§f{total}§a insgesamt).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cDie temporäre Arbeitswelt für den Feature-Import konnte nicht erstellt werden ({error}); der Baum-/Objekt-Durchlauf wird übersprungen.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Unter {path} wurden keine zu konvertierenden Schematic-Dateien gefunden.", + "iris.bukkit.runtime.irisconverter.converted": "§a{name} -> {value} in {value2} konvertiert", + "iris.bukkit.runtime.irisconverter.converted_2": "§a{name} -> {value} konvertiert", + "iris.bukkit.runtime.irisconverter.failed_save": "§cSpeichern fehlgeschlagen: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cKonvertierung fehlgeschlagen: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Konvertiert: {get} in {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cEinige Schematic-Dateien konnten nicht konvertiert werden. Weitere Einzelheiten stehen in der Konsole.", + "iris.bukkit.runtime.studiosvc.installing_package": "Installiere Paket: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Suche nach Paket: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "{type}.iris im Ordner {WORKSPACENAME} gefunden", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Dimension {type} im Ordner {WORKSPACENAME} gefunden. Sie wird neu gepackt.", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "{name} wurde im Dimensionsordner dieses Pack nicht gefunden. Vorgang fehlgeschlagen!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Die Dimension konnte nicht geladen werden. Vorgang fehlgeschlagen!", + "iris.bukkit.runtime.studiosvc.type_installed": "Typ {name} installiert. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Pack '{key}' wurde nicht in der Pack-Liste gefunden.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Verwende /iris download branch=, um den Download manuell auszuführen.", + "iris.bukkit.runtime.studiosvc.failed_download": "Download von '{key}' fehlgeschlagen.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Download der Beta-Version IrisDimensions/overworld fehlgeschlagen.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Download von '{repo}' (Branch {branch}) fehlgeschlagen.", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Studio-Welt konnte nicht geöffnet werden: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Studio '{dimm}' kann nicht geöffnet werden – das Pack enthält blockierende Fehler:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Behebe das Pack und führe /iris pack validate {dimm} aus, um es erneut zu validieren.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Das bestehende Studioprojekt konnte nicht geschlossen werden: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Das bestehende Studioprojekt konnte nicht geschlossen werden: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Studio-Welt konnte nicht geöffnet werden: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Das Pack zum Erstellen einer neuen Dimension wurde nicht gefunden.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Fehlende Datei mit importierter Dimension", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importiere {downloadable} in das neue Projekt {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio: keine Zelle unter Klick (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: speichere §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: keine Änderungen für {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: leere Zelle {pack}/{key} (nichts zu schreiben).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: keine Zieldatei für {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: gespeichert §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: Speichern von {pack}/{key} fehlgeschlagen ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Dimension \"{value}\" konnte nicht geladen werden.", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Dimensions-Loader konnte nicht abgerufen werden.", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStudio konnte nicht geöffnet werden: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStudio konnte nicht geöffnet werden.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio bereit §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Objekte werden serialisiert", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Weitere {g} Objekte geschrieben", + "iris.bukkit.runtime.irisproject.package_compiled": "Paket kompiliert!", + "iris.bukkit.runtime.irisproject.failed": "Fehlgeschlagen!", + "iris.bukkit.runtime.irisengine.total": "Insgesamt: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Engine §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Einzelheiten: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} ist nicht in der Dimension definiert!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§c{message} konnte innerhalb des Suchbereichs nicht gefunden werden.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeleportiere zu {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} bei: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Ihr seid von dieser Welt evakuiert worden.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Ihr seid von dieser Welt evakuiert worden. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Einige Iris Packs enthalten benutzerdefinierte Biome.", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Du musst den Server neu starten, um diese Packs zu verwenden.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Unzureichende Berechtigungen", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Es sind entweder keine Unterbefehle vorhanden oder du hast keine Berechtigung, sie zu verwenden.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Ignorierte Parameter: {m}", + "iris.runtime.studio.opening": "§6Studio §bÖFFNET", + "iris.runtime.studio.opening_progress": "§6Studio §bÖFFNET§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cFEHLGESCHLAGEN§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aBEREIT§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cFEHLGESCHLAGEN§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio bereit§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Initialisierung", + "iris.runtime.studio.stage.queued": "In Warteschlange", + "iris.runtime.studio.stage.resolve_dimension": "Dimension wird aufgelöst", + "iris.runtime.studio.stage.prepare_world_pack": "Welt-Pack wird vorbereitet", + "iris.runtime.studio.stage.install_datapacks": "Datapacks werden installiert", + "iris.runtime.studio.stage.create_world": "Welt wird erstellt", + "iris.runtime.studio.stage.apply_world_rules": "Weltregeln werden angewendet", + "iris.runtime.studio.stage.prepare_generator": "Generator wird vorbereitet", + "iris.runtime.studio.stage.request_entry_chunk": "Start-Chunk wird geladen", + "iris.runtime.studio.stage.resolve_safe_entry": "Sicherer Spawn wird gesucht", + "iris.runtime.studio.stage.teleport_player": "Teleportation", + "iris.runtime.studio.stage.finalize_open": "Abschluss", + "iris.runtime.studio.stage.cleanup": "Bereinigung", + "iris.runtime.world_create.teleport_failed": "§eDie Welt wurde erstellt, aber die automatische Teleportation ist fehlgeschlagen. Versuche /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} Chunks", + "iris.runtime.world_create.console": "§6Generierung §e{percent}%§7 {generated}/{required} Chunks§8 ({remaining} verbleibend)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fVorgenerierung", + "iris.runtime.world_create.pregen.console": "§6Vorgenerierung §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Regenerieren", + "iris.runtime.chunk_job.title.delete": "Löschung", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Vorbereitung", + "iris.runtime.chunk_job.stage.clearing": "Wird geleert", + "iris.runtime.chunk_job.stage.resetting_mantle": "Mantle wird zurückgesetzt", + "iris.runtime.chunk_job.stage.regenerating": "Regenerierung", + "iris.runtime.chunk_job.stage.generating": "Erzeugung", + "iris.runtime.chunk_job.stage.comparing": "Vergleichen", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnose", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bIN ARBEIT", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} Chunks in {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} Chunks in {elapsed} ({failures} fehlgeschlagen)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aFERTIG§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cFEHLGESCHLAGEN§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aFertig§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cFehlgeschlagen§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} abgeschlossen: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} mit Fehlern beendet: {summary}", + "iris.runtime.golden.no_capture": "Keine Golden-Aufnahme unter {path}; führe zuerst eine Aufnahme aus.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash abgebrochen: {failed} Chunks konnten nicht generiert werden. Keine Golden-Datei geschrieben.", + "one": "GoldenHash abgebrochen: {failed} Chunk konnte nicht generiert werden. Keine Golden-Datei geschrieben." + }, + "iris.runtime.golden.failed": "GoldenHash gescheitert: {error}", + "iris.runtime.golden.mantle_reset": "Mantle zurückgesetzt ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle reset fehlgeschlagen ({type}); Fortsetzung mit dem bestehenden Mantle-Zustand.", + "iris.runtime.golden.captured": "Golden-Aufnahme erstellt: {chunks} Chunks, kombiniert={hash}", + "iris.runtime.golden.wrong_world": "Die Golden-Datei gilt für dim={goldenDimension} seed={goldenSeed}, diese Welt jedoch für dim={dimension} seed={seed}. Abbruch.", + "iris.runtime.golden.version_warning": "Golden wurde unter mc={goldenVersion} aufgenommen, aktuell läuft mc={version}. Unterschiede können versionsbedingt sein.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} Chunks, kombiniert={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} Chunks unterscheiden sich.", + "iris.runtime.golden.mismatch_chunk": " Chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (fehlt in Golden)", + "iris.runtime.golden.mismatch_more": " ... und {count} mehr", + "iris.runtime.golden.current_written": "Aktuelle Hashes nach {file} geschrieben", + "iris.runtime.golden.diag.stable": "Wiederholte Generierung STABLE, Mantle-Reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Wiederholte Generierung UNSTABLE ({diffs}+ Blockunterschiede), Mantle-Reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (Mantle-Neuaufbau reproduziert das Scanergebnis)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ Unterschiede - Mantle-Aufbau hängt von Zustand/Reihenfolge ab)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnose fehlgeschlagen: {error}", + "iris.runtime.golden.started": "GoldenHash gestartet: {chunks} Chunks um 0,0 in Puffern (Welt bleibt unverändert), threads={threads} mode={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] Chunk {x},{z} gehasht", + "iris.runtime.golden.chunk_failed": "Chunk {x},{z} FEHLGESCHLAGEN: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Ungültiger Pack-Name '{pack}' (erlaubt: a-z, 0-9, _ und -)", + "iris.runtime.pack_download.invalid_branch_name": "Ungültiger Branch-Name '{branch}' (erlaubt: Buchstaben, Ziffern, . _ und -)", + "iris.runtime.pack_download.failed": "Pack-Download fehlgeschlagen: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "{url} wird heruntergeladen", + "iris.runtime.pack_download.failed_to_find": "Unter {url} wurde kein Pack gefunden", + "iris.runtime.pack_download.check_repository_and_branch": "Stelle sicher, dass du das richtige Repository und den richtigen Branch angegeben hast!", + "iris.runtime.pack_download.example_command": "Zum Beispiel: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "{repository} wird entpackt", + "iris.runtime.pack_download.unpack_failed": [ + "Beim Entpacken ist ein Problem aufgetreten. Bitte prüfe Folgendes:", + "1. Funktioniert deine Internetverbindung?", + "2. Wurde der Download beschädigt?", + "3. Lösche den Ordner */plugins/iris/packs und lade den Pack erneut herunter.", + "4. Lade den Pack aus dem GitHub-Repository herunter: https://github.com/IrisDimensions/overworld", + "5. Wende dich an den Support, wenn keine andere Option hilft." + ], + "iris.runtime.pack_download.no_extracted_files": "Es wurden keine Dateien aus der Zip-Datei extrahiert.", + "iris.runtime.pack_download.home_directory_error": "Fehler beim Finden von Home Directory. Gibt es Nicht-Textzeichen im Dateinamen?", + "iris.runtime.pack_download.invalid_archive_format": "Ungültiges Format. Fehlender Root-Ordner oder zu viele Ordner!", + "iris.runtime.pack_download.no_dimension_file": "Keine Dimensionsdatei in der extrahierten Zip-Datei gefunden.", + "iris.runtime.pack_download.check_github": "Prüfe, ob die Datei auf GitHub vorhanden ist, und melde das Problem dem Team!", + "iris.runtime.pack_download.one_dimension_required": "Der Dimensionsordner muss genau eine Datei enthalten.", + "iris.runtime.pack_download.invalid_dimension": "Ungültiger Dimensionsordner unter dimensions/.", + "iris.runtime.pack_download.importing": "{name} ({key}) wird importiert", + "iris.runtime.pack_download.dimension_key_conflict": "Eine andere Dimension im Pack-Ordner verwendet bereits den Schlüssel {key}. Import fehlgeschlagen!", + "iris.runtime.pack_download.pack_key_conflict": "Ein anderer Pack verwendet bereits den Schlüssel {key}. Import fehlgeschlagen!", + "iris.runtime.pack_download.acquired": "{name} erfolgreich abgerufen.", + "iris.runtime.pack_download.validation_failed": "Pack '{pack}' hat die Validierung nicht bestanden; Welt- und Studio-Erstellung werden verweigert. Gründe:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pack '{pack}' mit {count} Warnungen validiert.", + "one": "Pack '{pack}' mit {count} Warnung validiert." + }, + "iris.runtime.pack_download.validated": "Pack '{pack}' validiert.", + "iris.client.vision.title": "Iris Vision", + "iris.client.vision.connecting": "Verbindung zum Iris-Server wird hergestellt...", + "iris.client.vision.not_connected": "nicht verbunden", + "iris.client.vision.not_iris_world": "Keine Iris-Welt", + "iris.client.vision.no_dimension_data": "Keine Dimensionsdaten", + "iris.client.vision.header_detail": "{status} Zoom {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Ziehen zum Verschieben, scrollen zum Zoomen, Esc zum Schließen", + "iris.client.vision.dimension_pack": "{dimension} Pack {pack}", + "iris.client.toast.studio_hotload": "Studio-Hotload", + "iris.client.toast.changed_files": { + "other": "{count} Dateien", + "one": "{count} Datei" + }, + "iris.client.toast.reload_failed": "Neuladen fehlgeschlagen", + "iris.client.toast.reloaded": "Neu geladen", + "iris.client.toast.pack_failed": "{pack} fehlgeschlagen", + "iris.client.what.title": "Iris What", + "iris.client.what.querying": "Abfrage von {x}, {z}...", + "iris.client.what.biome": "Biom: {biome}", + "iris.client.what.region": "Gebiet: {region}", + "iris.client.what.cave": "Höhle: {cave}", + "iris.client.what.height": "Höhe: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "pausiert", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§aGeschwindigkeit§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bCache§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dCarving§7: {state}", + "iris.bukkit.scoreboard.region": "§bRegion§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiom§7: {biome}", + "iris.bukkit.scoreboard.height": "§bHöhe§7: {height}", + "iris.bukkit.scoreboard.slope": "§bSteigung§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vision", + "iris.desktop.vision.view": "Ansicht:", + "iris.desktop.vision.grid": "Raster", + "iris.desktop.vision.follow": "Folgen", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Wird aktualisiert", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Zoom-Reset", + "iris.desktop.vision.grid_enabled": "Raster aktiviert", + "iris.desktop.vision.grid_disabled": "Raster deaktiviert", + "iris.desktop.vision.following": "Folge {player}", + "iris.desktop.vision.no_player": "Kein Spieler in der Welt", + "iris.desktop.vision.follow_disabled": "Folgen deaktiviert", + "iris.desktop.vision.low_quality": "Niedrige Qualität", + "iris.desktop.vision.high_quality": "Hohe Qualität", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} Blöcke", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Position: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Gesundheit: {health} / {maximum}", + "iris.desktop.vision.block_position": "Block {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk {x}, {z}", + "iris.desktop.vision.region_position": "Region {x}, {z}", + "iris.desktop.vision.biome_key": "Schlüssel: {key}", + "iris.desktop.vision.biome_file": "Datei: {file}", + "iris.desktop.vision.velocity": "Geschwindigkeit: {velocity}", + "iris.desktop.vision.tiles": "Kacheln: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Worker: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Zentrum: {x}, {z}", + "iris.desktop.vision.help.toggle": "Hilfe ein-/ausblenden", + "iris.desktop.vision.help.refresh": "Kacheln aktualisieren", + "iris.desktop.vision.help.follow": "Spieler folgen", + "iris.desktop.vision.help.zoom": "Heran-/herauszoomen", + "iris.desktop.vision.help.reset_zoom": "Zoom zurücksetzen", + "iris.desktop.vision.help.cycle_mode": "Rendermodus wechseln", + "iris.desktop.vision.help.quality": "Kachelqualität umschalten", + "iris.desktop.vision.help.fps": "30/60 FPS umschalten", + "iris.desktop.vision.help.grid": "Raster umschalten", + "iris.desktop.vision.help.biome": "Detaillierte Biom-Infos", + "iris.desktop.vision.help.teleport": "Teleportieren zum Cursor", + "iris.desktop.vision.help.editor": "Biom im Editor öffnen", + "iris.desktop.vision.opened": "{target} geöffnet", + "iris.desktop.vision.teleporting": "Teleportation zu {x}, {z}", + "iris.desktop.vision.mode.biome": "Biom", + "iris.desktop.vision.mode.biome_land": "Biom-Land", + "iris.desktop.vision.mode.biome_sea": "Biom-Meer", + "iris.desktop.vision.mode.region": "Region", + "iris.desktop.vision.mode.cave_land": "Höhlenland", + "iris.desktop.vision.mode.height": "Höhe", + "iris.desktop.vision.mode.object_load": "Objektlast", + "iris.desktop.vision.mode.decorator_load": "Dekorlast", + "iris.desktop.vision.mode.continent": "Kontinent", + "iris.desktop.vision.mode.layer_load": "Schichtlast", + "iris.desktop.noise.title": "Noise Explorer", + "iris.desktop.noise.title_generator": "Noise Explorer: {generator}", + "iris.desktop.noise.search": "Suche...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | Zoom: {zoom} | Wert: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Benutzerdefiniert", + "iris.desktop.noise.category.pack_generators": "Pack-Generatoren", + "iris.desktop.noise.category.simplex": "Simplex", + "iris.desktop.noise.category.perlin": "Perlin", + "iris.desktop.noise.category.cellular": "Zellular", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Clover", + "iris.desktop.noise.category.hexagon": "Sechseck", + "iris.desktop.noise.category.vascular": "Vascular", + "iris.desktop.noise.category.globe": "Globe", + "iris.desktop.noise.category.cubic": "Cubic", + "iris.desktop.noise.category.fractal": "Fractal", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "Nowhere", + "iris.desktop.noise.category.sierpinski": "Sierpinski", + "iris.desktop.noise.category.utility": "Werkzeuge", + "iris.desktop.noise.category.other": "Sonstige", + "iris.desktop.pregen.initializing": "Initialisierung...", + "iris.desktop.pregen.title": "Vorgenerierungsansicht", + "iris.desktop.pregen.method_pending": "Ausstehend", + "iris.desktop.pregen.paused": "pausiert", + "iris.desktop.pregen.resume_hint": "P drücken, um wieder aufzunehmen", + "iris.desktop.pregen.pause_hint": "P drücken, um zu pausieren", + "iris.desktop.pregen.progress_paused": "pausiert {generated} von {total} ({percent} abgeschlossen)", + "iris.desktop.pregen.progress_saving": "Speichern... {generated} von {total} ({percent} abgeschlossen)", + "iris.desktop.pregen.progress_generating": "{generated} von {total} werden generiert ({percent} abgeschlossen)", + "iris.desktop.pregen.speed": "Geschwindigkeit: {chunksPerSecond} Chunks/s, {regionsPerMinute} Regionen/m, {chunksPerMinute} Chunks/m", + "iris.desktop.pregen.speed_cached": "Geschwindigkeit: zwischengespeichert {chunksPerSecond} Chunks/s, {regionsPerMinute} Regionen/m, {chunksPerMinute} Chunks/m", + "iris.desktop.pregen.time": "{remaining} verbleibend ({elapsed} abgelaufen)", + "iris.desktop.pregen.method": "Erzeugungsmethode: {method}", + "iris.desktop.pregen.memory": "Speicher: {used} ({usage}) Druck: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/es_ES.json b/core/src/main/resources/languages/es_ES.json new file mode 100644 index 000000000..6b2a25dbe --- /dev/null +++ b/core/src/main/resources/languages/es_ES.json @@ -0,0 +1,1435 @@ +{ + "locale": "es_ES", + "messages": { + "director.help.navigation.parent.hover": "Volver al grupo de comandos superior", + "director.help.navigation.back": "Atrás", + "director.help.no_subcommands": "No hay subcomandos en esta página.", + "director.help.no_description": "No se proporcionó ninguna descripción", + "director.help.aliases": "Alias", + "director.help.command_group": "Grupo de comandos. Haz clic para abrir.", + "director.help.no_parameters": "No hay parámetros. Haz clic para completar el comando.", + "director.help.parameters": "Parámetros", + "director.help.parameter.required": "obligatorio", + "director.help.parameter.optional": "opcional", + "director.help.parameter.default": "predeterminado", + "director.help.navigation.previous.hover": "Página anterior", + "director.help.navigation.next.hover": "Página siguiente", + "director.help.navigation.page": "Página", + "director.runtime.error.invalid_origin": "Este comando no se puede ejecutar desde este origen.", + "director.runtime.error.unknown_parameter": "Clave de parámetro desconocida: {key}", + "director.runtime.error.unexpected_argument": "Argumento inesperado \"{argument}\". Los parámetros opcionales deben especificarse con clave, p. ej. seed=123", + "director.runtime.error.conversion_failed": "No se puede convertir \"{value}\" a {type} para {parameter}", + "director.runtime.error.default_parse_failed": "No se puede analizar el valor predeterminado del parámetro {parameter}", + "director.runtime.error.missing_argument": "Falta el argumento \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "No se pudo ejecutar el comando {command}: {reason}", + "director.runtime.usage": "Uso: {usage}", + "iris.command.permission_denied": "No tienes el permiso '{permission}'", + "iris.command.unknown": "Comando de Iris desconocido", + "iris.command.player_only": "Este comando solo puede ser utilizado por jugadores.", + "iris.command.iris_world_required": "Esta dimensión no fue generada por Iris.", + "iris.command.reload.success": "Se recargaron la configuración y el idioma {locale}.", + "iris.command.reload.failed": "Se recargó la configuración, pero se rechazó el idioma {locale}; se seguirá usando {activeLocale}.", + "iris.modded.help.unknown_section": "Sección de ayuda de Iris desconocida: {section}", + "iris.modded.help.back_hover": "Volver a {parent}.", + "iris.modded.help.command_parameter": "Parámetro del comando", + "iris.modded.help.parameter_required": "Este parámetro es obligatorio.", + "iris.modded.help.parameter_optional": "Este parámetro es opcional.", + "iris.modded.help.brigadier_text": "Brigadier lee este parámetro como texto.", + "iris.modded.help.operator_notice": "Los comandos de Iris requieren permiso de operador (nivel 2).", + "iris.modded.help.operator_instruction": "Ejecuta {command} desde la consola (o activa los trucos en un jugador); hasta entonces, estos comandos no se ejecutarán ni se completarán con tabulador.", + "iris.modded.command.properties.none": "Propiedades: (ninguno)", + "iris.modded.command.properties.list": "Propiedades: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Iniciando la ingesta de datapacks...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aImportaciones de datapacks configuradas: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aDatapacks instalados: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eAñade URL de Modrinth a la lista 'datapackImports' de una dimensión y ejecuta /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash iniciado: {value} chunks...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash falló en el chunk {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash global=§6{value}§a chunks={value2} sólidos={solidBlocks} en {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6¡No estás en un mundo de Iris!", + "iris.bukkit.commandfind.unknown_structure": "§cEstructura desconocida: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Ejecuta esto dentro del juego para teletransportarte a una estructura.", + "iris.bukkit.commandfind.locating": "§7Buscando {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Ejecuta esto dentro del juego para teletransportarte a una estructura.", + "iris.bukkit.commandfind.locating_2": "§7Buscando {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeletransportado a {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aCarpeta del mundo eliminada correctamente", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aCarpeta del mundo eliminada correctamente", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cNo se pudo eliminar la carpeta del mundo", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cNo se encontraron packs con objetos en este servidor.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cNo hay objetos que colocar en los packs seleccionados.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aAbriendo Object Studio para {scope} ({totalObjects} objetos)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cNo se pudo abrir Object Studio: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cDebes especificar un nombre de pack.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cEl pack '{pack}' no se encontró en packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... y {value} más.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aVerificando estructuras en §f{value}§a desde {value2},{value3} dentro de {searchRadius} chunks...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImportando contenido vanilla en §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla completado: §f{imported}§a objects/structures escritos, §f{failed}§a fallidos.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Los árboles/objetos están en objects/vanilla/...; haz referencia a ellos desde las colocaciones de objetos del bioma.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cNo hay proyectos de Studio abiertos.", + "iris.bukkit.commandstudio.closing_studio": "§eCerrando Studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§cNo se pudo cerrar Studio: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cNo se pudo cerrar Studio: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio cerrado. La limpieza restante de la familia de mundos quedó en cola para el próximo inicio.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio cerrado.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cDebes estar en un mundo de Studio para alternar el marcador de depuración.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Marcador de depuración de Studio {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cNo se pudo actualizar el marcador de depuración de Studio en este momento.", + "iris.bukkit.commandstudio.opened_inventory": "§a¡Inventario abierto!", + "iris.bukkit.commandstudio.generating_data": "§7Generando datos...", + "iris.bukkit.commandstudio.done": "§a¡Listo!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Te falta la Permiso{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Estado:", + "iris.bukkit.irisenginestatus.service": "§5- Servicio: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Métricas: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Período de mantenimiento: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Paralelismo de trabajadores: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Tareas de mundo activas: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Placas tectónicas:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Retención configurada: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Uso del heap: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Residentes: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- En cola: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Duración media de inactividad: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Duración máxima de inactividad: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Duración mínima de inactividad: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Cachés:", + "iris.bukkit.irisenginestatus.resource": "§5- Recursos: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Flujo 2D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Flujo 3D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Otros: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Otros:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Mundos de Iris: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Chunks cargados: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cEl mundo es nulo.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cSelecciona un mundo de Iris antes de leer un volcado de Mantle.", + "iris.bukkit.commanddeveloper.upgrading": "§aActualizando a {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§a¡Actualización completada! Ya puedes actualizar el servidor a la versión {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cEl radio debe ser 0 o mayor.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cEste no es un mundo de Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cEl acceso al motor de este mundo es nulo.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aEliminación iniciada: §6{chunks}§a chunk(s) alrededor de §6{centerX},{centerZ}§a. Sustituyendo los bloques por aire.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cEl radio debe ser 0 o mayor.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cDebes estar en un mundo de Iris para usar regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cEl acceso al motor de este mundo es nulo. Genera primero algunos chunks cercanos.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegeneración iniciada: §6{chunks}§a chunk(s) alrededor de §6{centerX},{centerZ}§a. Eliminándolos y regenerándolos en el mismo lugar.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cEl radio debe ser 0 o mayor.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cEl objetivo debe ser un mundo de Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cEl acceso al motor de este mundo es nulo.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash iniciado: §6{chunks}§a chunk(s) alrededor de §6{centerX},{centerZ}§a en búferes (sin modificar el mundo).", + "iris.bukkit.commandedit.players_only": "§c¡Solo jugadores!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§c¡No hay ningún mundo de Studio abierto!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§c¡Debes estar en un mundo de Studio!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§c¡No se pueden abrir archivos en entornos sin interfaz gráfica!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§c¡Este entorno no admite el escritorio!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6No se encuentra el archivo; quizá no se cargó directamente desde un archivo.", + "iris.bukkit.commandedit.opening_vscode": "§aAbriendo {value} {value2} en VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cNo se encuentra el archivo o el registrante no existe", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6No se encuentra el archivo; quizá no se cargó directamente desde un archivo.", + "iris.bukkit.commandedit.opening_vscode_2": "§aAbriendo {value} {value2} en VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cNo se encuentra el archivo o el registrante no existe", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6No se encuentra el archivo; quizá no se cargó directamente desde un archivo.", + "iris.bukkit.commandedit.opening_vscode_3": "§aAbriendo {value} {value2} en VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cNo se encuentra el archivo o el registrante no existe", + "iris.bukkit.commandfind.not_iris_world_5": "§6¡No estás en un mundo de Iris!", + "iris.bukkit.commandfind.not_iris_world_2": "§6¡No estás en un mundo de Iris!", + "iris.bukkit.commandfind.not_iris_world_3": "§6¡No estás en un mundo de Iris!", + "iris.bukkit.commandfind.not_iris_world_4": "§6¡No estás en un mundo de Iris!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: teletransportando a {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} no está configurado en ninguna colocación de objetos de una región o bioma.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cNo puedes usar el nombre de mundo \"iris\": Iris reserva este directorio para los mundos de Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§c¿Podemos sugerir el nombre \"IrisWorld\"?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cNo puedes usar el nombre de mundo \"benchmark\": Iris reserva este directorio para los benchmarks de packs.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§c¿Podemos sugerir el nombre \"IrisWorld\"?", + "iris.bukkit.commandiris.that_folder_already_exists": "§c¡Esa carpeta ya existe!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cNo se pudo encontrar ni descargar la dimensión \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§ePrueba una de estas opciones: overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eO descárgala manualmente: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPreparación del mundo completada. Reinicia el servidor para generar/cargar \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cSe produjo una excepción durante la creación. Consulta la consola para obtener más detalles.", + "iris.bukkit.commandiris.successfully_created_your_world": "§a¡Tu mundo se creó correctamente!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aTu mundo se establecerá automáticamente como mundo principal cuando se reinicie el servidor.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eLa creación de mundos en tiempo de ejecución está desactivada en Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§ePreparando los archivos del mundo y bukkit.yml para el próximo inicio...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cNo se pudieron preparar los archivos del mundo para la dimensión \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aSe actualizó level-name en server.properties a \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cEl mundo se preparó, pero no se pudo actualizar el mundo principal en server.properties.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aSe preparó el mundo de Iris \"{name}\" con el generador Iris:{value} y la semilla {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aEste mundo está configurado como principal para el próximo reinicio.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cNo se pudo actualizar bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cEl jugador especificado no existe.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v{value} por Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} a {value2}", + "iris.bukkit.commandiris.total_height": "§aAltura total: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Mundos de Iris: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Mundos de Bukkit: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cEste no es un mundo de Iris. Mundos de Iris: {value}", + "iris.bukkit.commandiris.removing_world": "§aEliminando mundo: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cNo se pudo evacuar el mundo: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cNo se pudo retirar el mundo de la memoria: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aSe eliminó correctamente {value} de bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eParece que el mundo ya se había eliminado de bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cNo se pudo guardar bukkit.yml debido a {value}", + "iris.bukkit.commandiris.set_debug": "§aDepuración establecida en: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aDescargando pack: {pack} (versión beta){value}", + "iris.bukkit.commandiris.downloading_pack": "§aDescargando pack: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cDebes estar en un mundo de Iris", + "iris.bukkit.commandiris.sending_metrics": "§aEnviando métricas...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cEste no es un mundo de Iris. Mundos de Iris: {value}", + "iris.bukkit.commandiris.unloading_world": "§aRetirando mundo de la memoria: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aEl mundo se retiró correctamente de la memoria.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cNo se pudo retirar el mundo de la memoria.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cNo se pudo retirar el mundo de la memoria: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} no existe en el servidor.", + "iris.bukkit.commandiris.generator": "§9Generador: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} no es un mundo de Iris.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cNo se pudo determinar la dimensión de Iris para {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aCargando mundo: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia no puede cargar mundos nuevos en tiempo de ejecución. Reinicia el servidor para cargar \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} se cargó correctamente.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cEste no es un mundo de Iris. Mundos de Iris: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvacuando mundo{value}", + "iris.bukkit.commandobject.object_size": "Tamaño del objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Bloques usados: {value}", + "iris.bukkit.commandobject.blocks_object": "== Bloques del objeto ==", + "iris.bukkit.commandobject.other_block_types": " + {value} tipos de bloque adicionales", + "iris.bukkit.commandobject.current_object_size": "Tamaño actual del objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Nuevo tamaño del objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "No se pudo guardar el objeto {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cNingún objeto coincide con: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}] puso en cola {value2} objeto(s)", + "iris.bukkit.commandobject.hold_your_wand": "Sostén tu varita.", + "iris.bukkit.commandobject.no_area_selected": "No hay ningún área seleccionada.", + "iris.bukkit.commandobject.ready_your_wand": "Prepara tu varita.", + "iris.bukkit.commandobject.ready_your_wand_2": "Prepara tu varita.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eLa escala indicada supera el máximo. Se redujo al máximo: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Varita actualizada para objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Se entregó una varita nueva para objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Varita actualizada para objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aSe colocó {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§e¡Debes sostener tu varita!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cEl archivo ya existe. Usa overwrite=true para sobrescribirlo.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cNo se pudo guardar el objeto debido a una IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aObjeto guardado correctamente en: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Sostén tu varita.", + "iris.bukkit.commandobject.no_area_selected_2": "No hay ningún área seleccionada.", + "iris.bukkit.commandobject.reverted_pastes": "§9¡Se revirtieron {actualReverts}§9 pegados!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cNo puedes obtener una selección de WorldEdit sin WorldEdit.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cNo tienes una selección de WorldEdit en este mundo.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§a¡Una varita nueva con tu selección actual de WorldEdit!", + "iris.bukkit.commandobject.poof_good_luck_building": "§a¡Puf! ¡Buena suerte construyendo!", + "iris.bukkit.commandobject.hold_your_wand_3": "§e¡Sostén tu varita!", + "iris.bukkit.commandobject.no_area_selected_3": "No hay ningún área seleccionada.", + "iris.bukkit.commandobject.auto_select_complete": "§a¡Selección automática completada!", + "iris.bukkit.commandobject.hold_your_wand_4": "§e¡Sostén tu varita!", + "iris.bukkit.commandobject.no_area_selected_4": "No hay ningún área seleccionada.", + "iris.bukkit.commandobject.auto_select_complete_2": "§a¡Selección automática completada!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cEl radio de pregen debe ser mayor que cero bloques.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cLa pregeneración estrictamente secuencial requiere Paper o un servidor compatible con Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§c¡El acceso al motor de este mundo es nulo!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cAsegúrate de que el mundo esté cargado y el motor inicializado. Por ejemplo, genera un chunk nuevo.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cNo se pudo iniciar la pregeneración. Consulta la consola para obtener detalles.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eNo hay tareas de pregeneración activas que detener", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aSe cambió la pausa de la tarea de pregeneración; estado actual: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eNo hay tareas de pregeneración activas que pausar o reanudar.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eNo hay ninguna tarea de pregeneración activa.", + "iris.bukkit.commandpregen.pregen": "§aPregen §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aVelocidad: §6{value}/s§a ETA: §6{value2}§a Transcurrido: §6{value3}§a Método: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aÍndice de estructuras escrito: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportando todas las estructuras vanilla y de datapacks en §f{value}§a (sobrescritura)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImportación completada: §f{imported}§a structures/objects escritos, §f{failed}§a fallidos.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Haz referencia a ellas desde una lista 'structures' de un bioma, región o dimensión, o ejecuta /iris structure list {value} para actualizar el índice. Regenera los chunks para aplicar los cambios.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Se capturaron {value} estructuras. Colócalas desde una lista 'structures' y regenera los chunks. Elimina un archivo structures/*.json para volver a capturarlo.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cNo se encontró ningún mundo de Iris cargado para {value}. Entra en uno o créalo primero (la búsqueda se ejecuta sobre un mundo activo).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cEl mundo de Iris seleccionado no tiene un motor generador activo.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cNo existe la estructura de Iris '{structure}' en este pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cLa estructura '{structure}' ensambló 0 piezas (comprueba startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aEstructura '{structure}': §f{value}§a piezas, huella de §f{value2}x{value3}§a bloques (semilla de muestra 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cNo existe la estructura de Iris '{structure}' en este pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cLa estructura '{structure}' ensambló 0 piezas", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aSe colocó '{structure}' ({value} piezas) en tu ubicación.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aAbriendo Studio para el pack \"{value}\" (semilla: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cIndica un pack de dimensión: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cNo se pudo resolver el pack de la dimensión {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aAbriendo VSCode para el pack \"{value}\"", + "iris.bukkit.commandstudio.pack_has_version": "§aEl pack \"{value}\" tiene la versión: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§a¡Abriendo Noise Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cNo se pueden añadir elementos al inventario virtual debido a: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§a¡Abriendo el inventario!", + "iris.bukkit.commandstudio.only_works_iris_world": "§c¡Solo funciona en un mundo de Iris!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cDebes estar en un mundo generado por Iris o especificar uno.", + "iris.bukkit.commandstudio.opening_map": "§a¡Abriendo el mapa!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Calculando métricas de rendimiento para los generadores de ruido", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Calculando tiempos de los interpoladores...", + "iris.bukkit.commandstudio.processing_generator_scores": "Procesando puntuaciones de generadores: ", + "iris.bukkit.commandstudio.score": "Puntuación: {value}", + "iris.bukkit.commandstudio.done_with_result": "§a¡Listo! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cDebes estar en un mundo de Iris para generar entidades correctamente. Se intentará generarlas de la mejor forma posible.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§c¡No hay ningún mundo de Studio abierto!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§c¡Ya estás en un mundo de Studio!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§a¡Enviándote al mundo de Studio!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Actualizando el espacio de trabajo de código de {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aSe actualizó el espacio de trabajo de código de {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cProyecto no válido: {value}. Prueba a eliminar el archivo code-workspace e inténtalo de nuevo.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cDebes estar en un mundo de Iris", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Debes estar en un mundo de Iris.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Capturando IGenData de {value} chunks cercanos.", + "iris.bukkit.commandstudio.reported": "Informe escrito en: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§c¡Debes habilitar en los ajustes las GUI iniciadas por el servidor!", + "iris.bukkit.commandstudio.players_only": "§c¡Solo jugadores!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§c¡No hay ningún mundo de Studio abierto!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§c¡Debes estar en un mundo de Studio!", + "iris.bukkit.commandwhat.material": "Material: §a{value}", + "iris.bukkit.commandwhat.full": "Completo: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Sostén un bloque o un objeto", + "iris.bukkit.commandwhat.material_2": "Material: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Sostén un bloque o un objeto", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Bioma no perteneciente a Iris: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Bioma de datapack: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aSolo en mundos de Iris.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Mira a cualquier bloque, no al cielo", + "iris.bukkit.commandwhat.material_3": "Material: §a{value}", + "iris.bukkit.commandwhat.full_2": "Completo: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Bloque de almacenamiento (admite botín)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Bloque iluminado (admite luz)", + "iris.bukkit.commandwhat.foliage_block": "§e* Bloque de follaje", + "iris.bukkit.commandwhat.decorant_block": "§e* Bloque decorativo", + "iris.bukkit.commandwhat.fluid_block": "§e* Bloque fluido", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Bloque de follaje plantable", + "iris.bukkit.commandwhat.solid_block": "§e* Bloque sólido", + "iris.bukkit.commandwhat.found_nearby_markers": "Se encontraron {value} marcadores cercanos ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aSolo en mundos de Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "La consola debe indicar un bioma: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "La búsqueda de bioma falló: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Bioma desconocido: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "La consola debe nombrar una región: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "La búsqueda de región falló: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Región desconocida: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "No se pueden abrir archivos aquí: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "No se pudo encontrar el archivo; quizá no se cargó directamente desde un archivo.", + "iris.modded.irismoddedcommands.could_not_open": "No se pudo abrir {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Abriendo {value} {value2} en tu editor.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "La consola debe indicar un jugador: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} no se genera por Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "El teletransporte falló: la dimensión {dimensionId} no está cargada.", + "iris.modded.irismoddedcommands.teleporting": "Teletransportando a {value} a {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} no se genera por Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "No se puede evacuar el mundo principal porque no hay adónde enviar a los jugadores.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Se evacuaron {count} jugador(es) de {value} a {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Depuración establecida en: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Configuración recargada en caliente", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Este comando solo puede usarlo un jugador (inspecciona el objeto que sostienes).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Tu mano principal está vacía.", + "iris.modded.irismoddedcommands.hand_x": "Mano: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} no se genera con Iris; consulta /iris info para ver las dimensiones de Iris cargadas.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "La dimensión actual ({value}) no se genera con Iris. Indica una explícitamente: /iris pregen start {radius} ; consulta /iris info para ver las dimensiones de Iris cargadas.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Ya hay una tarea de pregeneración en curso. Detenla primero con /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen iniciado en {value} de {value2}, con un radio de {value3} bloques desde {centerX},{centerZ}.{modeNote} El progreso se registra en la consola; consulta /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Deteniendo la pregeneración; terminando la región actual...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "No hay ninguna tarea de pregeneración activa que detener.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "No hay ninguna tarea de pregeneración activa que pausar o reanudar.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "La pregeneración es ahora {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "No hay ninguna tarea de pregeneración activa.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} de Volmit Software en {value2} (Minecraft {value3}), {engines} dimensión(es) de Iris", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Dimensiones cargadas: {total} ({iris} de Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.biome": "Bioma: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "La búsqueda de bioma falló: {value}", + "iris.modded.irismoddedcommands.region": "Región: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "La búsqueda de región falló: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Bioma de cueva: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "La búsqueda del bioma de cueva falló: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Bloque superficial: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Posición: {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Este comando solo puede usarlo un jugador (inspecciona el bloque que estás mirando).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Mira un bloque, no el cielo.", + "iris.modded.irismoddedcommands.block_y": "Bloque: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Este comando solo puede usarlo un jugador (los marcadores se renderizan como partículas a tu alrededor).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Buscando marcadores '{marker}' a tu alrededor...", + "iris.modded.irismoddedcommands.marker_scan_failed": "El análisis de marcadores falló: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Se encontraron {value} marcador(es) cercanos ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Bioma desconocido: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Región desconocida: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "¡{value} no está definido en la dimensión!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} no está configurado en ninguna colocación de objetos de región o bioma ({value} claves de objeto cargadas).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Este comando solo puede usarlo un jugador. (La clave de objeto '{key}' se resolvió entre {value} claves de objeto cargadas)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Indica una estructura de Iris o una estructura nativa que buscar.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Estructura desconocida '{key}'. Usa el autocompletado para elegir una colocación de Iris o una estructura nativa o de datapack registrada.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Buscando la estructura nativa {value} dentro de {NATIVESTRUCTURELOCATERADIUS} chunks...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Buscando la estructura colocada por Iris {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "No se pudo localizar la estructura colocada por Iris {key}: se alcanzó el límite de seguridad de la búsqueda por densidad antes de explorar por completo el radio de 1024 chunks.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "No se encontró la estructura colocada por Iris {key} dentro de 1024 chunks.", + "iris.modded.irismoddedcommands.search_failed": "La búsqueda falló: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "No se encontró la estructura nativa {value} dentro de {NATIVESTRUCTURELOCATERADIUS} chunks.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "La búsqueda de la estructura nativa {value} falló: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "El jugador se desconectó antes de completar la búsqueda de la estructura.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Cambiaste de dimensión antes de que terminara la búsqueda de la estructura; vuelve a ejecutar el comando.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Se encontró {label} en {targetX} {clampedY} {targetZ}, pero el teletransporte falló.", + "iris.modded.irismoddedcommands.teleported_at": "Teletransportado a {label} en {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Accesibilidad de estructuras: {available} nativas aptas para generación, {irisPlaced} colocadas por Iris, {disabled} nativas desactivadas, {suppressed} nativas sustituidas por colocaciones de Iris, {unreachableBiomes} nativas excluidas por los biomas de este pack y {unsupported} estructuras nativas registradas no compatibles con esta dimensión. Usa /iris structure verify para una estructura concreta.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "La estructura {key} fue colocada por Iris y puede localizarse con /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Estructura desconocida '{key}'. No fue colocada por Iris ni está registrada por vanilla o un datapack.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "La estructura {value} se sustituye explícitamente por una colocación de Iris y puede localizarse con /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "La estructura nativa {value} está habilitada, es compatible con el estado del generador de esta dimensión y puede localizarse con /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Este comando solo puede usarlo un jugador. (Se aceptó el tipo de POI '{type}')", + "iris.modded.irismoddedcommands.searching": "Buscando {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "El motor de este mundo se cerró; vuelve a entrar en la dimensión e inténtalo de nuevo.", + "iris.modded.irismoddedcommands.search_failed_2": "La búsqueda falló: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "No se encontró {label} antes de que agotara el tiempo de búsqueda.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teletransportado a {label} en {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "El motor cambió mientras se buscaba {label}; inténtalo de nuevo.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.world_seed": "Semilla del mundo: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Semilla del motor: {value} (mezclada: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Descargando IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack '{pack}' instalado. Sus tipos de dimensión exactos y biomas personalizados se añadirán al datapack forzado de Iris en el próximo reinicio del servidor; reinicia antes de crear mundos con este pack.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "No se pudo descargar el pack {pack} ({downloadSource}; consulta la consola).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Esta dimensión no fue generada por Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Generados: {value} chunk(s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Desconocido Iris ayuda sección: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: tipo={typeKey} activo={activeMin}..{activeMax} lógico={value} (pack={value2}, motor no iniciado; alturas del pack desconocidas)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: tipo={typeKey} activo={activeMin}..{activeMax} lógico={value} | el pack '{value2}' solicita {packMin}..{packMax} lógico={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: el tipo de dimensión activo no coincide con el pack. Iris se negará a iniciar el motor de este mundo en lugar de recortar el terreno. Ejecuta /iris world enable para mundos nuevos o /iris datapack install para dimensiones de Iris ya cargadas; después, reinicia.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "No hay dimensiones de Iris cargadas.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Las {irisLevels} dimensión(es) de Iris coinciden con los rangos de altura de sus packs.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: motor no iniciado; todavía no se puede determinar su tipo de dimensión.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: falló la generación del tipo de dimensión: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "No se pudo escribir {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "No se encontraron dimensiones de Iris con motores en ejecución; no se instaló nada.", + "iris.modded.moddeddatapackcommands.failed_write_2": "No se pudo escribir {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Se escribió {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Se instalaron las sustituciones de tipos de dimensión del datapack del mundo '{WORLDPACKNAME}'. Reinicia el servidor para aplicarlas.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Importaciones de datapacks configuradas: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "La ingesta de Modrinth solo está disponible en Bukkit; instala estos datapacks manualmente en world/datapacks si es necesario.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Datapacks del mundo instalados: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Se envió una excepción de prueba al sistema de informes de errores de Iris (Sentry si está habilitado).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "El escaneo de red falló: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Ya hay un análisis GoldenHash en curso.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Este comando solo puede usarlo un jugador. (La varita es un objeto físico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Tu inventario está lleno.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "¡Puf! ¡Buena construcción! (clic izquierdo = esquina 1, clic derecho = esquina 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Este comando solo puede usarlo un jugador. (El polvo es un objeto físico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Tu inventario está lleno.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Haz clic derecho en un bloque para revelar el objeto al que pertenece.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Este comando solo puede usarlo un jugador. (Al guardar se captura la selección de tu varita)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Esta dimensión no está generada por Iris; los objetos se guardan en el pack de la dimensión.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Sostén tu varita de Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "No hay ningún área seleccionada. Primero haz clic izquierdo y derecho en bloques con la varita.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Nombre de objeto inválido: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Selección demasiado grande: {volume} bloques (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "El archivo ya existe. Usa /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "No se pudo guardar el objeto: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Se guardó {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} bloque(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Objeto desconocido o vacío: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "La consola debe indicar coordenadas: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "No estás mirando un bloque a menos de {value} bloques.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "El pegado falló: {value} (se registraron los cambios parciales para deshacerlos)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Se colocó {key} en {value} {value2} {value3} rot={rotation} ({value4} escritura(s), {value5} sin aire{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Sostén tu varita de Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "No hay área seleccionada.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Prepara tu varita. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "No estás mirando un bloque.", + "iris.modded.moddedobjectcommands.position_set": "Posición {value} fijada en {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.moddedobjectcommands.hold_your_wand": "¡Mantén tu varita!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "No hay área seleccionada.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Selección demasiado grande para auto-seleccionar: {volume} bloques (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Auto-selección completa: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Objeto desconocido: {key}", + "iris.modded.moddedobjectcommands.object_size": "Tamaño del objeto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Bloques usados: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Bloques en objeto ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} otros estados bloque(s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Objeto desconocido: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Tamaño del objeto actual: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Tamaño del Nuevo Objeto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "El objeto no tiene archivo de carga; no se puede conservar la reducción.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "No se pudo guardar el objeto {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Alcance inválido: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Ningún objeto coincide con: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilize [reach={reach}{value}] puso en cola {value2} objeto(s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Nada que deshacer.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "¡Se revirtieron {reverted} pegado(s)!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "No se encontró la carpeta de packs: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "No hay packs que validar en {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "El pack '{pack}' no se encontró en {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Validando {value} pack(s)...", + "iris.modded.moddedpackcommands.validation_failed": "La validación de '{value}' falló: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validación completada. Packs rotos: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "El pack '{pack}' no se encontró en {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "El pack '{pack}' no se encontró en {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "No hay resultados de validación registrados. Ejecuta primero /iris pack validate.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (bloqueos={value2}, advertencias={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "No hay ningún resultado de validación para '{pack}'. Ejecuta /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "El pack '{value}' se puede cargar. (advertencias={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "El pack '{value}' está ROTO:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... y {value} advertencia(s) más.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "No se encontraron candidatos de limpieza para el pack '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Vista previa de limpieza del pack '{pack}': {value} candidato(s). No se modificó ningún archivo.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Ejecuta /iris pack cleanup {pack} apply para poner los candidatos en cuarentena después de un nuevo análisis.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "No se encontraron candidatos de limpieza para el pack '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Se pusieron en cuarentena {value} candidato(s) de limpieza en {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "No hay nada que restaurar para el pack '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Vista previa de restauración de {value}: {value2} archivo(s). No se modificó ningún archivo.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "La restauración está bloqueada por {value} destino(s) existentes.", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Ejecuta /iris pack restore {pack} apply para restaurar después de una nueva comprobación de conflictos.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Restauración rechazada porque ya existen {value} destino(s).", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "No hay nada que restaurar para el pack '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Se restauraron {value} archivo(s) desde {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... y {value} más.", + "iris.modded.moddedregen.regen_is_already_running": "Un regen ya está corriendo.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Esta dimensión no es generada por Iris. Corre esto de un Iris dimensión para que el pack pueda ser resuelto.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Índice de estructura escrito: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Sin estructura iris{key}'en este pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Estructura{key}' montado 0 piezas (ver startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Estructura{key}': {value} piezas, huella {value2}x{value3} bloques (sample seed 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Este comando sólo puede ser utilizado por los jugadores (la estructura se monta en su posición).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Sin estructura iris{key}'en este pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "La estructura '{key}' ensambló 0 piezas", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "El lugar falló: {value} (cambios parciales registrados para deshacer)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Se colocó '{key}' ({value} piezas, {value2} escritura(s){tileNote}) en tu posición. Usa /iris object undo para revertirlo.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Indica un pack de dimensión: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Abriendo Noise Explorer en la pantalla del servidor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Esta dimensión no está generada por Iris; ejecuta /iris studio noise desde una dimensión de Iris para resolver generadores u omite el nombre del generador.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Generador desconocido '{generatorKey}' en el pack {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Abriendo Noise Explorer para el generador '{value}' (semilla {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Esta dimensión no está generada por Iris; sitúate en una dimensión de Iris (o Studio) y ejecuta /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Abriendo el mapa Vision de {value} en la pantalla del servidor.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "No se pudo escribir el espacio de trabajo de {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Espacio de trabajo regenerado: {value}, con esquemas JSON para autocompletado.", + "iris.modded.moddedstudiocommands.could_not_open": "No se pudo abrir {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Abriendo {value} en tu editor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Esta dimensión no está generada por Iris; indica explícitamente el nombre de un pack.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "El pack '{name}' no se encontró en {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Indica un pack de dimensión: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Abriendo Studio para '{pack}' (semilla {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Falta el pack '{pack}'; descargando IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "No se pudo descargar el pack '{pack}'; comprueba el nombre y prueba /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "El pack '{pack}' no contiene dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "No se pudo abrir Studio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "No se pudo inyectar Studio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Studio de consola abierto: {dimensionId} ahora ejecuta '{pack}' con semilla {seed} (transitorio; no se escribe en iris-dimensions.json y se elimina al reiniciar).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Entra con: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Pregenera con: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Elimínalo con: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "No se pudo inyectar Studio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio abierto: {dimensionId} ahora ejecuta '{pack}' con semilla {seed}. Usa /iris studio close cuando termines.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "No tienes un Studio abierto. Usa primero /iris studio open .", + "iris.modded.moddedstudiocommands.studio_close_failed": "No se pudo cerrar Studio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio cerrado: {dimensionId} se evacuó, se retiró de la memoria y se eliminaron sus datos de región.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "No hay ninguna dimensión de Studio abierta.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Dimensión(es) de Studio activa(s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: pack '{value2}', semilla {value3}, propietario {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Este comando solo puede ser utilizado por jugadores.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "No tienes un Studio abierto. Usa primero /iris studio open .", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Tu dimensión de Studio ya no está cargada. Usa de nuevo /iris studio open .", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Te has teletransportado a tu Studio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "El pack '{value}' no contiene dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "El pack \"{value}\" tiene la versión: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Nombre de proyecto no válido '{nameRaw}' (permitido: a-z, 0-9, _ y -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "El pack '{name}' ya existe en {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Creando el proyecto '{name}' desde la plantilla '{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "La plantilla '{template}' no está instalada; descargando IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "No se pudo descargar la plantilla '{template}'; instala primero un pack con dimensions/{template2}.json.", + "iris.modded.moddedstudiocommands.created_project_at": "Proyecto '{name}' creado en {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Edita dimensions/{name}.json y el resto del pack. Se generó un espacio de trabajo de VSCode con autocompletado mediante esquemas JSON; ábrelo o vuelve a ejecutar /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "La creación del proyecto falló: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Empaquetando la dimensión '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paquete compilado: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "El empaquetado falló: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Este comando solo puede usarlo un jugador (el muestreo se centra en tu posición).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Esta dimensión no fue generada por Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Muestreando la distribución de regiones en {value}x{value2} chunks a tu alrededor...", + "iris.modded.moddedstudiocommands.rarity": "{key}: rareza={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "El muestreo de regiones falló: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "El pack '{pack}' no está instalado; descargando IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "No se pudo descargar el pack '{pack}'; comprueba el nombre o instálalo con /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "No se pudo inyectar el mundo de Iris '{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Se creó el mundo de Iris {dimensionId} desde el pack '{pack}', dimensión '{packDimension}' (semilla {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Ya está activo y se vuelve a inyectar en cada inicio. Teletranspórtate con /iris world status o mediante un portal; no es necesario reiniciar.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "No se pudo inyectar el mundo principal de Iris: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "El mundo principal de Iris se estableció en {dimensionId} (pack '{pack}', dimensión '{packDimension}', semilla {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "El generador del overworld vanilla no puede sustituirse en caliente, por lo que esto NO regenera el overworld existente.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "En su lugar, {dimensionId} es ahora el mundo principal configurado: los jugadores del overworld vanilla se dirigen allí al entrar y se vuelve a inyectar en cada inicio.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Se eliminó la sobrescritura del mundo principal de Iris. El overworld conserva su generador actual; edita level-type en server.properties y reinicia para restaurarlo.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Semilla no válida '{seedRaw}'. Usa un número o 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "El pack '{pack}' no está instalado; descargando IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "No se pudo descargar el pack '{pack}'; comprueba el nombre o instálalo con /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "El pack '{pack}' todavía no está listo (se está cargando o validando). Vuelve a ejecutar el comando dentro de un momento.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "No se pudo escribir server.properties; comprueba los permisos del archivo y establece level-type manualmente.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "El mundo principal de Iris se estableció en '{pack}' (preset {preset}, semilla {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "level-type en server.properties ahora es {preset}. En el próximo reinicio, overworld, nether y end se regenerarán como este mundo de Iris.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Se conservan los datos de los jugadores (inventarios, avances y estadísticas); el terreno existente en esas dimensiones se sustituirá. Esto se aplica una sola vez.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart está activado: deteniendo el servidor para que el sistema de reinicio lo inicie con el nuevo mundo principal.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Reinicia el servidor ahora para generarlo. (Establece mainWorldAutoRestart=true en modded.json para que Iris detenga el servidor.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Se rechaza la creación del mundo '{dimensionId}' con el pack '{pack}' porque falló una validación obligatoria:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Corrige el pack y ejecuta /iris pack validate {pack} para volver a validarlo.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "El pack '{pack}' no se encontró en {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "El pack '{pack}' no contiene dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Referencia de pack no válida '{pack}{value}'. Usa pack o pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Semilla no válida '{seedRaw}'. Usa un número o 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "No se pudo eliminar el mundo de Iris '{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "El mundo de Iris '{dimensionId}' no estaba cargado; se eliminó su entrada persistente del registro y se borraron del disco sus datos de chunks/Mantle.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "El mundo de Iris '{dimensionId}' no estaba cargado; se eliminó su entrada persistente del registro. Los datos del mundo se conservan en disco.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Se eliminó el mundo de Iris '{dimensionId}': evacuado, retirado de la memoria, datos de chunks/Mantle borrados y eliminado del registro de inicio.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Se desactivó el mundo de Iris '{dimensionId}': evacuado, retirado de la memoria y eliminado del registro de inicio.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Los datos del mundo se conservan en disco; vuelve a activarlo con /iris world enable {dimensionId} o elimínalo con /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Nivel de Iris cargado: {value} -> pack '{value2}', dimensión '{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Mundo principal: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "No hay dimensiones de Iris cargadas. Crea una con /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Dimensiones de Iris cargadas: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Usa /iris world create para inyectar una sin reiniciar.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Descargar y gestionar importaciones externas de datapacks (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Descargar o actualizar todos los datapacks incluidos en 'datapackImports' de una dimensión del pack e instalarlos en el mundo para que sus estructuras se registren como en vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Reiniciar el servidor al instalar datapacks nuevos (necesario para registrar y generar sus estructuras)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Listar las importaciones de datapacks configuradas y sus versiones instaladas", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Eliminar un datapack instalado por id (elimina también su URL de datapackImports para que no vuelva a instalarse)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "El id del datapack (nombre de carpeta) que muestra /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Gestor de mundos de Iris", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Obtener el número de TectonicPlates cargadas", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Enviar una excepción de prueba a Sentry", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Calcular el hash de los bloques generados en un área fija para comprobar el determinismo y la identidad", + "iris.director.commanddeveloper.param.world_hash": "El mundo cuyo hash se calculará", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Radio en chunks alrededor del centro", + "iris.director.commanddeveloper.param.center_chunk_x": "Chunk central X", + "iris.director.commanddeveloper.param.center_chunk_z": "Chunk central Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Actualizar el pack de un mundo (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "El mundo que se actualizará", + "iris.director.commanddeveloper.param.pack_install_into_world": "El pack que se instalará en el mundo", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "¡Asegúrate de crear una copia de seguridad y leer primero las advertencias!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Indica si Iris debe volver a descargar el pack", + "iris.director.commanddeveloper.director.test": "Prueba", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Volcar toda la placa tectónica en lugar de una sola sección", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "El id del archivo de volcado en plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Prueba", + "iris.director.commanddeveloper.param.pack_bench": "El pack para el benchmark", + "iris.director.commanddeveloper.param.radius_regions": "Radio en regiones", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Abrir la GUI durante el benchmark", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Actualizar a otra versión de Minecraft", + "iris.director.commanddeveloper.param.version_upgrade": "La versión a la que se actualizará", + "iris.director.commanddeveloper.director.test_3": "prueba", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "La carpeta del mundo que se analizará en busca de archivos de región .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Eliminar los bloques de chunks cercanos para probar la regeneración", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Radio en chunks alrededor de tu chunk actual", + "iris.director.commanddeveloper.director.test_4": "Prueba", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Eliminar y regenerar chunks cercanos en el mismo lugar con la generación de Iris", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "El radio de chunks cercanos", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Generar chunks en búferes (sin escribir en el mundo) y calcular el hash de bloques y biomas; captura un archivo de referencia o lo verifica contra uno existente. Restablece Mantle en el área analizada; úsalo solo en mundos de prueba desechables.", + "iris.director.commanddeveloper.param.world_scan": "El mundo que se analizará", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Radio en chunks alrededor del centro", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Chunk central X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Chunk central Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Eliminar primero los datos de Mantle del área analizada para regenerarla completamente desde cero", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Generaciones de chunks simultáneas; 1 = ejecución estrictamente secuencial para probar la dependencia del orden", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Volcar también todos los estados de bloque que no sean aire de cada chunk para compararlos sin conexión", + "iris.director.commandedit.director.edit_something": "Editar algo", + "iris.director.commandedit.director.edit_biome_you_specified": "Editar el bioma indicado", + "iris.director.commandedit.param.biome_edit": "El bioma que se editará", + "iris.director.commandedit.director.edit_region_you_specified": "Editar la región indicada", + "iris.director.commandedit.param.region_edit": "La región que se editará", + "iris.director.commandedit.director.edit_dimension_you_specified": "Editar la dimensión indicada", + "iris.director.commandedit.param.dimension_edit": "La dimensión que se editará", + "iris.director.commandfind.director.iris_find_commands": "Comandos de búsqueda de Iris", + "iris.director.commandfind.director.find_biome": "Buscar un bioma", + "iris.director.commandfind.param.biome_look": "El bioma que se buscará", + "iris.director.commandfind.param.should_you_be_teleported": "Indica si debes teletransportarte", + "iris.director.commandfind.director.find_region": "Buscar una región", + "iris.director.commandfind.param.region_look": "La región que se buscará", + "iris.director.commandfind.param.should_you_be_teleported_2": "Indica si debes teletransportarte", + "iris.director.commandfind.director.find_point_interest": "Buscar un punto de interés.", + "iris.director.commandfind.param.type_poi_look": "El tipo de PoI que se buscará.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Indica si debes teletransportarte", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Buscar una estructura (una clave vanilla como minecraft:village_plains o minecraft:stronghold, o una clave de estructura importada de Iris)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "La estructura que se buscará (p. ej., minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)", + "iris.director.commandfind.director.find_object": "Buscar un objeto", + "iris.director.commandfind.param.object_look": "El objeto que se buscará", + "iris.director.commandfind.param.should_you_be_teleported_4": "Indica si debes teletransportarte", + "iris.director.commandiris.director.basic_command": "Comando básico", + "iris.director.commandiris.director.create_new_world": "Crear un mundo nuevo", + "iris.director.commandiris.param.name_world_create": "El nombre del mundo que se creará", + "iris.director.commandiris.param.dimension_pack_create_world_with": "La dimensión o el pack con el que se creará el mundo", + "iris.director.commandiris.param.seed_generate_world_with": "La semilla con la que se generará el mundo", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Indica si este mundo debe usarse automáticamente como mundo principal", + "iris.director.commandiris.director.teleport_another_world": "Teletransportarse a otro mundo", + "iris.director.commandiris.param.world_teleport": "El mundo al que se teletransportará", + "iris.director.commandiris.param.player_teleport": "El jugador que se teletransportará", + "iris.director.commandiris.director.print_version_information": "Mostrar información de la versión", + "iris.director.commandiris.director.benchmark_pack": "Ejecutar el benchmark de un pack", + "iris.director.commandiris.param.dimension_benchmark": "La dimensión para el benchmark", + "iris.director.commandiris.director.print_world_height_information": "Mostrar información sobre la altura del mundo", + "iris.director.commandiris.director.check_access_all_worlds": "Comprobar el acceso a todos los mundos.", + "iris.director.commandiris.director.remove_iris_world": "Eliminar un mundo de Iris", + "iris.director.commandiris.param.world_remove": "El mundo que se eliminará", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Indica si también debe eliminarse la carpeta (si es false, el mundo simplemente no se carga)", + "iris.director.commandiris.director.toggle_debug": "Activar o desactivar la depuración", + "iris.director.commandiris.director.download_project": "Descargar un proyecto.", + "iris.director.commandiris.param.pack_download": "El pack que se descargará", + "iris.director.commandiris.param.branch_download_from": "La rama desde la que se descargará", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Indica si el pack debe sobrescribirse con el descargado", + "iris.director.commandiris.director.get_metrics_your_world": "Obtener métricas de tu mundo", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Recargar el archivo de configuración (también se hace automáticamente)", + "iris.director.commandiris.director.unload_iris_world": "Retirar un mundo de Iris de la memoria", + "iris.director.commandiris.param.world_unload": "El mundo que se retirará de la memoria", + "iris.director.commandiris.director.load_iris_world": "Cargar un mundo de Iris", + "iris.director.commandiris.param.name_world_load": "El nombre del mundo que se cargará", + "iris.director.commandiris.director.evacuate_iris_world": "Evacuar un mundo de Iris", + "iris.director.commandiris.param.evacuate_world": "Evacuar el mundo", + "iris.director.commandobject.director.iris_object_manipulation": "Manipulación de objetos de Iris", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Abrir un mundo de Object Studio (cuadrícula con todos los objetos; la dimensión es opcional y, si se omite, se usan todos los packs)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Dimensión opcional cuyo pack de objetos se distribuirá; omítela para reunir los objetos de todos los packs", + "iris.director.commandobject.param.seed_generate_studio_with": "La semilla con la que se generará Studio", + "iris.director.commandobject.director.check_composition_object": "Comprobar la composición de un objeto", + "iris.director.commandobject.param.object_analyze": "El objeto que se analizará", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Reducir un objeto a su tamaño mínimo", + "iris.director.commandobject.param.object_shrink": "El objeto que se reducirá", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Extender ramas orgánicas por la copa para que todas las hojas sobrevivan a la desaparición natural de vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Clave de objeto, prefijo (trees/) o ruta del sistema de archivos", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true solo analiza y no escribe nada", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N define la longitud máxima de las ramas, en bloques desde la madera existente; los grupos de hojas más lejanos se marcan como persistentes. reach=0 permite un crecimiento ilimitado", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Convertir los archivos .schem de la carpeta 'convert' en archivos .iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Obtener un polvo que revela objetos", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Contraer una selección según la dirección en la que miras", + "iris.director.commandobject.param.amount_inset_by": "La cantidad que se contraerá", + "iris.director.commandobject.director.set_point_1_look": "Establecer el punto 1 donde miras", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Indica si se usará tu posición actual o el lugar al que miras", + "iris.director.commandobject.director.set_point_2_look": "Establecer el punto 2 donde miras", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Indica si se usará tu posición actual o el lugar al que miras", + "iris.director.commandobject.director.paste_object": "Pegar un objeto", + "iris.director.commandobject.param.object_paste": "El objeto que se pegará", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Indica si se editará el objeto (debes sostener la varita)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "El número de grados que se rotará", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "El factor con el que se escalará la colocación del objeto", + "iris.director.commandobject.param.scale_interpolator_use": "El interpolador de escala que se usará", + "iris.director.commandobject.director.save_object": "Guardar un objeto", + "iris.director.commandobject.param.dimension_store_object": "La dimensión en la que se almacenará el objeto", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "El archivo en el que se almacenará; puedes usar / para indicar subcarpetas", + "iris.director.commandobject.param.overwrite_existing_object_files": "Sobrescribir los archivos de objetos existentes", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Usar la serialización antigua de TileState si es posible", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Desplazar una selección en la dirección en la que miras", + "iris.director.commandobject.param.amount_shift_by": "La cantidad que se desplazará", + "iris.director.commandobject.director.undo_number_pastes": "Deshacer varios pegados", + "iris.director.commandobject.param.amount_pastes_undo": "El número de pegados que se desharán", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Obtener una varita de objeto y capturar la selección actual de WorldEdit.", + "iris.director.commandobject.director.get_object_wand": "Obtener una varita de objeto", + "iris.director.commandobject.director.autoselect_up_down_out": "Seleccionar automáticamente hacia arriba, abajo y afuera", + "iris.director.commandobject.director.autoselect_up_out": "Seleccionar automáticamente hacia arriba y afuera", + "iris.director.commandpack.director.pack_validation_maintenance": "Validación y mantenimiento de packs", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Validar un pack (o todos los packs) y volver a publicar los resultados", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "El nombre de la carpeta del pack que se validará (déjalo vacío para validar todos)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Previsualizar o aplicar la limpieza de recursos sin usar", + "iris.director.commandpack.param.pack_folder_name_clean": "El nombre de la carpeta del pack que se limpiará", + "iris.director.commandpack.param.preview_apply": "previsualizar o aplicar", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Previsualizar o aplicar la restauración de la cuarentena más reciente", + "iris.director.commandpack.param.pack_folder_name_restore": "El nombre de la carpeta del pack que se restaurará", + "iris.director.commandpack.param.preview_apply_2": "previsualizar o aplicar", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Mostrar el estado de validación almacenado en caché de un pack", + "iris.director.commandpack.param.pack_folder_name": "El nombre de la carpeta del pack", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "¡Pregenerar tus mundos de Iris!", + "iris.director.commandpregen.director.pregenerate_world": "Pregenerar un mundo", + "iris.director.commandpregen.param.radius_pregen_blocks": "El radio de la pregeneración en bloques", + "iris.director.commandpregen.param.world_pregen": "El mundo que se pregenerará", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "La ubicación central de la pregeneración. Usa \"me\" para indicar tu ubicación actual", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Abrir la GUI de pregeneración de Iris", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Generar un solo chunk a la vez", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Detener la tarea de pregeneración activa", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pausar o reanudar la tarea de pregeneración activa", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Mostrar el estado de la pregeneración activa", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Herramientas de estructuras de Iris (index, import, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Regenerar structure-index.json con todas las estructuras vanilla, de datapacks y de Iris", + "iris.director.commandstructure.param.dimension_whose_pack_index": "La dimensión cuyo pack se indexará", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importa TODAS las estructuras —vanilla Y de datapacks ingeridos— en este pack como recursos Iris editables, sobrescribiéndolos siempre. Reconstruye estructuras jigsaw (aldeas, puestos de saqueadores y jigsaws de datapacks) como gráficos pool/piece editables, importa cada plantilla de estructura NBT como objeto y ensambla las estructuras de varias plantillas (naufragios, portales en ruinas, ruinas oceánicas y fósiles del Nether). Ejecútalo después de ingerir un datapack y reiniciar. Regenera los chunks o usa un mundo nuevo para colocar las copias importadas.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "La dimensión en cuyo pack se importarán las estructuras", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Captura estructuras generadas por código que no tienen plantilla NBT (cabañas de pantano, iglús, etc.) como objetos editables de Iris: genera cada una en un mundo temporal desechable y vuelve a leer sus bloques. Omite las estructuras que ya se importan como estructura, las que superan el límite de captura (fortalezas, mansiones y monumentos siguen siendo vanilla) y las que no se generan en un overworld plano. Cada estructura capturada se convierte en una estructura de Iris de una sola pieza que puedes colocar desde una lista 'structures' de bioma, región o dimensión. Se ejecuta automáticamente como última fase de /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "La dimensión en cuyo pack se capturarán las estructuras", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Comprobar si las estructuras nativas pueden generarse y localizar estructuras colocadas por Iris sin ejecutar búsquedas nativas bloqueantes.", + "iris.director.commandstructure.param.dimension_verify": "La dimensión que se verificará", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Radio de búsqueda en chunks alrededor del origen (un radio mayor es mucho más lento)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Resolver el grafo jigsaw de una estructura de Iris e informar del número de piezas y sus límites", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "La dimensión cuyo pack contiene la estructura", + "iris.director.commandstructure.param.iris_structure_key_inspect": "La clave de la estructura de Iris que se inspeccionará", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Ensamblar y colocar una estructura de Iris en tu ubicación (pruebas de Studio)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "La dimensión cuyo pack contiene la estructura", + "iris.director.commandstructure.param.iris_structure_key_place": "La clave de la estructura de Iris que se colocará", + "iris.director.commandstudio.director.studio_commands": "Comandos de Studio", + "iris.director.commandstudio.director.open_new_studio_world": "Abrir un mundo de Studio nuevo", + "iris.director.commandstudio.param.dimension_pack_open_studio": "El pack de dimensión para el que se abrirá Studio", + "iris.director.commandstudio.param.seed_generate_studio_with": "La semilla con la que se generará Studio", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Importar árboles, hongos y objetos vanilla (además de structures/jigsaw) desde el servidor a la carpeta objects/vanilla de un pack", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "El pack de dimensión en el que se importará el contenido vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Número de variantes que se capturarán por cada función de árbol u objeto", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Importar también las structures/jigsaw vanilla y de datapacks en el pack", + "iris.director.commandstudio.director.open_vscode_dimension": "Abrir VSCode para una dimensión", + "iris.director.commandstudio.param.dimension_open_vscode": "La dimensión para la que se abrirá VSCode", + "iris.director.commandstudio.director.close_open_studio_project": "Cerrar un proyecto de Studio abierto", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Mostrar u ocultar tu marcador de depuración de Studio", + "iris.director.commandstudio.director.create_new_studio_project": "Crear un proyecto de Studio nuevo", + "iris.director.commandstudio.param.name_this_new_iris_project": "El nombre de este proyecto nuevo de Iris.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Copiar el contenido de un proyecto existente de la carpeta de packs y usarlo como plantilla para este proyecto nuevo.", + "iris.director.commandstudio.director.get_version_pack": "Obtener la versión de un pack", + "iris.director.commandstudio.param.dimension_get_version": "La dimensión cuya versión se obtendrá", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Abrir Noise Explorer (GUI externa)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Generador de pack opcional que se previsualizará", + "iris.director.commandstudio.param.seed_preview_generator_with": "La semilla con la que se previsualizará el generador", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Mostrar el botín que tendría un cofre colocado aquí", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Inserción rápida de objetos en el inventario virtual (puede reducir el rendimiento)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Indica si se añadirán los objetos al inventario abierto (si es false, se vacía primero)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Calcular la probabilidad de generación de cada región", + "iris.director.commandstudio.param.radius_chunks": "El radio en chunks", + "iris.director.commandstudio.director.render_world_map_external_gui": "Renderizar un mapa del mundo (GUI externa)", + "iris.director.commandstudio.param.world_open_generator": "El mundo cuyo generador se abrirá", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Empaquetar una dimensión en un formato comprimido", + "iris.director.commandstudio.param.dimension_pack_compress": "El pack de dimensión que se comprimirá", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Indica si el pack debe ofuscarse", + "iris.director.commandstudio.param.whether_not_minify_pack": "Indica si el pack debe minimizarse", + "iris.director.commandstudio.director.profiles_performance_dimension": "Perfilar el rendimiento de una dimensión", + "iris.director.commandstudio.param.dimension_profile": "La dimensión cuyo rendimiento se perfilará", + "iris.director.commandstudio.director.spawn_iris_entity": "Generar una entidad de Iris", + "iris.director.commandstudio.param.entity_spawn": "La entidad que se generará", + "iris.director.commandstudio.param.location_spawn_entity_at": "La ubicación en la que se generará la entidad", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teletransportarse al mundo de Studio activo", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Actualizar el espacio de trabajo de VSCode de tus proyectos de dimensión", + "iris.director.commandstudio.param.dimension_update_workspace": "La dimensión cuyo espacio de trabajo se actualizará", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Capturar un informe de chunks de IGenData para los chunks cercanos", + "iris.director.commandwhat.director.iris_what": "¿Qué hay en Iris?", + "iris.director.commandwhat.director.what_is_my_hand": "¿Qué tengo en la mano?", + "iris.director.commandwhat.director.what_biome_am_i": "¿En qué bioma estoy?", + "iris.director.commandwhat.director.what_region_am_i": "¿En qué región estoy?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "¿Qué bloque estoy mirando?", + "iris.director.commandwhat.director.show_markers_chunk": "Mostrar marcadores en el chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Nombre del marcador, como cave_floor o cave_ceiling", + "iris.modded.help.entry.command.version": "Mostrar información de la versión", + "iris.modded.help.entry.command.info": "Listar las dimensiones de Iris cargadas y los detalles de sus packs", + "iris.modded.help.entry.command.what": "Inspeccionar el bioma de Iris, la región, el bioma de cueva, la superficie y el chunk de tu posición, el bloque que miras, el objeto que sostienes o los marcadores cercanos", + "iris.modded.help.entry.group.find": "Buscar y teletransportarse a biomas de Iris, regiones, objetos, estructuras de Iris, estructuras nativas y puntos de interés", + "iris.modded.help.entry.command.tp": "Teletransportarte o teletransportar a otro jugador a una dimensión de Iris cargada", + "iris.modded.help.entry.command.evacuate": "Teletransportar a todos los jugadores desde una dimensión de Iris al spawn del mundo principal", + "iris.modded.help.entry.command.seed": "Mostrar información sobre la semilla del mundo y del motor", + "iris.modded.help.entry.command.debug": "Alternar el registro de depuración de Iris y guardar settings.json", + "iris.modded.help.entry.command.reload": "Recargar settings.json (también se recarga en caliente automáticamente cada 3s)", + "iris.modded.help.entry.command.download": "Descargar un proyecto de pack", + "iris.modded.help.entry.command.metrics": "Mostrar métricas de generación de tu dimensión de Iris actual", + "iris.modded.help.entry.command.regen": "Eliminar y regenerar chunks cercanos en el mismo lugar", + "iris.modded.help.entry.group.pregen": "Pregenerar una dimensión de Iris", + "iris.modded.help.entry.command.wand": "Obtener una varita de objetos de Iris", + "iris.modded.help.entry.group.object": "Herramientas de varita, guardado, pegado, análisis y deshacer objetos", + "iris.modded.help.entry.group.edit": "Abrir archivos json de biomas, regiones y dimensiones del pack en el editor de escritorio", + "iris.modded.help.entry.command.create": "Crear e inyectar una dimensión de Iris persistente; escribe pack:dimensionKey entre comillas para elegir una dimensión concreta del pack", + "iris.modded.help.entry.group.studio": "Creación, empaquetado e informes de proyectos de packs", + "iris.modded.help.entry.group.pack": "Validación y mantenimiento de packs", + "iris.modded.help.entry.group.world": "Creación, eliminación y estado de dimensiones de Iris en tiempo de ejecución", + "iris.modded.help.entry.group.datapack": "Herramientas de instalación y estado de datapacks del mundo", + "iris.modded.help.entry.group.structure": "Herramientas de índice, información y colocación de estructuras de Iris", + "iris.modded.help.entry.command.goldenhash": "Generar hashes de bloques deterministas para pruebas de paridad", + "iris.modded.help.entry.group.developer": "Diagnósticos para desarrolladores: prueba de Sentry, interfaces de red y análisis de archivos de región", + "iris.modded.help.entry.command.biome": "Buscar un bioma de Iris", + "iris.modded.help.entry.command.region": "Buscar una región de Iris", + "iris.modded.help.entry.command.object": "Buscar la colocación de un objeto", + "iris.modded.help.entry.command.structure": "Buscar una estructura colocada por Iris o una estructura nativa/de datapack", + "iris.modded.help.entry.command.poi": "Buscar un punto de interés compatible", + "iris.modded.help.entry.command.biome_2": "Abrir el json de un bioma en el editor de escritorio; sin clave, abre el bioma de tu posición", + "iris.modded.help.entry.command.region_2": "Abrir el json de una región en el editor de escritorio; sin clave, abre la región de tu posición", + "iris.modded.help.entry.command.dimension": "Abrir el json de la dimensión del pack actual en el editor de escritorio", + "iris.modded.help.entry.command.start": "Iniciar la pregeneración; radio en bloques, caché de punto de control reanudable activada de forma predeterminada, centro mediante 'at ' y opciones combinables en cualquier orden", + "iris.modded.help.entry.command.stop": "Detener la tarea de pregeneración activa", + "iris.modded.help.entry.command.pause": "Pausar o reanudar la pregeneración", + "iris.modded.help.entry.command.status": "Mostrar el estado de la pregeneración", + "iris.modded.help.entry.command.wand_3": "Obtener una varita de objetos de Iris", + "iris.modded.help.entry.command.dust": "Obtener polvo que revela las colocaciones de objetos", + "iris.modded.help.entry.command.save": "Guardar como objeto el volumen seleccionado con la varita", + "iris.modded.help.entry.command.paste": "Pegar un objeto en tu posición o en otra posición, con rotación opcional", + "iris.modded.help.entry.command.expand": "Expandir la selección de la varita en la dirección de la mirada", + "iris.modded.help.entry.command.contract": "Contraer la selección de la varita en la dirección de la mirada", + "iris.modded.help.entry.command.shift": "Desplazar la selección de la varita en la dirección de la mirada", + "iris.modded.help.entry.command.position1": "Fijar el punto 1 de la selección", + "iris.modded.help.entry.command.position2": "Fijar el punto 2 de la selección", + "iris.modded.help.entry.command.x_y": "Seleccionar automáticamente hacia arriba y hacia fuera", + "iris.modded.help.entry.command.x_y_2": "Seleccionar automáticamente hacia arriba, abajo y hacia fuera", + "iris.modded.help.entry.command.analyze": "Mostrar la composición de un objeto", + "iris.modded.help.entry.command.shrink": "Reducir un objeto a su tamaño mínimo", + "iris.modded.help.entry.command.plausibilize": "Hacer crecer ramas para que las hojas sobrevivan a la descomposición vanilla", + "iris.modded.help.entry.command.undo": "Deshacer objetos pegados", + "iris.modded.help.entry.command.create_2": "Crear un proyecto de pack nuevo", + "iris.modded.help.entry.command.package": "Empaquetar una dimensión en un formato comprimido", + "iris.modded.help.entry.command.version_2": "Mostrar la versión de un pack", + "iris.modded.help.entry.command.regions": "Calcular la distribución de regiones cercanas", + "iris.modded.help.entry.command.open": "Abrir una dimensión de Studio temporal para un pack", + "iris.modded.help.entry.command.close": "Cerrar la dimensión de Studio abierta y descartar su mundo", + "iris.modded.help.entry.command.tpstudio": "Teletransportarse a la dimensión de Studio abierta", + "iris.modded.help.entry.command.status_studio": "Mostrar la dimensión de Studio abierta y su pack", + "iris.modded.help.entry.command.noise": "Abrir la GUI de Noise Explorer en la pantalla del servidor", + "iris.modded.help.entry.command.map": "Abrir la GUI del mapa Vision en la pantalla del servidor", + "iris.modded.help.entry.command.vscode": "Regenerar el archivo .code-workspace de un pack y abrirlo en el editor de escritorio", + "iris.modded.help.entry.command.update": "Regenerar el archivo .code-workspace de un pack", + "iris.modded.help.entry.command.importvanilla": "Explicar el flujo de importación vanilla", + "iris.modded.help.entry.command.validate": "Validar un pack o todos los packs", + "iris.modded.help.entry.command.cleanup": "Previsualizar o poner en cuarentena candidatos a recursos sin usar", + "iris.modded.help.entry.command.restore": "Previsualizar o restaurar la cuarentena más reciente", + "iris.modded.help.entry.command.status_validation": "Mostrar el estado de validación almacenado en caché", + "iris.modded.help.entry.command.enable": "Crear e inyectar una dimensión de Iris persistente en tiempo de ejecución; descargar el pack si falta y escribir pack:dimensionKey entre comillas para elegir una dimensión concreta del pack", + "iris.modded.help.entry.command.replace_overworld": "Inyectar un mundo principal de Iris y dirigir allí a los jugadores en lugar de al overworld vanilla", + "iris.modded.help.entry.command.disable": "Evacuar y retirar de la memoria una dimensión de Iris; los datos del mundo se conservan en disco para volver a activarla", + "iris.modded.help.entry.command.delete": "Desactivar una dimensión de Iris y borrar del disco sus datos de chunks y Mantle", + "iris.modded.help.entry.command.list": "Listar las dimensiones de Iris cargadas", + "iris.modded.help.entry.command.status_world": "Mostrar las dimensiones de Iris cargadas y el mundo principal configurado", + "iris.modded.help.entry.command.status_datapack": "Comprobar las sobrescrituras de tipo de dimensión de Iris cargadas", + "iris.modded.help.entry.command.install": "Instalar sobrescrituras de tipo de dimensión para las dimensiones de Iris cargadas", + "iris.modded.help.entry.command.list_datapacks": "Listar los datapacks configurados e instalados", + "iris.modded.help.entry.command.ingest": "Explicar el flujo de ingesta de datapacks de Bukkit", + "iris.modded.help.entry.command.remove": "Explicar el flujo de eliminación de datapacks", + "iris.modded.help.entry.command.list_structures": "Regenerar structure-index.json", + "iris.modded.help.entry.command.info_2": "Resolver el grafo de una estructura de Iris e informar de sus límites", + "iris.modded.help.entry.command.place": "Ensamblar y colocar una estructura de Iris en tu posición", + "iris.modded.help.entry.command.import": "Explicar el flujo de importación de estructuras de Bukkit", + "iris.modded.help.entry.command.capture": "Explicar el flujo de captura de estructuras de Bukkit", + "iris.modded.help.entry.command.verify": "Informar de la accesibilidad de estructuras nativas y de Iris en la dimensión actual", + "iris.modded.help.entry.command.sentry": "Enviar una excepción de prueba al sistema de informes de errores de Iris", + "iris.modded.help.entry.command.network": "Listar las interfaces de red y sus direcciones", + "iris.runtime.progress.finding_regions": "Buscando regiones", + "iris.runtime.progress.converting": "Convirtiendo", + "iris.runtime.status.running": "En ejecución", + "iris.runtime.status.stopped": "Detenido", + "iris.runtime.status.paused": "Pausado", + "iris.runtime.status.paused_lower": "pausado", + "iris.runtime.status.running_lower": "en ejecución", + "iris.runtime.status.enabled": "activado.", + "iris.runtime.status.disabled": "desactivado.", + "iris.runtime.status.unregistered": "no registrado", + "iris.runtime.status.none": "ninguno", + "iris.runtime.status.random": "aleatorio", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "verdadero", + "iris.runtime.status.false": "falso", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " sobrescribiendo", + "iris.runtime.datapack.override_suffix": " (sobrescritura del datapack del mundo instalada)", + "iris.runtime.primary_world.players_routed_suffix": " (los jugadores se dirigirán allí)", + "iris.runtime.primary_world.routing_disabled_suffix": " (redirección desactivada)", + "iris.runtime.modded.no_dimension_match": "Ninguna dimensión de Iris coincide con '{filter}'.", + "iris.runtime.teleport.world": "Te has teletransportado a {world}.", + "iris.runtime.engine.hotloaded": "Motor recargado en caliente", + "iris.runtime.job.completed": "{job} completado en {duration}", + "iris.runtime.job.scanning_selection": "Escaneando selección", + "iris.runtime.job.loading_chunks": "Cargando chunks", + "iris.runtime.job.searched_chunks": "Se buscaron {chunks} chunks", + "iris.runtime.job.compile": "Compilar", + "iris.runtime.job.saving_object": "Guardando objeto", + "iris.runtime.job.downloading": "Descargando", + "iris.runtime.job.extracting": "Extrayendo", + "iris.runtime.job.installing": "Instalando", + "iris.runtime.compile.iob_empty": "- ¡IOB {file} tiene 0 bloques!", + "iris.runtime.compile.iob_empty_hover": "Error:\n{path}", + "iris.runtime.compile.iob_not_3d": "- ¡IOB {file} no es 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Error:\n{path}\nLa anchura, altura o profundidad es cero (formato no válido)", + "iris.runtime.compile.json_error": "- Error JSON {file}", + "iris.runtime.compile.json_error_hover": "Error:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "No se encuentra un cargador para {path}", + "iris.runtime.datapack.name": "Generación de mundos de Iris", + "iris.runtime.pack.already_exists": "¡El pack ya existe!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "omitir {object}: no se pudo cargar", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} de madera ({branches} ramas), {converted} hojas->madera, ~{distances} distancias", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} de madera ({branches} ramas), {converted} hojas->madera, ~{distances} distancias, !{pinned} fijadas", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "fallo {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Listo: {processed} procesados, {changed} modificados, {skipped} omitidos, {failed} fallidos", + "iris.runtime.tree_plausibilize.done_dry": "Listo: {processed} procesados, {changed} modificados, {skipped} omitidos, {failed} fallidos (simulación, no se escribió nada)", + "iris.runtime.tree_plausibilize.totals": "Totales: +{wood} de madera ({branches} ramas), {converted} hojas->madera, ~{distances} distancias, !{pinned} fijadas, inaccesibles {before} -> {after}", + "iris.runtime.item.wand.name": "Varita de Iris", + "iris.runtime.item.wand.lore.first": "Haz clic izquierdo en un bloque para fijar la primera esquina", + "iris.runtime.item.wand.lore.second": "Haz clic derecho en un bloque para fijar la segunda esquina", + "iris.runtime.item.dust.name": "Polvo revelador", + "iris.runtime.item.dust.lore": "¡Haz clic derecho en un bloque para revelar su estructura de colocación!", + "iris.runtime.wand.position_set": "Posición {position} fijada en {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Esta dimensión no fue generada por Iris.", + "iris.runtime.dust.found_object": "Objeto encontrado: {object}", + "iris.runtime.dust.revealed": "Se revelaron {count} bloque(s) de {object}", + "iris.runtime.dust.revealed_capped": "Se revelaron {count} bloque(s) de {object} (límite alcanzado)", + "iris.runtime.dust.header": "--- Polvo de Iris @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Bloque: {block}", + "iris.runtime.dust.position.above": "Posición: +{offset} SOBRE la superficie (Y de superficie={surfaceY})", + "iris.runtime.dust.position.below": "Posición: {offset} bajo la superficie (Y de superficie={surfaceY})", + "iris.runtime.dust.position.at": "Posición: en la superficie (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Objeto @bloque: {object}", + "iris.runtime.dust.none": "ninguno", + "iris.runtime.dust.placed_by.object_above": "Colocado por: objeto/pilar '{object}' (sobre la superficie)", + "iris.runtime.dust.placed_by.decoration_above": "Colocado por: decoración/objeto/pilar (sobre la superficie)", + "iris.runtime.dust.placed_by.buried_object": "Colocado por: objeto enterrado '{object}'", + "iris.runtime.dust.placed_by.terrain": "Colocado por: capa de terreno (profundidad {depth} bajo la superficie)", + "iris.runtime.dust.column_object": "Objeto de la columna: {object} -> este bloque probablemente sea el pilar de ese objeto", + "iris.runtime.dust.column_object_none": "Objeto de columna: {detail}", + "iris.runtime.dust.column_none": "ninguno en 64 bloques (decorador o terreno, NO el pilar de un objeto)", + "iris.runtime.dust.column.above": "{object} @Y={y} (arriba)", + "iris.runtime.dust.column.below": "{object} @Y={y} (abajo)", + "iris.runtime.dust.surface_biome": "Bioma de superficie: {biome}", + "iris.runtime.dust.surface_biome_detail": "Bioma de superficie: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Bioma @Y: {biome}", + "iris.runtime.dust.cave_biome": "Bioma de cueva/Mantle: {biome}", + "iris.runtime.dust.server_biome": "Bioma del servidor: {biome} (ID: {id})", + "iris.runtime.dust.region": "Región: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objetos del chunk: {objects}", + "iris.runtime.dust.copy_button": "[Haz clic para copiar estas estadísticas]", + "iris.runtime.dust.copy_hover": "Copiar las estadísticas del bloque al portapapeles", + "iris.runtime.pregen.starting": "Iniciando pregen de Iris...", + "iris.runtime.pregen.header": "Pregen de Iris", + "iris.runtime.pregen.bossbar.paused": "Pregen de Iris {generated}/{total} {percent}% PAUSADO", + "iris.runtime.pregen.bossbar.running": "Pregen de Iris {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " fallidos {failed}", + "iris.runtime.pregen.status.context": "Dimensión {dimension} · Método {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunks {generated}/{total} · Velocidad {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunks {generated}/{total} · Velocidad {speed}/s · Fallidos {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Transcurrido {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Transcurrido {elapsed} · PAUSADO", + "iris.runtime.pregen.button.pause": "Pausar/Reanudar", + "iris.runtime.pregen.button.pause.hover": "Alternar el estado de pausa de la pregeneración", + "iris.runtime.pregen.button.stop": "Detener", + "iris.runtime.pregen.button.stop.hover": "Terminar la región actual y detener la pregeneración", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cNo se encontró la carpeta packs/.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eNo hay packs que validar.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidación completada. Packs rotos: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cEl pack '{pack}' no se encontró en packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aNo se encontraron candidatos de limpieza para el pack '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aSe pusieron en cuarentena {size} candidato(s) de limpieza en {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cEl modo de limpieza debe ser preview o apply.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aNo se encontraron candidatos de limpieza para el pack '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eVista previa de limpieza del pack '{pack}': {size} candidato(s). No se modificó ningún archivo.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Ejecuta /iris pack cleanup {pack} mode=apply para poner estos candidatos en cuarentena después de un nuevo análisis.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cRestauración rechazada porque ya existen {size} destino(s).", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNo hay nada que restaurar para el pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aSe restauraron {size} archivo(s) desde {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cEl modo de restauración debe ser preview o apply.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNo hay nada que restaurar para el pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eVista previa de restauración de {dumpPath}: {size} archivo(s). No se modificó ningún archivo.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cLa restauración está bloqueada por {size} destino(s) existentes.", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Ejecuta /iris pack restore {pack} mode=apply para restaurar después de una nueva comprobación de conflictos.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eNo hay resultados de validación registrados. Ejecuta primero /iris pack validate.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK§r {pack}§7 (bloqueos={blocking}, advertencias={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cROTO§r {pack}§7 (bloqueos={blocking}, advertencias={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cLa limpieza falló: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cLa restauración falló: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "todavía en cuarentena", + "iris.bukkit.runtime.commandpack.path.quarantined": "en cuarentena", + "iris.bukkit.runtime.commandpack.path.candidate": "candidato", + "iris.bukkit.runtime.commandpack.path.conflict": "conflicto", + "iris.bukkit.runtime.commandpack.path.restored": "restaurado", + "iris.bukkit.runtime.commandpack.path.file": "archivo", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eNo hay ningún resultado de validación para '{pack}'. Ejecuta /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cLa validación de '{name}' falló: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aEl pack '{packName}' se puede cargar.§7 (advertencias={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cEl pack '{packName}' está ROTO:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "one": "§7 ... y {count} advertencia más.", + "other": "§7 ... y {count} advertencias más." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cSiempre debes crear una copia de seguridad antes de usar esto", + "§eLos problemas que puede causar incluyen, entre otros:", + "§e - Chunks rotos (cortes) entre chunks antiguos y nuevos (antes y después de la actualización)", + "§e - Chunks regenerados que no encajan con los chunks antiguos", + "§e - Estructuras que no vuelven a generarse al regenerar", + "§e - Cuevas que no coinciden", + "§e - Capas de terreno que no coinciden", + "§cAhora que conoces los riesgos y has creado una copia de seguridad:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportando §f{total}§a estructuras vanilla y de datapacks (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[fallo] {keyString}: llave inválida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[omitido] {keyString}: no hay una plantilla NBT única; vanilla la construye mediante código o plantillas de piezas separadas (importadas durante la fase de plantillas), así que no hay nada que importar como una sola estructura.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[fallo] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aImportación masiva completada: §f{imported}§a importadas, §f{skipped}§a omitidas, §f{failed}§a fallidas (§f{total}§a en total).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aCreando estructuras de una sola plantilla a partir de las piezas importadas (se coloca una variante en cada generación)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} variantes)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[omitido] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[fallo] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aEstructuras de una plantilla: §f{imported}§a creadas, §f{skipped}§a omitidas, §f{failed}§a fallidas.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cNo se pudieron enumerar las plantillas de estructuras mediante el ResourceManager del servidor: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eNo se encontraron plantillas de estructuras en la ruta de recursos 'structure'.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportando §f{total}§a plantillas de estructuras (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[fallo] {keyString}: llave inválida", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[fallo] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importadas, {skipped} omitidas, {failed} fallidas)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aImportación de plantillas completada: §f{imported}§a importadas, §f{skipped}§a omitidas, §f{failed}§a fallidas (§f{total}§a en total).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eNo hay estructuras de datapacks (ajenas a minecraft) registradas. Ingiere un datapack, reinicia y vuelve a ejecutar esta operación.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportando §f{total}§a estructuras de datapacks (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[fallo] {keyString}: llave inválida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[fallo] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportando §f{size}§a plantillas de estructuras de datapacks...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[fallo] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[fallo] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eNo se pudieron enumerar las plantillas de datapacks mediante el ResourceManager del servidor: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aImportación de estructuras del datapack completada: §f{imported}§a importadas, §f{skipped}§a omitidas, §f{failed}§a fallidas.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eLa vinculación NMS activa no admite la captura de estructuras; se omitirá la fase de captura.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7No quedan estructuras generadas por código que capturar (todas ya se importaron como estructuras).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aCapturando §f{total}§a estructuras generadas por código (sin plantilla NBT) en un mundo temporal (se omitirán las que superen {MAXSPAN} bloques de ancho o alto)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[omitido] {key}: no se colocó aquí ninguna estructura capturable (es demasiado grande, pertenece a otra dimensión o no tiene una colocación válida en un mundo plano). Seguirá generándose mediante vanilla.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[fallo] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[fallo] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} capturadas, {skipped} omitidas, {failed} fallidas)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aCaptura de estructuras completada: §f{imported}§a capturadas, §f{skipped}§a omitidas, §f{failed}§a fallidas (§f{total}§a en total).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eLa vinculación NMS activa no expone ninguna funcionalidad vanilla de árboles u objetos (solo se importarán estructuras).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportando §f{total}§a funcionalidades vanilla de árboles u objetos (§f{wantVariants}§a variantes de cada una) en un mundo temporal...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[omitido] {key}: la funcionalidad no colocó nada después de varios intentos.", + "iris.bukkit.runtime.featureimporter.fail": "§c[fallo] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importadas, {skipped} omitidas, {failed} fallidas)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aImportación de funcionalidades completada: §f{imported}§a escritas, §f{skipped}§a omitidas, §f{failed}§a fallidas (§f{total}§a en total).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cNo se pudo crear el mundo temporal para importar funcionalidades ({error}); se omitirá la fase de árboles y objetos.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "No se encontraron archivos schematic que convertir en {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aSe convirtió {name} -> {value} en {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aSe convirtió {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cNo se pudo guardar: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cNo se pudo convertir: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Convertido: {get} en {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cNo se pudieron convertir algunos schematics. Consulta la consola para obtener más detalles.", + "iris.bukkit.runtime.studiosvc.installing_package": "Instalando pack: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Buscando pack: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Se encontró {type}.iris en la carpeta {WORKSPACENAME}", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Se encontró la dimensión {type} en la carpeta {WORKSPACENAME}. Volviendo a empaquetarla", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "No se encontró {name} en la carpeta dimensions de este pack. ¡Error!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "No se pudo cargar la dimensión. ¡Error!", + "iris.bukkit.runtime.studiosvc.type_installed": "Tipo {name} instalado. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "El pack '{key}' no se encontró en la lista de packs.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Usa /iris download branch= para descargarlo manualmente.", + "iris.bukkit.runtime.studiosvc.failed_download": "No se pudo descargar '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "No se pudo descargar la versión beta de IrisDimensions/overworld.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "No se pudo descargar '{repo}' (rama {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "No se pudo abrir el mundo de Studio: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "No se puede abrir Studio '{dimm}': el pack contiene errores bloqueantes:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Corrige el pack y ejecuta /iris pack validate {dimm} para volver a validarlo.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "No se pudo cerrar el proyecto de Studio existente: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "No se pudo cerrar el proyecto de Studio existente: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "No se pudo abrir el mundo de Studio: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "No se encontró el pack con el que debía crearse una dimensión nueva.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Falta el archivo de la dimensión importada", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importando {downloadable} en el proyecto nuevo {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio: no hay ninguna celda bajo el clic (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: guardando §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: sin cambios {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: celda vacía {pack}/{key} (no hay nada que escribir).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: ningún archivo objetivo para {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: guardado §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: no se pudo guardar {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "No se pudo cargar la dimensión \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "No se pudo obtener el cargador de dimensiones", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cNo se pudo abrir Studio: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cNo se pudo abrir Studio.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio listo §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serializando objetos", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Se escribieron otros {g} objetos", + "iris.bukkit.runtime.irisproject.package_compiled": "¡Pack compilado!", + "iris.bukkit.runtime.irisproject.failed": "¡Error!", + "iris.bukkit.runtime.irisengine.total": "Total §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Motor §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Detalles: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c¡{name} no está definido en la dimensión!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cNo se encontró {message} dentro del radio de búsqueda.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeletransportándose a {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} en: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Has sido evacuado de este mundo.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Has sido evacuado de este mundo. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Hay packs de Iris que contienen biomas personalizados", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Necesita reiniciar su servidor para usar estos packs.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Permisos insuficientes", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "No hay subcomandos o no tienes permiso para usarlos.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parámetros ignorados: {m}", + "iris.runtime.studio.opening": "§6Studio §bABRIENDO", + "iris.runtime.studio.opening_progress": "§6Studio §bABRIENDO§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cFALLÓ§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aLISTO§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cFALLÓ§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio listo§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Inicializando", + "iris.runtime.studio.stage.queued": "En cola", + "iris.runtime.studio.stage.resolve_dimension": "Resolviendo dimensión", + "iris.runtime.studio.stage.prepare_world_pack": "Preparando pack del mundo", + "iris.runtime.studio.stage.install_datapacks": "Instalando datapacks", + "iris.runtime.studio.stage.create_world": "Creando mundo", + "iris.runtime.studio.stage.apply_world_rules": "Aplicando reglas del mundo", + "iris.runtime.studio.stage.prepare_generator": "Preparando generador", + "iris.runtime.studio.stage.request_entry_chunk": "Cargando chunk de entrada", + "iris.runtime.studio.stage.resolve_safe_entry": "Buscando un spawn seguro", + "iris.runtime.studio.stage.teleport_player": "Teletransportando", + "iris.runtime.studio.stage.finalize_open": "Finalizando", + "iris.runtime.studio.stage.cleanup": "Limpiando", + "iris.runtime.world_create.teleport_failed": "§eEl mundo se creó, pero falló el teletransporte automático. Prueba /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunks", + "iris.runtime.world_create.console": "§6Generando §e{percent}%§7 {generated}/{required} chunks§8 ({remaining} restantes)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregenerando", + "iris.runtime.world_create.pregen.console": "§6Pregenerando §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Regenerar", + "iris.runtime.chunk_job.title.delete": "Eliminar", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Preparando", + "iris.runtime.chunk_job.stage.clearing": "Limpiando", + "iris.runtime.chunk_job.stage.resetting_mantle": "Restableciendo Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Regenerando", + "iris.runtime.chunk_job.stage.generating": "Generando", + "iris.runtime.chunk_job.stage.comparing": "Comparando", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnosticando", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bTRABAJANDO", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks en {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks en {elapsed} ({failures} fallidos)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aLISTO§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cFALLÓ§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aListo§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cFalló§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} completado: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} terminó con errores: {summary}", + "iris.runtime.golden.no_capture": "No hay ninguna captura golden en {path}; ejecuta primero una captura.", + "iris.runtime.golden.aborted": { + "one": "GoldenHash cancelado: no se pudo generar {failed} chunk. No se escribió ningún archivo golden.", + "other": "GoldenHash cancelado: no se pudieron generar {failed} chunks. No se escribió ningún archivo golden." + }, + "iris.runtime.golden.failed": "GoldenHash falló: {error}", + "iris.runtime.golden.mantle_reset": "Mantle restablecido ({path})", + "iris.runtime.golden.mantle_reset_failed": "No se pudo restablecer Mantle ({type}); se continuará con el estado actual de Mantle.", + "iris.runtime.golden.captured": "Golden capturado: {chunks} chunks, combinado={hash}", + "iris.runtime.golden.wrong_world": "El archivo golden corresponde a dim={goldenDimension} semilla={goldenSeed}, pero este mundo usa dim={dimension} semilla={seed}. Cancelando.", + "iris.runtime.golden.version_warning": "Golden se capturó en mc={goldenVersion}, pero se ejecuta mc={version}. Las diferencias pueden deberse a la versión.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunks, combinado={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} chunks difieren.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (no aparece en golden)", + "iris.runtime.golden.mismatch_more": " ... y {count} más", + "iris.runtime.golden.current_written": "Hashes actuales escritos en {file}", + "iris.runtime.golden.diag.stable": "Repetición de generación ESTABLE, restablecimiento de Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Repetición de generación INESTABLE ({diffs}+ diferencias de bloques), restablecimiento de Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "ESTABLE (la reconstrucción de Mantle reproduce el resultado del escaneo)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGIÓ ({diffs}+ diferencias: la construcción de Mantle depende del estado/orden)", + "iris.runtime.golden.diag.mantle_skipped": "OMITIDO ({type})", + "iris.runtime.golden.diag.failed": "El diagnóstico falló: {error}", + "iris.runtime.golden.started": "GoldenHash iniciado: {chunks} chunks alrededor de 0,0 en búferes (sin modificar el mundo), hilos={threads} modo={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] hash calculado para el chunk {x},{z}", + "iris.runtime.golden.chunk_failed": "Chunk {x},{z} FALLÓ: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Nombre de pack no válido '{pack}' (permitido: a-z, 0-9, _ y -)", + "iris.runtime.pack_download.invalid_branch_name": "Nombre de rama no válido '{branch}' (permitido: letras, dígitos, . _ y -)", + "iris.runtime.pack_download.failed": "Falló la descarga del pack: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Descargando {url}", + "iris.runtime.pack_download.failed_to_find": "No se encontró el pack en {url}", + "iris.runtime.pack_download.check_repository_and_branch": "¡Asegúrate de haber indicado el repositorio y la rama correctos!", + "iris.runtime.pack_download.example_command": "Por ejemplo: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Descomprimiendo {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Se produjo un problema al descomprimir. Comprueba lo siguiente:", + "1. ¿Tienes una conexión a Internet que funcione?", + "2. ¿Se dañó la descarga?", + "3. Prueba a eliminar la carpeta */plugins/iris/packs y vuelve a descargar.", + "4. Descarga el pack desde el repositorio de GitHub: https://github.com/IrisDimensions/overworld", + "5. Contacta con soporte (si ninguna otra opción ayuda)" + ], + "iris.runtime.pack_download.no_extracted_files": "No se extrajo ningún archivo del archivo zip.", + "iris.runtime.pack_download.home_directory_error": "Error al buscar el directorio de inicio. ¿Hay caracteres que no sean de texto en el nombre del archivo?", + "iris.runtime.pack_download.invalid_archive_format": "Formato no válido. Falta la carpeta raíz o hay demasiadas carpetas.", + "iris.runtime.pack_download.no_dimension_file": "No se encontró ningún archivo de dimensión en el archivo zip extraído.", + "iris.runtime.pack_download.check_github": "¡Comprueba que esté presente en GitHub e informa de ello al personal!", + "iris.runtime.pack_download.one_dimension_required": "La carpeta dimensions debe contener exactamente un archivo.", + "iris.runtime.pack_download.invalid_dimension": "Carpeta de dimensión no válida en dimensions/.", + "iris.runtime.pack_download.importing": "Importando {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Otra dimensión de la carpeta packs ya usa la clave {key}. ¡La importación falló!", + "iris.runtime.pack_download.pack_key_conflict": "Otro pack usa la clave {key}. ¡La importación falló!", + "iris.runtime.pack_download.acquired": "{name} se obtuvo correctamente.", + "iris.runtime.pack_download.validation_failed": "El pack '{pack}' no superó la validación; se rechazará la creación de mundos y de Studio. Motivos:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "one": "El pack '{pack}' se validó con {count} advertencia.", + "other": "El pack '{pack}' se validó con {count} advertencias." + }, + "iris.runtime.pack_download.validated": "El pack '{pack}' se validó.", + "iris.client.vision.title": "Iris Vision", + "iris.client.vision.connecting": "Conectando al servidor Iris...", + "iris.client.vision.not_connected": "sin conexión", + "iris.client.vision.not_iris_world": "No es un mundo de Iris", + "iris.client.vision.no_dimension_data": "sin datos de dimensión", + "iris.client.vision.header_detail": "{status} zoom {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Arrastrar para mover Rueda para acercar Esc para cerrar", + "iris.client.vision.dimension_pack": "{dimension} pack {pack}", + "iris.client.toast.studio_hotload": "Recarga en caliente de Studio", + "iris.client.toast.changed_files": { + "other": "{count} archivos", + "one": "{count} archivo" + }, + "iris.client.toast.reload_failed": "falló la recarga", + "iris.client.toast.reloaded": "recargado", + "iris.client.toast.pack_failed": "falló {pack}", + "iris.client.what.title": "Iris What", + "iris.client.what.querying": "Consultando {x}, {z}...", + "iris.client.what.biome": "Bioma: {biome}", + "iris.client.what.region": "Región: {region}", + "iris.client.what.cave": "Cueva: {cave}", + "iris.client.what.height": "Altura: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "PAUSADO", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§aVelocidad§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bCaché§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dTallado§7: {state}", + "iris.bukkit.scoreboard.region": "§bRegión§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBioma§7: {biome}", + "iris.bukkit.scoreboard.height": "§bAltura§7: {height}", + "iris.bukkit.scoreboard.slope": "§bPendiente§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vision", + "iris.desktop.vision.view": "Vista:", + "iris.desktop.vision.grid": "Cuadrícula", + "iris.desktop.vision.follow": "Seguir", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Actualizando", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Zoom restablecido", + "iris.desktop.vision.grid_enabled": "Cuadrícula activada", + "iris.desktop.vision.grid_disabled": "Cuadrícula desactivada", + "iris.desktop.vision.following": "Siguiendo a {player}", + "iris.desktop.vision.no_player": "No hay jugadores en el mundo", + "iris.desktop.vision.follow_disabled": "Seguimiento desactivado", + "iris.desktop.vision.low_quality": "Calidad baja", + "iris.desktop.vision.high_quality": "Calidad alta", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} bloques", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Posición: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Salud: {health} / {maximum}", + "iris.desktop.vision.block_position": "Bloque {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk {x}, {z}", + "iris.desktop.vision.region_position": "Región {x}, {z}", + "iris.desktop.vision.biome_key": "Clave: {key}", + "iris.desktop.vision.biome_file": "Archivo: {file}", + "iris.desktop.vision.velocity": "Velocidad: {velocity}", + "iris.desktop.vision.tiles": "Teselas: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Workers: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centro: {x}, {z}", + "iris.desktop.vision.help.toggle": "Mostrar u ocultar ayuda", + "iris.desktop.vision.help.refresh": "Actualizar teselas", + "iris.desktop.vision.help.follow": "Seguir al jugador", + "iris.desktop.vision.help.zoom": "Acercar/alejar", + "iris.desktop.vision.help.reset_zoom": "Restablecer zoom", + "iris.desktop.vision.help.cycle_mode": "Cambiar modo de renderizado", + "iris.desktop.vision.help.quality": "Cambiar calidad de las teselas", + "iris.desktop.vision.help.fps": "Alternar 30/60 FPS", + "iris.desktop.vision.help.grid": "Alternar cuadrícula", + "iris.desktop.vision.help.biome": "Información detallada del bioma", + "iris.desktop.vision.help.teleport": "Teletransportarse al cursor", + "iris.desktop.vision.help.editor": "Abrir el bioma en el editor", + "iris.desktop.vision.opened": "Se abrió {target}", + "iris.desktop.vision.teleporting": "Teletransportando a {x}, {z}", + "iris.desktop.vision.mode.biome": "Bioma", + "iris.desktop.vision.mode.biome_land": "Tierra del bioma", + "iris.desktop.vision.mode.biome_sea": "Mar del bioma", + "iris.desktop.vision.mode.region": "Región", + "iris.desktop.vision.mode.cave_land": "Tierra de cuevas", + "iris.desktop.vision.mode.height": "Altura", + "iris.desktop.vision.mode.object_load": "Carga de objetos", + "iris.desktop.vision.mode.decorator_load": "Carga de decoradores", + "iris.desktop.vision.mode.continent": "Continente", + "iris.desktop.vision.mode.layer_load": "Carga de capas", + "iris.desktop.noise.title": "Noise Explorer", + "iris.desktop.noise.title_generator": "Noise Explorer: {generator}", + "iris.desktop.noise.search": "Buscar...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | Zoom: {zoom} | Valor: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Personalizado", + "iris.desktop.noise.category.pack_generators": "Generadores del pack", + "iris.desktop.noise.category.simplex": "Simplex", + "iris.desktop.noise.category.perlin": "Perlin", + "iris.desktop.noise.category.cellular": "Cellular", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Clover", + "iris.desktop.noise.category.hexagon": "Hexagon", + "iris.desktop.noise.category.vascular": "Vascular", + "iris.desktop.noise.category.globe": "Globe", + "iris.desktop.noise.category.cubic": "Cubic", + "iris.desktop.noise.category.fractal": "Fractal", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "Nowhere", + "iris.desktop.noise.category.sierpinski": "Sierpinski", + "iris.desktop.noise.category.utility": "Utilidad", + "iris.desktop.noise.category.other": "Otros", + "iris.desktop.pregen.initializing": "Inicializando...", + "iris.desktop.pregen.title": "Vista de pregen", + "iris.desktop.pregen.method_pending": "Pendiente", + "iris.desktop.pregen.paused": "PAUSADO", + "iris.desktop.pregen.resume_hint": "Pulsa P para reanudar", + "iris.desktop.pregen.pause_hint": "Pulsa P para pausar", + "iris.desktop.pregen.progress_paused": "PAUSADO {generated} de {total} ({percent} completado)", + "iris.desktop.pregen.progress_saving": "Guardando... {generated} de {total} ({percent} completado)", + "iris.desktop.pregen.progress_generating": "Generando {generated} de {total} ({percent} completado)", + "iris.desktop.pregen.speed": "Velocidad: {chunksPerSecond} chunks/s, {regionsPerMinute} regiones/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.speed_cached": "Velocidad: en caché {chunksPerSecond} chunks/s, {regionsPerMinute} regiones/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.time": "{remaining} restantes ({elapsed} transcurridos)", + "iris.desktop.pregen.method": "Método de generación: {method}", + "iris.desktop.pregen.memory": "Memoria: {used} ({usage}) Presión: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/fi_FI.json b/core/src/main/resources/languages/fi_FI.json new file mode 100644 index 000000000..e83b6af3e --- /dev/null +++ b/core/src/main/resources/languages/fi_FI.json @@ -0,0 +1,1435 @@ +{ + "locale": "fi_FI", + "messages": { + "director.help.navigation.parent.hover": "Palaa ylempään komentoryhmään", + "director.help.navigation.back": "Takaisin", + "director.help.no_subcommands": "Tällä sivulla ei ole alikomentoja.", + "director.help.no_description": "Kuvausta ei ole annettu", + "director.help.aliases": "Aliakset", + "director.help.command_group": "Komentoryhmä. Avaa napsauttamalla.", + "director.help.no_parameters": "Ei parametreja. Esitäytä komento napsauttamalla.", + "director.help.parameters": "Parametrit", + "director.help.parameter.required": "pakollinen", + "director.help.parameter.optional": "valinnainen", + "director.help.parameter.default": "oletus", + "director.help.navigation.previous.hover": "Edellinen sivu", + "director.help.navigation.next.hover": "Seuraava sivu", + "director.help.navigation.page": "Sivu", + "director.runtime.error.invalid_origin": "Tätä komentoa ei voi suorittaa tästä lähteestä.", + "director.runtime.error.unknown_parameter": "Tuntematon parametriavain: {key}", + "director.runtime.error.unexpected_argument": "Odottamaton argumentti \"{argument}\". Valinnaiset parametrit on annettava avaimella, esim. seed=123", + "director.runtime.error.conversion_failed": "Arvoa \"{value}\" ei voi muuntaa tyypiksi {type} parametrille {parameter}", + "director.runtime.error.default_parse_failed": "Parametrin {parameter} oletusarvoa ei voi jäsentää", + "director.runtime.error.missing_argument": "Puuttuva argumentti \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Komennon {command} suoritus epäonnistui: {reason}", + "director.runtime.usage": "Käyttö: {usage}", + "iris.command.permission_denied": "Sinulta puuttuu käyttöoikeus '{permission}'", + "iris.command.unknown": "Tuntematon Iris-komento", + "iris.command.player_only": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.command.iris_world_required": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.command.reload.success": "Asetukset ja kieli {locale} ladattiin uudelleen.", + "iris.command.reload.failed": "Asetukset ladattiin uudelleen, mutta kieli {locale} hylättiin; jatketaan kielen {activeLocale} käyttöä.", + "iris.modded.help.unknown_section": "Tuntematon Iris Tukiosa: {section}", + "iris.modded.help.back_hover": "Palaa {parent}.", + "iris.modded.help.command_parameter": "Komentoparametri", + "iris.modded.help.parameter_required": "Tämä parametri vaaditaan.", + "iris.modded.help.parameter_optional": "Tämä parametri on valinnainen.", + "iris.modded.help.brigadier_text": "Tätä parametria luetaan tekstiksi Brigadier.", + "iris.modded.help.operator_notice": "Iris komennot tarvitsevat käyttäjän luvan (taso 2).", + "iris.modded.help.operator_instruction": "Juokse {command} konsolilta (tai mahdollista huijaukset yhden pelaajan pelissä); ennen kuin nämä komennot eivät suorita tai välilehti valmistu.", + "iris.modded.command.properties.none": "Ominaisuudet: (ei)", + "iris.modded.command.properties.list": "Ominaisuudet: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Aloitetaan datapack singest...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aMuokkaa datapaketin tuontia: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aAsennetut tietopaketit: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eLisää Modrinth URLs ulottuvuudestadatapackImports' lista, sitten suorita /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash käynnistyi: {value} chunkia...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash epäonnistui chunkissa {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash globaali=§6{value}§a chunkit={value2} kiinteät={solidBlocks} ajassa {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Ei missään Iris Maailma!", + "iris.bukkit.commandfind.unknown_structure": "§cTuntematon rakenne: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Aja tämä peli teleportata rakennelma.", + "iris.bukkit.commandfind.locating": "§7Sijainti {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Aja tämä peli teleportata rakennelma.", + "iris.bukkit.commandfind.locating_2": "§7Sijainti {structure}...", + "iris.bukkit.commandfind.teleported": "§aTelesiirretty {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aOnnistuneesti poistettu maailman kansio", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aOnnistuneesti poistettu maailman kansio", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cMaailman kansiota ei voitu poistaa", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cTällä palvelimella ei löytynyt tavarapakkauksia.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cValituissa paketeissa ei ole sijoitettavia objekteja.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aAvaa object Studio {scope} ({totalObjects} objektit)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cObjektistudion avaaminen epäonnistui: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cPakkauksen nimi on ilmoitettava.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPakkaus{pack}' ei löydy alta packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... sekä {value} Enemmän.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aVarmistetaan rakenteet §f{value}§a alkaen {value2},{value3} sisällä {searchRadius} chunkia...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aVanillapitoisuuden tuominen §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§atuontivanilja valmis: §f{imported}§a objects/structures kirjallinen §f{failed}§a Epäonnistui.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Puut/objektit ovat objects/vanilla/...; viite ne biome objektisijoituksista.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cEi avoimia studioprojekteja.", + "iris.bukkit.commandstudio.closing_studio": "§eSulkemisstudio...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStudio suljettiin: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStudio suljettiin: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio suljettu. Maailmanperheen siivous oli jonossa.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio suljettu.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cOlet varmaan studiomaailmassa.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studiovirheen tulostaulu {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cStudio vianetsinnän tulostaulua ei voitu päivittää juuri nyt.", + "iris.bukkit.commandstudio.opened_inventory": "§aAvattu varasto!", + "iris.bukkit.commandstudio.generating_data": "§7Tietojen tuottaminen...", + "iris.bukkit.commandstudio.done": "§aValmis!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Sinulta puuttuu lupa.{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Tila:", + "iris.bukkit.irisenginestatus.service": "§5- Palvelu: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metrics. §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Ylläpitojakso: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Työntekijät: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Aktiiviset maailmantehtävät: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tektoniset levyt:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Muokattu säilyttäminen: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heap Useage: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Asukas: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5-Mitä? §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Keskimääräinen joutokäyntiaika: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Max Idle Kesto: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Mielen keskeytysaika: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Akut:", + "iris.bukkit.irisenginestatus.resource": "§5- Resurssi: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2D-virta: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3D-virta: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- muut: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5muu:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Maailmat: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Ladattuja chunkia. §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cMaailma on nolla.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cKohde Iris Maailmassa ennen kuin lukee Mantle-vedosta.", + "iris.bukkit.commanddeveloper.upgrading": "§aPäivittäminen {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aValmista tuli! Voit nyt päivittää palvelimen version {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cRadiuksen täytyy olla. 0 tai suurempi.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cTämä ei ole Iris Maailma.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cTämän maailman moottori ei toimi.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aPoistaminen aloitettu: §6{chunks}§a chunk(s) ympärillä §6{centerX},{centerZ}§a. Tyhjentämässä lohkoja ilmaan.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cRadiuksen täytyy olla. 0 tai suurempi.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cSinun täytyy olla Iris maailman käyttää Regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cTämän maailman moottori ei toimi. Luo lähistön palasia ensin.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen alkoi: §6{chunks}§a chunk(s) ympärillä §6{centerX},{centerZ}§a. Poistetaan ja uudistetaan.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cRadiuksen täytyy olla. 0 tai suurempi.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cKohteen on oltava Iris Maailma.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cTämän maailman moottori ei toimi.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash aloitti: §6{chunks}§a chunk(s) ympärillä §6{centerX},{centerZ}§a puskurit (maailma koskematon).", + "iris.bukkit.commandedit.players_only": "§cVain pelaajille!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cYksikään studiomaailma ei ole auki!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cOlet varmaan studiomaailmassa!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cEi voi avata tiedostoja päättömissä ympäristöissä!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cTyöpöytä ei tue tätä ympäristöä!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Tiedostoa ei löydy; ehkä sitä ei ladattu suoraan tiedostosta?", + "iris.bukkit.commandedit.opening_vscode": "§aAvaaminen {value} {value2} sisään VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cCant löytää tiedoston. Tai rekisteröijää ei ole", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Tiedostoa ei löydy; ehkä sitä ei ladattu suoraan tiedostosta?", + "iris.bukkit.commandedit.opening_vscode_2": "§aAvaaminen {value} {value2} sisään VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cCant löytää tiedoston. Tai rekisteröijää ei ole", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Tiedostoa ei löydy; ehkä sitä ei ladattu suoraan tiedostosta?", + "iris.bukkit.commandedit.opening_vscode_3": "§aAvaaminen {value} {value2} sisään VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cCant löytää tiedoston. Tai rekisteröijää ei ole", + "iris.bukkit.commandfind.not_iris_world_5": "§6Ei missään Iris Maailma!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Ei missään Iris Maailma!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Ei missään Iris Maailma!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Ei missään Iris Maailma!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: teleportaaminen {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} ei ole konfiguroitu millään alueella / biome objektisijoittelut.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cMaailman nimeä \"iris\" ei voi käyttää, koska Iris käyttää tätä hakemistoa Studio-maailmoille.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cVoimmeko ehdottaa nimeä \"IrisWorldSen sijaan?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cMaailman nimeä \"benchmark\" ei voi käyttää, koska Iris käyttää tätä hakemistoa vertailupaketeille.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cVoimmeko ehdottaa nimeä \"IrisWorldSen sijaan?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cSe kansio on jo olemassa!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cEi löytynyt tai ladattu \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eKokeile yksi: maapallo, vanilla, litteä, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eTai lataa käsin: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aMaailman valmistelu valmis. Käynnistä palvelin uudelleen, jotta \"{worldName}\" luodaan/ladataan.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cLuomisen aikana nostettu poikkeus. Katso lisätietoja konsolista.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aOnnistuneesti loin maailmasi!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aMaailmasi asetetaan automaattisesti päämaailmaksi, kun palvelin käynnistyy uudelleen.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eRuntime maailman luominen on pois käytöstä Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eValmistellaan maailman tiedostoja ja bukkit.yml seuraavan käynnistyksen...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cMaailmatiedostoja ei voitu lavastaa ulottuvuudeksi \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aPäivitetty server.properties tason nimi \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cMaailma lavastettiin, mutta sitä ei päivitetty server.properties suurmaailma.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris-maailma \"{name}\" valmisteltiin generaattorilla Iris:{value} ja siemenellä {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aTämä maailma on nyt asetettu pääohjelmaksi seuraavaan uudelleenkäynnistykseen.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cPäivitys epäonnistui bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cMääriteltyä pelaajaa ei ole olemassa.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris{value} mennessä Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} - {value2}", + "iris.bukkit.commandiris.total_height": "§aKokonaiskorkeus: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris Worlds. ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit Worlds ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cTämä ei ole Iris Maailma. Iris Maailmoja: {value}", + "iris.bukkit.commandiris.removing_world": "§aPoistava maailma: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cMaailmaa ei voitu evakuoida: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cMaailmaa ei voitu purkaa: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aOnnistunut poisto {value} alkaen bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eNäyttää siltä, että maailma on jo poistettu. bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cTallennus epäonnistui bukkit.yml koska {value}", + "iris.bukkit.commandiris.set_debug": "§aAseta vianetsintä: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aNoudetaan pakkaus: {pack} (beetan vapautuminen){value}", + "iris.bukkit.commandiris.downloading_pack": "§aNoudetaan pakkaus: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cSinun täytyy olla Iris maailma", + "iris.bukkit.commandiris.sending_metrics": "§aLähetetään mittareita...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cTämä ei ole Iris Maailma. Iris Maailmoja: {value}", + "iris.bukkit.commandiris.unloading_world": "§aPurkaminen maailma: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aMaailma on purettu onnistuneesti.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cEi onnistunut purkamaan maailmaa.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cMaailmaa ei voitu purkaa: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Sitä ei ole palvelimella.", + "iris.bukkit.commandiris.generator": "§9Generaattori: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} Ei ole iirismaailma.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cEi voitu määrittää Iris mitat {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aLadataan maailmaa: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia ei voi ladata uusia maailmoja. Käynnistä palvelin uudelleen ladata \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} Ladattu onnistuneesti.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cTämä ei ole Iris Maailma. Iris Maailmoja: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aMaailman evakuointi{value}", + "iris.bukkit.commandobject.object_size": "Kohteen koko: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Käytetyt lohkot: {value}", + "iris.bukkit.commandobject.blocks_object": "Suomennos:", + "iris.bukkit.commandobject.other_block_types": " + {value} muut lohkotyypit", + "iris.bukkit.commandobject.current_object_size": "Nykyinen objektin koko: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Uuden objektin koko: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Esineen tallennus epäonnistui {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cEi vastaavia esineitä: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibize [reach={reach}{value}] jonossa {value2} kohde(s)", + "iris.bukkit.commandobject.hold_your_wand": "Pidä sauvaa.", + "iris.bukkit.commandobject.no_area_selected": "Aluetta ei ole valittu.", + "iris.bukkit.commandobject.ready_your_wand": "Valmistelkaa sauvanne.", + "iris.bukkit.commandobject.ready_your_wand_2": "Valmistelkaa sauvanne.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eAsteikko ylittää maksimin. Skaalataan enintään: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Päivitetty sauva objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Uusi sauva objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Päivitetty sauva objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aPaikka {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§ePitele sauvaasi!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cTiedosto on jo olemassa. Aseta ylikirjoitus=tosi korvataksesi sen.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cKohdetta ei voitu tallentaa, koska IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aOnnistunut vastustaminen tallennukselle: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Pidä sauvaa.", + "iris.bukkit.commandobject.no_area_selected_2": "Aluetta ei ole valittu.", + "iris.bukkit.commandobject.reverted_pastes": "§9Kumottiin {actualReverts}§9 liittämistä!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cEt saa sitä. WorldEdit valinta ilman WorldEditTiedäthän.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cSinulla ei ole. WorldEdit valinta tässä maailmassa.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aUusi taikasauva nykyiselläsi WorldEdit Valinta!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPuf! Onnea rakentamiseen!", + "iris.bukkit.commandobject.hold_your_wand_3": "§ePidä sauvaa!", + "iris.bukkit.commandobject.no_area_selected_3": "Aluetta ei ole valittu.", + "iris.bukkit.commandobject.auto_select_complete": "§aAutomaattivalinta valmis!", + "iris.bukkit.commandobject.hold_your_wand_4": "§ePidä sauvaa!", + "iris.bukkit.commandobject.no_area_selected_4": "Aluetta ei ole valittu.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAutomaattivalinta valmis!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen-säteen on oltava suurempi kuin nolla lohkoa.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cTiukasti sarjallinen esigenerointi vaatii Paperin tai Paper-yhteensopivan palvelimen.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cTämän maailman moottorit eivät toimi!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cVarmista, että maailma on ladattu. & Moottori on alustettu. Luo esimerkiksi uusi pala.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cEsisukupolven aloittaminen epäonnistui. Katso lisätietoja konsolista.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eEi aktiivisia esigenerointitehtäviä", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aEsigenerointitehtävän taukotila vaihdettu. Nykyinen tila: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eEi aktiivisia esisukupolven tehtäviä tauon/tauon pysäyttämiseksi.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eEi aktiivista esisukupolven tehtävää.", + "iris.bukkit.commandpregen.pregen": "§aPregen. §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aNopeus: §6{value}/s§a ETA: §6{value2}§a kuoritut: §6{value3}§a Menetelmä: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aKirjoitetun rakenteen indeksi: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aVanillan tuonti & datapakettiin §f{value}§a (korvaa)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aTuo valmis: §f{imported}§a structures/objects kirjallinen §f{failed}§a Epäonnistui.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Viedään ne biome/alue/ulottuvuus-rakenneluettelosta tai ajetaan /iris structure list {value} Päivittääksesi indeksin. Luo palasia muutoksia voimaan.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Vangittu {value} rakenteet. Aseta ne \"rakennelistasta\" ja uudista palasia. Poista a structures/*.json Saada se takaisin.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cEi ladattua Iris maailman {value}. Liity tai luo yksi ensimmäinen (haku kulkee vastaan elävä maailma).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cValittu Iris Maailmassa ei ole aktiivista generaattoria.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cEi iirisrakennetta '{structure}Tässä pakkauksessa", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cRakenne{structure}' koottu 0 kappaleita (tarkistus startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aRakenne{structure}': §f{value}§a kappaleita, jalanjälki §f{value2}x{value3}§a lohkot (näytteen siemenet 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cEi iirisrakennetta '{structure}Tässä pakkauksessa", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cRakenne{structure}' koottu 0 kappaletta", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aPaikka{structure}' ({value} Palaset) sijaintisi.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aAvaa studio \"{value}\" pakkaus (siemen: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cAntakaa mittapaketti: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cPakkausta ei voitu ratkaista mitan vuoksi {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aAvaaminen VSCode Korvataan:{value}\" pakkaus", + "iris.bukkit.commandstudio.pack_has_version": "§a\"{value}\" paketissa on versio: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aAvaan Melututkijan!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cEi voi lisätä kohteita virtuaaliseen varastoon, koska: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aAvaa inventaario!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cToimii vain Iris Maailma!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cSinun täytyy olla tai määritellä Iris- Luonut maailma!", + "iris.bukkit.commandstudio.opening_map": "§aAvaan kartan!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Melugeneraattoreiden suorituskyvyn laskeminen", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Interpolaattorien ajoitusten laskeminen...", + "iris.bukkit.commandstudio.processing_generator_scores": "Processing Generator Tulokset: ", + "iris.bukkit.commandstudio.score": "Pistemäärä: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aValmis! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cSinun on oltava Iris-maailmassa, jotta entiteetit voidaan luoda oikein. Yritetään luoda ne parhaalla mahdollisella tavalla.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cYksikään studiomaailma ei ole auki!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cOlet jo studiomaailmassa!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aLähetän sinut studiomaailmaan!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Päivitetään koodityötilaa {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aPäivitetty koodi Työtila {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cVirheellinen projekti: {value}. Yritä poistaa koodi-työtilatiedosto ja yritä uudelleen.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cSinun täytyy olla Iris maailma", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Olet varmaan iris-maailmassa.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Kaappaus IGenData alkaen {value} Lähellä on chunkia.", + "iris.bukkit.commandstudio.reported": "Raportoitu: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cSinulla täytyy olla palvelin käynnistetty GUIs käytössä asetuksissa!", + "iris.bukkit.commandstudio.players_only": "§cVain pelaajille!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cYksikään studiomaailma ei ole auki!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cOlet varmaan studiomaailmassa!", + "iris.bukkit.commandwhat.material": "Materiaali: §a{value}", + "iris.bukkit.commandwhat.full": "Täysi: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Pitäkää lohko/kohta", + "iris.bukkit.commandwhat.material_2": "Materiaali: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Pitäkää lohko/kohta", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Ei-Iris Bioma: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Tietopaketti Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aVain Iriksen maailmoja.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Katsokaa mitä tahansa korttelia, älkää taivasta.", + "iris.bukkit.commandwhat.material_3": "Materiaali: §a{value}", + "iris.bukkit.commandwhat.full_2": "Täysi: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Storage Block (Loot kykenee)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Lit Block (Valo pystyy)", + "iris.bukkit.commandwhat.foliage_block": "§e* Foliage lohko", + "iris.bukkit.commandwhat.decorant_block": "§e* Koristeellinen lohko", + "iris.bukkit.commandwhat.fluid_block": "§e* Nestekatkos", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Istutettava Foliage Block", + "iris.bukkit.commandwhat.solid_block": "§e* Kiinteä lohko", + "iris.bukkit.commandwhat.found_nearby_markers": "Löytyi {value} Lähistöllä olevat merkit ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aVain Iriksen maailmoja.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Konsolin on nimettävä biome: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biome-haku epäonnistui: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Tuntematon biome: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Konsolin on nimettävä alue: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Alueen haku epäonnistui: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Tuntematon alue {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Tiedostoa ei voi avata tästä: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Tiedostoa ei löydy; ehkä sitä ei ladattu suoraan tiedostosta?", + "iris.modded.irismoddedcommands.could_not_open": "Ei voitu avata {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Avaaminen {value} {value2} Päätoimittajassasi.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Konsolin on nimettävä pelaaja: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} ei ole tuotettu Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleportti epäonnistui: ulottuvuus {dimensionId} ei ole ladattu.", + "iris.modded.irismoddedcommands.teleporting": "Telesiirtäminen {value} - {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} ei ole tuotettu Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Ensisijaista maailmaa ei voida evakuoida; pelaajia ei voi lähettää minnekään.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Evakuoitu {count} pelaajat {value} - {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Aseta vianetsintä: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Hotloaded-asetukset", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Tätä komentoa voivat käyttää vain pelaajat (se tarkastaa oman esineen).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Pääkätesi on tyhjä.", + "iris.modded.irismoddedcommands.hand_x": "Käsi: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} ei ole tuotettu Iris; katso /iris info ladattu Iris mitat.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Nykyinen ulottuvuus ({value}) ei ole tuotettu Iris. Nimeä yksi erikseen: /iris pregen start {radius} ; katso /iris info ladattu Iris mitat.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Sukupolvia edeltävä tehtävä on jo käynnissä. Lopeta se ensin /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen alkoi {value} / {value2} mennessä {value3} lohkot alkaen {centerX},{centerZ}.{modeNote} Edistyslokit konsoliin; katso /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Esisukupolton lopettaminen; nykyisen alueen viimeistely...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Ei aktiivista esisukupolven tehtävää lopettaa.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Ei aktiivista esisukupolven tehtävää taukoa/painamista varten.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Esisukupolvi on nyt {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Ei aktiivista esisukupolven tehtävää.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} mennessä Volmit Software päällä {value2} (Minecraft {value3}), {engines} Iris dimension(s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Kuormatut mitat: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.biome": "Bioma: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biome-haku epäonnistui: {value}", + "iris.modded.irismoddedcommands.region": "Alue: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Alueen haku epäonnistui: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Luolabiome: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Luolabiomen haku epäonnistui: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Pintalohko: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Sijainti: {value} {value2} {value3} (Chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Tätä komentoa voivat käyttää vain pelaajat (se tarkastaa katsomasi lohkon).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Katso korttelia, älä taivasta.", + "iris.modded.irismoddedcommands.block_y": "Lohko: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Tätä komentoa voivat käyttää vain pelaajat (merkit tekevät hiukkasina ympärilläsi).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Skannataan{marker}Ympärilläsi olevat merkit...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Merkkien luotaus epäonnistui: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Löytyi {value} nearby marker(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Tuntematon biome: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.unknown_region_2": "Tuntematon alue {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} ei ole määritelty ulottuvuudessa!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} ei ole konfiguroitu millään alueella/biome objektisijoituksilla ({value} objektin avaimet ladattu).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Vain pelaajat voivat käyttää tätä komentoa. (Object key '{key}' ratkaistu vastaan {value} ladatut objektin avaimet)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Nimi Iris tai paikallinen rakenne paikantaa.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Tuntematon rakenne \"{key}'. Käytä välilehden täydennystä valitaksesi Iris sijoitus tai rekisteröity natiivi / datapack rakenne.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Etsitään alkuperäistä rakennetta {value} sisällä {NATIVESTRUCTURELOCATERADIUS} chunkia...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Etsitään Iris- sijoitettu rakenne {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Ei löytynyt Iris- sijoitettu rakenne {key}: tiheyshakujen turvallisuusraja saavutettiin ennen täyttä 1024-Chunk-säde tutkittiin.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Ei löytynyt Iris- sijoitettu rakenne {key} sisällä 1024 Palasia.", + "iris.modded.irismoddedcommands.search_failed": "Etsintä epäonnistui: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Omaa rakennetta ei löytynyt {value} sisällä {NATIVESTRUCTURELOCATERADIUS} Palasia.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Etsi alkuperäistä rakennetta {value} epäonnistui: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Soitin katkesi ennen rakennehaun valmistumista.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Muutit mittoja ennen rakennehaun valmistumista; suorita komento uudelleen.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Löytyi {label} klo {targetX} {clampedY} {targetZ}Teleportti epäonnistui.", + "iris.modded.irismoddedcommands.teleported_at": "Telesiirretty {label} klo {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Rakenteen saavutettavuus: {available} oma tuotantokelpoinen, {irisPlaced} Iris-Paikannettu. {disabled} syntyperäiset vammaiset, {suppressed} natiivi Iris sijoittelu {unreachableBiomes} kotoperäisiä lukuun ottamatta tämän pakkauksen biomeet, ja {unsupported} rekisteröityjä alkuperäisiä rakenteita, joita ei tueta tässä ulottuvuudessa. Käyttö /iris structure verify yhtä rakennetta varten.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Rakenne {key} on Iris- sijoitettu ja paikkattavissa /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Tuntematon rakenne \"{key}'. Se ei ole kumpikaan IrisVanilla tai datapaketti ei rekisteröinyt sitä.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Rakenne {value} korvataan nimenomaisesti Iris sijoittaminen ja sijoittelu /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Alkuperäinen rakenne {value} on käytössä, tukee tämän ulottuvuuden generaattorin tila, ja sijoittaa /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Vain pelaajat voivat käyttää tätä komentoa. (POI tyyppi \"{type}' hyväksytty)", + "iris.modded.irismoddedcommands.searching": "Etsitään {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Tämän maailman moottori on suljettu. Liity ulottuvuuteen ja yritä uudelleen.", + "iris.modded.irismoddedcommands.search_failed_2": "Etsintä epäonnistui: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Ei löytynyt {label} hakuajan sisällä.", + "iris.modded.irismoddedcommands.teleported_at_2": "Telesiirretty {label} klo {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Moottori vaihtui paikannuksessa {label}Yritä uudelleen.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.world_seed": "Maailman siemenet: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Moottorin siemenet: {value} (sekoitettu: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Noudetaan IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pakkaus{pack}' asennettu. Sen tarkka ulottuvuus tyypit ja mukautetun biomes liittyä pakko Iris datapack seuraavan palvelimen uudelleenkäynnistys; käynnistä ennen kuin luot maailmoja tästä paketista.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Paketin lataus epäonnistui {pack} ({downloadSource}; katso konsoli).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Luotu: {value} chunk(s) {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Tuntematon Iris Tukiosa: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: tyyppi={typeKey} aktiivinen ={activeMin}..{activeMax} Looginen ={value} (pakkaus ={value2}, moottori ei käynnisty; pakkauskorkeus tuntematon)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: tyyppi={typeKey} aktiivinen ={activeMin}..{activeMax} Looginen ={value} Pakkaus{value2}' haluaa {packMin}..{packMax} Looginen ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: aktiivinen ulottuvuustyyppi ei vastaa pakkausta. Iris Hän kieltäytyy käynnistämästä tätä maailmankonetta maaston leikkaamisen sijaan. Juokse /iris world enable uusiin maailmoihin tai /iris datapack install jo ladattu Iris Mitat, sitten uudelleen.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Ei Iris mitat ovat ladatut.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Kaikki {irisLevels} Iris mitat vastaavat niiden pakkauskorkeusalueita.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: moottori ei ole käynnistynyt; se ei voi vielä saada mittatyyppiä.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: mittatyypin generointi epäonnistui: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Kirjoittaminen epäonnistui {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Ei Iris mitat ajomoottoreilla löytyi; mitään ei asennettu.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Kirjoittaminen epäonnistui {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Kirjoitti {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Maailman datapaketti{WORLDPACKNAME}' Ulottuvuustyypin ohitukset asennettu. Käynnistä palvelin uudelleen sovellettavien mittatyyppien osalta.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Muokkaa datapaketin tuontia: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth ingest on Bukkit-vain; asenna nämä käsin world/datapacks tarvittaessa.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Asennetut maailman datapaketit: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Lähetti testipoikkeuksen Iris virheilmoittaja (Sentry, jos käytössä).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Verkkoskannaus epäonnistui: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Kultahaskanneri on jo käynnissä.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Vain pelaajat voivat käyttää tätä komentoa. (sauva on fyysinen esine)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Varastonne on täynnä.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Puf! Onnea rakentamiseen! (vasen napsautus = kulma 1, oikea klikkaa = kulma 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Vain pelaajat voivat käyttää tätä komentoa. (pöly on fyysinen esine)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Varastonne on täynnä.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Napsauta oikeaa korttelia paljastaaksesi sen objektin.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Vain pelaajat voivat käyttää tätä komentoa. (säästää sauvavalintasi)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Tämä ulottuvuus ei synny Iris; objektit tallentavat ulottuvuuteen.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Pidä kiinni. Iris Sauva. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Aluetta ei ole valittu. Vasen/oikea klikkaa lohkot sauva ensin.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Virheellinen objektin nimi: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Liian suuri valinta: {volume} salpaajat (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Tiedosto on jo olemassa. Käyttö /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Esineen tallennus epäonnistui: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Tallennettu {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} blokki(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Tuntematon tai tyhjä objekti: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Konsolissa on ilmoitettava koordinaatit: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Et katso kortteliakaan sisälläsi. {value} Palikat.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Liittäminen epäonnistui: {value} (osittaiset muutokset tallennettiin kumoamista varten)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Paikka {key} klo {value} {value2} {value3} mätä ={rotation} ({value4} kirjoita(s), {value5} muu kuin ilma{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Pidä kiinni. Iris Sauva. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Aluetta ei ole valittu.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Laita sauva valmiiksi. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Et katso korttelia.", + "iris.modded.moddedobjectcommands.position_set": "Sijainti {value} asetettu {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Pidä sauvaa!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Aluetta ei ole valittu.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Valinta liian suuri automaattiseen valintaan: {volume} salpaajat (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Automaattinen valinta suoritettu: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Tuntematon kohde: {key}", + "iris.modded.moddedobjectcommands.object_size": "Kohteen koko: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Käytetyt lohkot: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "Suomennos:", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} muu lohkotila(s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Tuntematon kohde: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Nykyinen objektin koko: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Uuden objektin koko: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Esineellä ei ole lataustiedostoa; kutistinta ei voi jatkaa.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Esineen tallennus epäonnistui {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Virheellinen ulottuma: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Ei vastaavia esineitä: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibize [reach={reach}{value}] jonossa {value2} kohde(s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Ei mitään peruttavaa.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Kumottiin {reverted} liittämistä.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Pakkauskansiota ei löydy: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Ei validoitavia pakkauksia {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pakkaus{pack}' ei löydy alta {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Validoidaan {value} Pakkaus(s)...", + "iris.modded.moddedpackcommands.validation_failed": "\"{value}' epäonnistui: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validointi suoritettu. Rikkoutuneet pakkaukset: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pakkaus{pack}' ei löydy alta {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pakkaus{pack}' ei löydy alta {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Validointituloksia ei ole tallennettu. Juokse /iris pack validate Ensin.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (esto ={value2}, varoitukset={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Ei validointitulosta \"{pack}'. Juokse /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Pakkaus{value}Se on ladattavissa. (varoituksia ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Pakkaus{value}' on rikkinäinen:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... sekä {value} Lisää varoituksia).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Pakkaukselle ei löytynyt puhdistusehdokkaita{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Siivoa esikatselu pakkaukselle '{pack}': {value} candidate(s). Tiedostoja ei muutettu.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Juokse /iris pack cleanup {pack} apply karanteeniin uuden skannauksen jälkeen.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Pakkaukselle ei löytynyt puhdistusehdokkaita{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Karanteeni {value} alla {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Ei mitään palautettavaa pakkaukselle '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Palauta esikatselu {value}: {value2} file(s). Tiedostoja ei muutettu.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Palautus on estetty {value} nykyinen kohde(s).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Juokse /iris pack restore {pack} apply palauttaa uuden konfliktintarkastuksen jälkeen.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Palauta hylätty, koska {value} destination(s) already exist.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Ei mitään palautettavaa pakkaukselle '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Palautettu {value} tiedostot mistä {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... sekä {value} Enemmän.", + "iris.modded.moddedregen.regen_is_already_running": "Regen on jo käynnissä.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Tämä ulottuvuus ei synny Iris. Aja tämä Iris koko jotta pakkaus voidaan ratkaista.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Kirjoitetun rakenteen indeksi: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Ei iirisrakennetta '{key}Tässä pakkauksessa", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Rakenne{key}' koottu 0 kappaleita (tarkistus startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Rakenne{key}': {value} kappaleita, jalanjälki {value2}x{value3} lohkot (näytteen siemenet 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Tätä komentoa voivat käyttää vain pelaajat (rakenne on koottu paikalleen).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Ei iirisrakennetta '{key}Tässä pakkauksessa", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Rakenne{key}' koottu 0 kappaletta", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Paikka epäonnistui: {value} (osittaiset muutokset kirjattu peruutukselle)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Paikka{key}' ({value} palat, {value2} kirjoita(s){tileNote}) sijaintinne. /iris object undo Palauttaa.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Antakaa mittapaketti: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Avataan Melu Explorer palvelimen näytöllä.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Tämä ulottuvuus ei synny Iris; juokse /iris studio noise alkaen Iris ulottuvuus ratkaista generaattoreita, tai jättää generaattorin nimi.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Tuntematon generaattori \"{generatorKey}\" pakkauksessa {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Avataan Melu Explorer generaattorille '{value}\" (siemen {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Tämä ulottuvuus ei synny Iris; seistä Iris (tai studio) ulottuvuus ja ajaa /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Vision-kartan avaaminen {value} Palvelimen näytöllä.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Työtilan kirjoitus epäonnistui {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Työtila regeneroitu: {value} kun JSON automaattitäydennyskuvia.", + "iris.modded.moddedstudiocommands.could_not_open": "Ei voitu avata {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Avaaminen {value} Päätoimittajassasi.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Tämä ulottuvuus ei synny Iris; täsmennettävä pakkauksen nimi nimenomaisesti.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pakkaus{name}' ei löydy alta {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Antakaa mittapaketti: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Avaa studio{pack}\" (siemen {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pakkaus{pack}' puuttuu; ladataan IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Pakkaus{pack}\"ei voitu ladata; tarkista nimi ja yritä /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Pakkaus{pack}' ei ole dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Studio auki epäonnistui: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Studioinjektio epäonnistui: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Konsolistudio auki: {dimensionId} Nyt menee '{pack}\"siemenet {seed} (ohimenevä; ei kirjoitettu iris-dimensions.json ja hävisi uudelleenkäynnistyksen yhteydessä).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Kirjoita: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Esigenoi se: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Poista se: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Studioinjektio epäonnistui: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio auki: {dimensionId} Nyt menee '{pack}\"siemenet {seed}. Käyttö /iris studio close Kun olet valmis.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Sinulla ei ole avointa studiota. Käyttö /iris studio open Ensin.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Studio suljettiin: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio suljettu: {dimensionId} oli evakuoitu, purettu ja sen aluetiedot poistettu.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Studion mitat eivät ole tällä hetkellä avoinna.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "aktiivinen studio ulottuvuus(s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: pakkaus '{value2}\"siemenet {value3} omistaja {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Vain pelaajat voivat käyttää tätä komentoa.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Sinulla ei ole avointa studiota. Käyttö /iris studio open Ensin.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Studiosi ulottuvuus ei ole enää ladattu. Käyttö /iris studio open Taas.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Telesiirtynyt studiollesi ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Pakkaus{value}' ei ole dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"{value}\" paketissa on versio: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Virheellinen projektin nimi \"{nameRaw}' ( sallittu: a-z, 0-9, ja -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Pakkaus{name}' on jo {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Luodaan projektia \"{name}\" mallista \"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Malli \"{template}\"ei ole asennettu; lataaminen IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Malli \"{template}\" ei voitu ladata; asentaa pakkaus dimensions/{template2}.json Ensin.", + "iris.modded.moddedstudiocommands.created_project_at": "Luotu projekti \"{name}' {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Muokkaa dimensions/{name}.json Ja loput laumasta. A VSCode työtila, JSON skeema automaattitäydennys syntyi; avaa se tai uudelleen /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Projektin luominen epäonnistui: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Pakkauksen ulottuvuus \"{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paketti koottu: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Pakkaus epäonnistui: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Tätä komentoa voivat käyttää vain pelaajat (näytteenotto on keskitetty sijaintiin).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Näytteenottoalueen jakautuminen {value}x{value2} Pyörii ympärilläsi...", + "iris.modded.moddedstudiocommands.rarity": "{key}: harvinaisuus ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Aluekohtainen näytteenotto epäonnistui: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Pakkaus{pack}\"ei ole asennettu; lataaminen IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Pakkaus{pack}\" ei voitu ladata; tarkista nimi tai asentaa sen kanssa /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Injektio epäonnistui Iris maailma{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Luotu Iris maailma {dimensionId} pakkauksesta \"{pack}' ulottuvuudella'{packDimension}\" (siemen {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Se on nyt suorassa lähetyksessä. Teleportata /iris world status tai portaali; uudelleenkäynnistystä ei tarvita.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Injektio epäonnistui Iris ensisijainen maailma: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris Ensisijainen maailma asetettu {dimensionId} (pakkaus '{pack}' ulottuvuudella'{packDimension}\"siemenet {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Vanillan ylämaailman generaattoria ei voi vaihtaa lennossa, joten tämä EI luo olemassa olevaa ylämaailmaa uudelleen.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Sen sijaan {dimensionId} on nyt konfiguroitu ensisijainen maailma: pelaajat vanilla overworld ohjataan siellä liittyä, ja se uudelleen injektoi jokaisen startup.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris Päämaailman ohitus selvä. Maailma pitää nykyisen generaattorinsa; muokkaa server.properties tason tyyppi ja käynnistää muuttaa sitä takaisin.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Virheelliset siemenet \"{seedRaw}'. Käytä numeroa tai satunnaisuutta.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Pakkaus{pack}\"ei ole asennettu; lataaminen IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Pakkaus{pack}\" ei voitu ladata; tarkista nimi tai asentaa sen kanssa /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Pakkaus{pack}\"ei ole vielä valmis (täysin lastaus tai validointi). Yritä komentoa uudelleen hetken päästä.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Kirjoittaminen epäonnistui server.properties; tarkista tiedostojen oikeudet ja aseta tasotyyppi käsin.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris tärkein maailma asetettu '{pack}' (esitetty {preset}, siemenet {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties tasotyyppi on nyt {preset}. Seuraavan käynnistämisen jälkeen - alamaailma ja loppu uudistuvat. Iris Maailma.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Pelaajan tiedot ( keksinnöt, edistymiset, tilastot) säilytetään; olemassa oleva maasto näissä mitoissa korvataan. Tämä pätee kerran.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart on käytössä - pysäytä palvelimen nyt niin uudelleen kääre tuo sen takaisin uuteen päämaailmaan.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Käynnistä palvelin uudelleen tuottaaksesi sen. (Aseta mainWorldAutoRestart= tosi modded.json on Iris pysäytä palvelin puolestasi.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Kieltäytyminen luomasta maailmaa '{dimensionId}\" käyttäen pakkausta \"{pack}\"koska vaadittu validointi epäonnistui:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Korjaa pakkaus ja juokse /iris pack validate {pack} Jatkaa.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pakkaus{pack}' ei löytynyt alla {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Pakkaus{pack}\" ei sisällä dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Virheellinen pakkauksen viite \"{pack}{value}'. Käyttöpakkaus:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Virheelliset siemenet \"{seedRaw}'. Käytä numeroa tai satunnaisuutta.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Ei voitu poistaa Iris maailma{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris maailma{dimensionId}' ei lastattu; tyhjennettiin sen pysyvä rekisteriote ja pyyhittiin sen tallennetut kappaleet/Mantle-data.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris maailma{dimensionId}\"ei lastattu; tyhjennettiin sen pysyvä rekisterimerkintä. Maailman tiedot levyllä säilytetään.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Poistettu Iris maailma{dimensionId}': evakuoitu, purettu, pala/Mantle-data pyyhitty ja pudotettu käynnistysrekisteristä.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Ei käytössä Iris maailma{dimensionId}': evakuoitu, purettu ja pudotettu käynnistysrekisteristä.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "World data levyllä säilytetään; uudelleen voidaan /iris world enable {dimensionId} tai poista se /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Ladattu Iris taso: {value} -> Pakkaus{value2}' ulottuvuudella'{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Ensisijainen maailma: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Ei Iris mitat ovat ladattuja. Luo sellainen /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Ladattu Iris mitat: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Käyttö /iris world create pistääksesi yhden ilman, että aloitat alusta.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Lataa & Hallinnoidaan ulkoisen datapaketin tuontia (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Lataa/päivitä kaikki pakkausulottuvuudessa luetellut tietopaketitdatapackImports\"ja asentaa se maailmaan niin sen rakenteet rekisteröityvät kuin vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Käynnistä palvelin uudelleen, kun uusia datapaketteja on asennettu (vaaditaan uusien rakenteiden rekisteröintiä ja tuottamista varten)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Listaa konfiguroitu datapaketin tuonti ja sen asennetut versiot", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Poista asennettu datapaketti ID:llä (poistaa myös sen URL alkaen datapackImports pitää se poissa)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Datapaketin tunniste (kansionimi) /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Maailmanjohtaja", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Hae Ladattu TectonicPlates Lukumäärä", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Lähetä testipoikkeus vartijalle", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Hashin tuottama lohkon tuotos kiinteällä alueella determinismi-/identiteettitestausta varten", + "iris.director.commanddeveloper.param.world_hash": "Maailma hasista", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Radius palasina keskellä", + "iris.director.commanddeveloper.param.center_chunk_x": "Keskiosa X", + "iris.director.commanddeveloper.param.center_chunk_z": "Keskiosa Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Päivitä maailman paketti (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "Päivitettävä maailma", + "iris.director.commanddeveloper.param.pack_install_into_world": "Maailmaan asennettava pakkaus", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Muista tehdä varmuuskopio & Lue varoitukset ensin!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Pitäisi Iris lataa pakkaus uudelleen", + "iris.director.commanddeveloper.director.test": "Testi", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Jätä koko tektoninen levy yhden osan sijasta", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Kaatotiedoston tunniste alla plugins/Iris/dump (pp..*)", + "iris.director.commanddeveloper.director.test_2": "Testi", + "iris.director.commanddeveloper.param.pack_bench": "Pakkaus penkille", + "iris.director.commanddeveloper.param.radius_regions": "Säde alueilla", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Avaa GUI vertailuanalyysi", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Päivitä toiseen Minecraft versio", + "iris.director.commanddeveloper.param.version_upgrade": "Päivitettävä versio", + "iris.director.commanddeveloper.director.test_3": "testi", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Maailman kansio skannata .mca alueen tiedostoja", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Poista lähellä olevat lohkot regen-testausta varten", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Säde palasina nykyisen palan ympärillä", + "iris.director.commanddeveloper.director.test_4": "Testi", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Poista ja regeneroi lähellä olevat palaset paikoillaan käyttäen Iris tuotanto", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Säde lähistöllä chunkia", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Luo palasia puskureiksi (ei maailmankirjoituksia) ja hash lohkoja+biomes; kaappaa kultaisen tiedoston tai tarkastaa olemassa olevaa. Palauttaa Mantlen skannatun alueen - käyttää kertakäyttöinen testi maailmoissa.", + "iris.director.commanddeveloper.param.world_scan": "Skannattava maailma", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Radius palasina keskellä", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Keskiosa X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Keskiosa Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Poista Mantlen tiedot skannausalueelta ensin täysi regenerointi tyhjästä", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "rinnakkaiset lohkosukupolvet; 1 = tilausriippumattomuuden testauksessa käytettävä sarja", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Myös kaataa täysi per-chunk ei-ilma-blockstates offline diffings", + "iris.director.commandedit.director.edit_something": "Muokkaa jotain", + "iris.director.commandedit.director.edit_biome_you_specified": "Muokkaa määrittelemääsi biomea", + "iris.director.commandedit.param.biome_edit": "Muokattava biome", + "iris.director.commandedit.director.edit_region_you_specified": "Muokkaa määrittelemääsi aluetta", + "iris.director.commandedit.param.region_edit": "Alue muokattavana", + "iris.director.commandedit.director.edit_dimension_you_specified": "Muokkaa määrittelemääsi ulottuvuutta", + "iris.director.commandedit.param.dimension_edit": "Muokattava ulottuvuus", + "iris.director.commandfind.director.iris_find_commands": "Iris Etsi komennot", + "iris.director.commandfind.director.find_biome": "Etsi biome", + "iris.director.commandfind.param.biome_look": "Etsittävä biome.", + "iris.director.commandfind.param.should_you_be_teleported": "Pitäisikö sinut teleportata?", + "iris.director.commandfind.director.find_region": "Etsi alue", + "iris.director.commandfind.param.region_look": "Etsittävä alue", + "iris.director.commandfind.param.should_you_be_teleported_2": "Pitäisikö sinut teleportata?", + "iris.director.commandfind.director.find_point_interest": "Etsi mielenkiintoinen kohta.", + "iris.director.commandfind.param.type_poi_look": "Tyyppi PoI Etsimään.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Pitäisikö sinut teleportata?", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Etsi rakenne (vanilla avain kuten minecraft:village_plains tai minecraft:stronghold, tai tuotu iiris rakenteen avain)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Etsittävä rakenne (e.g. minecraft:village_plains, minecraft:stronghold, minecraft ancient city)", + "iris.director.commandfind.director.find_object": "Etsi kohde", + "iris.director.commandfind.param.object_look": "Etsittävä kohde", + "iris.director.commandfind.param.should_you_be_teleported_4": "Pitäisikö sinut teleportata?", + "iris.director.commandiris.director.basic_command": "Peruskomento", + "iris.director.commandiris.director.create_new_world": "Luo uusi maailma", + "iris.director.commandiris.param.name_world_create": "Luotavan maailman nimi", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Ulottuvuus / paketti luoda maailma", + "iris.director.commandiris.param.seed_generate_world_with": "Siemenet tuottaa maailman kanssa", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Käytetäänkö tätä maailmaa automaattisesti päämaailmana", + "iris.director.commandiris.director.teleport_another_world": "Teleporttautuminen toiseen maailmaan", + "iris.director.commandiris.param.world_teleport": "Maailman teleportata", + "iris.director.commandiris.param.player_teleport": "Pelaaja teleportata", + "iris.director.commandiris.director.print_version_information": "Tulosta versiotiedot", + "iris.director.commandiris.director.benchmark_pack": "Vertailuarvo", + "iris.director.commandiris.param.dimension_benchmark": "Vertailuarvon ulottuvuus", + "iris.director.commandiris.director.print_world_height_information": "Tulosta maailman korkeustiedot", + "iris.director.commandiris.director.check_access_all_worlds": "Tarkista kaikkien maailmojen pääsy.", + "iris.director.commandiris.director.remove_iris_world": "Poista Iris maailma", + "iris.director.commandiris.param.world_remove": "Maailma poistettavana", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Onko myös poistaa kansio (jos asetettu vääräksi, vain ei ladata maailmaa)", + "iris.director.commandiris.director.toggle_debug": "Vaihda vianetsintä", + "iris.director.commandiris.director.download_project": "Lataa projekti.", + "iris.director.commandiris.param.pack_download": "Ladattava pakkaus", + "iris.director.commandiris.param.branch_download_from": "Ladattava haara", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Korvaako pakkaus ladatulla paketilla", + "iris.director.commandiris.director.get_metrics_your_world": "Hanki mittarit maailmaasi", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Lataa asetustiedosto uudelleen (tämä tehdään myös automaattisesti)", + "iris.director.commandiris.director.unload_iris_world": "Pura Iris Maailma", + "iris.director.commandiris.param.world_unload": "Maailma purkamassa", + "iris.director.commandiris.director.load_iris_world": "Lataa Iris Maailma", + "iris.director.commandiris.param.name_world_load": "Ladattavan maailman nimi", + "iris.director.commandiris.director.evacuate_iris_world": "Evakuoi iirismaailma", + "iris.director.commandiris.param.evacuate_world": "Evakuoi maailma", + "iris.director.commandobject.director.iris_object_manipulation": "Iris Esineen manipulointi", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Avaa objektistudiomaailma (grid jokaisen objektin; ulottuvuus valinnainen, oletusarvot kaikille pakkauksissa)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Valinnainen ulottuvuus, jonka objektipakkaus on esitettävä; jättäkää jokaisen pakkauksen kohteet yhteen", + "iris.director.commandobject.param.seed_generate_studio_with": "Siementä tuottaa studio kanssa", + "iris.director.commandobject.director.check_composition_object": "Tarkista kohteen koostumus", + "iris.director.commandobject.param.object_analyze": "Analysoitava kohde", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Kutista esine sen minimikokoon", + "iris.director.commandobject.param.object_shrink": "Kutistuminen", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Kasvaa orgaanisia oksia läpi katoksen niin jokainen lehti selviää vanilla mätä", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Kohdenäppäin, etuliite (puut/) tai tiedostojärjestelmän polku", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun = tosi analysoi vain, kirjoittaa mitään", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "saavuttaa = N max oksan pituus lohkoissa olemassa olevan puun; kauempana lehti klusterit ovat kiinni pysyviä sen sijaan. tavoittaa =0 kasvaa rajattomasti", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Muunna .schem-tiedostot \"muuntaa\" kansiosta .iob tiedostoja.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Hanki jauhe, joka paljastaa esineitä", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Tilaa valinta suuntasi perusteella", + "iris.director.commandobject.param.amount_inset_by": "Määrä, jonka", + "iris.director.commandobject.director.set_point_1_look": "Aseta piste 1 Katso", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Käytetäänkö nykyistä sijaintiasi vai mistä etsit", + "iris.director.commandobject.director.set_point_2_look": "Aseta piste 2 Katso", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Käytetäänkö nykyistä sijaintiasi vai mistä etsit", + "iris.director.commandobject.director.paste_object": "Liitä objekti", + "iris.director.commandobject.param.object_paste": "Liitettävä objekti", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Oliko objektin muokkausta (tarvittava sauvaa)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Määrä astetta pyöriä", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Tekijä, jolla objektin sijoittamista skaalataan", + "iris.director.commandobject.param.scale_interpolator_use": "Käytettävä asteikko interpolaattori", + "iris.director.commandobject.director.save_object": "Tallenna objekti", + "iris.director.commandobject.param.dimension_store_object": "Mitta, johon objekti mahtuu", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Tiedosto tallentaa sen, voi käyttää / alikansioille", + "iris.director.commandobject.param.overwrite_existing_object_files": "Korvaa olemassa olevat objektitiedostot", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Käytä perintöä TileState serialisointi, jos mahdollista", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Siirrä valinta suuntasi suuntaan", + "iris.director.commandobject.param.amount_shift_by": "Siirrettävä määrä", + "iris.director.commandobject.director.undo_number_pastes": "Kumoa useita liittämisiä", + "iris.director.commandobject.param.amount_pastes_undo": "Kumottavien liittämisten määrä", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Saa esineen sauva ja tarttuu nykyiseen WorldEdit valinta.", + "iris.director.commandobject.director.get_object_wand": "Hanki esinesauva", + "iris.director.commandobject.director.autoselect_up_down_out": "Automaattivalinta ylös, alas & ulos", + "iris.director.commandobject.director.autoselect_up_out": "Valitse automaattisesti & ulos", + "iris.director.commandpack.director.pack_validation_maintenance": "Pakkausten validointi ja ylläpito", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Validoidaan pakkaus (tai kaikki pakkaukset) ja julkaistaan uudelleen tulokset", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Valitsemasi kansion nimi (jätä tyhjäksi kaikille)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Esikatselu tai käyttämättömän resurssin puhdistus", + "iris.director.commandpack.param.pack_folder_name_clean": "Puhdistettava pakkauskansio", + "iris.director.commandpack.param.preview_apply": "esikatselu tai sovellus", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Viimeisimmän karanteenin esikatselu tai palautus", + "iris.director.commandpack.param.pack_folder_name_restore": "Palautettavan pakkauksen kansion nimi", + "iris.director.commandpack.param.preview_apply_2": "esikatselu tai sovellus", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Näytä välimuistin validointitila paketille", + "iris.director.commandpack.param.pack_folder_name": "Pakkauskansio", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Esitä Iris Maailmoja!", + "iris.director.commandpregen.director.pregenerate_world": "Esikoinen", + "iris.director.commandpregen.param.radius_pregen_blocks": "Säde pregen lohkoissa", + "iris.director.commandpregen.param.world_pregen": "Maailma on valmis", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Pregenin keskuspaikka. Käytä \"minä\" nykyiseen sijaintiisi", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Avaa Iris pregen gu", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Luo vain yksi pala kerrallaan", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Lopeta aktiivinen esigenerointitehtävä", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Keskeytä / jatka aktiivista esisukupolven tehtävää", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Näytä aktiivinen esisukupolven tila", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris rakennetyökalut (indeksi, tuonti, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Uusi structure-index.json listaus kaikki vanilla, datapack & iirisrakenteet", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Mitta, jonka pakkaus indeksiin", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Tuo jokainen rakenne - vanilla ja nielty datapaketteja - tähän pakkaukseen muokattavissa Iris Resursseja, aina ylikirjoitusta. Rakentaa uudelleen palapelin rakenteet (kylät, etuvartioasemat, datapack palapelit) muokattavissa pooli/kpl kaavioita, tuo jokainen rakennemalli NBT objektina ja kokoaa monirunkorakenteet (laivan haaksirikkoja, tuhottuja portaaleja, meriraunioita, alamaailman fossiileja). Juokse sen jälkeen, kun olet nauttinut datapaketin ja aloittanut alusta. Uudista palasia tai käytä tuoretta maailmaa tuonti kopiot sijoittaa.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Mitat, joiden pakkaus tuoda", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Ottakaa haltuun koodilla luodut rakenteet, joilla ei ole NBT malli (suomajat, iglut jne.) muokattavissa Iris objekteja luomalla jokainen yksi heittää pois naarmu maailmassa ja lukea takaisin sen lohkot. Ohittaa rakenteet, jotka jo tuovat rakenteena, rakenteet leveämpi/kallempi kuin kaappaus korkki (vahvuudet, kartanot, muistomerkit pysyvät vanilla), ja kaiken, mikä ei synny tasainen maailma. Jokaisesta kaapatusta rakenteesta tulee yksiosainen Iris rakenne voit sijoittaa biome/alue/ulottuvuus 'rakenteet' -luettelosta. Toimii automaattisesti viimeisenä syöttönä /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Ulottuvuus, jonka lauma kaapata", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Tarkista alkuperäisen rakenteen tukikelpoisuus ja paikanna Iris-Paikalliset rakenteet, jotka eivät estä natiivien etsintöjä.", + "iris.director.commandstructure.param.dimension_verify": "Tarkastettava ulottuvuus", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Hakusäde palasia alkuperän ympärillä (suurempi on paljon hitaampi)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Selvitä iirisrakenteen palapelikaavio ja raportoi kappalemäärä & Rajat", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Mitat, joiden pakkaus pitää rakenteen", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Iris rakenne avain tarkastaa", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Kokoa ja aseta iiris rakenne sijaintisi (studio testaus)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Mitat, joiden pakkaus pitää rakenteen", + "iris.director.commandstructure.param.iris_structure_key_place": "Iris rakenne avain sijoittaa", + "iris.director.commandstudio.director.studio_commands": "Studiokomennot", + "iris.director.commandstudio.director.open_new_studio_world": "Avaa uusi studiomaailma", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Ulottuvuuspaketti studion avaamiseksi", + "iris.director.commandstudio.param.seed_generate_studio_with": "Siementä tuottaa studio kanssa", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Tuo vanillapuita, sieniä & esineet (ja structures/jigsaw) palvelimelta lauman objects/vanilla kansio", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Ulottuvuuspaketti vanillapitoisuuden tuomiseksi", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Kuinka monta muunnelmaa kaapata per puu / kohde ominaisuus", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Tuo myös vanilla & datapaketti structures/jigsaw Pakkaus", + "iris.director.commandstudio.director.open_vscode_dimension": "Avaa VSCode ulottuvuudelle", + "iris.director.commandstudio.param.dimension_open_vscode": "Avattava ulottuvuus VSCode B.", + "iris.director.commandstudio.director.close_open_studio_project": "Sulje avoin studioprojekti", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Vaihda studiovirheen tulostaulu", + "iris.director.commandstudio.director.create_new_studio_project": "Luo uusi studioprojekti", + "iris.director.commandstudio.param.name_this_new_iris_project": "Tämän uuden Iris Projekti.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Kopioi olemassa olevan projektin sisältö pakkauskansioon ja käytä sitä mallina tässä uudessa projektissa.", + "iris.director.commandstudio.director.get_version_pack": "Hae pakkauksen versio", + "iris.director.commandstudio.param.dimension_get_version": "Muuttuja saa version", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Avaa melu tutkimusmatkailija (ulkoinen GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Valinnainen pakkausgeneraattori esikatseluun", + "iris.director.commandstudio.param.seed_preview_generator_with": "Siemenet esikatsella generaattorin kanssa", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Näytä saalista, jos arkku olisi tässä.", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Nopea lisäys kohteita virtuaalinen inventaario (voi aiheuttaa suorituskyvyn lasku)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Liittyykö varastoon tällä hetkellä (jos on väärin, tyhjentää avatun varaston)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Laske mahdollisuus kunkin alueen tuottaa", + "iris.director.commandstudio.param.radius_chunks": "Säde palasina", + "iris.director.commandstudio.director.render_world_map_external_gui": "Renderöi maailman kartta (ulkoinen GUI)", + "iris.director.commandstudio.param.world_open_generator": "Maailma avaa generaattorin", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Pakkaa ulottuvuus pakattuun muotoon", + "iris.director.commandstudio.param.dimension_pack_compress": "Pakattava ulottuvuuspakkaus", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Pakkauksen takominen", + "iris.director.commandstudio.param.whether_not_minify_pack": "Pakkauksen minimointi", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiloi ulottuvuuden suorituskyvyn", + "iris.director.commandstudio.param.dimension_profile": "Profiilin mitta", + "iris.director.commandstudio.director.spawn_iris_entity": "Luo Iris-entiteetti", + "iris.director.commandstudio.param.entity_spawn": "Luotava entiteetti", + "iris.director.commandstudio.param.location_spawn_entity_at": "Sijainti, johon entiteetti luodaan", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teleporttaa aktiiviseen studiomaailmaan", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Päivitä ulottuvuusprojektisi VSCode työtila", + "iris.director.commandstudio.param.dimension_update_workspace": "Muuttuja päivittää työtilan", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Ota a IGenData chunk raportti lähistöllä chunkia", + "iris.director.commandwhat.director.iris_what": "Iris Mitä?", + "iris.director.commandwhat.director.what_is_my_hand": "Mitä kädessäni on?", + "iris.director.commandwhat.director.what_biome_am_i": "Missä biomeessä olen?", + "iris.director.commandwhat.director.what_region_am_i": "Millä alueella olen?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Mitä korttelia katselen?", + "iris.director.commandwhat.director.show_markers_chunk": "Näytä merkkiaineet paloina", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Merkitse nimi kuten luola lattia tai luola katto", + "iris.modded.help.entry.command.version": "Tulosta versiotiedot", + "iris.modded.help.entry.command.info": "Luettelo ladattu Iris mitat ja pakkaustiedot", + "iris.modded.help.entry.command.what": "Tutki Iris biome, alue, luolabiome, pinta ja palan sijainti, lohko katsot, hallussa esine, tai lähellä merkkejä", + "iris.modded.help.entry.group.find": "Etsi ja teleportaa Iris biomeet, alueet ja esineet Iris rakenteet, kotimaiset rakenteet ja eturyhmät", + "iris.modded.help.entry.command.tp": "Teleportaa itsesi tai nimetty pelaaja ladattu Iris ulottuvuus", + "iris.modded.help.entry.command.evacuate": "Teleportoi kaikki pelaajat Iris-ulottuvuudesta päämaailman spawn-pisteeseen", + "iris.modded.help.entry.command.seed": "Tulosta maailman ja generaattorin seed-tiedot", + "iris.modded.help.entry.command.debug": "Vaihda Iris vianetsintä ja tallenna settings.json", + "iris.modded.help.entry.command.reload": "Lataa uudelleen settings.json (myös hotloaded automaattisesti joka 3.s)", + "iris.modded.help.entry.command.download": "Lataa pakettiprojekti", + "iris.modded.help.entry.command.metrics": "Tulosta nykyisen sukupolven mittareita Iris ulottuvuus", + "iris.modded.help.entry.command.regen": "Poista ja uudista lähistön palaset paikoilleen", + "iris.modded.help.entry.group.pregen": "Esiaste Iris ulottuvuus", + "iris.modded.help.entry.command.wand": "Hanki Iris objektisauva", + "iris.modded.help.entry.group.object": "Objektisauvan, tallennuksen, liittämisen, analysoinnin ja kumoamisen työkalut", + "iris.modded.help.entry.group.edit": "Avaa pakkaus biome, alue ja ulottuvuus json-tiedostot työpöytäeditorissa", + "iris.modded.help.entry.command.create": "Luo ja pistä hitaasti Iris mitta; lainauspaketti:dimensionKey valita tietty pakkauksen ulottuvuus", + "iris.modded.help.entry.group.studio": "Pakatkaa projektien luominen, pakkaaminen ja raportit", + "iris.modded.help.entry.group.pack": "Pakkausten validointi ja ylläpito", + "iris.modded.help.entry.group.world": "Suoritusaika Iris ulottuvuuden luominen, poistaminen ja asema", + "iris.modded.help.entry.group.datapack": "maailman datapaketin asennus- ja tilaapurit", + "iris.modded.help.entry.group.structure": "Iris rakenneindeksi, tiedot ja työvälineet", + "iris.modded.help.entry.command.goldenhash": "Luo deterministinen lohkon hashes pariteettitestaus", + "iris.modded.help.entry.group.developer": "Kehittäjän diagnostiikka: Sentry-testi, verkkoliitännät, aluetiedostojen skannaus", + "iris.modded.help.entry.command.biome": "Etsi Iris bome", + "iris.modded.help.entry.command.region": "Etsi Iris alue", + "iris.modded.help.entry.command.object": "Etsi kohteen sijoitus", + "iris.modded.help.entry.command.structure": "Etsi Iris-paikka tai natiivi/datapakkausrakenne", + "iris.modded.help.entry.command.poi": "Etsi tuettu kohde", + "iris.modded.help.entry.command.biome_2": "Avaa biome json työpöytäeditorissasi; mikään avain ei avaa biomen asemaasi", + "iris.modded.help.entry.command.region_2": "Avaa alue json työpöytäeditorissasi; mikään avain ei avaa aluetta asemassasi", + "iris.modded.help.entry.command.dimension": "Avaa nykyisen packin dimension JSON työpöytäeditorissa", + "iris.modded.help.entry.command.start": "Käynnistä esigeneraatio; säde lohkoissa, nollattava tarkistuspisteen välimuisti oletuksena, keskellä kautta 'at \", liput säveltää missä järjestyksessä tahansa", + "iris.modded.help.entry.command.stop": "Lopeta aktiivinen esigenerointitehtävä", + "iris.modded.help.entry.command.pause": "Keskeytä tai jatka pregeneraatiota", + "iris.modded.help.entry.command.status": "Näytä esipolven tila", + "iris.modded.help.entry.command.wand_3": "Hanki Iris objektisauva", + "iris.modded.help.entry.command.dust": "Hanki pölyä, joka paljastaa kohteen sijainnin", + "iris.modded.help.entry.command.save": "Tallenna valittu sauvatilavuus objektina", + "iris.modded.help.entry.command.paste": "Liitä objekti sijaintiisi tai annettuun sijaintiin, haluttaessa käännettynä", + "iris.modded.help.entry.command.expand": "Laajenna taikasauvan valintaa näköiseen suuntaan", + "iris.modded.help.entry.command.contract": "Tilaa taikasauvan valinta suuntasi mukaan", + "iris.modded.help.entry.command.shift": "Siirrä taikasauvan valinta näkösuuntaan", + "iris.modded.help.entry.command.position1": "Aseta valintapiste 1", + "iris.modded.help.entry.command.position2": "Aseta valintapiste 2", + "iris.modded.help.entry.command.x_y": "Automaattivalinta", + "iris.modded.help.entry.command.x_y_2": "Automaattivalinta ylös, alas ja ulos", + "iris.modded.help.entry.command.analyze": "Näytä objektin koostumus", + "iris.modded.help.entry.command.shrink": "Kutista esine sen minimikokoon", + "iris.modded.help.entry.command.plausibilize": "Kasvaa oksat niin puun lehdet hengissä vanilla mätä", + "iris.modded.help.entry.command.undo": "Kumoa liitetyt objektit", + "iris.modded.help.entry.command.create_2": "Luo uusi pakettiprojekti", + "iris.modded.help.entry.command.package": "Pakkaa ulottuvuus pakattuun muotoon", + "iris.modded.help.entry.command.version_2": "Tulosta pakkausversio", + "iris.modded.help.entry.command.regions": "Laske lähialueen jakautuminen", + "iris.modded.help.entry.command.open": "Avaa tilapäinen studio ulottuvuus paketille", + "iris.modded.help.entry.command.close": "Sulje avoin studio ulottuvuus ja hylkää sen maailma", + "iris.modded.help.entry.command.tpstudio": "Teleportti avoimeen studioulottuvuuteen", + "iris.modded.help.entry.command.status_studio": "Näytä avoin studio ulottuvuus ja sen paketti", + "iris.modded.help.entry.command.noise": "Avaa meluntutkija GUI palvelinnäytössä", + "iris.modded.help.entry.command.map": "Avaa Vision-kartta GUI palvelinnäytössä", + "iris.modded.help.entry.command.vscode": "Uudista .code-työtila paketille ja avaa se työpöytäeditorissa", + "iris.modded.help.entry.command.update": "Uudista .code-työtila paketille", + "iris.modded.help.entry.command.importvanilla": "Selitä vanillan tuonti", + "iris.modded.help.entry.command.validate": "Validoidaan pakkaus tai jokainen pakkaus", + "iris.modded.help.entry.command.cleanup": "Esikatselu tai karanteeni käyttämättömät resurssit", + "iris.modded.help.entry.command.restore": "Esikatselu tai uusinta karanteenia", + "iris.modded.help.entry.command.status_validation": "Näytä välimuistin validointistatus", + "iris.modded.help.entry.command.enable": "Luo ja pistä hitaasti Iris ulottuvuus ajon aikana; lataa pakkauksen, jos se puuttuu:dimensionKey valita tietty pakkauksen ulottuvuus", + "iris.modded.help.entry.command.replace_overworld": "Pistä Iris ensisijainen maailma ja reitti pelaajat siellä sijaan vanilla overworld", + "iris.modded.help.entry.command.disable": "Evakuoi ja pura Iris ulottuvuus; maailman tiedot levyllä säilytetään uudelleen-enabling", + "iris.modded.help.entry.command.delete": "Poista käytöstä Iris mitta ja pyyhi sen pala ja Mantle tiedot levyltä", + "iris.modded.help.entry.command.list": "Luettelo ladattu Iris mitat", + "iris.modded.help.entry.command.status_world": "Näytä ladattu Iris mitat ja konfiguroitu ensisijainen maailma", + "iris.modded.help.entry.command.status_datapack": "Tarkista ladattu Iris Mitat", + "iris.modded.help.entry.command.install": "Asenna ladatun mittatyypin ohitus Iris mitat", + "iris.modded.help.entry.command.list_datapacks": "Listaa määritetyt ja asennetut datapaketit", + "iris.modded.help.entry.command.ingest": "Selitä Bukkit datapackin suurin työnkulku", + "iris.modded.help.entry.command.remove": "Selitä datapaketin poistotyövirta", + "iris.modded.help.entry.command.list_structures": "Uusi structure-index.json", + "iris.modded.help.entry.command.info_2": "Ratkaise a Iris rakennekaavio ja raportin raja-arvot", + "iris.modded.help.entry.command.place": "Kokoa ja aseta Iris sijaintisi rakenne", + "iris.modded.help.entry.command.import": "Selitä Bukkit rakenteen mukainen työnkulku", + "iris.modded.help.entry.command.capture": "Selitä Bukkit rakenteen kaappaustyövirta", + "iris.modded.help.entry.command.verify": "Ilmoita syntyperäinen ja Iris rakenteen saavutettavuus nykyisessä ulottuvuudessa", + "iris.modded.help.entry.command.sentry": "Lähetä testi poikkeus Iris virheraportointi", + "iris.modded.help.entry.command.network": "Listaa verkkoliittymät ja niiden osoitteet", + "iris.runtime.progress.finding_regions": "Alueet", + "iris.runtime.progress.converting": "Muunnetaan", + "iris.runtime.status.running": "Suoritetaan", + "iris.runtime.status.stopped": "Pysäytettiin", + "iris.runtime.status.paused": "Tauko", + "iris.runtime.status.paused_lower": "tauko", + "iris.runtime.status.running_lower": "käynnissä", + "iris.runtime.status.enabled": "käytössä.", + "iris.runtime.status.disabled": "ei käytössä.", + "iris.runtime.status.unregistered": "rekisteröimätön", + "iris.runtime.status.none": "ei yhtään", + "iris.runtime.status.random": "satunnais", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "tosi", + "iris.runtime.status.false": "väärä", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " ylikirjoitus", + "iris.runtime.datapack.override_suffix": " (maailman datapaketin ohitus asennettu)", + "iris.runtime.primary_world.players_routed_suffix": " (pelaajat siellä)", + "iris.runtime.primary_world.routing_disabled_suffix": "- Ei.", + "iris.runtime.modded.no_dimension_match": "Ei Iris Ulottuvuus vastaa '{filter}'.", + "iris.runtime.teleport.world": "Sinut on teleportattu {world}.", + "iris.runtime.engine.hotloaded": "Moottori, joka on kiihdytetty", + "iris.runtime.job.completed": "Valmis {job} sisään {duration}", + "iris.runtime.job.scanning_selection": "Skannataan valintaa", + "iris.runtime.job.loading_chunks": "Ladataan chunkia", + "iris.runtime.job.searched_chunks": "Etsi {chunks} Palat", + "iris.runtime.job.compile": "Käännä", + "iris.runtime.job.saving_object": "Talletetaan objektia", + "iris.runtime.job.downloading": "Noudetaan", + "iris.runtime.job.extracting": "Purkaminen", + "iris.runtime.job.installing": "Asentaminen", + "iris.runtime.compile.iob_empty": "- IOB {file} on 0 Korttelit!", + "iris.runtime.compile.iob_empty_hover": "Virhe:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} Se ei ole 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Virhe:\n{path}\nLeveys, korkeus tai syvyys on nolla (huono muoto)", + "iris.runtime.compile.json_error": "- JSON Virhe {file}", + "iris.runtime.compile.json_error_hover": "Virhe:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Lataajaa ei löydy {path}", + "iris.runtime.datapack.name": "Iris Maailman sukupolvi", + "iris.runtime.pack.already_exists": "Lauma on jo olemassa!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "ohita {object}: ei ladattu", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} puu ({branches} konttorit), {converted} Lehti->puu{distances} etäisyydet", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} puu ({branches} konttorit), {converted} Lehti->puu{distances} Etäisyydet!{pinned} pinnoitettu", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "epäonnistui {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Tehty: {processed} käsitelty, {changed} muuttunut, {skipped} ohitettu, {failed} epäonnistui", + "iris.runtime.tree_plausibilize.done_dry": "Tehty: {processed} käsitelty, {changed} muuttunut, {skipped} ohitettu, {failed} epäonnistui (kuiva ajo, ei kirjoitettu)", + "iris.runtime.tree_plausibilize.totals": "Yhteensä: +{wood} puu ({branches} konttorit), {converted} Lehti->puu{distances} Etäisyydet!{pinned} pinnoitettu, saavuttamaton {before} -> {after}", + "iris.runtime.item.wand.name": "Sauva Iris", + "iris.runtime.item.wand.lore.first": "Vasen napsauta lohko asettaa ensimmäinen kulma", + "iris.runtime.item.wand.lore.second": "Oikealla klikkaa lohko asettaa toinen kulma", + "iris.runtime.item.dust.name": "Paljastamisen pöly", + "iris.runtime.item.dust.lore": "Oikealla klikkaa lohko paljastaa sen sijoitus rakenne!", + "iris.runtime.wand.position_set": "Sijainti {position} asetettu {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Iris ei ole luonut tätä ulottuvuutta.", + "iris.runtime.dust.found_object": "Löytyi {object}", + "iris.runtime.dust.revealed": "{object}:n paljastamat {count}-katkokset", + "iris.runtime.dust.revealed_capped": "{object}:n paljastamat {count}-katkokset (suljetut)", + "iris.runtime.dust.header": "--- Iris Pöly {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Lohko: {block}", + "iris.runtime.dust.position.above": "Sijainti: +{offset} yläpuolella pinta (pinta Y ={surfaceY})", + "iris.runtime.dust.position.below": "Sijainti: {offset} pinnan alla (pinta Y ={surfaceY})", + "iris.runtime.dust.position.at": "Sijainti: pinnalla (Y ={surfaceY})", + "iris.runtime.dust.object_at_block": "Kohde @ lohko: {object}", + "iris.runtime.dust.none": "ei yhtään", + "iris.runtime.dust.placed_by.object_above": "Sijaitsee: esine/kallistus '{object}\" (pinnan yläpuolella)", + "iris.runtime.dust.placed_by.decoration_above": "Sijaitsee: sisustus/objekti/kalleus (pinnan yläpuolella)", + "iris.runtime.dust.placed_by.buried_object": "Paikka: haudattu esine '{object}'", + "iris.runtime.dust.placed_by.terrain": "Sijaitsee: maastokerros (syvyys {depth} pinnan alla)", + "iris.runtime.dust.column_object": "Sarake: {object} -> Tämä lohko on todennäköisesti objektin puujuurta", + "iris.runtime.dust.column_object_none": "Sarake: {detail}", + "iris.runtime.dust.column_none": "ei sisällä 64 (sistori tai maasto, ei kohde puujyrsintä)", + "iris.runtime.dust.column.above": "{object} @Y={y} (yli)", + "iris.runtime.dust.column.below": "{object} @Y={y} (alla)", + "iris.runtime.dust.surface_biome": "Pintabiometri: {biome}", + "iris.runtime.dust.surface_biome_detail": "Pintabiometri: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome@Y: {biome}", + "iris.runtime.dust.cave_biome": "Luola/Mantle biometri: {biome}", + "iris.runtime.dust.server_biome": "Palvelinbio: {biome} (ID: {id})", + "iris.runtime.dust.region": "Alue: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Esineet paloina: {objects}", + "iris.runtime.dust.copy_button": "[Klikkaa kopioidaksesi nämä tilastot]", + "iris.runtime.dust.copy_hover": "Kopioi lohkon tilastot leikepöydälle", + "iris.runtime.pregen.starting": "Iris Pregen- aloitus...", + "iris.runtime.pregen.header": "Iris Pregen.", + "iris.runtime.pregen.bossbar.paused": "Iris Pregen. {generated}/{total} {percent}% keskeytetty", + "iris.runtime.pregen.bossbar.running": "Iris Pregen. {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " epäonnistui {failed}", + "iris.runtime.pregen.status.context": "Mitat {dimension} · Menetelmä {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Palat {generated}/{total} · Nopeus {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Palat {generated}/{total} · Nopeus {speed}/s · Ei onnistunut {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Elaped {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Elaped {elapsed} · keskeytetty", + "iris.runtime.pregen.button.pause": "Keskeytä/Poista", + "iris.runtime.pregen.button.pause.hover": "Vaihda sukupolvia edeltävän tauon tila", + "iris.runtime.pregen.button.stop": "Lopeta", + "iris.runtime.pregen.button.stop.hover": "Viimeistele nykyinen alue ja lopeta esisukupolvi", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cpakkaus/ kansiota ei löytynyt.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eEi pakettia validoitavaksi.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidointi suoritettu. Rikkoutuneet pakkaukset: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPakkaus{pack}' ei löydy alta packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aPakkaukselle ei löytynyt puhdistusehdokkaita{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aKaranteeni {size} alla {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cSiivoustilan on oltava esikatselu tai sovelletaan.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aPakkaukselle ei löytynyt puhdistusehdokkaita{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eSiivoa esikatselu pakkaukselle '{pack}': {size} candidate(s). Tiedostoja ei muutettu.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Juokse /iris pack cleanup {pack} mode=apply Karanteenikaranteenin jälkeen.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cPalauta hylätty, koska {size} destination(s) already exist.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eEi mitään palautettavaa pakkaukselle '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aPalautettu {size} tiedostot mistä {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cPalauta tila on esikatselu tai sovelletaan.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eEi mitään palautettavaa pakkaukselle '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§ePalauta esikatselu {dumpPath}: {size} file(s). Tiedostoja ei muutettu.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cRestore on estetty {size} nykyinen kohde(s).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Juokse /iris pack restore {pack} mode=apply palauttaa uuden konfliktintarkastuksen jälkeen.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eValidointituloksia ei ole tallennettu. Juokse /iris pack validate Ensin.", + "iris.bukkit.runtime.commandpack.status.ok": "§aSelvä.§r {pack}§7 (esto ={blocking}, varoitukset={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBROKENN§r {pack}§7 (esto ={blocking}, varoitukset={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cSiivous epäonnistui: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cPalautus epäonnistui: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "edelleen karanteenissa", + "iris.bukkit.runtime.commandpack.path.quarantined": "karanteenissa", + "iris.bukkit.runtime.commandpack.path.candidate": "ehdokas", + "iris.bukkit.runtime.commandpack.path.conflict": "konflikti", + "iris.bukkit.runtime.commandpack.path.restored": "palautettu", + "iris.bukkit.runtime.commandpack.path.file": "tiedosto", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eEi validointitulosta \"{pack}'. Juokse /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§c\"{name}' epäonnistui: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPakkaus{packName}Se on ladattavissa.§7 (varoituksia ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPakkaus{packName}' on rikkinäinen:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... sekä {count} Lisää varoituksia.", + "one": "§7 ... sekä {count} Enemmän varoitusta." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cTee aina varmuuskopio ennen tämän käyttämistä", + "§eTästä voi aiheutua muun muassa seuraavia ongelmia:", + "§e - Rikkinäisiä chunkeja (katkoksia) vanhojen ja uusien chunkien välille (ennen päivitystä & sen jälkeen)", + "§e - Uudelleen luodut chunkit eivät sovi vanhoihin chunkeihin", + "§e - Rakenteet eivät ilmesty uudelleen regeneroinnin yhteydessä", + "§e - Luolat eivät kohtaa toisiaan", + "§e - Maastokerrokset eivät kohtaa toisiaan", + "§cKun ymmärrät riskit ja olet tehnyt varmuuskopion:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aTuo §f{total}§a vanilla & datapakettirakenteet (tila ={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[virhe] {keyString}: virheellinen avain", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[ohitettu] {keyString}: ei yksilevyistä NBT - vanilla rakentaa tämän koodilla tai erillisistä kappalemalleista (tuotu mallien kautta); ei mitään tuotavaa yhtenä rakenteena.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[virhe] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aIrtotuonti valmis: §f{imported}§a tuonti, §f{skipped}§a ohitettu, §f{failed}§a epäonnistui (§f{total}§a yhteensä).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aYksirunkoisten rakenteiden rakentaminen tuontikappaleista (yksi muunnos/sukupolvet)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} variantit)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[ohitettu] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[virhe] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§ayksirunkoiset rakenteet: §f{imported}§a rakennettu, §f{skipped}§a ohitettu, §f{failed}§a Epäonnistui.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cRakennemalleja ei voitu laskea palvelimen kautta ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§e\"Rakennus\"-resurssireitistä ei löytynyt rakennemalleja.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aTuo §f{total}§a rakennemallit (muoto ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[virhe] {keyString}: virheellinen avain", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[virhe] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} tuonti, {skipped} ohitettu, {failed} epäonnistui)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aMallin tuonti valmis: §f{imported}§a tuonti, §f{skipped}§a ohitettu, §f{failed}§a epäonnistui (§f{total}§a yhteensä).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eDatapack (ei-miina) rakenteita ei ole rekisteröity. Aloita datapaketti ja käynnistä se uudelleen.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aTuo §f{total}§a datapakettirakenteet (tila ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[virhe] {keyString}: virheellinen avain", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[virhe] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aTuo §f{size}§a tietopaketin rakennemallit...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[virhe] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[virhe] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eDatapakettimalleja ei voitu luetella palvelimen kautta ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aDatapack-rakenteen tuonti valmis: §f{imported}§a tuonti, §f{skipped}§a ohitettu, §f{failed}§a Epäonnistui.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eAktiivinen rakennekaappaus ei tue NMS sidonta; vangitsemispassin ohittaminen.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Ei koodattuja rakenteita, jotka voitaisiin kaapata (kaikki on jo tuotu maahan rakenteena).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aKaappaus §f{total}§a Koodin aiheuttamat rakenteet (ei NBT malli) osaksi naarmu maailmaan (slipping mitään laajempaa / taller kuin {MAXSPAN} lohkot)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[ohitettu] {key}: ei sijoittanut kaapattava rakenne täällä (liian suuri, väärä ulottuvuus, tai ei voimassa sijoitus litteässä maailmassa). Se on vanillaa.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[virhe] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[virhe] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} kiinni, {skipped} ohitettu, {failed} epäonnistui)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aRakenne kaapattu: §f{imported}§a kiinni, §f{skipped}§a ohitettu, §f{failed}§a epäonnistui (§f{total}§a yhteensä).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eAktiivinen puu/kohde ei altistu vanillapuulle. NMS sitova (vain tuontirakenteet).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aTuo §f{total}§a vanillapuun/kohteen ominaisuudet (§f{wantVariants}§a variantteja kukin) osaksi naarmu maailma...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[ohitettu] {key}: ominaisuus sijoitettu mitään jälkeen retries.", + "iris.bukkit.runtime.featureimporter.fail": "§c[virhe] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} tuonti, {skipped} ohitettu, {failed} epäonnistui)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aOminaisuuden tuonti valmis: §f{imported}§a kirjoitetut ominaisuudet, §f{skipped}§a ohitettu, §f{failed}§a epäonnistui (§f{total}§a yhteensä).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cEi voitu luoda naarmujen maailmaa ominaisuus tuontia ({error}); puun/object-passin ohittaminen.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Ei kaavioita tiedostoja muuntaa löytyy {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aMuunnettu {name} -> {value} sisään {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aMuunnettu {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cTallennus epäonnistui: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cMuuntaminen epäonnistui: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Muunnettu: {get} sisään {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cJotkut kaaviot eivät muuttuneet. Tarkista konsolista yksityiskohtia.", + "iris.bukkit.runtime.studiosvc.installing_package": "Asennuspaketti: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Etsin pakettia: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Löytyi {type}0, iiris {WORKSPACENAME} kansio", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Löytyi {type} ulottuvuus {WORKSPACENAME} kansio. Uudelleenpakkaaminen", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "En löydä {name} tämän pakkauksen mitoissa! Epäonnistui!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Ei voi ladata ulottuvuutta! Epäonnistui!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} tyyppi asennettu. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Pakkaus{key}' ei löytynyt pakkauslistalta.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Käyttö /iris download branch= ladata käsin.", + "iris.bukkit.runtime.studiosvc.failed_download": "Ei voitu ladata \"{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Ei voitu ladata IrisDimensionsOverworld beta -julkaisu.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Ei voitu ladata \"{repo}\" (ala {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Studiomaailman avaaminen epäonnistui: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Studiota ei voi avata{dimm}\" - pakkauksessa on estovirheitä:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Korjaa pakkaus ja juokse /iris pack validate {dimm} Jatkaa.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Olemassa olevan studioprojektin sulkeminen epäonnistui: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Olemassa olevan studioprojektin sulkeminen epäonnistui: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Studiomaailman avaaminen epäonnistui: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Laumaa ei löytynyt luomaan uutta ulottuvuutta.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Tuodun kokotiedoston puuttuvat", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Tuo {downloadable} uuteen projektiin {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio: ei solua klikkaamalla (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: säästää §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: ei muutoksia {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: tyhjä solu {pack}/{key} (Ei mitään kirjoittamista)", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: ei kohdetiedostoa {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: tallennettu §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: tallennus epäonnistui {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Mitata ei voitu ladata \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Mittalataajaa ei voitu saada", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStudio auki epäonnistui: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStudio auki epäonnistui.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio valmis §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serialisoivat objektit", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Kirjoitti toisen {g} Esineet", + "iris.bukkit.runtime.irisproject.package_compiled": "Paketti valmis!", + "iris.bukkit.runtime.irisproject.failed": "Epäonnistui!", + "iris.bukkit.runtime.irisengine.total": "Yhteensä: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Moottori §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Yksityiskohdat: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} ei ole määritelty ulottuvuudessa!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cEi löytynyt {message} Etsintäetäisyydeltä.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTelesiirtyminen {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} klo: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Sinut on evakuoitu tästä maailmasta.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Sinut on evakuoitu tästä maailmasta. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "On joitakin Iris Pakkaukset, joissa on custom biomes niissä", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Sinun täytyy käynnistää palvelin käyttää näitä pakkauksia.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Riittämättömät luvat", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Alikomentajia ei ole tai sinulla ei ole lupaa käyttää niitä.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Ei huomioituja parametreja: {m}", + "iris.runtime.studio.opening": "§6Studio §bAVATAAN", + "iris.runtime.studio.opening_progress": "§6Studio §bAVATAAN§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cEPÄONNISTUI§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aVALMIS§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cEPÄONNISTUI§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio valmis§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Alustetaan", + "iris.runtime.studio.stage.queued": "Jonossa", + "iris.runtime.studio.stage.resolve_dimension": "Ratkaistaan ulottuvuutta", + "iris.runtime.studio.stage.prepare_world_pack": "Valmistellaan maailmapakettia", + "iris.runtime.studio.stage.install_datapacks": "Asennetaan datapaketteja", + "iris.runtime.studio.stage.create_world": "Luodaan maailmaa", + "iris.runtime.studio.stage.apply_world_rules": "Otetaan maailmansäännöt käyttöön", + "iris.runtime.studio.stage.prepare_generator": "Valmistellaan generaattoria", + "iris.runtime.studio.stage.request_entry_chunk": "Ladataan aloituschunkkia", + "iris.runtime.studio.stage.resolve_safe_entry": "Etsitään turvallista spawnia", + "iris.runtime.studio.stage.teleport_player": "Teleportoidaan", + "iris.runtime.studio.stage.finalize_open": "Viimeistellään", + "iris.runtime.studio.stage.cleanup": "Siivotaan", + "iris.runtime.world_create.teleport_failed": "§eMaailma luotiin, mutta automaattinen teleportti epäonnistui. Yritä /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunkia", + "iris.runtime.world_create.console": "§6Luodaan §e{percent}%§7 {generated}/{required} chunkia§8 ({remaining} vasen)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fEsituotanto", + "iris.runtime.world_create.pregen.console": "§6Esituotanto §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Regin", + "iris.runtime.chunk_job.title.delete": "Poista", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Valmistellaan", + "iris.runtime.chunk_job.stage.clearing": "Selvitys", + "iris.runtime.chunk_job.stage.resetting_mantle": "Korjaa Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Uusiutuminen", + "iris.runtime.chunk_job.stage.generating": "Luodaan", + "iris.runtime.chunk_job.stage.comparing": "Vertailu", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnosointi", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bTYÖNTEKIJÄT", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} Palaa {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} Palaa {elapsed} ({failures} epäonnistui)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aTehty§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cFAIDOT§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aValmis§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cEi onnistunut§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} täydellinen: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} viimeistelty virheillä: {summary}", + "iris.runtime.golden.no_capture": "Ei kultaista kaappausta {path}- Tee ensin pidätys.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash Keskeytetty: {failed} Se ei onnistunut. Kultaista tiedostoa ei ole kirjoitettu.", + "one": "GoldenHash Keskeytetty: {failed} Chunk ei onnistunut tuottamaan. Kultaista tiedostoa ei ole kirjoitettu." + }, + "iris.runtime.golden.failed": "GoldenHash epäonnistui: {error}", + "iris.runtime.golden.mantle_reset": "Mantle nollaus ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle nollaus epäonnistui ({type}); jatketaan nykyistä Mantletilaa.", + "iris.runtime.golden.captured": "Kulta on saatu kiinni. {chunks} chunkia yhteensä ={hash}", + "iris.runtime.golden.wrong_world": "Golden-tiedosto on himmennetty{goldenDimension} siemen ={goldenSeed} Mutta tämä maailma on hämärä{dimension} siemen ={seed}. Keskeytän.", + "iris.runtime.golden.version_warning": "Golden vangittiin MC:{goldenVersion}, käynnissä mc ={version}. Erot voivat olla version aiheuttamia.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunkia, yhdistetty ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} Palaset ovat eri mieltä.", + "iris.runtime.golden.mismatch_chunk": " pala {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (puuttuu kultaa)", + "iris.runtime.golden.mismatch_more": " ... sekä {count} enemmän", + "iris.runtime.golden.current_written": "Nykyinen hashes kirjoitettu {file}", + "iris.runtime.golden.diag.stable": "Toista STABLE, Mantlen palautus {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Toista UNSTABLE ({diffs}+ block diffs), Mantlen palautus {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (Mantle restructions skannaa lähtöä)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ erot - Mantlen rakenne on tila/tila riippuvainen)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnoosi epäonnistui: {error}", + "iris.runtime.golden.started": "GoldenHash alkoi: {chunks} Pyörii ympäri 0,0 puskurissa (maailmassa koskemattomana), langat ={threads} tila ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] pala {x},{z} hasheed", + "iris.runtime.golden.chunk_failed": "Liha {x},{z} epäonnistui: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Virheellinen pakkauksen nimi \"{pack}' ( sallittu: a-z, 0-9, ja -)", + "iris.runtime.pack_download.invalid_branch_name": "Virheellinen haaran nimi \"{branch}' (sallittu: kirjaimet, numerot, . ja -)", + "iris.runtime.pack_download.failed": "Paketin lataus epäonnistui: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Noudetaan {url}", + "iris.runtime.pack_download.failed_to_find": "Pakkausta ei löytynyt {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Varmista, että määritit oikean ulosoton ja haaran!", + "iris.runtime.pack_download.example_command": "Esimerkiksi: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Purkaminen {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Purkamisen yhteydessä. Tarkista/ tee seuraava:", + "1. Onko sinulla toimiva internet-yhteys?", + "2. Korruptoiko lataus?", + "3. Yritä poistaa */plugins/iris/packs kansio ja lataa uudelleen.", + "4. Lataa pakkaus GitHub repo https://github.com/IrisDimensions/overworld", + "5. Yhteystuki (jos kaikki muut vaihtoehdot eivät auta)" + ], + "iris.runtime.pack_download.no_extracted_files": "Zip-tiedostosta ei löytynyt tiedostoja.", + "iris.runtime.pack_download.home_directory_error": "Virhe etsittäessä kotihakemistoa. Onko tiedostossa ei-tekstimerkkejä?", + "iris.runtime.pack_download.invalid_archive_format": "Virheellinen muoto. Puuttuu juurikansio tai liikaa kansioita!", + "iris.runtime.pack_download.no_dimension_file": "Otetusta zip-tiedostosta ei löydy mittatiedostoa.", + "iris.runtime.pack_download.check_github": "Tarkista, että se on läsnä GitHub Ja raportoikaa tästä henkilöstölle!", + "iris.runtime.pack_download.one_dimension_required": "Mitat-kansiossa on oltava täsmälleen yksi tiedosto.", + "iris.runtime.pack_download.invalid_dimension": "Virheellinen ulottuvuuskansio alla dimensions/.", + "iris.runtime.pack_download.importing": "Tuo {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Toinen ulottuvuus pakkauskansiossa jo käyttää avainta {key}. Tuonti epäonnistui!", + "iris.runtime.pack_download.pack_key_conflict": "Toinen pakkaus käyttää avainta {key}. Tuonti epäonnistui!", + "iris.runtime.pack_download.acquired": "Onnistunut hankinta {name}.", + "iris.runtime.pack_download.validation_failed": "Pakkaus{pack}' Epäonnistunut validointi; maailma ja Studio luominen hylätään. Perusteet:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pakkaus{pack}\" validoitu {count} varoitukset.", + "one": "Pakkaus{pack}\" validoitu {count} Varoitus." + }, + "iris.runtime.pack_download.validated": "Pakkaus{pack}' validoitu.", + "iris.client.vision.title": "Iris Näkö", + "iris.client.vision.connecting": "Yhdistetään Iris palvelin...", + "iris.client.vision.not_connected": "ei yhdistetty", + "iris.client.vision.not_iris_world": "Ei Iris maailma", + "iris.client.vision.no_dimension_data": "ei ulottuvuustietoja", + "iris.client.vision.header_detail": "{status} zoomaus {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Vedä Pan vieritä zoomata Esc sulkea", + "iris.client.vision.dimension_pack": "{dimension} Pakkaus {pack}", + "iris.client.toast.studio_hotload": "Studiohotload", + "iris.client.toast.changed_files": { + "other": "{count} tiedostot", + "one": "{count} tiedosto" + }, + "iris.client.toast.reload_failed": "lataaminen epäonnistui", + "iris.client.toast.reloaded": "ladattu", + "iris.client.toast.pack_failed": "{pack} epäonnistui", + "iris.client.what.title": "Iris Mitä?", + "iris.client.what.querying": "Kysely {x}, {z}...", + "iris.client.what.biome": "Bioma: {biome}", + "iris.client.what.region": "Alue: {region}", + "iris.client.what.cave": "Luola: {cave}", + "iris.client.what.height": "Korkeus: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "keskeytetty", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris.", + "iris.bukkit.scoreboard.speed": "§aNopeus§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bVälimuisti§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantteli§7: {count}", + "iris.bukkit.scoreboard.carving": "§dKaiverrus§7: {state}", + "iris.bukkit.scoreboard.region": "§bAlue§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiometri§7: {biome}", + "iris.bukkit.scoreboard.height": "§bKorkeus§7: {height}", + "iris.bukkit.scoreboard.slope": "§bRivi§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUDName/s§7: {updates}", + "iris.desktop.vision.title": "Iris Näkö", + "iris.desktop.vision.view": "Näytä:", + "iris.desktop.vision.grid": "Ruudukko", + "iris.desktop.vision.follow": "Seuraa", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Virkistävä", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Lähennä nollaus", + "iris.desktop.vision.grid_enabled": "Verkko käytössä", + "iris.desktop.vision.grid_disabled": "Verkko pois käytöstä", + "iris.desktop.vision.following": "Seurataan pelaajaa {player}", + "iris.desktop.vision.no_player": "Ei pelaajaa maailmassa", + "iris.desktop.vision.follow_disabled": "Seuraa pois käytöstä", + "iris.desktop.vision.low_quality": "heikkolaatuinen", + "iris.desktop.vision.high_quality": "Korkealaatuinen", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} lohkot", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Sijainti: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Terveys: {health} / {maximum}", + "iris.desktop.vision.block_position": "Kenttä {x}, {z}", + "iris.desktop.vision.chunk_position": "Liha {x}, {z}", + "iris.desktop.vision.region_position": "Alue {x}, {z}", + "iris.desktop.vision.biome_key": "Avain: {key}", + "iris.desktop.vision.biome_file": "Tiedosto: {file}", + "iris.desktop.vision.velocity": "Nopeus: {velocity}", + "iris.desktop.vision.tiles": "Hei. {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Työntekijät: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Keskus: {x}, {z}", + "iris.desktop.vision.help.toggle": "Vaihda apua", + "iris.desktop.vision.help.refresh": "Päivitä laatat", + "iris.desktop.vision.help.follow": "Seuraa pelaajaa", + "iris.desktop.vision.help.zoom": "Lähennä/pois", + "iris.desktop.vision.help.reset_zoom": "Nollaa zoomaus", + "iris.desktop.vision.help.cycle_mode": "Cycle render -tila", + "iris.desktop.vision.help.quality": "Vaihda laattojen laatu", + "iris.desktop.vision.help.fps": "Vaihda 30/60 FPS", + "iris.desktop.vision.help.grid": "Vaihda ruudukkoa", + "iris.desktop.vision.help.biome": "Yksityiskohtainen biome info", + "iris.desktop.vision.help.teleport": "Teleportti kohdistimeen", + "iris.desktop.vision.help.editor": "Avaa biome muokkaimessa", + "iris.desktop.vision.opened": "Avattu {target}", + "iris.desktop.vision.teleporting": "Telesiirtyminen {x}, {z}", + "iris.desktop.vision.mode.biome": "Biometri", + "iris.desktop.vision.mode.biome_land": "Biometrinen maa", + "iris.desktop.vision.mode.biome_sea": "Biome-meri", + "iris.desktop.vision.mode.region": "Alue", + "iris.desktop.vision.mode.cave_land": "Luolamaa", + "iris.desktop.vision.mode.height": "Korkeus", + "iris.desktop.vision.mode.object_load": "Kohteen kuormitus", + "iris.desktop.vision.mode.decorator_load": "Koristuskuorma", + "iris.desktop.vision.mode.continent": "Manner", + "iris.desktop.vision.mode.layer_load": "Tasokuormitus", + "iris.desktop.noise.title": "Melututkija", + "iris.desktop.noise.title_generator": "Melututkija: {generator}", + "iris.desktop.noise.search": "Etsi...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} Zoom: {zoom} Arvo: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Oma", + "iris.desktop.noise.category.pack_generators": "Pakkausgeneraattorit", + "iris.desktop.noise.category.simplex": "SimplexComment", + "iris.desktop.noise.category.perlin": "PerlinName", + "iris.desktop.noise.category.cellular": "solu", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Mausteneilikka", + "iris.desktop.noise.category.hexagon": "Heksagon", + "iris.desktop.noise.category.vascular": "Verisuonisto", + "iris.desktop.noise.category.globe": "Maapallo", + "iris.desktop.noise.category.cubic": "Kubiitti", + "iris.desktop.noise.category.fractal": "Fraktaali", + "iris.desktop.noise.category.static": "Staattinen", + "iris.desktop.noise.category.nowhere": "Ei missään", + "iris.desktop.noise.category.sierpinski": "SierpinskiName", + "iris.desktop.noise.category.utility": "Hyödyllisyys", + "iris.desktop.noise.category.other": "Muut", + "iris.desktop.pregen.initializing": "Alustetaan...", + "iris.desktop.pregen.title": "Pregen- näkymä", + "iris.desktop.pregen.method_pending": "Odotetaan", + "iris.desktop.pregen.paused": "keskeytetty", + "iris.desktop.pregen.resume_hint": "Paina P jatkaaksesi", + "iris.desktop.pregen.pause_hint": "Paina P taukoa varten", + "iris.desktop.pregen.progress_paused": "keskeytetty {generated} / {total} ({percent} täydellinen)", + "iris.desktop.pregen.progress_saving": "Tallennus... {generated} / {total} ({percent} täydellinen)", + "iris.desktop.pregen.progress_generating": "Luodaan {generated} / {total} ({percent} täydellinen)", + "iris.desktop.pregen.speed": "Nopeus: {chunksPerSecond} chunkia/s, {regionsPerMinute} alueet/m {chunksPerMinute} chunkia/m", + "iris.desktop.pregen.speed_cached": "Nopeus: välimuisti {chunksPerSecond} chunkia/s, {regionsPerMinute} alueet/m {chunksPerMinute} chunkia/m", + "iris.desktop.pregen.time": "{remaining} jäljellä ({elapsed} Kulunut)", + "iris.desktop.pregen.method": "Generointimenetelmä: {method}", + "iris.desktop.pregen.memory": "Muisti: {used} ({usage}) Paine: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/fr_FR.json b/core/src/main/resources/languages/fr_FR.json new file mode 100644 index 000000000..46d86fa3a --- /dev/null +++ b/core/src/main/resources/languages/fr_FR.json @@ -0,0 +1,1435 @@ +{ + "locale": "fr_FR", + "messages": { + "director.help.navigation.parent.hover": "Revenir au groupe de commandes parent", + "director.help.navigation.back": "Retour", + "director.help.no_subcommands": "Aucune sous-commande sur cette page.", + "director.help.no_description": "Aucune description fournie", + "director.help.aliases": "Alias", + "director.help.command_group": "Groupe de commandes. Cliquez pour ouvrir.", + "director.help.no_parameters": "Aucun paramètre. Cliquez pour préremplir la commande.", + "director.help.parameters": "Paramètres", + "director.help.parameter.required": "requis", + "director.help.parameter.optional": "facultatif", + "director.help.parameter.default": "par défaut", + "director.help.navigation.previous.hover": "Page précédente", + "director.help.navigation.next.hover": "Page suivante", + "director.help.navigation.page": "Page", + "director.runtime.error.invalid_origin": "Cette commande ne peut pas être exécutée depuis cette origine.", + "director.runtime.error.unknown_parameter": "Clé de paramètre inconnue : {key}", + "director.runtime.error.unexpected_argument": "Argument inattendu \"{argument}\". Les paramètres facultatifs doivent être nommés, par ex. seed=123", + "director.runtime.error.conversion_failed": "Impossible de convertir \"{value}\" en {type} pour {parameter}", + "director.runtime.error.default_parse_failed": "Impossible d'analyser la valeur par défaut du paramètre {parameter}", + "director.runtime.error.missing_argument": "Argument manquant \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Échec de l'exécution de la commande {command} : {reason}", + "director.runtime.usage": "Utilisation: {usage}", + "iris.command.permission_denied": "Vous n'avez pas la permission '{permission}'", + "iris.command.unknown": "Commande Iris inconnue", + "iris.command.player_only": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.command.iris_world_required": "Cette dimension n'a pas été générée par Iris.", + "iris.command.reload.success": "Les paramètres et la langue {locale} ont été rechargés.", + "iris.command.reload.failed": "Les paramètres ont été rechargés, mais la langue {locale} a été refusée ; la langue {activeLocale} reste utilisée.", + "iris.modded.help.unknown_section": "Section d'aide Iris inconnue : {section}", + "iris.modded.help.back_hover": "Revenir à {parent}.", + "iris.modded.help.command_parameter": "Paramètre de commande", + "iris.modded.help.parameter_required": "Ce paramètre est obligatoire.", + "iris.modded.help.parameter_optional": "Ce paramètre est facultatif.", + "iris.modded.help.brigadier_text": "Brigadier lit ce paramètre comme du texte.", + "iris.modded.help.operator_notice": "Les commandes Iris nécessitent les droits d'opérateur (niveau 2).", + "iris.modded.help.operator_instruction": "Exécutez {command} depuis la console (ou activez les commandes en solo) ; jusque-là, ces commandes ne s'exécuteront pas et ne seront pas complétées avec Tab.", + "iris.modded.command.properties.none": "Propriétés: (aucune)", + "iris.modded.command.properties.list": "Propriétés : {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Démarrage de l'ingestion des datapacks...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aImportations de datapacks configurées : §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aDatapacks installés : §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eAjoutez des URL Modrinth à la liste 'datapackImports' d'une dimension, puis exécutez /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash démarré : {value} chunks...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash a échoué au chunk {rx},{rz} : {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash global=§6{value}§a chunks={value2} solides={solidBlocks} en {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Vous n'êtes pas dans un monde Iris !", + "iris.bukkit.commandfind.unknown_structure": "§cStructure inconnue : {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Exécutez ceci en jeu pour vous téléporter vers une structure.", + "iris.bukkit.commandfind.locating": "§7Recherche de {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Exécutez ceci en jeu pour vous téléporter vers une structure.", + "iris.bukkit.commandfind.locating_2": "§7Recherche de {structure}...", + "iris.bukkit.commandfind.teleported": "§aTéléporté vers {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aDossier du monde supprimé avec succès", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aDossier du monde supprimé avec succès", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cImpossible de supprimer le dossier du monde", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cAucun pack contenant des objets n'a été trouvé sur ce serveur.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cAucun objet à placer dans les packs sélectionnés.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aOuverture d'Object Studio pour {scope} ({totalObjects} objets)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cImpossible d'ouvrir Object Studio : {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cVous devez indiquer un nom de pack.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cLe pack '{pack}' est introuvable dans packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... et {value} de plus.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aVérification des structures dans §f{value}§a depuis {value2},{value3}, dans un rayon de {searchRadius} chunks...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImportation du contenu vanilla dans §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla terminé : §f{imported}§a objects/structures écrits, §f{failed}§a échecs.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Les arbres/objets se trouvent dans objects/vanilla/... ; référencez-les depuis les placements d'objets du biome.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cAucun projet Studio ouvert.", + "iris.bukkit.commandstudio.closing_studio": "§eFermeture de Studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§cImpossible de fermer Studio : {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cImpossible de fermer Studio : {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio fermé. Le nettoyage restant de la famille de mondes a été mis en attente pour le prochain démarrage.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio fermé.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cVous devez être dans un monde Studio pour basculer le tableau de débogage.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Tableau de débogage Studio {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cImpossible de mettre à jour le tableau de débogage Studio pour le moment.", + "iris.bukkit.commandstudio.opened_inventory": "§aInventaire ouvert !", + "iris.bukkit.commandstudio.generating_data": "§7Génération des données...", + "iris.bukkit.commandstudio.done": "§aTerminé !", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Tu manques de la permission{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5État :", + "iris.bukkit.irisenginestatus.service": "§5- Service : §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Métriques : §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Période de maintenance : §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Parallélisme des workers : §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Tâches de monde actives : §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Plaques tectoniques :", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Rétention configurée : §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Utilisation du heap : §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Résidents : §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- En attente : §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Durée moyenne d'inactivité : §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Durée maximale d'inactivité : §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Durée minimale d'inactivité : §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Caches :", + "iris.bukkit.irisenginestatus.resource": "§5- Ressources : §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Flux 2D : §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Flux 3D : §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Autres : §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Autres :", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Mondes Iris : §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Chunks chargés : §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cLe monde est nul.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cCiblez un monde Iris avant de lire un vidage de Mantle.", + "iris.bukkit.commanddeveloper.upgrading": "§aMise à niveau vers {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aMise à niveau terminée ! Vous pouvez maintenant mettre votre serveur à jour vers la version {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cLe rayon doit être supérieur ou égal à 0.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cCe monde n'est pas un monde Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cL'accès au moteur de ce monde est nul.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aSuppression démarrée : §6{chunks}§a chunk(s) autour de §6{centerX},{centerZ}§a. Remplacement des blocs par de l'air.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cLe rayon doit être supérieur ou égal à 0.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cVous devez être dans un monde Iris pour utiliser regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cL'accès au moteur de ce monde est nul. Générez d'abord des chunks à proximité.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRégénération démarrée : §6{chunks}§a chunk(s) autour de §6{centerX},{centerZ}§a. Suppression et régénération sur place.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cLe rayon doit être supérieur ou égal à 0.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cLa cible doit être un monde Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cL'accès au moteur de ce monde est nul.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash démarré : §6{chunks}§a chunk(s) autour de §6{centerX},{centerZ}§a dans des tampons (monde inchangé).", + "iris.bukkit.commandedit.players_only": "§cJoueurs uniquement !", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cAucun monde Studio n'est ouvert !", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cVous devez être dans un monde Studio !", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cImpossible d'ouvrir des fichiers dans un environnement sans interface graphique !", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cLe bureau n'est pas pris en charge par cet environnement !", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Fichier introuvable ; il n'a peut-être pas été chargé directement depuis un fichier.", + "iris.bukkit.commandedit.opening_vscode": "§aOuverture de {value} {value2} dans VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cFichier introuvable ou déclarant inexistant", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Fichier introuvable ; il n'a peut-être pas été chargé directement depuis un fichier.", + "iris.bukkit.commandedit.opening_vscode_2": "§aOuverture de {value} {value2} dans VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cFichier introuvable ou déclarant inexistant", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Fichier introuvable ; il n'a peut-être pas été chargé directement depuis un fichier.", + "iris.bukkit.commandedit.opening_vscode_3": "§aOuverture de {value} {value2} dans VSCode. ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cFichier introuvable ou déclarant inexistant", + "iris.bukkit.commandfind.not_iris_world_5": "§6Vous n'êtes pas dans un monde Iris !", + "iris.bukkit.commandfind.not_iris_world_2": "§6Vous n'êtes pas dans un monde Iris !", + "iris.bukkit.commandfind.not_iris_world_3": "§6Vous n'êtes pas dans un monde Iris !", + "iris.bukkit.commandfind.not_iris_world_4": "§6Vous n'êtes pas dans un monde Iris !", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio : téléportation vers {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} n'est configuré dans aucun placement d'objets de région ou de biome.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cVous ne pouvez pas nommer un monde \"iris\" : Iris réserve ce répertoire aux mondes Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cNous vous suggérons plutôt le nom \"IrisWorld\".", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cVous ne pouvez pas nommer un monde \"benchmark\" : Iris réserve ce répertoire aux benchmarks de packs.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cNous vous suggérons plutôt le nom \"IrisWorld\".", + "iris.bukkit.commandiris.that_folder_already_exists": "§cCe dossier existe déjà !", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cImpossible de trouver ou de télécharger la dimension \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eEssayez l'une des options suivantes : overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eOu téléchargez-la manuellement : /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPréparation du monde terminée. Redémarrez le serveur pour générer/charger \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cUne exception s'est produite pendant la création. Consultez la console pour plus de détails.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aVotre monde a été créé avec succès !", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aVotre monde deviendra automatiquement le monde principal au redémarrage du serveur.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eLa création de mondes pendant l'exécution est désactivée sur Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§ePréparation des fichiers du monde et de bukkit.yml pour le prochain démarrage...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cImpossible de préparer les fichiers du monde pour la dimension \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aLa propriété level-name de server.properties a été définie sur \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cLe monde a été préparé, mais le monde principal n'a pas pu être mis à jour dans server.properties.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aLe monde Iris \"{name}\" a été préparé avec le générateur Iris:{value} et la graine {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aCe monde est maintenant configuré comme monde principal pour le prochain redémarrage.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cImpossible de mettre à jour bukkit.yml : {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cLe joueur indiqué n'existe pas.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v{value} par Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} à {value2}", + "iris.bukkit.commandiris.total_height": "§aHauteur totale : {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Mondes Iris : ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Mondes Bukkit : ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cCe monde n'est pas un monde Iris. Mondes Iris : {value}", + "iris.bukkit.commandiris.removing_world": "§aSuppression du monde : {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cImpossible d'évacuer le monde : {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cImpossible de décharger le monde de la mémoire : {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§a{value} a été supprimé de bukkit.yml avec succès", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eIl semble que le monde avait déjà été supprimé de bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cImpossible d'enregistrer bukkit.yml à cause de {value}", + "iris.bukkit.commandiris.set_debug": "§aDébogage défini sur : {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aTéléchargement du pack : {pack} (version bêta){value}", + "iris.bukkit.commandiris.downloading_pack": "§aTéléchargement du pack : {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cVous devez être dans un monde Iris", + "iris.bukkit.commandiris.sending_metrics": "§aEnvoi des métriques...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cCe monde n'est pas un monde Iris. Mondes Iris : {value}", + "iris.bukkit.commandiris.unloading_world": "§aDéchargement du monde de la mémoire : {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aLe monde a été déchargé de la mémoire avec succès.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cImpossible de décharger le monde de la mémoire.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cImpossible de décharger le monde de la mémoire : {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} n'existe pas sur le serveur.", + "iris.bukkit.commandiris.generator": "§9Générateur : {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} n'est pas un monde Iris.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cImpossible de déterminer la dimension Iris de {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aChargement du monde : {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia ne peut pas charger de nouveaux mondes pendant l'exécution. Redémarrez le serveur pour charger \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} a été chargé avec succès.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cCe monde n'est pas un monde Iris. Mondes Iris : {value}", + "iris.bukkit.commandiris.evacuating_world": "§aÉvacuation du monde{value}", + "iris.bukkit.commandobject.object_size": "Taille de l'objet : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Blocs utilisés : {value}", + "iris.bukkit.commandobject.blocks_object": "== Blocs de l'objet ==", + "iris.bukkit.commandobject.other_block_types": " + {value} autres types de blocs", + "iris.bukkit.commandobject.current_object_size": "Taille actuelle de l'objet : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Nouvelle taille de l'objet : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Impossible d'enregistrer l'objet {value} : {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cAucun objet ne correspond à : {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}] a mis {value2} objet(s) en file d'attente", + "iris.bukkit.commandobject.hold_your_wand": "Tenez votre baguette.", + "iris.bukkit.commandobject.no_area_selected": "Aucune zone sélectionnée.", + "iris.bukkit.commandobject.ready_your_wand": "Préparez votre baguette.", + "iris.bukkit.commandobject.ready_your_wand_2": "Préparez votre baguette.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eL'échelle indiquée dépasse le maximum. Elle a été réduite au maximum : {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Baguette mise à jour pour objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Nouvelle baguette donnée pour objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Baguette mise à jour pour objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§a{object} a été placé", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eVous devez tenir votre baguette !", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cLe fichier existe déjà. Utilisez overwrite=true pour l'écraser.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cImpossible d'enregistrer l'objet à cause d'une IOException : {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aObjet enregistré avec succès dans : {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Tenez votre baguette.", + "iris.bukkit.commandobject.no_area_selected_2": "Aucune zone sélectionnée.", + "iris.bukkit.commandobject.reverted_pastes": "§9{actualReverts}§9 collages ont été annulés !", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cVous ne pouvez pas obtenir de sélection WorldEdit sans WorldEdit.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cVous n'avez pas de sélection WorldEdit dans ce monde.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aUne nouvelle baguette avec votre sélection WorldEdit actuelle !", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPouf ! Bonne construction !", + "iris.bukkit.commandobject.hold_your_wand_3": "§eTenez votre baguette !", + "iris.bukkit.commandobject.no_area_selected_3": "Aucune zone sélectionnée.", + "iris.bukkit.commandobject.auto_select_complete": "§aSélection automatique terminée !", + "iris.bukkit.commandobject.hold_your_wand_4": "§eTenez votre baguette !", + "iris.bukkit.commandobject.no_area_selected_4": "Aucune zone sélectionnée.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aSélection automatique terminée !", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cLe rayon de pregen doit être supérieur à zéro bloc.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cLa prégénération strictement séquentielle nécessite Paper ou un serveur compatible avec Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cL'accès au moteur de ce monde est nul !", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cVérifiez que le monde est chargé et que le moteur est initialisé. Générez par exemple un nouveau chunk.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cImpossible de démarrer la prégénération. Consultez la console pour plus de détails.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eAucune tâche de prégénération active à arrêter", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aL'état de pause de la tâche de prégénération a changé ; état actuel : {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eAucune tâche de prégénération active à suspendre ou reprendre.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eAucune tâche de prégénération active.", + "iris.bukkit.commandpregen.pregen": "§aPregen §6{world}§a : §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aVitesse : §6{value}/s§a ETA : §6{value2}§a Écoulé : §6{value3}§a Méthode : §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aIndex des structures écrit : §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportation de toutes les structures vanilla et de datapacks dans §f{value}§a (écrasement)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImportation terminée : §f{imported}§a structures/objects écrits, §f{failed}§a échecs.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Référencez-les depuis une liste 'structures' de biome, région ou dimension, ou exécutez /iris structure list {value} pour actualiser l'index. Régénérez les chunks pour appliquer les changements.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7{value} structures ont été capturées. Placez-les depuis une liste 'structures' et régénérez les chunks. Supprimez un fichier structures/*.json pour le capturer à nouveau.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cAucun monde Iris chargé trouvé pour {value}. Rejoignez-en ou créez-en un d'abord (la recherche s'effectue dans un monde actif).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cLe monde Iris sélectionné n'a pas de moteur de génération actif.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cAucune structure Iris '{structure}' dans ce pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cLa structure '{structure}' a assemblé 0 pièce (vérifiez startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStructure '{structure}' : §f{value}§a pièces, emprise de §f{value2}x{value3}§a blocs (graine d'exemple 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cAucune structure Iris '{structure}' dans ce pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cLa structure '{structure}' a assemblé 0 pièce", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aLa structure '{structure}' ({value} pièces) a été placée à votre position.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aOuverture de Studio pour le pack \"{value}\" (graine : {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cIndiquez un pack de dimension : /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cImpossible de résoudre le pack de la dimension {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aOuverture de VSCode pour le pack \"{value}\"", + "iris.bukkit.commandstudio.pack_has_version": "§aLe pack \"{value}\" a pour version : {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aOuverture de Noise Explorer !", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cImpossible d'ajouter des éléments à l'inventaire virtuel à cause de : {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aOuverture de l'inventaire !", + "iris.bukkit.commandstudio.only_works_iris_world": "§cFonctionne uniquement dans un monde Iris !", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cVous devez être dans un monde généré par Iris ou en indiquer un.", + "iris.bukkit.commandstudio.opening_map": "§aOuverture de la carte !", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Calcul des métriques de performance des générateurs de bruit", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Calcul des temps des interpolateurs...", + "iris.bukkit.commandstudio.processing_generator_scores": "Traitement des scores des générateurs : ", + "iris.bukkit.commandstudio.score": "Score : {value}", + "iris.bukkit.commandstudio.done_with_result": "§aTerminé ! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cVous devez être dans un monde Iris pour faire apparaître correctement les entités. Iris tentera de les faire apparaître au mieux.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cAucun monde Studio n'est ouvert !", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cVous êtes déjà dans un monde Studio !", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aTéléportation vers le monde Studio !", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Mise à jour de l'espace de travail de code de {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aEspace de travail de code de {value} mis à jour", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cProjet non valide : {value}. Supprimez le fichier code-workspace et réessayez.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cVous devez être dans un monde Iris", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Vous devez être dans un monde Iris.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Capture d'IGenData depuis {value} chunks à proximité.", + "iris.bukkit.commandstudio.reported": "Rapport écrit dans : {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cVous devez activer les GUI lancées par le serveur dans les paramètres !", + "iris.bukkit.commandstudio.players_only": "§cJoueurs uniquement !", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cAucun monde Studio n'est ouvert !", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cVous devez être dans un monde Studio !", + "iris.bukkit.commandwhat.material": "Matériau : §a{value}", + "iris.bukkit.commandwhat.full": "Complet : §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Tenez un bloc ou un objet", + "iris.bukkit.commandwhat.material_2": "Matériau : §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Tenez un bloc ou un objet", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Biome non-Iris : {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Biome de datapack : {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aMondes Iris uniquement.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Regardez un bloc, pas le ciel", + "iris.bukkit.commandwhat.material_3": "Matériau : §a{value}", + "iris.bukkit.commandwhat.full_2": "Complet : §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Bloc de stockage (prend en charge le butin)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Bloc éclairé (prend en charge la lumière)", + "iris.bukkit.commandwhat.foliage_block": "§e* Bloc de feuillage", + "iris.bukkit.commandwhat.decorant_block": "§e* Bloc décoratif", + "iris.bukkit.commandwhat.fluid_block": "§e* Bloc fluide", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Bloc de feuillage plantable", + "iris.bukkit.commandwhat.solid_block": "§e* Bloc solide", + "iris.bukkit.commandwhat.found_nearby_markers": "{value} marqueurs proches trouvés ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aMondes Iris uniquement.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "La console doit indiquer un biome : /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "La recherche de biome a échoué : {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Biome inconnu : {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Console doit nommer une région: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Échec de la recherche de région : {value}", + "iris.modded.irismoddedcommands.unknown_region": "Région inconnue: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Impossible d'ouvrir les fichiers ici : {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Impossible de trouver le fichier ; il n'a peut-être pas été chargé directement depuis un fichier.", + "iris.modded.irismoddedcommands.could_not_open": "Impossible d'ouvrir {value} : {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Ouverture de {value} {value2} dans votre éditeur.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "La console doit indiquer un joueur : /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} n'est pas généré par Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Échec de la téléportation : la dimension {dimensionId} n'est pas chargée.", + "iris.modded.irismoddedcommands.teleporting": "Téléportation de {value} vers {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} n'est pas généré par Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Impossible d'évacuer le monde principal, car aucun autre monde ne peut accueillir les joueurs.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "{count} joueur(s) évacué(s) de {value} vers {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Débogage défini sur : {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Paramètres rechargés à chaud", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Cette commande est réservée aux joueurs (elle inspecte l'objet que vous tenez).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Votre main principale est vide.", + "iris.modded.irismoddedcommands.hand_x": "Main : {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} n'est pas générée par Iris ; consultez /iris info pour voir les dimensions Iris chargées.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "La dimension actuelle ({value}) n'est pas générée par Iris. Indiquez-en une explicitement : /iris pregen start {radius} ; consultez /iris info pour voir les dimensions Iris chargées.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Une tâche de prégénération est déjà en cours. Arrêtez-la d'abord avec /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen démarré dans {value} sur {value2}, avec un rayon de {value3} blocs depuis {centerX},{centerZ}.{modeNote} La progression est consignée dans la console ; consultez /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Arrêt de la prégénération ; finalisation de la région actuelle...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Aucune tâche de prégénération active à arrêter.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Aucune tâche de prégénération active à mettre en pause ou à reprendre.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "La prégénération est maintenant {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Aucune tâche de prégénération active.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} par Volmit Software sur {value2} (Minecraft {value3}), {engines} dimension(s) Iris", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Dimensions chargées : {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.biome": "Biome : {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "La recherche de biome a échoué : {value}", + "iris.modded.irismoddedcommands.region": "Région: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Échec de la recherche de région : {value}", + "iris.modded.irismoddedcommands.cave_biome": "Biome de la grotte: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Échec de la recherche du biome de grotte : {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Bloc de surface: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Position : {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Cette commande est réservée aux joueurs (elle inspecte le bloc que vous regardez).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Regardez un bloc, pas le ciel.", + "iris.modded.irismoddedcommands.block_y": "Bloc : {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Cette commande est réservée aux joueurs (les marqueurs apparaissent comme des particules autour de vous).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Recherche des marqueurs '{marker}' autour de vous...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Échec de l'analyse des marqueurs : {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "{value} marqueur(s) proche(s) trouvé(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Biome inconnu: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Région inconnue: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} n'est pas défini dans la dimension !", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} n'est configuré dans aucun placement d'objets de région ou de biome ({value} clés d'objet chargées).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Cette commande est réservée aux joueurs. (La clé d'objet '{key}' a été résolue parmi {value} clés d'objet chargées)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Indiquez une structure Iris ou native à localiser.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Structure inconnue '{key}'. Utilisez l'autocomplétion pour choisir un placement Iris ou une structure native ou de datapack enregistrée.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Recherche de la structure native {value} dans un rayon de {NATIVESTRUCTURELOCATERADIUS} chunks...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Recherche de la structure placée par Iris {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Impossible de localiser la structure placée par Iris {key} : la limite de sécurité de la recherche par densité a été atteinte avant l'exploration complète du rayon de 1024 chunks.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Impossible de trouver la structure placée par Iris {key} dans un rayon de 1024 chunks.", + "iris.modded.irismoddedcommands.search_failed": "La recherche a échoué : {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Impossible de trouver la structure native {value} dans un rayon de {NATIVESTRUCTURELOCATERADIUS} chunks.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Échec de la recherche de la structure native {value} : {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Le joueur s'est déconnecté avant la fin de la recherche de structure.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Vous avez changé de dimension avant la fin de la recherche de structure ; relancez la commande.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "{label} trouvé à {targetX} {clampedY} {targetZ}, mais la téléportation a échoué.", + "iris.modded.irismoddedcommands.teleported_at": "Téléporté vers {label} à {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Accessibilité des structures : {available} natives admissibles à la génération, {irisPlaced} placées par Iris, {disabled} natives désactivées, {suppressed} natives remplacées par des placements Iris, {unreachableBiomes} natives exclues par les biomes de ce pack et {unsupported} structures natives enregistrées non prises en charge dans cette dimension. Utilisez /iris structure verify pour une structure précise.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "La structure {key} est placée par Iris et peut être localisée avec /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Structure inconnue '{key}'. Elle n'est ni placée par Iris, ni enregistrée par vanilla ou un datapack.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "La structure {value} est explicitement remplacée par un placement Iris et peut être localisée avec /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "La structure native {value} est activée, prise en charge par l'état du générateur de cette dimension et localisable avec /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Cette commande est réservée aux joueurs. (Le type de POI '{type}' est accepté)", + "iris.modded.irismoddedcommands.searching": "Recherche de {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Le moteur de ce monde a été fermé ; rejoignez à nouveau la dimension et réessayez.", + "iris.modded.irismoddedcommands.search_failed_2": "La recherche a échoué : {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Impossible de trouver {label} avant l'expiration du délai de recherche.", + "iris.modded.irismoddedcommands.teleported_at_2": "Téléporté vers {label} à {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Le moteur a changé pendant la recherche de {label} ; réessayez.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.world_seed": "Graine du monde : {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Graine du moteur : {value} (mélangée : {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Téléchargement de IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack '{pack}' installé. Ses types de dimension exacts et ses biomes personnalisés rejoindront le datapack Iris forcé au prochain redémarrage du serveur ; redémarrez avant de créer des mondes avec ce pack.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Échec du téléchargement du pack {pack} ({downloadSource} ; consultez la console).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Générés : {value} chunk(s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Inconnu Iris section d'aide: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId} : type={typeKey} actif={activeMin}..{activeMax} logique={value} (pack={value2}, moteur non démarré ; hauteurs du pack inconnues)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId} : type={typeKey} actif={activeMin}..{activeMax} logique={value} | le pack '{value2}' demande {packMin}..{packMax} logique={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: le type de dimension actif ne correspond pas au pack. Iris refusera de démarrer le moteur de ce monde au lieu de rogner le terrain. Exécutez /iris world enable pour les nouveaux mondes ou /iris datapack install pour les dimensions Iris déjà chargées, puis redémarrez.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Aucune dimension Iris n'est chargée.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Les {irisLevels} dimension(s) Iris correspondent aux plages de hauteur de leurs packs.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value} : moteur non démarré ; son type de dimension ne peut pas encore être déterminé.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value} : échec de la génération du type de dimension : {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Impossible d'écrire {output} : {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Aucune dimension Iris avec un moteur actif n'a été trouvée ; rien n'a été installé.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Impossible d'écrire {mcmeta} : {value}", + "iris.modded.moddeddatapackcommands.wrote": "{path} écrit", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Les substitutions de types de dimension du datapack du monde '{WORLDPACKNAME}' ont été installées. Redémarrez le serveur pour les appliquer.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Importations de datapacks configurées : {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "L'ingestion Modrinth est réservée à Bukkit ; installez ces datapacks manuellement dans world/datapacks si nécessaire.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Datapacks du monde installés : {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Une exception de test a été envoyée au système de rapports d'erreurs Iris (Sentry s'il est activé).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "La numérisation réseau a échoué : {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Une analyse GoldenHash est déjà en cours.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Cette commande est réservée aux joueurs. (La baguette est un objet physique)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Votre inventaire est plein.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Pouf ! Bonne construction ! (clic gauche = coin 1, clic droit = coin 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Cette commande est réservée aux joueurs. (La poussière est un objet physique)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Votre inventaire est plein.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Faites un clic droit sur un bloc pour révéler l'objet auquel il appartient.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Cette commande est réservée aux joueurs. (L'enregistrement capture la sélection de votre baguette)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Cette dimension n'est pas générée par Iris ; les objets sont enregistrés dans le pack de la dimension.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Tenez votre baguette Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Aucune zone sélectionnée. Faites d'abord des clics gauche et droit sur des blocs avec la baguette.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Nom de l'objet non valide : {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Sélection trop grande: {volume} blocs (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Le fichier existe déjà. Utilisez /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Impossible d'enregistrer l'objet : {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "{value}/objects/{name}.iob enregistré : {w}x{h}x{d}, {value2} bloc(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Objet inconnu ou vide : {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "La console doit indiquer des coordonnées : /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Vous ne regardez pas de bloc à moins de {value} blocs.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Échec du collage : {value} (les modifications partielles ont été enregistrées pour pouvoir les annuler)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "{key} placé en {value} {value2} {value3} rot={rotation} ({value4} écriture(s), {value5} hors air{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Tenez votre baguette Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Aucune zone sélectionnée.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Préparez votre baguette. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Vous ne regardez pas un bloc.", + "iris.modded.moddedobjectcommands.position_set": "Position {value} définie sur {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Tiens ta baguette !", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Aucune zone sélectionnée.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Sélection trop grande pour sélectionner automatiquement : {volume} blocs (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Sélection automatique terminée : {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Objet inconnu : {key}", + "iris.modded.moddedobjectcommands.object_size": "Taille de l'objet : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Blocs utilisés : {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Blocs dans l'objet ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": "+ {remaining} autre(s) état(s) de bloc", + "iris.modded.moddedobjectcommands.unknown_object_2": "Objet inconnu : {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Taille actuelle de l'objet : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Nouvelle taille d'objet : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "L'objet n'a pas de fichier de chargement ; impossible de conserver la réduction.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Impossible d'enregistrer l'objet {value} : {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Portée non valide: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Aucun objet ne correspond à : {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilize [reach={reach}{value}] a mis {value2} objet(s) en file d'attente", + "iris.modded.moddedobjectcommands.nothing_undo": "Rien à annuler.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "{reverted} collage(s) annulé(s) !", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Dossier des packs introuvable : {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Aucun pack à valider dans {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Le pack '{pack}' est introuvable dans {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Validation de {value} pack(s)...", + "iris.modded.moddedpackcommands.validation_failed": "Échec de la validation de '{value}' : {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validation terminée. Packs cassés : {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Le pack '{pack}' est introuvable dans {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Le pack '{pack}' est introuvable dans {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Aucun résultat de validation enregistré. Exécutez d'abord /iris pack validate.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blocages={value2}, avertissements={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Aucun résultat de validation pour '{pack}'. Exécutez /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Le pack '{value}' peut être chargé. (avertissements={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Le pack '{value}' est CASSÉ :", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... et {value} avertissement(s) de plus.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Aucune ressource candidate au nettoyage trouvée pour le pack '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Aperçu du nettoyage du pack '{pack}' : {value} candidat(s). Aucun fichier n'a été modifié.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Exécutez /iris pack cleanup {pack} apply pour mettre les candidats en quarantaine après une nouvelle analyse.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Aucune ressource candidate au nettoyage trouvée pour le pack '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "{value} candidat(s) au nettoyage mis en quarantaine dans {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Rien à restaurer pour le pack '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Aperçu de la restauration de {value} : {value2} fichier(s). Aucun fichier n'a été modifié.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "La restauration est bloquée par {value} destination(s) existante(s).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Exécutez /iris pack restore {pack} apply pour restaurer après une nouvelle vérification des conflits.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Restauration refusée car {value} destination(s) existe(nt) déjà.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Rien à restaurer pour le pack '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "{value} fichier(s) restauré(s) depuis {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... et {value} de plus.", + "iris.modded.moddedregen.regen_is_already_running": "Un régen est déjà en marche.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Cette dimension n'est pas générée par Iris. Exécutez ceci d'un Iris dimension pour que le pack puisse être résolu.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Indice de structure des mailles: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Pas de structure iris '{key}' dans ce pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Structure{key}' assemblés 0 pièces (vérifier startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Structure '{key}' : {value} pièces, emprise de {value2}x{value3} blocs (graine d'exemple 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Cette commande ne peut être utilisée que par les joueurs (la structure est assemblée à votre position).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Pas de structure iris '{key}' dans ce pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Structure{key}' assemblés 0 pièces", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Lieu échoué: {value} (variations partielles enregistrées pour annuler)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "'{key}' placé ({value} pièces, {value2} écriture(s){tileNote}) à votre position. Utilisez /iris object undo pour annuler.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Indiquez un pack de dimension : /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Ouverture de Noise Explorer sur l'écran du serveur.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Cette dimension n'est pas générée par Iris ; exécutez /iris studio noise depuis une dimension Iris pour résoudre les générateurs, ou omettez le nom du générateur.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Générateur inconnu '{generatorKey}' dans le pack {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Ouverture de Noise Explorer pour le générateur '{value}' (graine {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Cette dimension n'est pas générée par Iris ; placez-vous dans une dimension Iris (ou Studio) et exécutez /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Ouverture de la carte Vision de {value} sur l'écran du serveur.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Impossible d'écrire l'espace de travail de {value} : {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Espace de travail régénéré : {value}, avec des schémas JSON pour l'autocomplétion.", + "iris.modded.moddedstudiocommands.could_not_open": "Impossible d'ouvrir {value} : {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Ouverture de {value} dans votre éditeur.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Cette dimension n'est pas générée par Iris ; indiquez explicitement un nom de pack.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Le pack '{name}' est introuvable dans {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Indiquez un pack de dimension : /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Ouverture de Studio pour '{pack}' (graine {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Le pack '{pack}' manque ; téléchargement de IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Impossible de télécharger le pack '{pack}' ; vérifiez le nom et essayez /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Le pack '{pack}' ne contient pas dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Impossible d'ouvrir Studio : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Impossible d'injecter Studio : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Studio de console ouvert : {dimensionId} exécute maintenant '{pack}' avec la graine {seed} (temporaire ; non écrit dans iris-dimensions.json et supprimé au redémarrage).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Entrez avec : /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Prégénérez avec : /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Supprimez-le avec : /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Impossible d'injecter Studio : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio ouvert : {dimensionId} exécute maintenant '{pack}' avec la graine {seed}. Utilisez /iris studio close une fois terminé.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Vous n'avez pas de Studio ouvert. Utilisez d'abord /iris studio open .", + "iris.modded.moddedstudiocommands.studio_close_failed": "Impossible de fermer Studio : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio fermé : {dimensionId} a été évacué, déchargé de la mémoire et ses données de région ont été supprimées.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Aucune dimension Studio n'est ouverte.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Dimension(s) Studio active(s) : {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value} : pack '{value2}', graine {value3}, propriétaire {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Cette commande ne peut être utilisée que par les joueurs.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Vous n'avez pas de Studio ouvert. Utilisez d'abord /iris studio open .", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Votre dimension Studio n'est plus chargée. Utilisez à nouveau /iris studio open .", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Vous avez été téléporté vers votre Studio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Le pack '{value}' ne contient pas dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "Le pack \"{value}\" a pour version : {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Nom de projet non valide '{nameRaw}' (autorisé : a-z, 0-9, _ et -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Le pack '{name}' existe déjà dans {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Création du projet '{name}' depuis le modèle '{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Le modèle '{template}' n'est pas installé ; téléchargement de IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Impossible de télécharger le modèle '{template}' ; installez d'abord un pack contenant dimensions/{template2}.json.", + "iris.modded.moddedstudiocommands.created_project_at": "Projet '{name}' créé dans {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Modifiez dimensions/{name}.json et le reste du pack. Un espace de travail VSCode avec autocomplétion par schémas JSON a été généré ; ouvrez-le ou relancez /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Échec de la création du projet : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Empaquetage de la dimension '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paquet compilé : {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Échec de l'empaquetage : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Cette commande est réservée aux joueurs (l'échantillonnage est centré sur votre position).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Cette dimension n'a pas été générée par Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Échantillonnage de la répartition des régions dans {value}x{value2} chunks autour de vous...", + "iris.modded.moddedstudiocommands.rarity": "{key} : rareté={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Échec de l'échantillonnage des régions : {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Le pack '{pack}' n'est pas installé ; téléchargement de IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Impossible de télécharger le pack '{pack}' ; vérifiez le nom ou installez-le avec /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Impossible d'injecter le monde Iris '{dimensionId}' : {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Monde Iris {dimensionId} créé depuis le pack '{pack}', dimension '{packDimension}' (graine {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Il est maintenant actif et réinjecté à chaque démarrage. Téléportez-vous avec /iris world status ou un portail ; aucun redémarrage nécessaire.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Impossible d'injecter le monde principal Iris : {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Le monde principal Iris est maintenant {dimensionId} (pack '{pack}', dimension '{packDimension}', graine {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Le générateur de l'overworld vanilla ne peut pas être remplacé à chaud ; cette opération ne régénère donc PAS l'overworld existant.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "À la place, {dimensionId} est maintenant le monde principal configuré : les joueurs de l'overworld vanilla y sont redirigés à leur connexion et il est réinjecté à chaque démarrage.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Le remplacement du monde principal Iris a été supprimé. L'overworld conserve son générateur actuel ; modifiez level-type dans server.properties et redémarrez pour le rétablir.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Graine non valide '{seedRaw}'. Utilisez un nombre ou 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Le pack '{pack}' n'est pas installé ; téléchargement de IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Impossible de télécharger le pack '{pack}' ; vérifiez le nom ou installez-le avec /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Le pack '{pack}' n'est pas encore prêt (chargement ou validation en cours). Réessayez la commande dans un instant.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Impossible d'écrire server.properties ; vérifiez les droits du fichier et définissez level-type manuellement.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Le monde principal Iris est défini sur '{pack}' (preset {preset}, graine {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "level-type dans server.properties vaut maintenant {preset}. Au prochain redémarrage, overworld, nether et end seront régénérés comme ce monde Iris.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Les données des joueurs (inventaires, progrès et statistiques) sont conservées ; le terrain existant de ces dimensions sera remplacé. Cette opération s'applique une seule fois.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart est activé : arrêt du serveur pour que le système de redémarrage le relance avec le nouveau monde principal.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Redémarrez maintenant le serveur pour le générer. (Définissez mainWorldAutoRestart=true dans modded.json pour laisser Iris arrêter le serveur.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Création du monde '{dimensionId}' avec le pack '{pack}' refusée car une validation obligatoire a échoué :", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Corrigez le pack et exécutez /iris pack validate {pack} pour le valider à nouveau.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Le pack '{pack}' est introuvable dans {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Le pack '{pack}' ne contient pas dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Référence de pack non valide '{pack}{value}'. Utilisez pack ou pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Graine non valide '{seedRaw}'. Utilisez un nombre ou 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Impossible de supprimer le monde Iris '{dimensionId}' : {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Le monde Iris '{dimensionId}' n'était pas chargé ; son entrée persistante du registre et ses données de chunks/Mantle ont été effacées du disque.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Le monde Iris '{dimensionId}' n'était pas chargé ; son entrée persistante du registre a été supprimée. Les données du monde restent sur le disque.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Monde Iris '{dimensionId}' supprimé : évacué, déchargé de la mémoire, données de chunks/Mantle effacées et retiré du registre de démarrage.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Monde Iris '{dimensionId}' désactivé : évacué, déchargé de la mémoire et retiré du registre de démarrage.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Les données du monde restent sur le disque ; réactivez-le avec /iris world enable {dimensionId} ou supprimez-le avec /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Niveau Iris chargé : {value} -> pack '{value2}', dimension '{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Monde principal : {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Aucune dimension Iris n'est chargée. Créez-en une avec /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Dimensions Iris chargées : {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Utilisez /iris world create pour en injecter une sans redémarrer.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Télécharger et gérer les importations externes de datapacks (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Télécharger ou mettre à jour tous les datapacks répertoriés dans 'datapackImports' d'une dimension du pack, puis les installer dans le monde afin que leurs structures soient enregistrées comme dans vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Redémarrer le serveur lorsque de nouveaux datapacks sont installés (nécessaire pour enregistrer et générer leurs structures)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Répertorier les importations de datapacks configurées et leurs versions installées", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Supprimer un datapack installé par id (supprime aussi son URL de datapackImports pour empêcher sa réinstallation)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "L'id du datapack (nom du dossier) affiché par /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Gestionnaire de mondes Iris", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Obtenir le nombre de TectonicPlates chargées", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Envoyer une exception de test à Sentry", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Calculer le hash des blocs générés dans une zone fixe afin de tester le déterminisme et l'identité", + "iris.director.commanddeveloper.param.world_hash": "Le monde dont le hash sera calculé", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Rayon en chunks autour du centre", + "iris.director.commanddeveloper.param.center_chunk_x": "Chunk central X", + "iris.director.commanddeveloper.param.center_chunk_z": "Chunk central Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Mettre à jour le pack d'un monde (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "Le monde à mettre à jour", + "iris.director.commanddeveloper.param.pack_install_into_world": "Le pack à installer dans le monde", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Assurez-vous de créer une sauvegarde et de lire d'abord les avertissements !", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Indique si Iris doit télécharger à nouveau le pack", + "iris.director.commanddeveloper.director.test": "Test", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Vider toute la plaque tectonique au lieu d'une seule section", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "L'id du fichier de vidage dans plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Test", + "iris.director.commanddeveloper.param.pack_bench": "Le pack à soumettre au benchmark", + "iris.director.commanddeveloper.param.radius_regions": "Rayon en régions", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Ouvrir la GUI pendant le benchmark", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Mettre à niveau vers une autre version de Minecraft", + "iris.director.commanddeveloper.param.version_upgrade": "La version cible de la mise à niveau", + "iris.director.commanddeveloper.director.test_3": "test", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Le dossier du monde à analyser pour rechercher des fichiers de région .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Supprimer les blocs des chunks proches pour tester la régénération", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Rayon en chunks autour de votre chunk actuel", + "iris.director.commanddeveloper.director.test_4": "Test", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Supprimer et régénérer les chunks proches sur place avec la génération Iris", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Le rayon des chunks proches", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Générer des chunks dans des tampons (sans écrire dans le monde) et calculer le hash des blocs et des biomes ; capture un fichier de référence ou le vérifie par rapport à un fichier existant. Réinitialise Mantle dans la zone analysée ; à utiliser uniquement dans des mondes de test jetables.", + "iris.director.commanddeveloper.param.world_scan": "Le monde à analyser", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Rayon en chunks autour du centre", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Chunk central X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Chunk central Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Supprimer d'abord les données de Mantle dans la zone analysée afin de la régénérer entièrement depuis zéro", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Générations de chunks simultanées ; 1 = exécution strictement séquentielle pour tester la dépendance à l'ordre", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Vider également tous les états de blocs hors air de chaque chunk pour une comparaison hors ligne", + "iris.director.commandedit.director.edit_something": "Modifier quelque chose", + "iris.director.commandedit.director.edit_biome_you_specified": "Modifier le biome indiqué", + "iris.director.commandedit.param.biome_edit": "Le biome à modifier", + "iris.director.commandedit.director.edit_region_you_specified": "Modifier la région indiquée", + "iris.director.commandedit.param.region_edit": "La région à modifier", + "iris.director.commandedit.director.edit_dimension_you_specified": "Modifier la dimension indiquée", + "iris.director.commandedit.param.dimension_edit": "La dimension à modifier", + "iris.director.commandfind.director.iris_find_commands": "Commandes de recherche Iris", + "iris.director.commandfind.director.find_biome": "Rechercher un biome", + "iris.director.commandfind.param.biome_look": "Le biome à rechercher", + "iris.director.commandfind.param.should_you_be_teleported": "Indique si vous devez être téléporté", + "iris.director.commandfind.director.find_region": "Rechercher une région", + "iris.director.commandfind.param.region_look": "La région à rechercher", + "iris.director.commandfind.param.should_you_be_teleported_2": "Indique si vous devez être téléporté", + "iris.director.commandfind.director.find_point_interest": "Rechercher un point d'intérêt.", + "iris.director.commandfind.param.type_poi_look": "Le type de PoI à rechercher.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Indique si vous devez être téléporté", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Rechercher une structure (une clé vanilla comme minecraft:village_plains ou minecraft:stronghold, ou une clé de structure Iris importée)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "La structure à rechercher (par ex. minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)", + "iris.director.commandfind.director.find_object": "Rechercher un objet", + "iris.director.commandfind.param.object_look": "L'objet à rechercher", + "iris.director.commandfind.param.should_you_be_teleported_4": "Indique si vous devez être téléporté", + "iris.director.commandiris.director.basic_command": "Commande de base", + "iris.director.commandiris.director.create_new_world": "Créer un nouveau monde", + "iris.director.commandiris.param.name_world_create": "Le nom du monde à créer", + "iris.director.commandiris.param.dimension_pack_create_world_with": "La dimension ou le pack avec lequel créer le monde", + "iris.director.commandiris.param.seed_generate_world_with": "La graine avec laquelle générer le monde", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Indique si ce monde doit être utilisé automatiquement comme monde principal", + "iris.director.commandiris.director.teleport_another_world": "Se téléporter vers un autre monde", + "iris.director.commandiris.param.world_teleport": "Le monde vers lequel se téléporter", + "iris.director.commandiris.param.player_teleport": "Le joueur à téléporter", + "iris.director.commandiris.director.print_version_information": "Afficher les informations de version", + "iris.director.commandiris.director.benchmark_pack": "Effectuer le benchmark d'un pack", + "iris.director.commandiris.param.dimension_benchmark": "La dimension à soumettre au benchmark", + "iris.director.commandiris.director.print_world_height_information": "Afficher les informations sur la hauteur du monde", + "iris.director.commandiris.director.check_access_all_worlds": "Vérifier l'accès à tous les mondes.", + "iris.director.commandiris.director.remove_iris_world": "Supprimer un monde Iris", + "iris.director.commandiris.param.world_remove": "Le monde à supprimer", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Indique s'il faut également supprimer le dossier (si la valeur est false, le monde n'est simplement pas chargé)", + "iris.director.commandiris.director.toggle_debug": "Activer ou désactiver le débogage", + "iris.director.commandiris.director.download_project": "Télécharger un projet.", + "iris.director.commandiris.param.pack_download": "Le pack à télécharger", + "iris.director.commandiris.param.branch_download_from": "La branche depuis laquelle télécharger", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Indique s'il faut remplacer le pack par celui qui a été téléchargé", + "iris.director.commandiris.director.get_metrics_your_world": "Obtenir les métriques de votre monde", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Recharger le fichier de configuration (cette opération est également automatique)", + "iris.director.commandiris.director.unload_iris_world": "Décharger un monde Iris de la mémoire", + "iris.director.commandiris.param.world_unload": "Le monde à décharger de la mémoire", + "iris.director.commandiris.director.load_iris_world": "Charger un monde Iris", + "iris.director.commandiris.param.name_world_load": "Le nom du monde à charger", + "iris.director.commandiris.director.evacuate_iris_world": "Évacuer un monde Iris", + "iris.director.commandiris.param.evacuate_world": "Évacuer le monde", + "iris.director.commandobject.director.iris_object_manipulation": "Manipulation des objets Iris", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Ouvrir un monde Object Studio (grille de tous les objets ; la dimension est facultative et, si elle est omise, tous les packs sont utilisés)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Dimension facultative dont le pack d'objets sera disposé ; omettez-la pour réunir les objets de tous les packs", + "iris.director.commandobject.param.seed_generate_studio_with": "La graine avec laquelle générer Studio", + "iris.director.commandobject.director.check_composition_object": "Vérifier la composition d'un objet", + "iris.director.commandobject.param.object_analyze": "L'objet à analyser", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Réduire un objet à sa taille minimale", + "iris.director.commandobject.param.object_shrink": "L'objet à réduire", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Faire pousser des branches organiques à travers la canopée afin que toutes les feuilles survivent à la disparition naturelle de vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Clé d'objet, préfixe (trees/) ou chemin du système de fichiers", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true effectue uniquement l'analyse et n'écrit rien", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N définit la longueur maximale des branches, en blocs depuis le bois existant ; les groupes de feuilles plus éloignés deviennent persistants. reach=0 autorise une croissance illimitée", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Convertir les fichiers .schem du dossier 'convert' en fichiers .iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Obtenir une poudre qui révèle les objets", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Contracter une sélection selon la direction de votre regard", + "iris.director.commandobject.param.amount_inset_by": "La quantité de contraction", + "iris.director.commandobject.director.set_point_1_look": "Définir le point 1 à l'endroit regardé", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Indique s'il faut utiliser votre position actuelle ou l'endroit regardé", + "iris.director.commandobject.director.set_point_2_look": "Définir le point 2 à l'endroit regardé", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Indique s'il faut utiliser votre position actuelle ou l'endroit regardé", + "iris.director.commandobject.director.paste_object": "Coller un objet", + "iris.director.commandobject.param.object_paste": "L'objet à coller", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Indique s'il faut modifier l'objet (vous devez tenir la baguette)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Le nombre de degrés de rotation", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Le facteur de mise à l'échelle du placement de l'objet", + "iris.director.commandobject.param.scale_interpolator_use": "L'interpolateur d'échelle à utiliser", + "iris.director.commandobject.director.save_object": "Enregistrer un objet", + "iris.director.commandobject.param.dimension_store_object": "La dimension dans laquelle stocker l'objet", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Le fichier dans lequel le stocker ; vous pouvez utiliser / pour indiquer des sous-dossiers", + "iris.director.commandobject.param.overwrite_existing_object_files": "Écraser les fichiers d'objets existants", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Utiliser l'ancienne sérialisation TileState si possible", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Déplacer une sélection dans la direction de votre regard", + "iris.director.commandobject.param.amount_shift_by": "La distance de déplacement", + "iris.director.commandobject.director.undo_number_pastes": "Annuler plusieurs collages", + "iris.director.commandobject.param.amount_pastes_undo": "Le nombre de collages à annuler", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Obtenir une baguette d'objet et capturer la sélection WorldEdit actuelle.", + "iris.director.commandobject.director.get_object_wand": "Obtenir une baguette d'objet", + "iris.director.commandobject.director.autoselect_up_down_out": "Sélectionner automatiquement vers le haut, le bas et l'extérieur", + "iris.director.commandobject.director.autoselect_up_out": "Sélectionner automatiquement vers le haut et l'extérieur", + "iris.director.commandpack.director.pack_validation_maintenance": "Validation et maintenance des packs", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Valider un pack (ou tous les packs) et republier les résultats", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Le nom du dossier du pack à valider (laissez-le vide pour tous les valider)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Prévisualiser ou appliquer le nettoyage des ressources inutilisées", + "iris.director.commandpack.param.pack_folder_name_clean": "Le nom du dossier du pack à nettoyer", + "iris.director.commandpack.param.preview_apply": "prévisualiser ou appliquer", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Prévisualiser ou appliquer la restauration de la quarantaine la plus récente", + "iris.director.commandpack.param.pack_folder_name_restore": "Le nom du dossier du pack à restaurer", + "iris.director.commandpack.param.preview_apply_2": "prévisualiser ou appliquer", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Afficher l'état de validation en cache d'un pack", + "iris.director.commandpack.param.pack_folder_name": "Le nom du dossier du pack", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Prégénérer vos mondes Iris !", + "iris.director.commandpregen.director.pregenerate_world": "Prégénérer un monde", + "iris.director.commandpregen.param.radius_pregen_blocks": "Le rayon de la prégénération en blocs", + "iris.director.commandpregen.param.world_pregen": "Le monde à prégénérer", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Le centre de la prégénération. Utilisez \"me\" pour indiquer votre position actuelle", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Ouvrir la GUI de prégénération Iris", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Générer un seul chunk à la fois", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Arrêter la tâche de prégénération active", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Mettre en pause ou reprendre la tâche de prégénération active", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Afficher l'état de la prégénération active", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Outils de structures Iris (index, import, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Régénérer structure-index.json avec toutes les structures vanilla, de datapacks et d'Iris", + "iris.director.commandstructure.param.dimension_whose_pack_index": "La dimension dont le pack sera indexé", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importer TOUTES les structures - vanilla ET datapacks ingérés - dans ce pack comme ressources Iris modifiables, en les écrasant toujours. Reconstruit les structures jigsaw (villages, avant-postes et jigsaws de datapacks) sous forme de graphes pool/pièce modifiables, importe chaque modèle de structure NBT comme objet et assemble les structures à plusieurs modèles (épaves, portails en ruine, ruines océaniques et fossiles du Nether). Exécutez cette commande après l'ingestion d'un datapack et un redémarrage. Régénérez les chunks ou utilisez un nouveau monde pour placer les copies importées.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "La dimension dont le pack recevra les structures importées", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Capture les structures générées par le code qui n'ont pas de modèle NBT (huttes de sorcière, igloos, etc.) comme objets Iris modifiables : chacune est générée dans un monde temporaire jetable, puis ses blocs sont relus. Ignore les structures déjà importées comme structures, celles qui dépassent la limite de capture (forteresses, manoirs et monuments restent vanilla) et celles qui ne se génèrent pas dans un overworld plat. Chaque structure capturée devient une structure Iris d'une seule pièce, plaçable depuis une liste 'structures' de biome, région ou dimension. S'exécute automatiquement comme dernière phase de /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "La dimension dont le pack recevra les structures capturées", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Vérifier si les structures natives peuvent être générées et localiser les structures placées par Iris sans exécuter de recherches natives bloquantes.", + "iris.director.commandstructure.param.dimension_verify": "La dimension à vérifier", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Rayon de recherche en chunks autour de l'origine (un rayon plus grand est beaucoup plus lent)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Résoudre le graphe jigsaw d'une structure Iris et indiquer le nombre de pièces ainsi que ses limites", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "La dimension dont le pack contient la structure", + "iris.director.commandstructure.param.iris_structure_key_inspect": "La clé de la structure Iris à inspecter", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Assembler et placer une structure Iris à votre position (test dans Studio)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "La dimension dont le pack contient la structure", + "iris.director.commandstructure.param.iris_structure_key_place": "La clé de la structure Iris à placer", + "iris.director.commandstudio.director.studio_commands": "Commandes Studio", + "iris.director.commandstudio.director.open_new_studio_world": "Ouvrir un nouveau monde Studio", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Le pack de dimension pour lequel ouvrir Studio", + "iris.director.commandstudio.param.seed_generate_studio_with": "La graine avec laquelle générer Studio", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Importer les arbres, champignons et objets vanilla (ainsi que structures/jigsaw) du serveur dans le dossier objects/vanilla d'un pack", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Le pack de dimension dans lequel importer le contenu vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Le nombre de variantes à capturer pour chaque fonctionnalité d'arbre ou d'objet", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Importer également les structures/jigsaw vanilla et de datapacks dans le pack", + "iris.director.commandstudio.director.open_vscode_dimension": "Ouvrir VSCode pour une dimension", + "iris.director.commandstudio.param.dimension_open_vscode": "La dimension pour laquelle ouvrir VSCode", + "iris.director.commandstudio.director.close_open_studio_project": "Fermer un projet Studio ouvert", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Afficher ou masquer votre tableau de débogage Studio", + "iris.director.commandstudio.director.create_new_studio_project": "Créer un nouveau projet Studio", + "iris.director.commandstudio.param.name_this_new_iris_project": "Le nom de ce nouveau projet Iris.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Copier le contenu d'un projet existant du dossier packs et l'utiliser comme modèle pour ce nouveau projet.", + "iris.director.commandstudio.director.get_version_pack": "Obtenir la version d'un pack", + "iris.director.commandstudio.param.dimension_get_version": "La dimension dont la version sera obtenue", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Ouvrir Noise Explorer (GUI externe)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Générateur de pack facultatif à prévisualiser", + "iris.director.commandstudio.param.seed_preview_generator_with": "La graine avec laquelle prévisualiser le générateur", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Afficher le butin d'un coffre placé ici", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Insertion rapide des objets dans l'inventaire virtuel (peut réduire les performances)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Indique s'il faut ajouter les objets à l'inventaire ouvert (si la valeur est false, il est d'abord vidé)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Calculer la probabilité de génération de chaque région", + "iris.director.commandstudio.param.radius_chunks": "Le rayon en chunks", + "iris.director.commandstudio.director.render_world_map_external_gui": "Rendre une carte du monde (GUI externe)", + "iris.director.commandstudio.param.world_open_generator": "Le monde dont le générateur sera ouvert", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Empaqueter une dimension dans un format compressé", + "iris.director.commandstudio.param.dimension_pack_compress": "Le pack de dimension à compresser", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Indique s'il faut obscurcir le pack", + "iris.director.commandstudio.param.whether_not_minify_pack": "Indique s'il faut minifier le pack", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiler les performances d'une dimension", + "iris.director.commandstudio.param.dimension_profile": "La dimension dont les performances seront profilées", + "iris.director.commandstudio.director.spawn_iris_entity": "Générer une entité Iris", + "iris.director.commandstudio.param.entity_spawn": "L'entité à générer", + "iris.director.commandstudio.param.location_spawn_entity_at": "La position à laquelle générer l'entité", + "iris.director.commandstudio.director.teleport_active_studio_world": "Se téléporter vers le monde Studio actif", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Mettre à jour l'espace de travail VSCode de vos projets de dimension", + "iris.director.commandstudio.param.dimension_update_workspace": "La dimension dont l'espace de travail sera mis à jour", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Capturer un rapport de chunks IGenData pour les chunks proches", + "iris.director.commandwhat.director.iris_what": "Qu'y a-t-il dans Iris ?", + "iris.director.commandwhat.director.what_is_my_hand": "Qu'est-ce que j'ai dans la main ?", + "iris.director.commandwhat.director.what_biome_am_i": "Dans quel biome suis-je ?", + "iris.director.commandwhat.director.what_region_am_i": "Dans quelle région suis-je ?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Quel bloc suis-je en train de regarder ?", + "iris.director.commandwhat.director.show_markers_chunk": "Afficher les marqueurs dans le chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Nom du marqueur, comme cave_floor ou cave_ceiling", + "iris.modded.help.entry.command.version": "Afficher les informations de version", + "iris.modded.help.entry.command.info": "Lister les dimensions Iris chargées et les détails de leurs packs", + "iris.modded.help.entry.command.what": "Inspecter le biome Iris, la région, le biome de grotte, la surface et le chunk à votre position, le bloc regardé, l'objet tenu ou les marqueurs proches", + "iris.modded.help.entry.group.find": "Rechercher et se téléporter vers des biomes Iris, régions, objets, structures Iris, structures natives et points d'intérêt", + "iris.modded.help.entry.command.tp": "Vous téléporter ou téléporter un joueur nommé vers une dimension Iris chargée", + "iris.modded.help.entry.command.evacuate": "Téléporter tous les joueurs d'une dimension Iris vers le spawn du monde principal", + "iris.modded.help.entry.command.seed": "Afficher les informations de graine du monde et du moteur", + "iris.modded.help.entry.command.debug": "Basculer les journaux de débogage Iris et enregistrer settings.json", + "iris.modded.help.entry.command.reload": "Recharger settings.json (également rechargé à chaud automatiquement toutes les 3s)", + "iris.modded.help.entry.command.download": "Télécharger un projet de pack", + "iris.modded.help.entry.command.metrics": "Afficher les métriques de génération de votre dimension Iris actuelle", + "iris.modded.help.entry.command.regen": "Supprimer et régénérer sur place les chunks proches", + "iris.modded.help.entry.group.pregen": "Prégénérer une dimension Iris", + "iris.modded.help.entry.command.wand": "Obtenir une baguette d'objets Iris", + "iris.modded.help.entry.group.object": "Outils de baguette, d'enregistrement, de collage, d'analyse et d'annulation d'objets", + "iris.modded.help.entry.group.edit": "Ouvrir les fichiers json de biome, région et dimension du pack dans l'éditeur de bureau", + "iris.modded.help.entry.command.create": "Créer et injecter une dimension Iris persistante ; mettez pack:dimensionKey entre guillemets pour choisir une dimension précise du pack", + "iris.modded.help.entry.group.studio": "Création, empaquetage et rapports de projets de packs", + "iris.modded.help.entry.group.pack": "Validation et maintenance des packs", + "iris.modded.help.entry.group.world": "Création, suppression et état des dimensions Iris pendant l'exécution", + "iris.modded.help.entry.group.datapack": "Outils d'installation et d'état des datapacks du monde", + "iris.modded.help.entry.group.structure": "Outils d'index, d'informations et de placement des structures Iris", + "iris.modded.help.entry.command.goldenhash": "Générer des hashes de blocs déterministes pour les tests de parité", + "iris.modded.help.entry.group.developer": "Diagnostics développeur : test Sentry, interfaces réseau et analyse des fichiers de région", + "iris.modded.help.entry.command.biome": "Rechercher un biome Iris", + "iris.modded.help.entry.command.region": "Rechercher une région Iris", + "iris.modded.help.entry.command.object": "Rechercher le placement d'un objet", + "iris.modded.help.entry.command.structure": "Rechercher une structure placée par Iris ou une structure native/de datapack", + "iris.modded.help.entry.command.poi": "Rechercher un point d'intérêt pris en charge", + "iris.modded.help.entry.command.biome_2": "Ouvrir le json d'un biome dans l'éditeur de bureau ; sans clé, ouvre le biome à votre position", + "iris.modded.help.entry.command.region_2": "Ouvrir le json d'une région dans l'éditeur de bureau ; sans clé, ouvre la région à votre position", + "iris.modded.help.entry.command.dimension": "Ouvrir le json de la dimension du pack actuel dans l'éditeur de bureau", + "iris.modded.help.entry.command.start": "Démarrer la prégénération ; rayon en blocs, cache de point de contrôle reprenable activé par défaut, centre via 'at ' et options combinables dans n'importe quel ordre", + "iris.modded.help.entry.command.stop": "Arrêter la tâche de prégénération active", + "iris.modded.help.entry.command.pause": "Suspendre ou reprendre la prégénération", + "iris.modded.help.entry.command.status": "Afficher l'état de la prégénération", + "iris.modded.help.entry.command.wand_3": "Obtenir une baguette d'objets Iris", + "iris.modded.help.entry.command.dust": "Obtenir de la poussière qui révèle les placements d'objets", + "iris.modded.help.entry.command.save": "Enregistrer comme objet le volume sélectionné avec la baguette", + "iris.modded.help.entry.command.paste": "Coller un objet à votre position ou à une position donnée, avec une rotation facultative", + "iris.modded.help.entry.command.expand": "Étendre la sélection de la baguette dans la direction du regard", + "iris.modded.help.entry.command.contract": "Réduire la sélection de la baguette dans la direction du regard", + "iris.modded.help.entry.command.shift": "Déplacer la sélection de la baguette dans la direction du regard", + "iris.modded.help.entry.command.position1": "Définir le point 1 de la sélection", + "iris.modded.help.entry.command.position2": "Définir le point 2 de la sélection", + "iris.modded.help.entry.command.x_y": "Sélectionner automatiquement vers le haut et l'extérieur", + "iris.modded.help.entry.command.x_y_2": "Sélectionner automatiquement vers le haut, le bas et l'extérieur", + "iris.modded.help.entry.command.analyze": "Afficher la composition d'un objet", + "iris.modded.help.entry.command.shrink": "Réduire un objet à sa taille minimale", + "iris.modded.help.entry.command.plausibilize": "Faire pousser des branches pour que les feuilles survivent à la décomposition vanilla", + "iris.modded.help.entry.command.undo": "Annuler les objets collés", + "iris.modded.help.entry.command.create_2": "Créer un nouveau projet de pack", + "iris.modded.help.entry.command.package": "Empaqueter une dimension dans un format compressé", + "iris.modded.help.entry.command.version_2": "Afficher la version d'un pack", + "iris.modded.help.entry.command.regions": "Calculer la répartition des régions proches", + "iris.modded.help.entry.command.open": "Ouvrir une dimension Studio temporaire pour un pack", + "iris.modded.help.entry.command.close": "Fermer la dimension Studio ouverte et supprimer son monde", + "iris.modded.help.entry.command.tpstudio": "Se téléporter dans la dimension Studio ouverte", + "iris.modded.help.entry.command.status_studio": "Afficher la dimension Studio ouverte et son pack", + "iris.modded.help.entry.command.noise": "Ouvrir la GUI de Noise Explorer sur l'écran du serveur", + "iris.modded.help.entry.command.map": "Ouvrir la GUI de la carte Vision sur l'écran du serveur", + "iris.modded.help.entry.command.vscode": "Régénérer le fichier .code-workspace d'un pack et l'ouvrir dans l'éditeur de bureau", + "iris.modded.help.entry.command.update": "Régénérer le fichier .code-workspace d'un pack", + "iris.modded.help.entry.command.importvanilla": "Expliquer le flux d'importation vanilla", + "iris.modded.help.entry.command.validate": "Valider un pack ou tous les packs", + "iris.modded.help.entry.command.cleanup": "Prévisualiser ou mettre en quarantaine les ressources inutilisées candidates", + "iris.modded.help.entry.command.restore": "Prévisualiser ou restaurer la quarantaine la plus récente", + "iris.modded.help.entry.command.status_validation": "Afficher l'état de validation mis en cache", + "iris.modded.help.entry.command.enable": "Créer et injecter une dimension Iris persistante pendant l'exécution ; télécharger le pack s'il manque et mettre pack:dimensionKey entre guillemets pour choisir une dimension précise du pack", + "iris.modded.help.entry.command.replace_overworld": "Injecter un monde principal Iris et y rediriger les joueurs à la place de l'overworld vanilla", + "iris.modded.help.entry.command.disable": "Évacuer et décharger de la mémoire une dimension Iris ; les données du monde restent sur le disque pour la réactiver", + "iris.modded.help.entry.command.delete": "Désactiver une dimension Iris et effacer du disque ses données de chunks et de Mantle", + "iris.modded.help.entry.command.list": "Lister les dimensions Iris chargées", + "iris.modded.help.entry.command.status_world": "Afficher les dimensions Iris chargées et le monde principal configuré", + "iris.modded.help.entry.command.status_datapack": "Vérifier les remplacements de type des dimensions Iris chargées", + "iris.modded.help.entry.command.install": "Installer les remplacements de type pour les dimensions Iris chargées", + "iris.modded.help.entry.command.list_datapacks": "Lister les datapacks configurés et installés", + "iris.modded.help.entry.command.ingest": "Expliquer le flux d'ingestion des datapacks Bukkit", + "iris.modded.help.entry.command.remove": "Expliquer le flux de suppression des datapacks", + "iris.modded.help.entry.command.list_structures": "Régénérer structure-index.json", + "iris.modded.help.entry.command.info_2": "Résoudre le graphe d'une structure Iris et afficher ses limites", + "iris.modded.help.entry.command.place": "Assembler et placer une structure Iris à votre position", + "iris.modded.help.entry.command.import": "Expliquer le flux d'importation des structures Bukkit", + "iris.modded.help.entry.command.capture": "Expliquer le flux de capture des structures Bukkit", + "iris.modded.help.entry.command.verify": "Afficher l'accessibilité des structures natives et Iris dans la dimension actuelle", + "iris.modded.help.entry.command.sentry": "Envoyer une exception de test au rapporteur d'erreurs Iris", + "iris.modded.help.entry.command.network": "Lister les interfaces réseau et leurs adresses", + "iris.runtime.progress.finding_regions": "Recherche des régions", + "iris.runtime.progress.converting": "Conversion", + "iris.runtime.status.running": "En cours", + "iris.runtime.status.stopped": "Arrêté", + "iris.runtime.status.paused": "En pause", + "iris.runtime.status.paused_lower": "en pause", + "iris.runtime.status.running_lower": "en cours", + "iris.runtime.status.enabled": "activé.", + "iris.runtime.status.disabled": "désactivé.", + "iris.runtime.status.unregistered": "non enregistré", + "iris.runtime.status.none": "aucun", + "iris.runtime.status.random": "aléatoire", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "vrai", + "iris.runtime.status.false": "faux", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " écrasement en cours", + "iris.runtime.datapack.override_suffix": " (remplacement du datapack du monde installé)", + "iris.runtime.primary_world.players_routed_suffix": " (les joueurs y seront redirigés)", + "iris.runtime.primary_world.routing_disabled_suffix": " (redirection désactivée)", + "iris.runtime.modded.no_dimension_match": "Aucune dimension Iris ne correspond à '{filter}'.", + "iris.runtime.teleport.world": "Vous avez été téléporté vers {world}.", + "iris.runtime.engine.hotloaded": "Moteur rechargé à chaud", + "iris.runtime.job.completed": "{job} terminé en {duration}", + "iris.runtime.job.scanning_selection": "Analyse de la sélection", + "iris.runtime.job.loading_chunks": "Chargement des chunks", + "iris.runtime.job.searched_chunks": "{chunks} chunks recherchés", + "iris.runtime.job.compile": "Compiler", + "iris.runtime.job.saving_object": "Enregistrement de l'objet", + "iris.runtime.job.downloading": "Téléchargement", + "iris.runtime.job.extracting": "Extraction", + "iris.runtime.job.installing": "Installation", + "iris.runtime.compile.iob_empty": "- IOB {file} contient 0 bloc !", + "iris.runtime.compile.iob_empty_hover": "Erreur :\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} n'est pas en 3D !", + "iris.runtime.compile.iob_not_3d_hover": "Erreur :\n{path}\nLa largeur, la hauteur ou la profondeur est nulle (format incorrect)", + "iris.runtime.compile.json_error": "- Erreur JSON {file}", + "iris.runtime.compile.json_error_hover": "Erreur :\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Chargeur introuvable pour {path}", + "iris.runtime.datapack.name": "Génération de mondes Iris", + "iris.runtime.pack.already_exists": "Le pack existe déjà !", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "ignorer {object} : échec du chargement", + "iris.runtime.tree_plausibilize.result": "{object} : +{wood} bois ({branches} branches), {converted} feuilles->bois, ~{distances} distances", + "iris.runtime.tree_plausibilize.result_pinned": "{object} : +{wood} bois ({branches} branches), {converted} feuilles->bois, ~{distances} distances, !{pinned} fixées", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "échec {object} : {type} : {error}", + "iris.runtime.tree_plausibilize.done": "Terminé : {processed} traités, {changed} modifiés, {skipped} ignorés, {failed} échecs", + "iris.runtime.tree_plausibilize.done_dry": "Terminé : {processed} traités, {changed} modifiés, {skipped} ignorés, {failed} échecs (simulation, rien n'a été écrit)", + "iris.runtime.tree_plausibilize.totals": "Totaux : +{wood} bois ({branches} branches), {converted} feuilles->bois, ~{distances} distances, !{pinned} fixées, inaccessibles {before} -> {after}", + "iris.runtime.item.wand.name": "Baguette d'Iris", + "iris.runtime.item.wand.lore.first": "Faites un clic gauche sur un bloc pour définir le premier coin", + "iris.runtime.item.wand.lore.second": "Faites un clic droit sur un bloc pour définir le second coin", + "iris.runtime.item.dust.name": "Poussière révélatrice", + "iris.runtime.item.dust.lore": "Faites un clic droit sur un bloc pour révéler sa structure de placement !", + "iris.runtime.wand.position_set": "Position {position} définie sur {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Cette dimension n'a pas été générée par Iris.", + "iris.runtime.dust.found_object": "Objet trouvé : {object}", + "iris.runtime.dust.revealed": "{count} bloc(s) de {object} révélés", + "iris.runtime.dust.revealed_capped": "{count} bloc(s) de {object} révélés (limite atteinte)", + "iris.runtime.dust.header": "--- Poussière d'Iris @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Bloc : {block}", + "iris.runtime.dust.position.above": "Position : +{offset} AU-DESSUS de la surface (Y de surface={surfaceY})", + "iris.runtime.dust.position.below": "Position : {offset} sous la surface (Y de surface={surfaceY})", + "iris.runtime.dust.position.at": "Position : à la surface (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Objet @bloc : {object}", + "iris.runtime.dust.none": "aucune", + "iris.runtime.dust.placed_by.object_above": "Placé par : objet/pilotis '{object}' (au-dessus de la surface)", + "iris.runtime.dust.placed_by.decoration_above": "Placé par : décoration/objet/pilotis (au-dessus de la surface)", + "iris.runtime.dust.placed_by.buried_object": "Placé par : objet enterré '{object}'", + "iris.runtime.dust.placed_by.terrain": "Placé par : couche de terrain (profondeur {depth} sous la surface)", + "iris.runtime.dust.column_object": "Objet de la colonne : {object} -> ce bloc est probablement le pilotis de cet objet", + "iris.runtime.dust.column_object_none": "Objet de colonne : {detail}", + "iris.runtime.dust.column_none": "aucun dans un rayon de 64 (décorateur ou terrain, PAS le pilotis d'un objet)", + "iris.runtime.dust.column.above": "{object} @Y={y} (au-dessus)", + "iris.runtime.dust.column.below": "{object} @Y={y} (en dessous)", + "iris.runtime.dust.surface_biome": "Biome de surface : {biome}", + "iris.runtime.dust.surface_biome_detail": "Biome de surface : {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @Y : {biome}", + "iris.runtime.dust.cave_biome": "Biome de grotte/Mantle : {biome}", + "iris.runtime.dust.server_biome": "Biome du serveur : {biome} (ID: {id})", + "iris.runtime.dust.region": "Région : {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objets du chunk : {objects}", + "iris.runtime.dust.copy_button": "[Cliquer pour copier ces statistiques]", + "iris.runtime.dust.copy_hover": "Copier les statistiques du bloc dans le presse-papiers", + "iris.runtime.pregen.starting": "Démarrage de la pregen Iris...", + "iris.runtime.pregen.header": "Pregen Iris", + "iris.runtime.pregen.bossbar.paused": "Pregen Iris {generated}/{total} {percent}% EN PAUSE", + "iris.runtime.pregen.bossbar.running": "Pregen Iris {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " échecs {failed}", + "iris.runtime.pregen.status.context": "Dimension {dimension} · Méthode {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunks {generated}/{total} · Vitesse {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunks {generated}/{total} · Vitesse {speed}/s · Échecs {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Écoulé {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Écoulé {elapsed} · EN PAUSE", + "iris.runtime.pregen.button.pause": "Pause/Reprise", + "iris.runtime.pregen.button.pause.hover": "Basculer l'état de pause de la prégénération", + "iris.runtime.pregen.button.stop": "Arrêter", + "iris.runtime.pregen.button.stop.hover": "Terminer la région actuelle et arrêter la prégénération", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cDossier packs/ introuvable.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eAucun pack à valider.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidation terminée. Packs cassés : {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cLe pack '{pack}' est introuvable dans packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aAucune ressource candidate au nettoyage trouvée pour le pack '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a{size} ressource(s) candidate(s) au nettoyage mise(s) en quarantaine dans {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cLe mode de nettoyage doit être preview ou apply.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aAucune ressource candidate au nettoyage trouvée pour le pack '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eAperçu du nettoyage du pack '{pack}' : {size} candidat(s). Aucun fichier n'a été modifié.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Exécutez /iris pack cleanup {pack} mode=apply pour mettre ces candidats en quarantaine après une nouvelle analyse.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cRestauration refusée car {size} destination(s) existe(nt) déjà.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eRien à restaurer pour le pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a{size} fichier(s) restauré(s) depuis {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cLe mode de restauration doit être preview ou apply.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eRien à restaurer pour le pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eAperçu de la restauration de {dumpPath} : {size} fichier(s). Aucun fichier n'a été modifié.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cLa restauration est bloquée par {size} destination(s) existante(s).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Exécutez /iris pack restore {pack} mode=apply pour restaurer après une nouvelle vérification des conflits.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eAucun résultat de validation enregistré. Exécutez d'abord /iris pack validate.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK§r {pack}§7 (blocages={blocking}, avertissements={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cCASSɧr {pack}§7 (blocages={blocking}, avertissements={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cÉchec du nettoyage : {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cÉchec de la restauration : {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "toujours en quarantaine", + "iris.bukkit.runtime.commandpack.path.quarantined": "en quarantaine", + "iris.bukkit.runtime.commandpack.path.candidate": "candidat", + "iris.bukkit.runtime.commandpack.path.conflict": "conflit", + "iris.bukkit.runtime.commandpack.path.restored": "restauré", + "iris.bukkit.runtime.commandpack.path.file": "fichier", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eAucun résultat de validation pour '{pack}'. Exécutez /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cÉchec de la validation de '{name}' : {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aLe pack '{packName}' peut être chargé.§7 (avertissements={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cLe pack '{packName}' est CASSÉ :", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "one": "§7 ... et {count} avertissement de plus.", + "other": "§7 ... et {count} avertissements de plus." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cVous devez toujours créer une sauvegarde avant d'utiliser ceci", + "§eLes problèmes possibles comprennent notamment :", + "§e - Des chunks cassés (coupures) entre les anciens et les nouveaux chunks (avant et après la mise à jour)", + "§e - Des chunks régénérés qui ne s'alignent pas avec les anciens chunks", + "§e - Des structures qui ne réapparaissent pas lors de la régénération", + "§e - Des grottes qui ne s'alignent pas", + "§e - Des couches de terrain qui ne s'alignent pas", + "§cMaintenant que vous connaissez les risques et avez créé une sauvegarde :", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportation de §f{total}§a structures vanilla et de datapacks (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[échec] {keyString}: clé invalide", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[ignoré] {keyString} : aucun modèle NBT unique ; vanilla construit cette structure dans le code ou à partir de modèles de pièces distincts (importés lors de la phase des modèles), donc rien ne peut être importé comme structure unique.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[échec] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aImportation en masse terminée : §f{imported}§a importées, §f{skipped}§a ignorées, §f{failed}§a échecs (§f{total}§a au total).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aCréation de structures à modèle unique depuis les pièces importées (une variante est placée à chaque génération)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} variantes)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[ignoré] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[échec] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aStructures à modèle unique : §f{imported}§a créées, §f{skipped}§a ignorées, §f{failed}§a échecs.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cImpossible d'énumérer les modèles de structure via le serveur ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eAucun modèle de structure trouvé dans le chemin de ressources 'structure'.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportation de §f{total}§a modèles de structures (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[échec] {keyString}: clé invalide", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[échec] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importées, {skipped} ignorées, {failed} échecs)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aImportation des modèles terminée : §f{imported}§a importés, §f{skipped}§a ignorés, §f{failed}§a échecs (§f{total}§a au total).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eAucune structure de datapack (hors minecraft) n'est enregistrée. Ingérez un datapack, redémarrez, puis relancez cette opération.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportation de §f{total}§a structures de datapacks (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[échec] {keyString}: clé invalide", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[échec] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportation de §f{size}§a modèles de structures de datapacks...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[échec] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[échec] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eImpossible d'énumérer les modèles de datapacks via le ResourceManager du serveur : {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aImportation des structures du datapack terminée : §f{imported}§a importées, §f{skipped}§a ignorées, §f{failed}§a échecs.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eLa liaison NMS active ne prend pas en charge la capture des structures ; la phase de capture sera ignorée.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Il ne reste aucune structure générée par le code à capturer (toutes ont déjà été importées comme structures).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aCapture de §f{total}§a structures générées par le code (sans modèle NBT) dans un monde temporaire (celles qui dépassent {MAXSPAN} blocs de largeur ou de hauteur seront ignorées)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[ignoré] {key} : aucune structure capturable n'a été placée ici (trop grande, mauvaise dimension ou aucun placement valide dans un monde plat). Elle restera générée par vanilla.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[échec] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[échec] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} capturées, {skipped} ignorées, {failed} échecs)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aCapture des structures terminée : §f{imported}§a capturées, §f{skipped}§a ignorées, §f{failed}§a échecs (§f{total}§a au total).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eLa liaison NMS active n'expose aucune fonctionnalité vanilla d'arbre ou d'objet (seules les structures seront importées).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportation de §f{total}§a fonctionnalités vanilla d'arbres ou d'objets (§f{wantVariants}§a variantes chacune) dans un monde temporaire...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[ignoré] {key} : la fonctionnalité n'a rien placé après plusieurs tentatives.", + "iris.bukkit.runtime.featureimporter.fail": "§c[échec] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importées, {skipped} ignorées, {failed} échecs)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aImportation des fonctionnalités terminée : §f{imported}§a écrites, §f{skipped}§a ignorées, §f{failed}§a en échec (§f{total}§a au total).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cImpossible de créer le monde temporaire pour importer les fonctionnalités ({error}) ; la phase des arbres et objets sera ignorée.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Aucun fichier schematic à convertir trouvé dans {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aConversion : {name} -> {value} dans {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aConversion : {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cÉchec de l'enregistrement : {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cImpossible de convertir : {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Converti : {get} dans {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cCertains schematics n'ont pas pu être convertis. Consultez la console pour plus de détails.", + "iris.bukkit.runtime.studiosvc.installing_package": "Installation du pack : {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Recherche du pack : {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "{type}.iris trouvé dans le dossier {WORKSPACENAME}", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Dimension {type} trouvée dans le dossier {WORKSPACENAME}. Nouvel empaquetage", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "{name} est introuvable dans le dossier dimensions de ce pack. Échec !", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Impossible de charger la dimension. Échec !", + "iris.bukkit.runtime.studiosvc.type_installed": "Type {name} installé. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Le pack '{key}' est introuvable dans la liste des packs.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Utilisez /iris download branch= pour le télécharger manuellement.", + "iris.bukkit.runtime.studiosvc.failed_download": "Impossible de télécharger '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Impossible de télécharger la version bêta de IrisDimensions/overworld.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Impossible de télécharger '{repo}' (branche {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Impossible d'ouvrir le monde Studio : {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Impossible d'ouvrir Studio '{dimm}' : le pack contient des erreurs bloquantes :", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Corrigez le pack et exécutez /iris pack validate {dimm} pour le valider à nouveau.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Impossible de fermer le projet Studio existant : {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Impossible de fermer le projet Studio existant : {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Impossible d'ouvrir le monde Studio : {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Impossible de trouver le pack avec lequel créer une nouvelle dimension.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Fichier de dimension importée manquant", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importation de {downloadable} dans le nouveau projet {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio : aucune cellule sous clic (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio : enregistrement de §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio : aucun changement pour {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio : cellule vide {pack}/{key} (rien à écrire).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio : aucun fichier cible pour {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio : enregistrement terminé pour §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio : l'enregistrement a échoué {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Impossible de charger la dimension \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Impossible d'obtenir le chargeur de dimensions", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cImpossible d'ouvrir Studio : {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cImpossible d'ouvrir Studio.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio prêt §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Sérialisation des objets", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "{g} objets supplémentaires écrits", + "iris.bukkit.runtime.irisproject.package_compiled": "Pack compilé !", + "iris.bukkit.runtime.irisproject.failed": "Échec !", + "iris.bukkit.runtime.irisengine.total": "Total : §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Moteur §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Détails: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} n'est pas défini dans la dimension !", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cImpossible de trouver {message} dans le rayon de recherche.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTéléportation vers {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} à : {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Vous avez été évacué de ce monde.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Vous avez été évacué de ce monde. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Certains packs Iris contiennent des biomes personnalisés", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Vous devez redémarrer votre serveur pour utiliser ces packs.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Autorisations insuffisantes", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Il n'y a pas de sous-commandes ou vous n'avez pas la permission de les utiliser.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Paramètres ignorés: {m}", + "iris.runtime.studio.opening": "§6Studio §bOUVERTURE", + "iris.runtime.studio.opening_progress": "§6Studio §bOUVERTURE§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cÉCHEC§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aPRÊT§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cÉCHEC§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio prêt§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Initialisation", + "iris.runtime.studio.stage.queued": "En attente", + "iris.runtime.studio.stage.resolve_dimension": "Résolution de la dimension", + "iris.runtime.studio.stage.prepare_world_pack": "Préparation du pack du monde", + "iris.runtime.studio.stage.install_datapacks": "Installation des datapacks", + "iris.runtime.studio.stage.create_world": "Création du monde", + "iris.runtime.studio.stage.apply_world_rules": "Application des règles du monde", + "iris.runtime.studio.stage.prepare_generator": "Préparation du générateur", + "iris.runtime.studio.stage.request_entry_chunk": "Chargement du chunk d'entrée", + "iris.runtime.studio.stage.resolve_safe_entry": "Recherche d'un spawn sûr", + "iris.runtime.studio.stage.teleport_player": "Téléportation", + "iris.runtime.studio.stage.finalize_open": "Finalisation", + "iris.runtime.studio.stage.cleanup": "Nettoyage", + "iris.runtime.world_create.teleport_failed": "§eLe monde a été créé, mais la téléportation automatique a échoué. Essayez /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunks", + "iris.runtime.world_create.console": "§6Génération §e{percent}%§7 {generated}/{required} chunks§8 ({remaining} restants)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPrégénération", + "iris.runtime.world_create.pregen.console": "§6Prégénération §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Régénérer", + "iris.runtime.chunk_job.title.delete": "Supprimer", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Préparation", + "iris.runtime.chunk_job.stage.clearing": "Nettoyage", + "iris.runtime.chunk_job.stage.resetting_mantle": "Réinitialisation de Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Régénération", + "iris.runtime.chunk_job.stage.generating": "Génération", + "iris.runtime.chunk_job.stage.comparing": "Comparaison", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnostic", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bEN COURS", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks en {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks en {elapsed} ({failures} échecs)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aTERMINɧ7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cÉCHEC§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aTerminé§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cÉchec§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} terminé : {summary}", + "iris.runtime.chunk_job.failed": "§c{title} s'est terminé avec des erreurs : {summary}", + "iris.runtime.golden.no_capture": "Aucune capture golden dans {path} ; effectuez d'abord une capture.", + "iris.runtime.golden.aborted": { + "one": "GoldenHash annulé : échec de la génération de {failed} chunk. Aucun fichier golden écrit.", + "other": "GoldenHash annulé : échec de la génération de {failed} chunks. Aucun fichier golden écrit." + }, + "iris.runtime.golden.failed": "Échec de GoldenHash : {error}", + "iris.runtime.golden.mantle_reset": "Mantle réinitialisé ({path})", + "iris.runtime.golden.mantle_reset_failed": "Échec de la réinitialisation de Mantle ({type}) ; poursuite avec l'état actuel de Mantle.", + "iris.runtime.golden.captured": "Golden capturé : {chunks} chunks, combiné={hash}", + "iris.runtime.golden.wrong_world": "Le fichier golden correspond à dim={goldenDimension} graine={goldenSeed}, mais ce monde utilise dim={dimension} graine={seed}. Annulation.", + "iris.runtime.golden.version_warning": "Golden a été capturé sous mc={goldenVersion}, tandis que mc={version} est utilisé. Les différences peuvent venir de la version.", + "iris.runtime.golden.match": "GOLDEN MATCH : {current}/{golden} chunks, combiné={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH : {mismatches}/{chunks} chunks diffèrent.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (absent de golden)", + "iris.runtime.golden.mismatch_more": " ... et {count} plus", + "iris.runtime.golden.current_written": "Hashes actuels écrits dans {file}", + "iris.runtime.golden.diag.stable": "Répétition de génération STABLE, réinitialisation de Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Répétition de génération INSTABLE ({diffs}+ différences de blocs), réinitialisation de Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (la reconstruction de Mantle reproduit le résultat de l'analyse)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGÉ ({diffs}+ différences : la construction de Mantle dépend de l'état/ordre)", + "iris.runtime.golden.diag.mantle_skipped": "IGNORÉ ({type})", + "iris.runtime.golden.diag.failed": "Échec du diagnostic : {error}", + "iris.runtime.golden.started": "GoldenHash démarré : {chunks} chunks autour de 0,0 dans des tampons (monde inchangé), threads={threads} mode={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] hash calculé pour le chunk {x},{z}", + "iris.runtime.golden.chunk_failed": "Chunk {x},{z} ÉCHEC : {type}", + "iris.runtime.pack_download.invalid_pack_name": "Nom de pack non valide '{pack}' (autorisé : a-z, 0-9, _ et -)", + "iris.runtime.pack_download.invalid_branch_name": "Nom de branche non valide '{branch}' (autorisé : lettres, chiffres, . _ et -)", + "iris.runtime.pack_download.failed": "Échec du téléchargement du pack : {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Téléchargement de {url}", + "iris.runtime.pack_download.failed_to_find": "Pack introuvable dans {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Vérifiez que le dépôt et la branche indiqués sont corrects !", + "iris.runtime.pack_download.example_command": "Par exemple : /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Décompression de {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Un problème est survenu pendant la décompression. Vérifiez les points suivants :", + "1. Votre connexion Internet fonctionne-t-elle ?", + "2. Le téléchargement est-il corrompu ?", + "3. Essayez de supprimer le dossier */plugins/iris/packs puis téléchargez à nouveau.", + "4. Téléchargez le pack depuis le dépôt GitHub : https://github.com/IrisDimensions/overworld", + "5. Contactez l'assistance (si aucune autre option ne fonctionne)" + ], + "iris.runtime.pack_download.no_extracted_files": "Aucun fichier n'a été extrait du fichier zip.", + "iris.runtime.pack_download.home_directory_error": "Erreur lors de la recherche du dossier personnel. Le nom du fichier contient-il des caractères non textuels ?", + "iris.runtime.pack_download.invalid_archive_format": "Format non valide. Le dossier racine est absent ou il y a trop de dossiers.", + "iris.runtime.pack_download.no_dimension_file": "Aucun fichier de dimension trouvé dans le fichier zip extrait.", + "iris.runtime.pack_download.check_github": "Vérifiez qu'il est présent sur GitHub et signalez-le à l'équipe !", + "iris.runtime.pack_download.one_dimension_required": "Le dossier dimensions doit contenir exactement un fichier.", + "iris.runtime.pack_download.invalid_dimension": "Dossier de dimension non valide dans dimensions/.", + "iris.runtime.pack_download.importing": "Importation de {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Une autre dimension du dossier packs utilise déjà la clé {key}. Échec de l'importation !", + "iris.runtime.pack_download.pack_key_conflict": "Un autre pack utilise la clé {key}. Échec de l'importation !", + "iris.runtime.pack_download.acquired": "{name} obtenu avec succès.", + "iris.runtime.pack_download.validation_failed": "Le pack '{pack}' a échoué à la validation ; la création de mondes et de Studio sera refusée. Raisons :", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "one": "Le pack '{pack}' a été validé avec {count} avertissement.", + "other": "Le pack '{pack}' a été validé avec {count} avertissements." + }, + "iris.runtime.pack_download.validated": "Le pack '{pack}' a été validé.", + "iris.client.vision.title": "Iris Vision", + "iris.client.vision.connecting": "Connexion au serveur Iris...", + "iris.client.vision.not_connected": "non connecté", + "iris.client.vision.not_iris_world": "Ce n'est pas un monde Iris", + "iris.client.vision.no_dimension_data": "aucune donnée de dimension", + "iris.client.vision.header_detail": "{status} zoom {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Glisser pour déplacer Molette pour zoomer Échap pour fermer", + "iris.client.vision.dimension_pack": "{dimension} pack {pack}", + "iris.client.toast.studio_hotload": "Rechargement à chaud de Studio", + "iris.client.toast.changed_files": { + "other": "{count} fichiers", + "one": "{count} fichier" + }, + "iris.client.toast.reload_failed": "échec du rechargement", + "iris.client.toast.reloaded": "rechargé", + "iris.client.toast.pack_failed": "échec de {pack}", + "iris.client.what.title": "Iris What", + "iris.client.what.querying": "Interrogation de {x}, {z}...", + "iris.client.what.biome": "Biome : {biome}", + "iris.client.what.region": "Région : {region}", + "iris.client.what.cave": "Grotte : {cave}", + "iris.client.what.height": "Hauteur : {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "EN PAUSE", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§aVitesse§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bCache§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dSculpture§7: {state}", + "iris.bukkit.scoreboard.region": "§bRégion§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiome§7: {biome}", + "iris.bukkit.scoreboard.height": "§bHauteur§7: {height}", + "iris.bukkit.scoreboard.slope": "§bPente§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vision", + "iris.desktop.vision.view": "Vue :", + "iris.desktop.vision.grid": "Grille", + "iris.desktop.vision.follow": "Suivre", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Actualisation", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Zoom réinitialisé", + "iris.desktop.vision.grid_enabled": "Grille activée", + "iris.desktop.vision.grid_disabled": "Grille désactivée", + "iris.desktop.vision.following": "Suivi de {player}", + "iris.desktop.vision.no_player": "Aucun joueur dans le monde", + "iris.desktop.vision.follow_disabled": "Suivi désactivé", + "iris.desktop.vision.low_quality": "Qualité basse", + "iris.desktop.vision.high_quality": "Qualité élevée", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} blocs", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Position : {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Santé : {health} / {maximum}", + "iris.desktop.vision.block_position": "Bloc {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk {x}, {z}", + "iris.desktop.vision.region_position": "Région {x}, {z}", + "iris.desktop.vision.biome_key": "Clé : {key}", + "iris.desktop.vision.biome_file": "Fichier : {file}", + "iris.desktop.vision.velocity": "Vitesse : {velocity}", + "iris.desktop.vision.tiles": "Tuiles : {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Workers : {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centre : {x}, {z}", + "iris.desktop.vision.help.toggle": "Afficher ou masquer l'aide", + "iris.desktop.vision.help.refresh": "Actualiser les tuiles", + "iris.desktop.vision.help.follow": "Suivre le joueur", + "iris.desktop.vision.help.zoom": "Zoom avant/arrière", + "iris.desktop.vision.help.reset_zoom": "Réinitialiser le zoom", + "iris.desktop.vision.help.cycle_mode": "Changer de mode de rendu", + "iris.desktop.vision.help.quality": "Changer la qualité des tuiles", + "iris.desktop.vision.help.fps": "Basculer entre 30/60 FPS", + "iris.desktop.vision.help.grid": "Basculer la grille", + "iris.desktop.vision.help.biome": "Informations détaillées sur le biome", + "iris.desktop.vision.help.teleport": "Se téléporter au curseur", + "iris.desktop.vision.help.editor": "Ouvrir le biome dans l'éditeur", + "iris.desktop.vision.opened": "{target} ouvert", + "iris.desktop.vision.teleporting": "Téléportation vers {x}, {z}", + "iris.desktop.vision.mode.biome": "Biome", + "iris.desktop.vision.mode.biome_land": "Terre du biome", + "iris.desktop.vision.mode.biome_sea": "Mer du biome", + "iris.desktop.vision.mode.region": "Région", + "iris.desktop.vision.mode.cave_land": "Terre des grottes", + "iris.desktop.vision.mode.height": "Hauteur", + "iris.desktop.vision.mode.object_load": "Charge des objets", + "iris.desktop.vision.mode.decorator_load": "Charge des décorateurs", + "iris.desktop.vision.mode.continent": "Continent", + "iris.desktop.vision.mode.layer_load": "Charge des couches", + "iris.desktop.noise.title": "Noise Explorer", + "iris.desktop.noise.title_generator": "Noise Explorer : {generator}", + "iris.desktop.noise.search": "Rechercher...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | Zoom : {zoom} | Valeur : {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Personnalisé", + "iris.desktop.noise.category.pack_generators": "Générateurs du pack", + "iris.desktop.noise.category.simplex": "Simplex", + "iris.desktop.noise.category.perlin": "Perlin", + "iris.desktop.noise.category.cellular": "Cellular", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Clover", + "iris.desktop.noise.category.hexagon": "Hexagon", + "iris.desktop.noise.category.vascular": "Vascular", + "iris.desktop.noise.category.globe": "Globe", + "iris.desktop.noise.category.cubic": "Cubic", + "iris.desktop.noise.category.fractal": "Fractal", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "Nowhere", + "iris.desktop.noise.category.sierpinski": "Sierpinski", + "iris.desktop.noise.category.utility": "Utilitaire", + "iris.desktop.noise.category.other": "Autres", + "iris.desktop.pregen.initializing": "Initialisation...", + "iris.desktop.pregen.title": "Vue de pregen", + "iris.desktop.pregen.method_pending": "En attente", + "iris.desktop.pregen.paused": "EN PAUSE", + "iris.desktop.pregen.resume_hint": "Appuyez sur P pour reprendre", + "iris.desktop.pregen.pause_hint": "Appuyez sur P pour mettre en pause", + "iris.desktop.pregen.progress_paused": "EN PAUSE {generated} sur {total} ({percent} terminés)", + "iris.desktop.pregen.progress_saving": "Enregistrement... {generated} sur {total} ({percent} terminés)", + "iris.desktop.pregen.progress_generating": "Génération de {generated} sur {total} ({percent} terminés)", + "iris.desktop.pregen.speed": "Vitesse : {chunksPerSecond} chunks/s, {regionsPerMinute} régions/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.speed_cached": "Vitesse : cache {chunksPerSecond} chunks/s, {regionsPerMinute} régions/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.time": "{remaining} restantes ({elapsed} écoulées)", + "iris.desktop.pregen.method": "Méthode de génération : {method}", + "iris.desktop.pregen.memory": "Mémoire : {used} ({usage}) Pression : {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/he_IL.json b/core/src/main/resources/languages/he_IL.json new file mode 100644 index 000000000..686e6d010 --- /dev/null +++ b/core/src/main/resources/languages/he_IL.json @@ -0,0 +1,1435 @@ +{ + "locale": "he_IL", + "messages": { + "director.help.navigation.parent.hover": "חזרה לקבוצת פקודות האב", + "director.help.navigation.back": "חזרה", + "director.help.no_subcommands": "אין פקודות משנה בעמוד זה.", + "director.help.no_description": "לא סופק תיאור", + "director.help.aliases": "כינויים", + "director.help.command_group": "קבוצת פקודות. לחצו כדי לפתוח.", + "director.help.no_parameters": "אין פרמטרים. לחצו כדי למלא את הפקודה מראש.", + "director.help.parameters": "פרמטרים", + "director.help.parameter.required": "נדרש", + "director.help.parameter.optional": "אופציונלי", + "director.help.parameter.default": "ברירת מחדל", + "director.help.navigation.previous.hover": "העמוד הקודם", + "director.help.navigation.next.hover": "העמוד הבא", + "director.help.navigation.page": "עמוד", + "director.runtime.error.invalid_origin": "לא ניתן להריץ פקודה זו ממקור זה.", + "director.runtime.error.unknown_parameter": "מפתח פרמטר לא ידוע: {key}", + "director.runtime.error.unexpected_argument": "ארגומנט לא צפוי \"{argument}\". פרמטרים אופציונליים חייבים להינתן עם מפתח, לדוגמה seed=123", + "director.runtime.error.conversion_failed": "לא ניתן להמיר את \"{value}\" ל-{type} עבור {parameter}", + "director.runtime.error.default_parse_failed": "לא ניתן לנתח את ערך ברירת המחדל של הפרמטר {parameter}", + "director.runtime.error.missing_argument": "חסר ארגומנט \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "הפעלת הפקודה {command} נכשלה: {reason}", + "director.runtime.usage": "שימוש: {usage}", + "iris.command.permission_denied": "אין לך את ההרשאה '{permission}'", + "iris.command.unknown": "פקודת Iris לא מוכרת", + "iris.command.player_only": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.command.iris_world_required": "ממד זה לא נוצר על ידי Iris.", + "iris.command.reload.success": "ההגדרות והשפה {locale} נטענו מחדש.", + "iris.command.reload.failed": "ההגדרות נטענו מחדש, אך השפה {locale} נדחתה; ממשיכים עם {activeLocale}.", + "iris.modded.help.unknown_section": "לא ידוע Iris עזרה סעיף: {section}", + "iris.modded.help.back_hover": "חזרה {parent}.", + "iris.modded.help.command_parameter": "פרמטר פיקוד", + "iris.modded.help.parameter_required": "פרמטר זה נדרש.", + "iris.modded.help.parameter_optional": "הפרמטר הזה הוא אופציונלי.", + "iris.modded.help.brigadier_text": "פרמטר זה נקרא טקסט על ידי Brigadier.", + "iris.modded.help.operator_notice": "Iris הוראות דורשות רשות המפעילה (רמה 2).", + "iris.modded.help.operator_instruction": "לרוץ {command} מן הקונסולה (או לאפשר לרמות בשחקן יחיד); עד אז פקודות אלה לא יפעלו או השלמת הכרטיסייה.", + "iris.modded.command.properties.none": "נכסים: (אין)", + "iris.modded.command.properties.list": "נכסים: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7איסוף נתונים...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aהמונחים: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aהתקנת חבילות נתונים: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eהוסף Modrinth URLs ל\"ממד\"datapackImportsרשימה, ואז לרוץ /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash התחיל: {value} צ'אנקים...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash נכשל בצ'אנק {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash גלובלי=§6{value}§a צ'אנקים={value2} מוצקים={solidBlocks} בתוך {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6לא בתוך Iris עולם!", + "iris.bukkit.commandfind.unknown_structure": "§cמבנה לא ידוע: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6הפעל את המשחק הזה כדי לטלפורט למבנה.", + "iris.bukkit.commandfind.locating": "§7עקבו {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6הפעל את המשחק הזה כדי לטלפורט למבנה.", + "iris.bukkit.commandfind.locating_2": "§7עקבו {structure}...", + "iris.bukkit.commandfind.teleported": "§aהועבר אל {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aתיקיה עולמית מוצלחת", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aתיקיה עולמית מוצלחת", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cנכשל להסיר את התיקיה העולמית", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cלא נמצאו חבילות עם חפצים בשרת זה.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cאין חפצים לעבור את החבילה שנבחרה (s)", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aסטודיו פתיחה {scope} ({totalObjects} אובייקטים)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cנכשל לפתוח סטודיו לאובייקט: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cעליך לציין שם חבילה.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPack »{pack}\"לא נמצא מתחת packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... ו {value} יותר.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aלבדוק מבנים §f{value}§a מתוך {value2},{value3} בתוך {searchRadius} צ'אנקים...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aייבוא תוכן vanilla §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aייבוא: §f{imported}§a objects/structures כתוב, §f{failed}§a נכשל.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7עצים/אובייקטים נמצאים תחת objects/vanilla/...; יש להפנות אליהם ממיקומי אובייקטים של biome.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cאין פרויקט סטודיו פתוח.", + "iris.bukkit.commandstudio.closing_studio": "§eסגירת סטודיו...", + "iris.bukkit.commandstudio.studio_close_failed": "§cסטודיו נסגר: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cסטודיו נסגר: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eסטודיו נסגר. שמירה על ניקיון משפחתי עולמית היה תור עבור סטארט אפ Fallback.", + "iris.bukkit.commandstudio.studio_closed": "§aסטודיו נסגר.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cאתה חייב להיות בעולם סטודיו כדי לעקוף את לוח הציון debug.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio Debugboard {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§c לא יכול לעדכן את לוח הסימון של Studio עכשיו.", + "iris.bukkit.commandstudio.opened_inventory": "§aמלא פתוח!", + "iris.bukkit.commandstudio.generating_data": "§7יצירת נתונים...", + "iris.bukkit.commandstudio.done": "§aנעשה!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "חסר לך את ההפסקה \"{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5סטטוס:", + "iris.bukkit.irisenginestatus.service": "§5שירות: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5מסובכים: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5תקופת תחזוקה: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5מקבילות עבודה: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5משימות עולם פעיל:§d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5לוחות טקטוניים:", + "iris.bukkit.irisenginestatus.configured_retention": "§5המונחים: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5ערימה: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5המונחים: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5המונחים: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5משך הזמן הממוצע: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5מקס idle:§d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5בסביבה הקרובה של המונחים::§d{value}", + "iris.bukkit.irisenginestatus.caches": "§5תגית:", + "iris.bukkit.irisenginestatus.resource": "§5המונחים: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§52זרם:§d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§53זרם:§d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5אחר: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5אחר:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris עולמות: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5תגית: Chunks §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cהעולם הוא אפס.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cמטרה Iris עולם לפני שתקראו את הזבל", + "iris.bukkit.commanddeveloper.upgrading": "§aלמעלה {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aעשה שדרוג! עכשיו אתה יכול לעדכן את גירסת השרת שלך {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cרדינוס חייב להיות 0 גדול או יותר.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cזה לא Iris עולם", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cהגישה של המנוע לעולם הזה היא אפס.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aהקטר התחיל: §6{chunks}§a (s) סביב §6{centerX},{centerZ}§a. ניקוי בלוקים לאוויר", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cרדינוס חייב להיות 0 גדול או יותר.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cאתה חייב להיות בתוך Iris עולם לשימוש ב-Regen", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cהגישה של המנוע לעולם הזה היא אפס. ליצור קודם כל גושים סמוכים.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen התחיל: §6{chunks}§a (s) סביב §6{centerX},{centerZ}§a. לשחרר וליצור מחדש במקום.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cרדינוס חייב להיות 0 גדול או יותר.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cהמטרה חייבת להיות Iris עולם", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cהגישה של המנוע לעולם הזה היא אפס.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aהזהב התחיל:§6{chunks}§a(s) סביב§6{centerX},{centerZ}§aשם הסרטון: העולם מאגרים Unuched).", + "iris.bukkit.commandedit.players_only": "§cשחקנים בלבד!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cאין עולם סטודיו פתוח!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cאתה חייב להיות בעולם סטודיו!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cלא ניתן לפתוח קבצים בסביבה ללא ראש!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cשולחן העבודה אינו נתמך על ידי הסביבה הזו!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6האם לא ניתן למצוא את הקובץ; אולי הוא אינו טעון ישירות מקובץ?", + "iris.bukkit.commandedit.opening_vscode": "§aפתיחה {value} {value2} פנימה VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cאפשר למצוא את הקובץ. או רישום לא קיים", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6האם לא ניתן למצוא את הקובץ; אולי הוא אינו טעון ישירות מקובץ?", + "iris.bukkit.commandedit.opening_vscode_2": "§aפתיחה {value} {value2} פנימה VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cאפשר למצוא את הקובץ. או רישום לא קיים", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6האם לא ניתן למצוא את הקובץ; אולי הוא אינו טעון ישירות מקובץ?", + "iris.bukkit.commandedit.opening_vscode_3": "§aפתיחה {value} {value2} פנימה VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cאפשר למצוא את הקובץ. או רישום לא קיים", + "iris.bukkit.commandfind.not_iris_world_5": "§6לא בתוך Iris עולם!", + "iris.bukkit.commandfind.not_iris_world_2": "§6לא בתוך Iris עולם!", + "iris.bukkit.commandfind.not_iris_world_3": "§6לא בתוך Iris עולם!", + "iris.bukkit.commandfind.not_iris_world_4": "§6לא בתוך Iris עולם!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: משתגר אל {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} לא מוגדר בשום מקום / ביומה אובייקטים מיקומים.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cלא ניתן להשתמש בשם העולם \"iris\", מפני ש-Iris משתמשת בתיקייה זו עבור עולמות Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cאפשר להציע את השם \"IrisWorld\"במקום?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cלא ניתן להשתמש בשם העולם \"benchmark\", מפני ש-Iris משתמשת בתיקייה זו עבור חבילות בדיקה.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cאפשר להציע את השם \"IrisWorld\"במקום?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cהתיקיה הזו כבר קיימת!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cלא יכול למצוא או להוריד מימד \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eנסה: Overworld vanilla, שטוח, TheendXTry", + "iris.bukkit.commandiris.download_manually_iris_download": "§eאו להוריד באופן ידני: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aהכנת העולם הושלמה. הפעל מחדש את השרת כדי ליצור/לטעון את \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cלמעטים שגדלו במהלך הבריאה. ראו את הקונסולה לפרטים נוספים.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aיצרתם בהצלחה את עולמכם!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aעולמכם יקבע באופן אוטומטי כעולם הראשי כאשר השרת נפתח מחדש.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eיצירת העולם של Runtime זמינה Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eהכנת קבצים בעולם bukkit.yml עבור הסטארט-אפ הבא...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cנכשלים בקבצי עולם הבמה לממד \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aעדכון server.properties שם ברמה \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cהעולם הוטבע, אך לא הצליח לעדכן server.properties העולם הראשי", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aעולם Iris ‏\"{name}\" הוכן עם המחולל Iris:{value} והזרע {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aהעולם הזה מוגדר כעת כעיקרי לחידוש הבא.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cנכשל לעדכן bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cהשחקן שצוין אינו קיים.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aאיריס v{value} על ידי Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} כדי {value2}", + "iris.bukkit.commandiris.total_height": "§aגובה מוחלט: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9אייריס וורלד: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Worlds: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cזה לא Iris עולם Iris עולמות: {value}", + "iris.bukkit.commandiris.removing_world": "§aהסרת העולם: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cנכשל לפנות את העולם: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cנכשל לנפץ את העולם: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aבוטל בהצלחה {value} מתוך bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eנראה כאילו העולם כבר הוסר bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cנכשל להציל bukkit.yml בגלל {value}", + "iris.bukkit.commandiris.set_debug": "§aהגדר bug: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aהורדת חבילות: {pack} (שחרור בטא){value}", + "iris.bukkit.commandiris.downloading_pack": "§aהורדת חבילות: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cאתה חייב להיות בתוך Iris עולם העולם", + "iris.bukkit.commandiris.sending_metrics": "§aשליחת מדדים...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cזה לא Iris עולם Iris עולמות: {value}", + "iris.bukkit.commandiris.unloading_world": "§a מפיצה את העולם: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aהעולם התקלקל בהצלחה.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cלא הצליחו לקלקל את העולם.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cנכשל לקלקל את העולם: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} לא קיים בשרת.", + "iris.bukkit.commandiris.generator": "§9גנרטור: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} זה לא עולם חג המולד.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cלא יכול לקבוע Iris מימד {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aלטעון את העולם: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia לא יכול לטעון עולמות חדשים בזמן ריצה. שמור את השרת כדי לטעון \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} טעון בהצלחה.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cזה לא Iris עולם Iris עולמות: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aלהעריך את העולם{value}", + "iris.bukkit.commandobject.object_size": "גודל אובייקטים: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "בלוקים בשימוש: {value}", + "iris.bukkit.commandobject.blocks_object": "== בלוקים באובייקט==", + "iris.bukkit.commandobject.other_block_types": " + {value} סוגים אחרים של בלוק", + "iris.bukkit.commandobject.current_object_size": "גודל האובייקט הנוכחי: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "גודל אובייקטים חדש: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "נכשל להציל את האובייקט {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cשום אובייקטים לא מתאימים: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aמטבוליזם [reach={reach}{value}] תור {value2} (אובייקטים)", + "iris.bukkit.commandobject.hold_your_wand": "החזיקו את השרביט שלכם", + "iris.bukkit.commandobject.no_area_selected": "שום אזור לא נבחר.", + "iris.bukkit.commandobject.ready_your_wand": "הכינו את שרביט שלכם", + "iris.bukkit.commandobject.ready_your_wand_2": "הכינו את שרביט שלכם", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eהסקאלה עולה על מקסימום. למטה למקסימום: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "עקבו אחרי objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "עקבו אחרי objects/{value}.iob", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "עקבו אחרי objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aמקום {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eאתה צריך להחזיק את השרביט שלך!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cהקובץ כבר קיים. הגדר overwrite=נכון לכתוב אותו.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cנכשל להציל את האובייקט בגלל IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aהתנגדות מוצלחת להצלת: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "החזיקו את השרביט שלכם", + "iris.bukkit.commandobject.no_area_selected_2": "שום אזור לא נבחר.", + "iris.bukkit.commandobject.reverted_pastes": "§9בוטלו {actualReverts}§9 הדבקות!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cאתה לא יכול לקבל WorldEdit בחירה ללא ברירה WorldEditאתה יודע.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cאין לך WorldEdit בחירה בעולם הזה.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aשרביט טרי עם ההווה שלך WorldEdit מבחר על זה!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aפו! בניין מזל טוב!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eהחזיקו את השרביט שלכם!", + "iris.bukkit.commandobject.no_area_selected_3": "שום אזור לא נבחר.", + "iris.bukkit.commandobject.auto_select_complete": "§aבחירה אוטומטית הושלם!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eהחזיקו את השרביט שלכם!", + "iris.bukkit.commandobject.no_area_selected_4": "שום אזור לא נבחר.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aבחירה אוטומטית הושלם!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cרדיוס Pregen חייב להיות גדול יותר מאשר אפס בלוקים.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cקדם-יצירה טורית קפדנית דורשת Paper או שרת תואם Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cהגישה של המנוע לעולם הזה היא אפס!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cודא שהעולם טעון & המנוע הוא ראשוני. ליצור נתח חדש, למשל.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cנכשל להתחיל את ההתחדשות. ראו הקונסולה לפרטים", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eאין משימות התחדשות פעילות כדי להפסיק", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aמצב ההשהיה של משימת הקדם-יצירה הוחלף. המצב כעת: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eאין משימות קדם-דור פעיל להפסקה/לא לשימוש.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eאין משימה חדשנית פעילה.", + "iris.bukkit.commandpregen.pregen": "§aהפרסוגן §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aמהירות: §6{value}/s§a ETA: §6{value2}§a מת: §6{value3}§a שיטה: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aמדד מבנה נכתב: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aייבוא כל vanilla & מבנים לתוך §f{value}§a (המשך)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aיבוא שלם: §f{imported}§a structures/objects כתוב, §f{failed}§a נכשל.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7הפניה אותם מרשימת ביום/אזור / מידע, או ריצה /iris structure list {value} כדי לרענן את המדד. לנתח חלקים לשינויים כדי להשפיע.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7נתפס {value} מבנים. מניחים אותם מתוך רשימת \"בני מבנים\" ו- צור מחדש. למחוק structures/*.json להחזיר אותו מחדש.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cלא טעון Iris העולם מצא {value}. הצטרף או ליצור ראשון (החיפוש פועל נגד עולם חי).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cנבחר Iris לעולם אין מנוע גנרטור פעיל.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cאין מבנה איריס \"{structure}\"בחבילה הזאת", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cמבנה \"{structure}התאספו 0 חתיכות (בדיקה startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aמבנה \"{structure}': §f{value}§a חתיכות, טביעת רגל §f{value2}x{value3}§a בלוקים (sampleזרע 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cאין מבנה איריס \"{structure}\"בחבילה הזאת", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cמבנה \"{structure}התאספו 0 חתיכות", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aמקום \"{structure}' ({value} חתיכות) במיקום שלך.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aסטודיו פתיחה ל\"{value}\"חבילה\" (צילום: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cלספק ערכת מימד: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cלא יכול לפתור את החבילה לממד {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aפתיחה VSCode עבור \"{value}\"חבילה", + "iris.bukkit.commandstudio.pack_has_version": "§a\"\"{value}לחבילה יש גרסה: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§a Open כלי חיפוש רעש", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cלא ניתן להוסיף פריטים למנוי וירטואלי בגלל: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aפתיחת מלאי עכשיו!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cרק עובד בתוך Iris עולם!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cאתה צריך להיות או לציין Irisעולם מבוזר!", + "iris.bukkit.commandstudio.opening_map": "§aמפת פתיחה!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "עקבו אחרי Noise גנרטורs", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "עקבו אחרי תזמון אינטרפולטור", + "iris.bukkit.commandstudio.processing_generator_scores": "המונחים: ", + "iris.bukkit.commandstudio.score": "ציון: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aנעשה! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cעליך להיות בעולם Iris כדי ליצור ישויות כראוי. מנסה ליצור אותן בצורה הטובה ביותר האפשרית.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cאין עולם סטודיו פתוח!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cאתה כבר בעולם סטודיו!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aשולח אתכם לעולם הסטודיו!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6עדכון סביבת העבודה של קוד {value}", + "iris.bukkit.commandstudio.updated_code_workspace": "§aסביבת העבודה של קוד פתוח {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cפרויקט בלתי חוקי: {value}. נסו למחוק את קובץ ה- Code-workspace ולנסות שוב.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cאתה חייב להיות בתוך Iris עולם העולם", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "אתה חייב להיות בעולם חג המולד.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "איסוף הנתונים של {value} הסמוך.", + "iris.bukkit.commandstudio.reported": "דווח על: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cאתה חייב לפתוח את השרת GUIs אפשרו בהגדרות!", + "iris.bukkit.commandstudio.players_only": "§cשחקנים בלבד!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cאין עולם סטודיו פתוח!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cאתה חייב להיות בעולם סטודיו!", + "iris.bukkit.commandwhat.material": "חומר: §a{value}", + "iris.bukkit.commandwhat.full": "מלא: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "נא להחזיק בלוק /item", + "iris.bukkit.commandwhat.material_2": "חומר: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "נא להחזיק בלוק /item", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "לאIris ביומיה: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "{value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aאייריס עולמות בלבד", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "תסתכל על כל בלוק, לא בשמים", + "iris.bukkit.commandwhat.material_3": "חומר: §a{value}", + "iris.bukkit.commandwhat.full_2": "מלא: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e * אחסון בלוק (בזזל מסוגל)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* אור חסום מסוגל)", + "iris.bukkit.commandwhat.foliage_block": "§eבלוק Foliage", + "iris.bukkit.commandwhat.decorant_block": "§eחסימה מהירה", + "iris.bukkit.commandwhat.fluid_block": "§e* בלוק נוזלי", + "iris.bukkit.commandwhat.plantable_foliage_block": "§eבלוק Foliage", + "iris.bukkit.commandwhat.solid_block": "§eבלוק מוצק", + "iris.bukkit.commandwhat.found_nearby_markers": "נמצאו {value} מרקים קרובים ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aאייריס עולמות בלבד", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "הקונסולה חייבת לקרוא ביום: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "בדיקת הביום נכשלה: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "biome לא ידוע: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "הקונסולה חייבת לקרוא אזור: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "תצפית האזור נכשלה: {value}", + "iris.modded.irismoddedcommands.unknown_region": "אזור לא ידוע: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "לא ניתן לפתוח קבצים כאן: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "האם לא ניתן למצוא את הקובץ, אולי הוא אינו טעון ישירות מקובץ?", + "iris.modded.irismoddedcommands.could_not_open": "לא יכול לפתוח {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "פתיחה {value} {value2} בעורך שלך.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "הקונסולה חייבת לקרוא לשחקן: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "טלפורט נכשל: ממד {dimensionId} לא טעון.", + "iris.modded.irismoddedcommands.teleporting": "תקשורת {value} כדי {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "לא ניתן לפנות לעולם הראשי, אין מקום לשלוח שחקנים.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "הערכה {count} שחקן(s) {value} כדי {value2}.", + "iris.modded.irismoddedcommands.set_debug": "הגדר bug: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "הגדרות נטען מחדש", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "פקודה זו יכולה לשמש רק על ידי שחקנים (זה בוחן את הפריט שלך).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "היד העיקרית שלך ריקה.", + "iris.modded.irismoddedcommands.hand_x": "יד: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} לא נוצר על ידי Irisראה; /iris info טעון Iris ממדים.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "המימד הנוכחי ({value}) לא נוצר על ידי Iris. שם אחד במפורש: /iris pregen start {radius} ראה; /iris info טעון Iris ממדים.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "משימת קדם כבר פועלת. לעצור את זה קודם עם /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen התחיל {value} של {value2} על ידי {value3} בלוקים {centerX},{centerZ}.{modeNote} קונסולות מתקדמות; ראה /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "חידוש עוצר; סיום האזור הנוכחי...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "אין משימה חדשנית פעילה לעצור.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "אין משימה חדשנית פעילה לעצור / מנה.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "ההתחדשות עכשיו {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "אין משימה חדשנית פעילה.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} על ידי Volmit Software {value2} (Minecraft {value3}), {engines} Iris ממד (s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "מידות טעון: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.biome": "ביומיה: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "בדיקת הביום נכשלה: {value}", + "iris.modded.irismoddedcommands.region": "אזור: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "תצפית האזור נכשלה: {value}", + "iris.modded.irismoddedcommands.cave_biome": "מערת ביום: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "תצפית ביומית לא נכשלה: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "בלוק משטח: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "מיקום: {value} {value2} {value3} (צ'נק {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "פקודה זו יכולה לשמש רק על ידי שחקנים (זה בוחן את הבלוק שאתה מסתכל עליו).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "תראו בלוק, לא השמיים.", + "iris.modded.irismoddedcommands.block_y": "בלוק: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "פקודה זו יכולה לשמש רק על ידי שחקנים (סימנים הופכים לחלקיקים סביבך).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "סריקה ל\"{marker}סמנים סביבך...", + "iris.modded.irismoddedcommands.marker_scan_failed": "סריקות מארקר נכשלו: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "נמצאו{value}סמן (s){marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "biome לא ידוע: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "אזור לא ידוע: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} לא מוגדר במימד!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} לא מוגדר בשום אזור / ביומה אובייקטים מיקומים ({value} המפתחות של האובייקט טעון).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "ניתן להשתמש רק על ידי שחקנים. (המפתח \"{key}לפתור נגד {value} מפתחות אובייקט טעון)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "שם Iris או מבנה יליד לאתר.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "מבנה לא מוכר '{key}'. יש להשתמש בהשלמה באמצעות Tab כדי לבחור מיקום Iris או מבנה native/datapack רשום.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "חיפוש במבנה Native {value} בתוך {NATIVESTRUCTURELOCATERADIUS} צ'אנקים...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "חיפוש עבור Irisמבנה {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "בלתי אפשרי לאתר Irisמבנה {key}הגבלת בטיחות החיפוש בצפיפות הגיעה לפני מלוא 1024רדיוס צ'נק חיפש.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "לא יכול למצוא Irisמבנה {key} בתוך 1024 חלקים.", + "iris.modded.irismoddedcommands.search_failed": "החיפוש נכשל: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "לא יכול למצוא מבנה Native {value} בתוך {NATIVESTRUCTURELOCATERADIUS} חלקים.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "חיפוש במבנה Native {value} נכשל: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "השחקן התנתק לפני שחיפוש המבנה הושלם.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "שינית ממדים לפני שחיפוש המבנה הושלם; הפעל שוב את הפקודה.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "נמצאו {label} ב {targetX} {clampedY} {targetZ}אבל התקשורת נכשלה.", + "iris.modded.irismoddedcommands.teleported_at": "הועבר אל {label} ב {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "זמינות מבנה:{available}הדור הטבעי,{irisPlaced} Irisמקום,{disabled}עם מוגבלויות,{suppressed}הילידים הוחלףIrisמיקום,{unreachableBiomes}שם הספר בלועזית: הביומסה של החבילה{unsupported}מבנים ילידים רשומים ללא תמיכה במימד זה.שימוש בשימוש/iris structure verify למבנה אחד.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "מבנה {key} הוא Iris- מקום ומיקום עם /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "מבנה לא ידוע \"{key}'. זה לא Irisממוקם ולא רשום על ידי vanilla או חבילת נתונים.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "מבנה {value} הוחלף במפורש על ידי Iris מיקום ומיקום עם /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "מבנה Native {value} הוא מופעל, נתמך על ידי מדינת הגנרטור של מימד זה, וניתן לאתרו עם /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "ניתן להשתמש רק על ידי שחקנים. (POI סוג \"{type}\"מקובל\")", + "iris.modded.irismoddedcommands.searching": "חיפוש עבור {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "המנוע של העולם הזה נסגר, חוזר על המימד ונסה שוב.", + "iris.modded.irismoddedcommands.search_failed_2": "החיפוש נכשל: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "לא יכול למצוא {label} בתוך זמן החיפוש.", + "iris.modded.irismoddedcommands.teleported_at_2": "הועבר אל {label} ב {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "המנוע השתנה בעת איתור {label}נסה שוב.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.world_seed": "זרע עולמי: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "זרע מנוע: {value} (מתערב: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "הורדה IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack »{pack}\"התקנה. סוגי המימד המדויקים והביומים המותאמים אישית מצטרפים לאלץ Iris איסוף נתונים בשרת הבא מחדש; הפעל מחדש לפני יצירת עולמות מחבילה זו.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "הורדת החבילה נכשלה {pack} ({downloadSource}ראה קונסולה).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "{value}(s), {value2}/", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "לא ידוע Iris עזרה סעיף: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}סוג={typeKey} פעיל ={activeMin}..{activeMax} הגיוני={value} (חבילה={value2}מנוע לא התחיל; גבהים לא ידועים)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}סוג={typeKey} פעיל ={activeMin}..{activeMax} הגיוני={value} חבילה \"{value2}\"רוצה {packMin}..{packMax} הגיוני={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " אזהרהסוג הממד הפעיל אינו תואם את החבילה. Iris לסרב להתחיל את המנוע העולמי במקום להקפיץ קרקע. לרוץ /iris world enable עולמות חדשים, או /iris datapack install כבר טעון Iris ממדים, ואז מחדש.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "לא Iris מידות טעון.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "הכל {irisLevels} Iris ממד (s) תואם את טווח גובה החבילה שלהם.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}מנוע לא התחיל, עדיין לא יכול להפיק את סוג הממד שלו.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}הדור השלישי נכשל: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "נכשל לכתוב {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "לא Iris ממדים עם מנועי ריצה נמצאו; שום דבר לא הותקן.", + "iris.modded.moddeddatapackcommands.failed_write_2": "נכשל לכתוב {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "תגית: {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "מדד הנתונים העולמי Pack \"{WORLDPACKNAME}\" מסוג Overrides מותקן.שמור את השרת עבור סוגי המימד ליישם.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "המונחים: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth טעינה Bukkit- רק; להתקין אותם באופן ידני world/datapacks אם צריך.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "התקנת חבילות נתונים עולמיות: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "נשלחה חריגת בדיקה אל מדווח השגיאות של Iris (Sentry אם מופעל).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "סריקות רשת נכשלות: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "סריקת זהב כבר פועלת.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "ניתן להשתמש רק על ידי שחקנים. (השרביט הוא פריט פיזי)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "המלאי שלך מלא.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "פו! בניין מזל טוב! (שמאל = פינה 1לחיצה נכונה = פינה 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "ניתן להשתמש רק על ידי שחקנים. (האבק הוא פריט פיזי)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "המלאי שלך מלא.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "לחץ על בלוק לחשוף את האובייקט שהוא שייך לו.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "ניתן להשתמש רק על ידי שחקנים. (עם לכידת בחירתך)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "מימד זה אינו נוצר על ידי Irisאובייקטים חוסכים לתוך חבילת הממד.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "החזיקו את Iris שרביט (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "שום אזור לא נבחר. שמאל / ימין לחץ בלוקים עם שרביט הראשון.", + "iris.modded.moddedobjectcommands.invalid_object_name": "שם אובייקט לא חוקי: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "בחירה גדולה מדי: {volume} בלוקים (מקסימום {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "הקובץ כבר קיים. שימוש בשימוש /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "נכשל להציל את האובייקט: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "להציל {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} בלוקים (s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "אובייקט לא ידוע או ריק: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "הקונסולה חייבת לציין קואורדינטות: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "אתה לא מסתכל על בלוק בתוך {value} בלוקים", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "ההדבקה נכשלה: {value} (שינויים חלקיים נרשמו לביטול)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "מקום {key} ב {value} {value2} {value3} רוט ={rotation} ({value4} לכתוב (s) {value5} לא אוויר{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "החזיקו את Iris שרביט (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "שום אזור לא נבחר.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "הכינו את השרביט שלכם (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "אתה לא מסתכל על בלוק.", + "iris.modded.moddedobjectcommands.position_set": "מיקום {value} להגדיר {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.moddedobjectcommands.hold_your_wand": "החזיקו את השרביט שלכם!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "שום אזור לא נבחר.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "בחירה גדולה מדי עבור אוטומטי-select: {volume} בלוקים (מקסימום {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "בחירה אוטומטית השלמת: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "אובייקט לא ידוע: {key}", + "iris.modded.moddedobjectcommands.object_size": "גודל אובייקטים: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "בלוקים בשימוש: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== בלוקים באובייקט==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} מדינת בלוק (s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "אובייקט לא ידוע: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "גודל האובייקט הנוכחי: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "גודל אובייקטים חדש: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "לאובייקט אין קובץ עומס; לא יכול להמשיך את הרקייק.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "נכשל להציל את האובייקט {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "הגעה בלתי חוקית: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "שום אובייקטים לא מתאימים: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "מטבוליזם [reach={reach}{value}] תור {value2} (אובייקטים)", + "iris.modded.moddedobjectcommands.nothing_undo": "שום דבר לא לעשות.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "בוטלו {reverted} הדבקות.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "תיקיות לא נמצאו: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "אין חבילות לאמת תחת {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pack »{pack}\"לא נמצא מתחת {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "אימות {value} חבילות(s)...", + "iris.modded.moddedpackcommands.validation_failed": "אימות של \"{value}\"נכשל: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "אימות מוחלט. חבילות שבורות: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pack »{pack}\"לא נמצא מתחת {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pack »{pack}\"לא נמצא מתחת {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "לא נרשמו תוצאות אימות. לרוץ /iris pack validate קודם.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (בלוק={value2}אזהרות ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "שום תוצאה של \"{pack}'. לרוץ /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Pack »{value}\"הוא חזק. (אזהרות={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Pack »{value}\"הוא פגום:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... ו {value} עוד אזהרה(s)", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "לא נמצאו מועמדים לחבילה{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "תצוגה מקדימה של החבילה{pack}': {value} מועמד(s) לא השתנו קבצים.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "לרוץ /iris pack cleanup {pack} apply לאחר סריקה חדשה.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "לא נמצאו מועמדים לחבילה{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "המונחים: {value} מועמד ניקוי (s) {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "אין מה להחזיר לחבילה{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "שחזור תצוגה מקדימה {value}: {value2} קובץ(s) לא השתנו קבצים.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "שחזור נחסם {value} יעד קיים (s)", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "לרוץ /iris pack restore {pack} apply לשחזר לאחר בדיקת סכסוך חדשה.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "החזרה נדחתה כי {value} מטרות (כבר קיימות).", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "אין מה להחזיר לחבילה{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "שחזור {value} קובץ(s) {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... ו {value} יותר.", + "iris.modded.moddedregen.regen_is_already_running": "גן כבר רץ.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "מימד זה אינו נוצר על ידי Iris. הפעל את זה מתוך Iris ממד כך ניתן לפתור את החבילה.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "מדד מבנה נכתב: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "אין מבנה איריס \"{key}\"בחבילה הזאת", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "מבנה \"{key}התאספו 0 חתיכות (בדיקה startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "מבנה \"{key}': {value} חתיכות, טביעת רגל {value2}x{value3} בלוקים (sampleזרע 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "פקודה זו יכולה לשמש רק על ידי שחקנים (המבנה נאסף בעמדה שלך).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "אין מבנה איריס \"{key}\"בחבילה הזאת", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "מבנה \"{key}התאספו 0 חתיכות", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "המקום נכשל: {value} (שינויים חלקיים שנרשמו לאדו)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "מקום \"{key}' ({value} חתיכות, {value2} תגית(s){tileNote}) במיקום שלך. /iris object undo לחזור.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "לספק ערכת מימד: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "פתח את כלי חיפוש רעש בתצוגת השרת.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "מימד זה אינו נוצר על ידי Irisלרוץ /iris studio noise מתוך A Iris ממד כדי לפתור גנרטורים, או להמיט את שם הגנרטור.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "גנרטור לא ידוע{generatorKey}\"בחבילה {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "פתח את כלי חיפוש רעש עבור גנרטור{value}(זה{seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "ממד זה אינו נוצר על ידי Iris; לעמוד בממד Iris (או סטודיו) ולנהל /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "פתח את מפת החזון {value} בתצוגת השרת.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "נכשל לכתוב מקום עבודה {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "סביבת העבודה מחדש: {value} עם JSON chemas עבור Auto Complete.", + "iris.modded.moddedstudiocommands.could_not_open": "לא יכול לפתוח {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "פתיחה {value} בעורך שלך.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "מימד זה אינו נוצר על ידי Irisלציין שם חבילה במפורש.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pack »{name}\"לא נמצא מתחת {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "לספק ערכת מימד: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "סטודיו פתיחה ל\"{pack}(זה {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pack »{pack}\"חסר; מוריד IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Pack »{pack}לא ניתן להוריד את השם ולנסות /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Pack »{pack}\"אין לו dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "סטודיו פתוח נכשל: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "זריקת סטודיו נכשלה: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "סטודיו הקונסולה פתוח: {dimensionId} עכשיו רץ \"{pack}זרע {seed} (הופנה מהדף לא iris-dimensions.json והבהירו מחדש).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "היכנס עם: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "עקבו אחרי: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "הסר את זה עם: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "זריקת סטודיו נכשלה: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "סטודיו פתוח: {dimensionId} עכשיו רץ \"{pack}זרע {seed}. שימוש בשימוש /iris studio close מתי נעשה.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "אין לכם סטודיו פתוח. שימוש בשימוש /iris studio open קודם.", + "iris.modded.moddedstudiocommands.studio_close_failed": "סטודיו נסגר: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "סטודיו סגור: {dimensionId} הובהר, ללא עומס ונתוני האזור שלו נמחקו.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "אין כרגע ממדי סטודיו פתוחים.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "ממד סטודיו פעיל (s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}תגית: Pack{value2}זרע {value3} הבעלים {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "רק שחקנים יכולים להשתמש בפקודה זו.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "אין לכם סטודיו פתוח. שימוש בשימוש /iris studio open קודם.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "מימד האולפן כבר לא טעון. שימוש בשימוש /iris studio open שוב.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "הועבר לסטודיו שלך ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Pack »{value}\"אין לו dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"\"{value}לחבילה יש גרסה: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "שם הפרויקט \"{nameRaw}(הופנה מהדף A-z, 0-9- ו-)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Pack »{name}\"כבר קיים {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "יצירת פרויקט \"{name}מתוך תבנית \"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "תבנית \"{template}\"לא מותקנים; הורדת IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "תבנית \"{template}\"לא ניתן להוריד; להתקין חבילה עם dimensions/{template2}.json קודם.", + "iris.modded.moddedstudiocommands.created_project_at": "הפרויקט '{name}' נוצר ב-{value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "עריכהעריכה dimensions/{name}.json שאר החבילה. A VSCode סביבת עבודה עם JSON schema Auto Complete נוצר; פתח אותו או הרצה מחדש /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "יצירת פרויקטים נכשלה: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "ממד אריזה »{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "חבילה: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "אריזה נכשלה: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "ניתן להשתמש בפקודה זו רק על ידי שחקנים (המפלינג ממוקם במיקום שלך).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "ממד זה לא נוצר על ידי Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "חלוקת האזור ב {value}x{value2} חלקים סביבך...", + "iris.modded.moddedstudiocommands.rarity": "{key}תגית: rarity={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "האזור נכשל: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Pack »{pack}\"לא מותקנים; הורדת IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Pack »{pack}לא ניתן להוריד את השם או להתקין אותו עם /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "נכשל להזרק Iris עולם »{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "נוצר Iris עולם העולם {dimensionId} מתוך \"חבילה\"{pack}מימד \"{packDimension}(זה {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "הוא חי עכשיו ומופץ מחדש על כל סטארט-אפ. טלפורט עם /iris world status או פורטל, אין צורך מחדש.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "נכשל להזרק Iris עולם ראשון: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris העולם העיקרי שנקבע {dimensionId} (חבילה{pack}מימד \"{packDimension}זרע {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "לא ניתן להחליף בזמן ריצה את מחולל העולם העליון של vanillaה, ולכן פעולה זו אינה יוצרת מחדש את העולם העליון הקיים.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "במקום, {dimensionId} עכשיו הוא העולם הראשון מוגדר: שחקנים בעולם של vanilla מתכנסים שם על מנת להצטרף, וזה מחדש זריקות על כל סטארט-אפ.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris העולם המרכזי התנקה. העולם שומר על הגנרטור הנוכחי שלו; לערוך server.properties סוג וחדש מחדש כדי לשנות אותו בחזרה.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "זרע לא חוקי \"{seedRaw}'. השתמש במספר או ב'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Pack »{pack}\"לא מותקנים; הורדת IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Pack »{pack}לא ניתן להוריד את השם או להתקין אותו עם /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Pack »{pack}\"עדיין לא מוכן (הטעינה או אימות). נסו שוב את הפקודה ברגע אחד.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "נכשל לכתוב server.properties• בדוק הרשאות קובץ ולהגדיר באופן ידני סוג ברמה.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris העולם העיקרי מוגדר ל\"{pack}' (preset {preset}זרע {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties סוג הרמה הוא עכשיו {preset}. על העולם הבא מחדש את עולם העל, הרשת והסוף מתחדש כמו זה. Iris עולם", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "נתוני שחקן (מלאים, Progresss, סטטינים) נשמרים; השטח הקיים בממדים אלה מוחלף. זה חל פעם אחת.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart הוא מופעל - לעצור את השרת עכשיו כך שחתוף ההפעלה מחדש שלך מחזיר אותו לעולם הראשי החדש.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "שמור את השרת עכשיו כדי ליצור אותו. (הגדר mainWorldAutoRestartהמונחים: modded.json צריך Iris עצרו את השרת עבורכם.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "מסרב ליצור עולם{dimensionId}באמצעות Pack{pack}\"כי אישור נדרש נכשל:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "לתקן את החבילה ולרוץ /iris pack validate {pack} לתקן.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pack »{pack}\"לא נמצאו מתחת {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Pack »{pack}\"לא מכיל dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "הפניה לא חוקית לחבילה '{pack}{value}'. יש להשתמש ב-pack או ב-pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "זרע לא חוקי \"{seedRaw}'. השתמש במספר או ב'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "נכשל להסיר Iris עולם »{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris עולם »{dimensionId}\"לא היה טעון; הנקה את כניסת הרישום המתמדת שלה ומחקה את הנתונים השמורים / המנופים שלו.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris עולם »{dimensionId}\"לא היה טעון; הנקה את כניסת הרישום המתמשכת שלו. המידע העולמי על הדיסק נשמר.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "המונחים: Iris עולם »{dimensionId}\": פינוי, ללא עומס, נתונים של גוש/Mantle שנמחקו ונפילו ממרשם הסטארט-אפ.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "מוגבלות Iris עולם »{dimensionId}\": פינוי, לא טעון ונפל מרישום הסטארט-אפ.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "הנתונים העולמיים על הדיסק נשמרים, ניתנים לזיהוי מחדש /iris world enable {dimensionId} או למחוק אותו עם /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "טעון Iris רמה: {value} -> חבילה »{value2}מימד \"{value3}'", + "iris.modded.moddedworldcommands.primary_world": "עולם ראשוני: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "לא Iris המידות כבר טעון. צור אחד עם /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "טעון Iris ממדים: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "שימוש בשימוש /iris world create להזריק אחד מבלי להתחיל מחדש.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "הורד הורדה & ניהול יבוא נתונים חיצוני (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "הורד/עדכון כל חבילת נתונים המופיעה במימד החבילהdatapackImportsולהתקין אותו לתוך העולם כך שהמבנים שלו רשומים כמו vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "הפעלה מחדש השרת כאשר ערכות נתונים חדשות מותקנות (נדרש עבור מבנים חדשים להירשם וליצור)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "רשימת ייבוא datapack והגרסאות המותקנות שלהם", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "להסיר חבילת נתונים מותקנת על ידי id (גם למחוק אותה URL מתוך datapackImports כדי להשאיר את זה נעלם)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "חבילת הנתונים id (שם כפול) מוצג על ידי /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris מנהל עולמי", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "קבל טעון TectonicPlates הרוזן", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "שלח יוצא מן הבחינה לשולח", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "האש יצרה פלט בלוק של אזור קבוע עבור בדיקות determin / זהות", + "iris.director.commanddeveloper.param.world_hash": "העולם שיש", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "רדינוס בחלקים סביב המרכז", + "iris.director.commanddeveloper.param.center_chunk_x": "מרכז X", + "iris.director.commanddeveloper.param.center_chunk_z": "מרכז Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "עדכון חבילת העולם (לא בטוח!)", + "iris.director.commanddeveloper.param.world_update": "העולם לעדכן", + "iris.director.commanddeveloper.param.pack_install_into_world": "החבילה להתקנה לעולם", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "הקפד לעשות גיבוי & קראו קודם כל את האזהרות!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "צריך Iris הורד את החבילה שוב בשבילך", + "iris.director.commanddeveloper.director.test": "מבחן", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "כל הצלחת הטקטונית במקום חלק אחד", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "קובץ הזבל תחת plugins/Iris/dump (pv.*)", + "iris.director.commanddeveloper.director.test_2": "מבחן", + "iris.director.commanddeveloper.param.pack_bench": "החבילה לספסל", + "iris.director.commanddeveloper.param.radius_regions": "רדוס באזורים", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "פתוח GUI תוך ציון", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "לשדרג לעוד Minecraft גירסה", + "iris.director.commanddeveloper.param.version_upgrade": "הגרסה לשדרג", + "iris.director.commanddeveloper.director.test_3": "מבחן", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "התיקיה העולמית לסרוק עבור קבצי אזור .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "למחוק בלוקים סמוכים ל-בדיקה חוזרת", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "רדינוס בחלקים סביב החלק הנוכחי שלך", + "iris.director.commanddeveloper.director.test_4": "מבחן", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "למחוק ולחדש חלקים סמוכים במקום באמצעות דור Iris", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "רדיוס של גושים סמוכים", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "יוצר לתוך מאגרים (ללא עולם כותב) ו hash חוסם +biomes; ללכוד קובץ זהב או אימותים נגד קיים. איפוס mantle באזור הסריקה - להשתמש בעולמות מבחן חד פעמי.", + "iris.director.commanddeveloper.param.world_scan": "העולם לסרוק", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "רדינוס בחלקים סביב המרכז", + "iris.director.commanddeveloper.param.center_chunk_x_2": "מרכז X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "מרכז Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "מחיקת נתונים בתחום הסריקה תחילה להתחדשות מלאה מאפס", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "דורות מקבילים; 1 המונחים: order-dependence test", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "כמו כן, לזרוק מלא קופות ללא אוויר עבור דיפרינג לא מקוון", + "iris.director.commandedit.director.edit_something": "עריכה משהו", + "iris.director.commandedit.director.edit_biome_you_specified": "לערוך את biome שציינת", + "iris.director.commandedit.param.biome_edit": "הביום לערוך", + "iris.director.commandedit.director.edit_region_you_specified": "לערוך את האזור שציינת", + "iris.director.commandedit.param.region_edit": "האזור לערוך", + "iris.director.commandedit.director.edit_dimension_you_specified": "לערוך את הממד שציינת", + "iris.director.commandedit.param.dimension_edit": "המימד לערוך", + "iris.director.commandfind.director.iris_find_commands": "Iris מצא פקודות", + "iris.director.commandfind.director.find_biome": "מצא ביום", + "iris.director.commandfind.param.biome_look": "הביום לחפש", + "iris.director.commandfind.param.should_you_be_teleported": "אם אתה צריך לטלפורט", + "iris.director.commandfind.director.find_region": "מצא אזור", + "iris.director.commandfind.param.region_look": "האזור לחפש", + "iris.director.commandfind.param.should_you_be_teleported_2": "אם אתה צריך לטלפורט", + "iris.director.commandfind.director.find_point_interest": "מצא נקודה של עניין.", + "iris.director.commandfind.param.type_poi_look": "סוג PoI לחפש.", + "iris.director.commandfind.param.should_you_be_teleported_3": "אם אתה צריך לטלפורט", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "מציאת מבנה (מפתח vanilla כמו minecraft:village_plains או minecraft:strongholdמפתח מבנה iris מיובא)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "המבנה לחפש (למשל.minecraft:village_plains, minecraft:stronghold, Minecraft העיר העתיקה", + "iris.director.commandfind.director.find_object": "מצא אובייקט", + "iris.director.commandfind.param.object_look": "המטרה לחפש", + "iris.director.commandfind.param.should_you_be_teleported_4": "אם אתה צריך לטלפורט", + "iris.director.commandiris.director.basic_command": "פיקוד בסיסי", + "iris.director.commandiris.director.create_new_world": "ליצור עולם חדש", + "iris.director.commandiris.param.name_world_create": "שם העולם ליצור", + "iris.director.commandiris.param.dimension_pack_create_world_with": "המימד / החבילה ליצירת העולם עם", + "iris.director.commandiris.param.seed_generate_world_with": "הזרע ליצור את העולם עם", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "בין אם להשתמש בעולם באופן אוטומטי כעולם הראשי", + "iris.director.commandiris.director.teleport_another_world": "טלפורט לעולם אחר", + "iris.director.commandiris.param.world_teleport": "העולם לטלפורט", + "iris.director.commandiris.param.player_teleport": "שחקן לטלפורט", + "iris.director.commandiris.director.print_version_information": "מידע הדפסה", + "iris.director.commandiris.director.benchmark_pack": "Benchmark aחבילה", + "iris.director.commandiris.param.dimension_benchmark": "ממד לאינדקס", + "iris.director.commandiris.director.print_world_height_information": "הדפס מידע עולמי", + "iris.director.commandiris.director.check_access_all_worlds": "בדוק גישה לכל העולמות.", + "iris.director.commandiris.director.remove_iris_world": "להסיר Iris עולם העולם", + "iris.director.commandiris.param.world_remove": "העולם להסיר", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "בין אם להסיר גם את התיקיה (אם להגדיר שקר, פשוט לא לטעון את העולם)", + "iris.director.commandiris.director.toggle_debug": "תגית: debug", + "iris.director.commandiris.director.download_project": "הורד פרויקט", + "iris.director.commandiris.param.pack_download": "החבילה להוריד", + "iris.director.commandiris.param.branch_download_from": "הענף להורדה", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "בין אם לא לנסח את החבילה עם ההורדה", + "iris.director.commandiris.director.get_metrics_your_world": "קבל מדדים לעולם שלך", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "קובץ תצורה טעינה מחדש (זה נעשה גם באופן אוטומטי)", + "iris.director.commandiris.director.unload_iris_world": "פריקה a Iris העולם העולמי", + "iris.director.commandiris.param.world_unload": "העולם לנפץ", + "iris.director.commandiris.director.load_iris_world": "לטעון Iris העולם העולמי", + "iris.director.commandiris.param.name_world_load": "שם העולם לטעון", + "iris.director.commandiris.director.evacuate_iris_world": "להעריך עולם איריס", + "iris.director.commandiris.param.evacuate_world": "להעריך את העולם", + "iris.director.commandobject.director.iris_object_manipulation": "Iris מניפולציה", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "פתח עולם סטודיו אובייקט (רשת של כל ממד אובייקט אופציונלי, ברירת מחדל לכל הלהקות)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "ממד אופציונלי שאובייקט שלו לארוז; השמטה כדי לאסוף חפצים מכל חבילה", + "iris.director.commandobject.param.seed_generate_studio_with": "הזרע ליצור את הסטודיו עם", + "iris.director.commandobject.director.check_composition_object": "בדוק את ההרכב של אובייקט", + "iris.director.commandobject.param.object_analyze": "המטרה לנתח", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "לחץ על אובייקט לגודלו המינימלי", + "iris.director.commandobject.param.object_shrink": "המטרה לכווץ", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "לגדל ענפים אורגניים באמצעות הקאנופי, כך שכל עלה שורד את דעיכה vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "מפתח אובייקטים, עצים/), או דרך מערכת הקבצים", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "ייבוש = אמת מנתח רק, לא כותב כלום", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "אורך ענף מקסימלי בלוקים מן העץ הקיים; אשכולות עלה מרוחקים יותר מצופים במקום. הגעה =0 גדל ללא הגבלה", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "להמיר קבצי .schem בתיקיה 'convert' לקובץ.iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "קבל אבקה שמגלה חפצים", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "חוזה בחירה המבוססת על כיוון החיפוש שלך", + "iris.director.commandobject.param.amount_inset_by": "הסכום להתחיל", + "iris.director.commandobject.director.set_point_1_look": "נקודה 1 להסתכל", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "בין אם להשתמש במיקום הנוכחי שלך, או איפה אתה מסתכל", + "iris.director.commandobject.director.set_point_2_look": "נקודה 2 להסתכל", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "בין אם להשתמש במיקום הנוכחי שלך, או איפה אתה מסתכל", + "iris.director.commandobject.director.paste_object": "הדבק אובייקט", + "iris.director.commandobject.param.object_paste": "האובייקט להדבקה", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "בין אם לא לערוך את האובייקט (צריך להחזיק שרביט)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "כמות מעלות לסובב", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "הגורם שבאמצעותו לדרג את מיקום האובייקט", + "iris.director.commandobject.param.scale_interpolator_use": "המנטרול בקנה מידה לשימוש", + "iris.director.commandobject.director.save_object": "להציל אובייקט", + "iris.director.commandobject.param.dimension_store_object": "הממד לאחסון האובייקט", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "הקובץ לאחסון זה, יכול להשתמש / עבור תיקיות משנה", + "iris.director.commandobject.param.overwrite_existing_object_files": "קובצי אובייקט קיימים", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "שימוש במורשת TileState הסדר אם אפשר", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "שינוי בחירה בכיוון ההסתכלות שלך", + "iris.director.commandobject.param.amount_shift_by": "הסכום להשתנות על ידי", + "iris.director.commandobject.director.undo_number_pastes": "בטל מספר הדבקות", + "iris.director.commandobject.param.amount_pastes_undo": "מספר ההדבקות לביטול", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "מקבל אובייקט ותופס את ההווה WorldEdit בחירה.", + "iris.director.commandobject.director.get_object_wand": "קבל אובייקט שרביט", + "iris.director.commandobject.director.autoselect_up_down_out": "באופן אוטומטי בחר למטה &", + "iris.director.commandobject.director.autoselect_up_out": "בחירה אוטומטית למעלה & בחוץ", + "iris.director.commandpack.director.pack_validation_maintenance": "אימות חבילה ותחזוקה", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "אימות חבילה (או כל החבילה) ותוצאות publish", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "שם התיקיה של הלהקה כדי לאמת (לעזוב ריק לכולם)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "המונחים: non-resource ניקוי", + "iris.director.commandpack.param.pack_folder_name_clean": "שם החבילה לנקות", + "iris.director.commandpack.param.preview_apply": "תצוגה מקדימה או", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "סקירה או החל שיקום של רעידת האדמה האחרונה", + "iris.director.commandpack.param.pack_folder_name_restore": "שם החבילה לשחזר", + "iris.director.commandpack.param.preview_apply_2": "תצוגה מקדימה או", + "iris.director.commandpack.director.show_cached_validation_status_pack": "הצג מצב אימות קבוע עבור חבילה", + "iris.director.commandpack.param.pack_folder_name": "שם הלהקה", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "קבל את שלך Iris עולמות!", + "iris.director.commandpregen.director.pregenerate_world": "לקדם עולם", + "iris.director.commandpregen.param.radius_pregen_blocks": "רדיוס של טרוםגן בלוקים", + "iris.director.commandpregen.param.world_pregen": "העולם כדי לקדם", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "מיקום המרכז של pregen. השתמש \"אני\" למיקום הנוכחי שלך", + "iris.director.commandpregen.param.open_iris_pregen_gui": "פתח את Iris תגית: gui", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "ליצור רק נתח אחד בכל פעם", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "לעצור את משימת ההתחדשות הפעילה", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Puse / המשך משימת קדם-דור פעיל", + "iris.director.commandpregen.director.show_active_pregeneration_status": "הצג את מצב ההתחדשות הפעיל", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris כלי מבנה (אינדקס, לייבא מידע)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "חידוש structure-index.json כל vanilla, Datapack & מבנים", + "iris.director.commandstructure.param.dimension_whose_pack_index": "הממד שחבילתו לאינדקס", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "ייבוא כל מבנה - vanilla ו- חבילות נתונים - לתוך החבילה הזאתIrisמשאבים, תמיד המונחים: jigsaw מבנים (בתי מלון ב-Jigsaw)/גרפים, ייבוא כל תבניתNBTכאובייקט, ומאגד את המבנים הרב-זמניים (ספינות, פורטלים הרוסים, חורבות האוקיינוס, מאובנים נטור).לרוץ אחרי שחתמה על חבילת נתונים והפעלה מחדש.לנתח או להשתמש בעולם טרי עבור עותקים מיובאים למקום.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "המימד שהחבילה שלו תבוא", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "לתפוס מבנים מבוססי קוד שאין להםNBTתבנית (בקתה איגלו, וכו ') לעריכהIrisחפצים על ידי יצירת כל אחד בעולם של שריטות וקריאה בחזרה את בלוקים.דלג מבנים שכבר באים כמבנה, מבנים רחבים יותר/גבוה יותר מאשר כובע ללכוד (חזקות, ארמונות, מונומנטים להישאר vanilla), וכל דבר שלא יניב בעולם שטוח.כל מבנה שנלכד הופך לאחדIrisמבנה שאתה יכול להציב מביום/האזור האזורי/רשימת המבניםלרוץ באופן אוטומטי כמו המעבר האחרון של/iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "המימד שהחבילה שלו לוכדת", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "לבדוק את זכאות המבנה והאתר Irisמבנים ללא הפעלת חסימת חיפושים מקומיים.", + "iris.director.commandstructure.param.dimension_verify": "הממד כדי לאמת", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "רדיוס חיפוש בחלקים סביב המקור (הגר הוא הרבה יותר איטי)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "לפתור גרף Jigsaw של מבנה iris ודיווח & גבולות", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "המימד שהחבילה שלו מחזיקה במבנה", + "iris.director.commandstructure.param.iris_structure_key_inspect": "מפתח מבנה iris לבדוק", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "להרכיב ולמקם מבנה איריס במיקום שלך (בדיקת סטודיו)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "המימד שהחבילה שלו מחזיקה במבנה", + "iris.director.commandstructure.param.iris_structure_key_place": "מפתח המבנה של iris", + "iris.director.commandstudio.director.studio_commands": "פיקוד סטודיו", + "iris.director.commandstudio.director.open_new_studio_world": "פתח עולם אולפן חדש", + "iris.director.commandstudio.param.dimension_pack_open_studio": "חבילת המימד לפתוח סטודיו", + "iris.director.commandstudio.param.seed_generate_studio_with": "הזרע ליצור את הסטודיו עם", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "יבוא עצי vanilla, פטריות & אובייקטים (ו structures/jigsaw) מהשרת אל תוך חבילת objects/vanilla התיקיה", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "חבילת המימד לייבוא תוכן vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "כמה גרסאות לתפוס לעץ / object", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "יבוא vanilla & נתוניםpack structures/jigsaw לתוך החבילה", + "iris.director.commandstudio.director.open_vscode_dimension": "פתוח VSCode למימד", + "iris.director.commandstudio.param.dimension_open_vscode": "הממד להיפתח VSCode עבור", + "iris.director.commandstudio.director.close_open_studio_project": "פרויקט סטודיו פתוח", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "החלפת מצב לוח הניקוד לאיתור באגים של Studio", + "iris.director.commandstudio.director.create_new_studio_project": "יצירת פרויקט אולפן חדש", + "iris.director.commandstudio.param.name_this_new_iris_project": "שם חדש זה Iris פרויקט", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "העתק את התוכן של פרויקט קיים בתיקיית החבילה שלך ולהשתמש בו כתבנית בפרויקט חדש זה.", + "iris.director.commandstudio.director.get_version_pack": "קבלו את הגרסה של חבילה", + "iris.director.commandstudio.param.dimension_get_version": "הממד מקבל את הגרסה של", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "פתח את חוקר הרעש (External GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "גנרטור החבילה האופציונלית לתצוגה מקדימה", + "iris.director.commandstudio.param.seed_preview_generator_with": "הזרע לתצוגה מקדימה של הגנרטור עם", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "הראה ליז אם החזה היה כאן", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "שילוב מהיר של פריטים במלאי וירטואלי (אולי לגרום לירידה בביצועים)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "בין אם או לא לייחס את המלאי הנוכחי פתוח (אם שקר, נקה נפתחת מלאי)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "חישוב ההזדמנות לכל אזור לייצר", + "iris.director.commandstudio.param.radius_chunks": "רדיוס בחלקים", + "iris.director.commandstudio.director.render_world_map_external_gui": "מפת עולם (External GUI)", + "iris.director.commandstudio.param.world_open_generator": "העולם לפתוח את הגנרטור", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "חבילה ממד לתוך פורמט דחוס", + "iris.director.commandstudio.param.dimension_pack_compress": "ערכת המימד לדחוס", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "בין אם לא או לא לעקוף את החבילה", + "iris.director.commandstudio.param.whether_not_minify_pack": "בין אם או לא ליישר את החבילה", + "iris.director.commandstudio.director.profiles_performance_dimension": "פרופיל הביצועים של מימד", + "iris.director.commandstudio.param.dimension_profile": "הממד לפרופיל", + "iris.director.commandstudio.director.spawn_iris_entity": "צור ישות Iris", + "iris.director.commandstudio.param.entity_spawn": "הישות ליצירה", + "iris.director.commandstudio.param.location_spawn_entity_at": "המיקום שבו תיווצר הישות", + "iris.director.commandstudio.director.teleport_active_studio_world": "טלפורט לעולם האולפן הפעיל", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "עדכון הפרויקטים שלך VSCode סביבת העבודה", + "iris.director.commandstudio.param.dimension_update_workspace": "הממד לעדכן את סביבת העבודה", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "לתפוס IGenData דיווח על נתחים סמוכים", + "iris.director.commandwhat.director.iris_what": "Iris מה?", + "iris.director.commandwhat.director.what_is_my_hand": "מה יש לי ביד?", + "iris.director.commandwhat.director.what_biome_am_i": "איזה ביום אני?", + "iris.director.commandwhat.director.what_region_am_i": "באיזה אזור אני?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "איזה בלוק אני מסתכל?", + "iris.director.commandwhat.director.show_markers_chunk": "הופעות ב-Digital", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "שם סמן כגון cave_floor או cave_ceiling", + "iris.modded.help.entry.command.version": "מידע הדפסה", + "iris.modded.help.entry.command.info": "רשימה טעון Iris מידות ופרטים לארוז", + "iris.modded.help.entry.command.what": "עקבו Iris ביום, האזור, הביום המערות, פני השטח ונתח במיקום שלך, הבלוק שאתה מסתכל עליו, הפריט המוחזק שלך או סמנים סמוכים", + "iris.modded.help.entry.group.find": "מצא וטלפורט Iris ביומסה, אזורים, חפצים Iris מבנים מקומיים ונקודות עניין", + "iris.modded.help.entry.command.tp": "טלפורט בעצמך או שחקן בשם לתוך טעון Iris מימד", + "iris.modded.help.entry.command.evacuate": "שגר את כל השחקנים מממד Iris לנקודת הספאון של העולם הראשי", + "iris.modded.help.entry.command.seed": "הצג מידע על ה-seed של העולם והמנוע", + "iris.modded.help.entry.command.debug": "עקבו אחרי Iris debug bug , שמירה settings.json", + "iris.modded.help.entry.command.reload": "המונחים טעינה מחדש settings.json (גם חם כל 3s)", + "iris.modded.help.entry.command.download": "הורד פרויקט חבילה", + "iris.modded.help.entry.command.metrics": "הדפסת דור מדדים עבור הנוכחי שלך Iris מימד", + "iris.modded.help.entry.command.regen": "למחוק ולחדש חלקים סמוכים במקום", + "iris.modded.help.entry.group.pregen": "עקבו אחרי a Iris מימד", + "iris.modded.help.entry.command.wand": "קבל Iris שרביט", + "iris.modded.help.entry.group.object": "כלי שרביט אובייקטים, שמירה, הדבקה, ניתוח וביטול", + "iris.modded.help.entry.group.edit": "חבילות פתוחות, Zone מימד Json קבצים בעורך שולחן העבודה שלך", + "iris.modded.help.entry.command.create": "ליצור ולהזריק מתמשך Iris תגית: PackdimensionKey בחירת מד החבילה הספציפי", + "iris.modded.help.entry.group.studio": "יצירת פרויקטים, אריזה ודיווחים", + "iris.modded.help.entry.group.pack": "אימות חבילה ותחזוקה", + "iris.modded.help.entry.group.world": "זמן ריצה Iris יצירת ממד, פינוי ומעמד", + "iris.modded.help.entry.group.datapack": "חבילת נתונים עולמית להתקין ועוזרי סטטוס", + "iris.modded.help.entry.group.structure": "Iris מדד מבנה, מידע וכלי מיקום", + "iris.modded.help.entry.command.goldenhash": "לייצר בלוק determins עבור מבחן תאימות", + "iris.modded.help.entry.group.developer": "אבחון למפתחים: בדיקת Sentry, ממשקי רשת וסריקת קובצי אזור", + "iris.modded.help.entry.command.biome": "מצא Iris ביו", + "iris.modded.help.entry.command.region": "מצא Iris האזור האזורי", + "iris.modded.help.entry.command.object": "מצא מיקום אובייקט", + "iris.modded.help.entry.command.structure": "מצא מבנה Iris-הוצב או Native/pack", + "iris.modded.help.entry.command.poi": "מצא נקודה תומכת של עניין", + "iris.modded.help.entry.command.biome_2": "פתח ג'ייסון ביומה בעורך שולחן העבודה שלך; שום מפתח לא פותח את הביום במיקום שלך", + "iris.modded.help.entry.command.region_2": "פתח ג'ייסון באזור בעורך שולחן העבודה שלך; שום מפתח לא פותח את האזור בעמדתך", + "iris.modded.help.entry.command.dimension": "פתח את קובץ ה-JSON של הממד בחבילה הנוכחית בעורך שולחן העבודה", + "iris.modded.help.entry.command.start": "התחל יצירה מוקדמת; רדיוס בלוקים, כאבי מחסומים הניתנים לחזרה על ידי ברירת מחדל, מרכז באמצעות \"atat\" דגלים יוצרים בכל סדר", + "iris.modded.help.entry.command.stop": "לעצור את משימת ההתחדשות הפעילה", + "iris.modded.help.entry.command.pause": "Puse או קורות חיים", + "iris.modded.help.entry.command.status": "הצג מצב קדם", + "iris.modded.help.entry.command.wand_3": "קבל Iris שרביט", + "iris.modded.help.entry.command.dust": "קבל אבק שמגלה מיקום", + "iris.modded.help.entry.command.save": "שמור את נפח שרביט שנבחר כאובייקט", + "iris.modded.help.entry.command.paste": "הדבק אובייקט במיקומך או במיקום נתון, עם סיבוב אופציונלי", + "iris.modded.help.entry.command.expand": "להרחיב את בחירת השרביט לכיוון המראה שלך", + "iris.modded.help.entry.command.contract": "תתקשרו עם הבחירה לכיוון המראה שלכם", + "iris.modded.help.entry.command.shift": "לשנות את בחירת השרביט לכיוון המראה שלך", + "iris.modded.help.entry.command.position1": "נקודת בחירה 1", + "iris.modded.help.entry.command.position2": "נקודת בחירה 2", + "iris.modded.help.entry.command.x_y": "באופן אוטומטי לבחור למעלה ובחוץ", + "iris.modded.help.entry.command.x_y_2": "באופן אוטומטי לבחור למטה ולצאת", + "iris.modded.help.entry.command.analyze": "תגית: object", + "iris.modded.help.entry.command.shrink": "לחץ על אובייקט לגודלו המינימלי", + "iris.modded.help.entry.command.plausibilize": "לגדל ענפים כך שהעץ ישרוד את vanilla", + "iris.modded.help.entry.command.undo": "בטל אובייקטים שהודבקו", + "iris.modded.help.entry.command.create_2": "יצירת פרויקט חדש", + "iris.modded.help.entry.command.package": "חבילה ממד לתוך פורמט דחוס", + "iris.modded.help.entry.command.version_2": "הדפסה גרסת חבילה", + "iris.modded.help.entry.command.regions": "המונחים: Near Zone התפלגות", + "iris.modded.help.entry.command.open": "פתח ממד סטודיו זמני עבור חבילה", + "iris.modded.help.entry.command.close": "סגור את מימד האולפן הפתוח ומחק את עולמו", + "iris.modded.help.entry.command.tpstudio": "טלפורט לממד האולפן הפתוח", + "iris.modded.help.entry.command.status_studio": "הצג את מימד האולפן הפתוח ואת החבילה", + "iris.modded.help.entry.command.noise": "פתח את כלי חיפוש רעש GUI בתצוגת השרת", + "iris.modded.help.entry.command.map": "פתח את מפת החזון GUI בתצוגת השרת", + "iris.modded.help.entry.command.vscode": "לשחזר את מרחב העבודה של קוד עבור חבילה ולפתוח אותו בעורך שולחן העבודה שלך", + "iris.modded.help.entry.command.update": "עקבו אחרי .חלל עבודה קוד עבורחבילה", + "iris.modded.help.entry.command.importvanilla": "תגית: vanilla יבוא", + "iris.modded.help.entry.command.validate": "אימות חבילה או כל חבילה", + "iris.modded.help.entry.command.cleanup": "סקר או מועמדים ללא שימוש", + "iris.modded.help.entry.command.restore": "סקירה או לשחזר את רעידת האדמה האחרונה", + "iris.modded.help.entry.command.status_validation": "הצגת מצב אימות", + "iris.modded.help.entry.command.enable": "ליצור ולהזריק מתמשך Iris ממד בזמן ריצה; מוריד את החבילה אם חסר, ציטוט:dimensionKey בחירת מד החבילה הספציפי", + "iris.modded.help.entry.command.replace_overworld": "לזרוק Iris שחקני העולם הראשיים והכבישים שם במקום ה-Villa Overworld", + "iris.modded.help.entry.command.disable": "להעריך ולטעום Iris מימד; נתונים עולמיים על דיסק נשמרים עבור הפעלה מחדש", + "iris.modded.help.entry.command.delete": "אכזבה Iris ממד ומנגב את הנתונים הסטולטיביים שלו מדיסק", + "iris.modded.help.entry.command.list": "רשימה טעון Iris ממדים", + "iris.modded.help.entry.command.status_world": "המופע טעון Iris ממדים ועולם ראשוני מוגדר", + "iris.modded.help.entry.command.status_datapack": "בדוק טעון Iris סוג של Overrides", + "iris.modded.help.entry.command.install": "סוג של ממד התקן עליות טעון Iris ממדים", + "iris.modded.help.entry.command.list_datapacks": "רשימה מוגדרת ומותקנת ערכות נתונים", + "iris.modded.help.entry.command.ingest": "להסביר Bukkit Datapackingest תהליך עבודה", + "iris.modded.help.entry.command.remove": "הסבר את זרימת העבודה להסרת נתונים", + "iris.modded.help.entry.command.list_structures": "חידוש structure-index.json", + "iris.modded.help.entry.command.info_2": "לפתור Iris מבנה גרפי ודיווח", + "iris.modded.help.entry.command.place": "להרכיב ולמקם Iris מבנה במיקום שלך", + "iris.modded.help.entry.command.import": "להסביר Bukkit ייבוא תהליך עבודה", + "iris.modded.help.entry.command.capture": "להסביר Bukkit מבנה לכידת עבודה", + "iris.modded.help.entry.command.verify": "דו\"ח Native ו- Iris מגיע לשיאות במימד הנוכחי", + "iris.modded.help.entry.command.sentry": "שלח יוצא דופן במבחן Iris עיתונאי טעות", + "iris.modded.help.entry.command.network": "ממשקי רשת וכתובות", + "iris.runtime.progress.finding_regions": "מציאת אזורים", + "iris.runtime.progress.converting": "המרת", + "iris.runtime.status.running": "ריצה", + "iris.runtime.status.stopped": "נעצר", + "iris.runtime.status.paused": "פולש", + "iris.runtime.status.paused_lower": "הפסקה", + "iris.runtime.status.running_lower": "ריצה", + "iris.runtime.status.enabled": "אפשר.", + "iris.runtime.status.disabled": "מוגבלות.", + "iris.runtime.status.unregistered": "לא רשום", + "iris.runtime.status.none": "אף אחד לא", + "iris.runtime.status.random": "אקראי", + "iris.runtime.status.match": "התאמה", + "iris.runtime.status.mismatch": "אי-התאמה", + "iris.runtime.status.true": "אמת אמיתית", + "iris.runtime.status.false": "שקר כוזב", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " המונחים דריסה", + "iris.runtime.datapack.override_suffix": " (Worldpack עקיפה מותקן)", + "iris.runtime.primary_world.players_routed_suffix": " (השחקנים הלכו לשם)", + "iris.runtime.primary_world.routing_disabled_suffix": " (סגור)", + "iris.runtime.modded.no_dimension_match": "לא Iris ממד תואם \"{filter}'.", + "iris.runtime.teleport.world": "אתה הועבר {world}.", + "iris.runtime.engine.hotloaded": "מנוע חם", + "iris.runtime.job.completed": "שלם {job} פנימה {duration}", + "iris.runtime.job.scanning_selection": "בחירת סריקה", + "iris.runtime.job.loading_chunks": "עקבו אחרי Chunks", + "iris.runtime.job.searched_chunks": "חיפוש {chunks} צ'אנק", + "iris.runtime.job.compile": "המונחים", + "iris.runtime.job.saving_object": "חיסכון אובייקטים", + "iris.runtime.job.downloading": "הורדה", + "iris.runtime.job.extracting": "הפקה", + "iris.runtime.job.installing": "התקנת", + "iris.runtime.compile.iob_empty": "- IOB {file} יש 0 בלוקים!", + "iris.runtime.compile.iob_empty_hover": "טעות:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} לא 3D!", + "iris.runtime.compile.iob_not_3d_hover": "טעות:\n{path}\nרוחב, גובה או עומק הוא אפס (תבנית רעה)", + "iris.runtime.compile.json_error": "- JSON טעות שגיאה {file}", + "iris.runtime.compile.json_error_hover": "טעות:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "לא יכול למצוא עומס {path}", + "iris.runtime.datapack.name": "Iris דור העולם", + "iris.runtime.pack.already_exists": "החבילה כבר קיימת!", + "iris.runtime.tree_plausibilize.dry_suffix": ", ניסוי", + "iris.runtime.tree_plausibilize.skip_load": "לדלג על {object}נכשל לטעון", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} עץ ({branches} סניפים) {converted} העלים->עץ –{distances} מרחק", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} עץ ({branches} סניפים) {converted} העלים->עץ –{distances} מרחקים!{pinned} המונחים", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "להיכשל {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "נעשה: {processed} מעובד, {changed} השתנה, {skipped} מדלג, {failed} נכשל", + "iris.runtime.tree_plausibilize.done_dry": "נעשה: {processed} מעובד, {changed} השתנה, {skipped} מדלג, {failed} נכשל (קרי רץ, שום דבר לא כתוב)", + "iris.runtime.tree_plausibilize.totals": "סיכומים:+{wood} עץ ({branches} סניפים) {converted} העלים->עץ –{distances} מרחקים!{pinned} המונחים: לא נגיש {before} -> {after}", + "iris.runtime.item.wand.name": "שרביט Iris", + "iris.runtime.item.wand.lore.first": "שמאל לחץ על בלוק כדי להגדיר את הפינה הראשונה", + "iris.runtime.item.wand.lore.second": "לחץ על בלוק כדי להגדיר את הפינה השנייה", + "iris.runtime.item.dust.name": "אבק חשיפת", + "iris.runtime.item.dust.lore": "לחץ על בלוק לחשוף את מבנה המיקום שלו!", + "iris.runtime.wand.position_set": "מיקום {position} להגדיר {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "ממד זה לא נוצר על ידי Iris.", + "iris.runtime.dust.found_object": "אובייקט {object}", + "iris.runtime.dust.revealed": "נחשף {count} בלוקים (s) {object}", + "iris.runtime.dust.revealed_capped": "נחשף {count} בלוקים (s) {object} (caped)", + "iris.runtime.dust.header": "--- Iris אבק @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "בלוק: {block}", + "iris.runtime.dust.position.above": "מיקום: +{offset} מעל פני השטח Y={surfaceY})", + "iris.runtime.dust.position.below": "מיקום: {offset} מתחת לפני השטח (surface Y={surfaceY})", + "iris.runtime.dust.position.at": "מיקום: על פני השטח (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "אובייקטים @בלוק: {object}", + "iris.runtime.dust.none": "אף אחד לא", + "iris.runtime.dust.placed_by.object_above": "הוצב על ידי: object/stilt '{object}' (מעל פני השטח)", + "iris.runtime.dust.placed_by.decoration_above": "הוצב על ידי: decoration/object/stilt (מעל פני השטח)", + "iris.runtime.dust.placed_by.buried_object": "מקום: קבור אובייקט{object}'", + "iris.runtime.dust.placed_by.terrain": "מיקום: שכבת שטח (מעמיקה {depth} מתחת לפני השטח)", + "iris.runtime.dust.column_object": "עמוד: {object} -> בלוק זה הוא כנראה המבצר של האובייקט", + "iris.runtime.dust.column_object_none": "עמוד: {detail}", + "iris.runtime.dust.column_none": "לא בתוך אף אחד 64 (מטען או שטח, לא אובייקט stilt)", + "iris.runtime.dust.column.above": "{object} @Y={y} (למעלה)", + "iris.runtime.dust.column.below": "{object} @Y={y} (נמוך)", + "iris.runtime.dust.surface_biome": "המונחים: {biome}", + "iris.runtime.dust.surface_biome_detail": "המונחים: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "ביומיה @Y: {biome}", + "iris.runtime.dust.cave_biome": "מערה /Mantle ביומיה: {biome}", + "iris.runtime.dust.server_biome": "המונחים: {biome} (ID: {id})", + "iris.runtime.dust.region": "אזור: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "אובייקטים: נתח {objects}", + "iris.runtime.dust.copy_button": "[קל להעתיק את הסטטיסטים האלה]", + "iris.runtime.dust.copy_hover": "העתק חסימת סטטינים ללוח", + "iris.runtime.pregen.starting": "Iris תחילת...", + "iris.runtime.pregen.header": "Iris הפרסוגן", + "iris.runtime.pregen.bossbar.paused": "Iris הפרסוגן {generated}/{total} {percent}% מושהה", + "iris.runtime.pregen.bossbar.running": "Iris הפרסוגן {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " נכשל {failed}", + "iris.runtime.pregen.status.context": "המימד {dimension} • שיטת {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "צ'אנק {generated}/{total} מהירות {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "צ'אנק {generated}/{total} מהירות {speed}/s • נכשל {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} • Elapse {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} • Elapse {elapsed} · מושהה", + "iris.runtime.pregen.button.pause": "המונחים: המשך", + "iris.runtime.pregen.button.pause.hover": "פיצוץ מצב", + "iris.runtime.pregen.button.stop": "תפסיקו להפסיק", + "iris.runtime.pregen.button.stop.hover": "לסיים את האזור הנוכחי ולעצור התחדשות", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cחבילות / תיקיה לא נמצאו.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eאין חבילות לאמת.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aאימות מוחלט. חבילות שבורות: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPack »{pack}\"לא נמצא מתחת packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aלא נמצאו מועמדים לחבילה{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aהמונחים: {size} מועמד ניקוי (s) {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cמצב ניקוי חייב להיות תצוגה מקדימה או ליישם.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aלא נמצאו מועמדים לחבילה{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eתצוגה מקדימה של החבילה{pack}': {size} מועמד(s) לא השתנו קבצים.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7לרוץ /iris pack cleanup {pack} mode=apply כדי לתקן את המועמדים האלה לאחר סריקה חדשה.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cהחזרה נדחתה כי {size} מטרות (כבר קיימות).", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eאין מה להחזיר לחבילה{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aשחזור {size} קובץ(s) {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cמצב שחזור חייב להיות תצוגה מקדימה או ליישם.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eאין מה להחזיר לחבילה{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eשחזור תצוגה מקדימה {dumpPath}: {size} קובץ(s) לא השתנו קבצים.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cשחזור נחסם {size} יעד קיים (s)", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7לרוץ /iris pack restore {pack} mode=apply לשחזר לאחר בדיקת סכסוך חדשה.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eלא נרשמו תוצאות אימות. לרוץ /iris pack validate קודם.", + "iris.bukkit.runtime.commandpack.status.ok": "§aבסדר גמור§r {pack}§7 (בלוק={blocking}אזהרות ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBROK§r {pack}§7 (בלוק={blocking}אזהרות ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cניקוי נכשל: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cשחזור נכשל: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "עדיין קפוא", + "iris.bukkit.runtime.commandpack.path.quarantined": "המונחים:", + "iris.bukkit.runtime.commandpack.path.candidate": "מועמד", + "iris.bukkit.runtime.commandpack.path.conflict": "הסכסוך", + "iris.bukkit.runtime.commandpack.path.restored": "משוחזר", + "iris.bukkit.runtime.commandpack.path.file": "קובץ", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eשום תוצאה של \"{pack}'. לרוץ /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cאימות של \"{name}\"נכשל: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPack »{packName}\"הוא חזק.§7 (אזהרות={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPack »{packName}\"הוא פגום:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... ו {count} עוד התראות.", + "one": "§7 ... ו {count} עוד אזהרה." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cיש ליצור תמיד גיבוי לפני השימוש באפשרות זו", + "§eהבעיות שעלולות להיגרם כוללות, בין היתר:", + "§e - צ'אנקים שבורים (קטיעות) בין צ'אנקים ישנים לחדשים (לפני העדכון & אחריו)", + "§e - צ'אנקים שנוצרו מחדש ואינם מתאימים לצ'אנקים הישנים", + "§e - מבנים שאינם נוצרים שוב בזמן יצירה מחדש", + "§e - מערות שאינן מתחברות זו לזו", + "§e - שכבות שטח שאינן מתחברות זו לזו", + "§cלאחר שהבנת את הסיכונים ויצרת גיבוי:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aיבוא §f{total}§a vanilla & מאגרי מידע (Mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[כשל] {keyString}מפתח לא חוקי", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[דילוג] {keyString}אף פעם אחת NBT - vanilla בונה את זה בקוד או מתבניות נייר נפרדות (מדווחים באמצעות תבניות לעבור); שום דבר לייבא כמבנה אחד.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[כשל] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aייבוא בוץ מלא: §f{imported}§a מיובא, §f{skipped}§a מדלג, §f{failed}§a נכשל (§f{total}§a בסך הכל).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aבניית מבנים חד-פעמיים מחתיכות מיובאות (גרסה אחת שהוצבה לדור)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[קבוצה] {value} -> {value2} ({blocks} גרסאות)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[דילוג] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[כשל] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aמבנים חד-זמנית: §f{imported}§a נבנה, §f{skipped}§a מדלג, §f{failed}§a נכשל.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cנכשל לספור תבניות מבנה באמצעות השרת ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eלא נמצאו תבניות מבנה תחת נתיב משאבים \"מבנה\".", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aיבוא §f{total}§a תבניות מבנה (Mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[כשל] {keyString}מפתח לא חוקי", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[כשל] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} מיובא, {skipped} מדלג, {failed} נכשל)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aיבוא תבנית שלם: §f{imported}§a מיובא, §f{skipped}§a מדלג, §f{failed}§a נכשל (§f{total}§a בסך הכל).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eלא רשומים מבני datapack (non-minecraft). יש לטעון datapack ולהפעיל מחדש תחילה, ואז להריץ זאת שוב.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aיבוא §f{total}§a מאגרי מידע (Mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[כשל] {keyString}מפתח לא חוקי", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[כשל] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aיבוא §f{size}§a תבניות בנייה...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[כשל] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[כשל] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eלא ניתן למנות תבניות איסוף נתונים באמצעות השרת ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aמבנה ה-Datapack יושלם: §f{imported}§a מיובא, §f{skipped}§a מדלג, §f{failed}§a נכשל.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eכיבוש המבנה אינו נתמך על ידי הפעילים NMS מחייב; לדלג על מעבר הלכידת.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7לא נותרו מבנים מקודמים ללכידת (כל דבר כבר ייבא כמבנה).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aתגית: לכידה §f{total}§a מבנים מהונדסים (לא NBT תבנית) לתוך עולם שריטה (מעלה כל רחבה / אלטר מאשר {MAXSPAN} בלוקים)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[דילוג] {key}לא היה כאן מבנה לוכד (ממד גדול מדי, שגוי או שום מיקום חוקי בעולם שטוח). נשאר Vanilla-generated.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[כשל] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[לכוד] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[כשל] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} נתפס, {skipped} מדלג, {failed} נכשל)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aמבנה שלם: §f{imported}§a נתפס, §f{skipped}§a מדלג, §f{failed}§a נכשל (§f{total}§a בסך הכל).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eאין עץ vanilla /object נחשפים על ידי פעיל NMS מחייב (מציג מבנים בלבד).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aיבוא §f{total}§a עץ vanilla / object תכונות (§f{wantVariants}§a גרסאות לכל אחד) לתוך עולם שריטות...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[דילוג] {key}תכונה לא הניחה שום דבר אחרי חזרות.", + "iris.bukkit.runtime.featureimporter.fail": "§c[כשל] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} מיובא, {skipped} מדלג, {failed} נכשל)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aהמונחים: §f{imported}§a תכונות שנכתבו, §f{skipped}§a מדלג, §f{failed}§a נכשל (§f{total}§a בסך הכל).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cלא יכול ליצור את עולם השריטה עבור ייבוא תכונה ({error}); לדלג על העץ / עובר.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "אין קבצים סכימטיים להמיר {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aלהמיר {name} -> {value} פנימה {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aלהמיר {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cנכשל להציל: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cנכשל להמיר: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7המונחים: {get} פנימה {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cכמה סנטימטרים לא הצליחו להמיר. בדוק את הקונסולה לפרטים", + "iris.bukkit.runtime.studiosvc.installing_package": "התקנת חבילה: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "מחפש חבילה: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "נמצאו {type}חרירי {WORKSPACENAME} התיקיה", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "נמצאו {type} מימד {WORKSPACENAME} תיקיה. Repacking", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "אי אפשר למצוא את {name} בתיקיה של החבילה הזו! נכשל!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "אי אפשר לטעון את הממד! נכשל!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} סוג מותקן. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Pack »{key}\"לא נמצאו בחבילה.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "שימוש בשימוש /iris download branch= להוריד באופן ידני.", + "iris.bukkit.runtime.studiosvc.failed_download": "נכשל להוריד את \"{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "הורדת גרסת הבטא של IrisDimensions/overworld נכשלה.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "נכשל להוריד את \"{repo}(ברנץ' {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "נכשל לפתוח את עולם הסטודיו: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "\"לא יכול לפתוח סטודיו\"{dimm}חבילה חוסמת שגיאות:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "לתקן את החבילה ולרוץ /iris pack validate {dimm} לתקן.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "נכשל לסגור את פרויקט האולפן הקיים: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "נכשל לסגור את פרויקט האולפן הקיים: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "נכשל לפתוח את עולם הסטודיו: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "לא מצאתי את החבילה כדי ליצור מימד חדש.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "תגית: קובץ", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "יבוא {downloadable} פרוייקט חדש {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7עורך אובייקטים: לא תא תחת לחץ (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bסטודיו: שמירה §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7סטודיו: לא שינויים {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7סטודיו: תא ריק{pack}/{key}(אין מה לכתוב).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cסטודיו: אין קובץ מטרה{pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aסטודיו: Save §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cסטודיו: שמירה Fail עבור {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "לא יכול לטעון ממד \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "לא יכול לקבל מדבקה", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cסטודיו פתוח נכשל: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cסטודיו פתוח נכשל.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aסטודיו מוכן §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "אופטימיזציה אובייקטים", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "קרא עוד {g} אובייקטים", + "iris.bukkit.runtime.irisproject.package_compiled": "חבילה סגורה!", + "iris.bukkit.runtime.irisproject.failed": "נכשל!", + "iris.bukkit.runtime.irisengine.total": "שלם: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " מנוע המנוע §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "פרטים: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} לא מוגדר במימד!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cלא יכול למצוא {message} בטווח החיפוש.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aהצעות ל {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} ב: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "אתה משתחרר מהעולם הזה.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "אתה משתחרר מהעולם הזה. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "יש כמה Iris חבילות שיש להן ביומסה אישית בהן", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "אתה צריך להפעיל מחדש את השרת שלך כדי להשתמש ערכות אלה.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "המונחים: לא מספיק Permission", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "אין פקודות משנה או שאין לך רשות להשתמש בהם.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "מחסומים התעלמו: {m}", + "iris.runtime.studio.opening": "§6Studio §bנפתח", + "iris.runtime.studio.opening_progress": "§6Studio §bנפתח§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cנכשל§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aמוכן§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cנכשל§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aהסטודיו מוכן§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "מאתחל", + "iris.runtime.studio.stage.queued": "בתור", + "iris.runtime.studio.stage.resolve_dimension": "פותר ממד", + "iris.runtime.studio.stage.prepare_world_pack": "מכין חבילת עולם", + "iris.runtime.studio.stage.install_datapacks": "מתקין חבילות נתונים", + "iris.runtime.studio.stage.create_world": "יוצר עולם", + "iris.runtime.studio.stage.apply_world_rules": "מחיל חוקי עולם", + "iris.runtime.studio.stage.prepare_generator": "מכין מחולל", + "iris.runtime.studio.stage.request_entry_chunk": "טוען צ'אנק כניסה", + "iris.runtime.studio.stage.resolve_safe_entry": "מחפש נקודת ספאון בטוחה", + "iris.runtime.studio.stage.teleport_player": "משגר", + "iris.runtime.studio.stage.finalize_open": "מסיים", + "iris.runtime.studio.stage.cleanup": "מנקה", + "iris.runtime.world_create.teleport_failed": "§eהעולם נברא, אך התקשורת האוטומטית נכשלה. נסו לנסות /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} צ'אנקים", + "iris.runtime.world_create.console": "§6ייצור §e{percent}%§7 {generated}/{required} צ'אנקים§8 ({remaining} שמאל)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fהפקה מוקדמת", + "iris.runtime.world_create.pregen.console": "§6הפקה מוקדמת §e{percent}%", + "iris.runtime.chunk_job.title.regen": "מחדש", + "iris.runtime.chunk_job.title.delete": "Dellet", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "להתכונן", + "iris.runtime.chunk_job.stage.clearing": "להבהיר", + "iris.runtime.chunk_job.stage.resetting_mantle": "איפוס Mantle", + "iris.runtime.chunk_job.stage.regenerating": "ליצור מחדש", + "iris.runtime.chunk_job.stage.generating": "ייצור", + "iris.runtime.chunk_job.stage.comparing": "השוואת", + "iris.runtime.chunk_job.stage.diagnosing": "אבחון", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bעבודה", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} חלקים {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} חלקים {elapsed} ({failures} נכשל)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aלבד§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cProILED§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aעשה§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cנכשל§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} שלם: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} סיים עם שגיאות: {summary}", + "iris.runtime.golden.no_capture": "אין לכידת זהב {path}קודם כל לרוץ לכידת.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash מקור: {failed} חלקים לא הצליחו לייצר. אין קובץ זהב שנכתב.", + "one": "GoldenHash מקור: {failed} נתח לא הצליח לייצר. אין קובץ זהב שנכתב." + }, + "iris.runtime.golden.failed": "GoldenHash נכשל: {error}", + "iris.runtime.golden.mantle_reset": "Mantle איפוס ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle איפוס נכשל ({type}); המשך עם מדינה קיימת.", + "iris.runtime.golden.captured": "זהב נתפס: {chunks} חלקים משולבים={hash}", + "iris.runtime.golden.wrong_world": "קובץ זהב עבור dim={goldenDimension} זרע={goldenSeed} אבל העולם הזה הוא דיאם ={dimension} זרע={seed}. מתחנן.", + "iris.runtime.golden.version_warning": "הזהב נתפס על mc={goldenVersion}ריצה mc={version}. הבדלים עשוי להיות מושרה גרסה.", + "iris.runtime.golden.match": "זהוב MATCH:{current}/{golden}חלקים,combined={hash}", + "iris.runtime.golden.mismatch": "זהוב MISMATCH:{mismatches}/{chunks}חלקים שונים.", + "iris.runtime.golden.mismatch_chunk": " גוש נתח {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (הופנה מהדף זהב)", + "iris.runtime.golden.mismatch_more": " ... ו {count} יותר", + "iris.runtime.golden.current_written": "תגית: נוכחי Hass {file}", + "iris.runtime.golden.diag.stable": "חזרה-gen יציבתגית: Mantle-reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "ביקורת חוזרת (לא יציב){diffs}+ בלוק הבדלים, Mantle-reset{mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "יציב (לחדש מחדש פלט סריקה)", + "iris.runtime.golden.diag.mantle_diverged": "התפצל ({diffs}+ הבדלים - בניית המעטפת תלויה במצב/סדר)", + "iris.runtime.golden.diag.mantle_skipped": "דולג ({type})", + "iris.runtime.golden.diag.failed": "אבחון נכשל: {error}", + "iris.runtime.golden.started": "GoldenHashהתחיל:{chunks}צ'אנקים סביב 0,0 ב מאגרים (עולם שלא ניתן לעשות)threads={threads} mode={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] גוש נתח {x},{z} תגית:", + "iris.runtime.golden.chunk_failed": "צ'אנק {x},{z} נכשל: {type}", + "iris.runtime.pack_download.invalid_pack_name": "שם הלהקה:{pack}(הופנה מהדף A-z, 0-9- ו-)", + "iris.runtime.pack_download.invalid_branch_name": "שם סניף לא חוקי \"{branch}(אפשר: מכתבים, ספרות. ו-)", + "iris.runtime.pack_download.failed": "הורדת החבילה נכשלה: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "הורדה {url}", + "iris.runtime.pack_download.failed_to_find": "נכשל למצוא חבילות {url}", + "iris.runtime.pack_download.check_repository_and_branch": "ודא שאתה מציין את החזרה הנכונה ואת הענף!", + "iris.runtime.pack_download.example_command": "לדוגמה: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "חבילות חילוץ {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "בעיה כאשר לא לארוז. בדוק/עשה את הפעולות הבאות:", + "1. יש לך חיבור לאינטרנט מתפקד?", + "2. האם ההורדה הייתה מושחתת?", + "3. נסו למחוק את */plugins/iris/packs התיקיה וההורדה מחדש.", + "4. הורד את החבילה מן GitHub תגית: https://github.com/IrisDimensions/overworld", + "5. תמיכה בקשר (אם כל האפשרויות האחרות אינן עוזרות)" + ], + "iris.runtime.pack_download.no_extracted_files": "לא הופקו קבצים מקובץ ה-zip.", + "iris.runtime.pack_download.home_directory_error": "טעות בעת מציאת מנהל בית. האם יש דמויות שאינן טקסט בשם הקובץ?", + "iris.runtime.pack_download.invalid_archive_format": "פורמט לא חוקי. תיקיות שורש חסרות או יותר מדי תיקיות!", + "iris.runtime.pack_download.no_dimension_file": "שום קובץ ממד לא נמצא בקובץ zip מופק.", + "iris.runtime.pack_download.check_github": "בדוק כי הוא נוכח GitHub לדווח על זה לצוות!", + "iris.runtime.pack_download.one_dimension_required": "תיקיית הממדים חייבת להכיל בדיוק קובץ אחד.", + "iris.runtime.pack_download.invalid_dimension": "תיקיית מימד לא חוקית תחת dimensions/.", + "iris.runtime.pack_download.importing": "יבוא {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "מימד נוסף בתיקיה של הלהקה כבר משתמש המפתח {key}. ייבוא נכשל!", + "iris.runtime.pack_download.pack_key_conflict": "חבילה נוספת משתמשת במפתח {key}. ייבוא נכשל!", + "iris.runtime.pack_download.acquired": "נרכשה בהצלחה {name}.", + "iris.runtime.pack_download.validation_failed": "Pack »{pack}\"התאימות הכושל; יצירת העולם והסטודיו לא תסרב. סיבות:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pack »{pack}\"תאמת עם {count} אזהרות", + "one": "Pack »{pack}\"תאמת עם {count} אזהרה." + }, + "iris.runtime.pack_download.validated": "Pack »{pack}\"מאומת.", + "iris.client.vision.title": "Iris חזון", + "iris.client.vision.connecting": "להתחבר Iris שרת Server...", + "iris.client.vision.not_connected": "לא מחובר", + "iris.client.vision.not_iris_world": "לא Iris עולם העולם", + "iris.client.vision.no_dimension_data": "אין נתונים ממדיים", + "iris.client.vision.header_detail": "{status} גן החיות {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "גרור להזזה, גלול לשינוי מרחק התצוגה, Esc לסגירה", + "iris.client.vision.dimension_pack": "{dimension} חבילות {pack}", + "iris.client.toast.studio_hotload": "סטודיו טעינה חמה", + "iris.client.toast.changed_files": { + "other": "{count} קבצים", + "one": "{count} קובץ" + }, + "iris.client.toast.reload_failed": "טעינה מחדש נכשלה", + "iris.client.toast.reloaded": "מחדש", + "iris.client.toast.pack_failed": "{pack} נכשל", + "iris.client.what.title": "Iris מה", + "iris.client.what.querying": "המונחים: {x}, {z}...", + "iris.client.what.biome": "ביומיה: {biome}", + "iris.client.what.region": "אזור: {region}", + "iris.client.what.cave": "מערה: {cave}", + "iris.client.what.height": "גובה: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "מושהה", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aאיריס", + "iris.bukkit.scoreboard.speed": "§aמהירות המהירות§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bכאב§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bמני§7: {count}", + "iris.bukkit.scoreboard.carving": "§dעבודה§7: {state}", + "iris.bukkit.scoreboard.region": "§bאזור§7: {region}", + "iris.bukkit.scoreboard.biome": "§bביומי§7: {biome}", + "iris.bukkit.scoreboard.height": "§bגובה§7: {height}", + "iris.bukkit.scoreboard.slope": "§bסלייפ§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris חזון", + "iris.desktop.vision.view": "תגית:", + "iris.desktop.vision.grid": "גרי", + "iris.desktop.vision.follow": "עקבו אחרי עקוב", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "מרעננים", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "ZOOE", + "iris.desktop.vision.grid_enabled": "רשת אפשר", + "iris.desktop.vision.grid_disabled": "סגור", + "iris.desktop.vision.following": "עוקב אחר {player}", + "iris.desktop.vision.no_player": "אין שחקן בעולם", + "iris.desktop.vision.follow_disabled": "עקבו אחרי מוגבלויות", + "iris.desktop.vision.low_quality": "איכות נמוכה", + "iris.desktop.vision.high_quality": "איכות גבוהה", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} בלוקים", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "מיקום: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "בריאות: {health} / {maximum}", + "iris.desktop.vision.block_position": "בלוק {x}, {z}", + "iris.desktop.vision.chunk_position": "צ'אנק {x}, {z}", + "iris.desktop.vision.region_position": "אזור {x}, {z}", + "iris.desktop.vision.biome_key": "מפתח: {key}", + "iris.desktop.vision.biome_file": "תגית: {file}", + "iris.desktop.vision.velocity": "מחסור: {velocity}", + "iris.desktop.vision.tiles": "טיים: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "עובדים: {high} HD / {low} LQ", + "iris.desktop.vision.center": "מרכז: {x}, {z}", + "iris.desktop.vision.help.toggle": "עזרה", + "iris.desktop.vision.help.refresh": "אריחים מרעננים", + "iris.desktop.vision.help.follow": "עקבו אחרי שחקן", + "iris.desktop.vision.help.zoom": "זום ב/החוצה", + "iris.desktop.vision.help.reset_zoom": "איפוס תקריב", + "iris.desktop.vision.help.cycle_mode": "המונחים: space", + "iris.desktop.vision.help.quality": "איכות אריחים", + "iris.desktop.vision.help.fps": "להגות החלף 30/60 FPS", + "iris.desktop.vision.help.grid": "רשת", + "iris.desktop.vision.help.biome": "מידע ביוגרפי מפורט", + "iris.desktop.vision.help.teleport": "טלפורט ל-סמן", + "iris.desktop.vision.help.editor": "פתח ביום בעורך", + "iris.desktop.vision.opened": "פתוח {target}", + "iris.desktop.vision.teleporting": "הצעות ל {x}, {z}", + "iris.desktop.vision.mode.biome": "ביומי", + "iris.desktop.vision.mode.biome_land": "אדמה ביולוגית", + "iris.desktop.vision.mode.biome_sea": "הים Biome", + "iris.desktop.vision.mode.region": "אזור", + "iris.desktop.vision.mode.cave_land": "ארץ המערה", + "iris.desktop.vision.mode.height": "גובה", + "iris.desktop.vision.mode.object_load": "עומס אובייקטים", + "iris.desktop.vision.mode.decorator_load": "עומס דקורטיבי", + "iris.desktop.vision.mode.continent": "יבשת", + "iris.desktop.vision.mode.layer_load": "שכבת העומס", + "iris.desktop.noise.title": "המונחים: noise", + "iris.desktop.noise.title_generator": "המונחים: {generator}", + "iris.desktop.noise.search": "חיפוש...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} זום: {zoom} ערך: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "מותאם אישית", + "iris.desktop.noise.category.pack_generators": "חבילות גנרטורים", + "iris.desktop.noise.category.simplex": "פשוט", + "iris.desktop.noise.category.perlin": "פרסלין", + "iris.desktop.noise.category.cellular": "נייד", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "המונחים תלתן", + "iris.desktop.noise.category.hexagon": "הפטיטיס", + "iris.desktop.noise.category.vascular": "ווסקולרי", + "iris.desktop.noise.category.globe": "גלובוס כדור", + "iris.desktop.noise.category.cubic": "קולי", + "iris.desktop.noise.category.fractal": "רשמי", + "iris.desktop.noise.category.static": "סטטי", + "iris.desktop.noise.category.nowhere": "אין בשום מקום", + "iris.desktop.noise.category.sierpinski": "סיירינסקי", + "iris.desktop.noise.category.utility": "שירות", + "iris.desktop.noise.category.other": "אחרים", + "iris.desktop.pregen.initializing": "הדמיה...", + "iris.desktop.pregen.title": "תצוגה מקדימה", + "iris.desktop.pregen.method_pending": "עקבו", + "iris.desktop.pregen.paused": "מושהה", + "iris.desktop.pregen.resume_hint": "לחץ על P לחדש", + "iris.desktop.pregen.pause_hint": "הקש P כדי לעצור", + "iris.desktop.pregen.progress_paused": "מושהה {generated} של {total} ({percent} שלם)", + "iris.desktop.pregen.progress_saving": "חיסכון... {generated} של {total} ({percent} שלם)", + "iris.desktop.pregen.progress_generating": "ייצור {generated} של {total} ({percent} שלם)", + "iris.desktop.pregen.speed": "מהירות: {chunksPerSecond} צ'אנקים/s, {regionsPerMinute} אזורים/m, {chunksPerMinute} צ'אנקים/m", + "iris.desktop.pregen.speed_cached": "מהירות: במטמון {chunksPerSecond} צ'אנקים/s, {regionsPerMinute} אזורים/m, {chunksPerMinute} צ'אנקים/m", + "iris.desktop.pregen.time": "{remaining} הנותרים ({elapsed} מת)", + "iris.desktop.pregen.method": "שיטת דור: {method}", + "iris.desktop.pregen.memory": "זיכרון:{used} ({usage}לחץ:{pressure}/s" + } +} diff --git a/core/src/main/resources/languages/it_IT.json b/core/src/main/resources/languages/it_IT.json new file mode 100644 index 000000000..1d701452e --- /dev/null +++ b/core/src/main/resources/languages/it_IT.json @@ -0,0 +1,1435 @@ +{ + "locale": "it_IT", + "messages": { + "director.help.navigation.parent.hover": "Torna al gruppo di comandi principale", + "director.help.navigation.back": "Indietro", + "director.help.no_subcommands": "Nessun sottocomando in questa pagina.", + "director.help.no_description": "Nessuna descrizione fornita", + "director.help.aliases": "Alias", + "director.help.command_group": "Gruppo di comandi. Fai clic per aprire.", + "director.help.no_parameters": "Nessun parametro. Fai clic per precompilare il comando.", + "director.help.parameters": "Parametri", + "director.help.parameter.required": "obbligatorio", + "director.help.parameter.optional": "facoltativo", + "director.help.parameter.default": "predefinito", + "director.help.navigation.previous.hover": "Pagina precedente", + "director.help.navigation.next.hover": "Pagina successiva", + "director.help.navigation.page": "Pagina", + "director.runtime.error.invalid_origin": "Questo comando non può essere eseguito da questa origine.", + "director.runtime.error.unknown_parameter": "Chiave di parametro sconosciuta: {key}", + "director.runtime.error.unexpected_argument": "Argomento imprevisto \"{argument}\". I parametri opzionali devono essere specificati con una chiave, ad es. seed=123", + "director.runtime.error.conversion_failed": "Impossibile convertire \"{value}\" in {type} per {parameter}", + "director.runtime.error.default_parse_failed": "Impossibile analizzare il valore predefinito del parametro {parameter}", + "director.runtime.error.missing_argument": "Argomento mancante \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Impossibile eseguire il comando {command}: {reason}", + "director.runtime.usage": "Utilizzo: {usage}", + "iris.command.permission_denied": "Non disponi del permesso '{permission}'", + "iris.command.unknown": "Comando Iris sconosciuto", + "iris.command.player_only": "Questo comando può essere usato solo dai giocatori.", + "iris.command.iris_world_required": "Questa dimensione non è stata generata da Iris.", + "iris.command.reload.success": "Le impostazioni e la lingua {locale} sono state ricaricate.", + "iris.command.reload.failed": "Le impostazioni sono state ricaricate, ma la lingua {locale} è stata rifiutata; si continuerà a usare {activeLocale}.", + "iris.modded.help.unknown_section": "Sezione della guida Iris sconosciuta: {section}", + "iris.modded.help.back_hover": "Torna a {parent}.", + "iris.modded.help.command_parameter": "Parametro di comando", + "iris.modded.help.parameter_required": "Questo parametro è necessario.", + "iris.modded.help.parameter_optional": "Questo parametro è facoltativo.", + "iris.modded.help.brigadier_text": "Questo parametro viene letto come testo da Brigadier.", + "iris.modded.help.operator_notice": "I comandi Iris richiedono il permesso operatore di livello 2.", + "iris.modded.help.operator_instruction": "Esegui {command} dalla console oppure abilita i trucchi in giocatore singolo. Fino ad allora questi comandi non potranno essere eseguiti né completati automaticamente.", + "iris.modded.command.properties.none": "Proprietà: (nessuna)", + "iris.modded.command.properties.list": "Proprietà: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Avvio dell'importazione dei datapack...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aImportazioni dei datapack configurate: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aDatapack installati: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eAggiungi gli URL Modrinth all'elenco 'datapackImports' di una dimensione, quindi esegui /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash avviato: {value} chunk...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash non riuscito al chunk {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash globale=§6{value}§a chunk={value2} solidi={solidBlocks} in {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Non sei in un mondo Iris!", + "iris.bukkit.commandfind.unknown_structure": "§cStruttura sconosciuta: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Esegui questo comando in gioco per teletrasportarti a una struttura.", + "iris.bukkit.commandfind.locating": "§7Ricerca di {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Esegui questo comando in gioco per teletrasportarti a una struttura.", + "iris.bukkit.commandfind.locating_2": "§7Ricerca di {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeletrasportato a {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aCartella del mondo rimossa correttamente", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aCartella del mondo rimossa correttamente", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cImpossibile rimuovere la cartella del mondo", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cSu questo server non sono stati trovati pack contenenti oggetti.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cNessun oggetto da posizionare nei pack selezionati.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aApertura di Object Studio per {scope} ({totalObjects} oggetti)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cImpossibile aprire Object Studio: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cDevi specificare il nome di un pack.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPack '{pack}' non trovato in packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... e {value} di più.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aVerifica delle strutture §f{value}§a da {value2},{value3} dentro {searchRadius} chunk...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImportazione del contenuto di vanilla in §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla completato: §f{imported}§a objects/structures scritti, §f{failed}§a non riusciti.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Gli alberi e gli oggetti si trovano in objects/vanilla/...; aggiungili ai posizionamenti degli oggetti del bioma.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cNessun progetto Studio aperto.", + "iris.bukkit.commandstudio.closing_studio": "§eChiusura di Studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§cChiusura di Studio non riuscita: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cChiusura di Studio non riuscita: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio chiuso. La pulizia rimanente delle cartelle del mondo correlate è stata accodata come procedura di ripiego per il prossimo avvio.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio chiuso.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cDevi trovarti in un mondo Studio per attivare o disattivare il pannello di debug.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Pannello di debug di Studio {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cImpossibile aggiornare il pannello di debug di Studio in questo momento.", + "iris.bukkit.commandstudio.opened_inventory": "§aInventario aperto!", + "iris.bukkit.commandstudio.generating_data": "§7Generazione dei dati...", + "iris.bukkit.commandstudio.done": "§aFatto!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Non disponi del permesso '{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Stato:", + "iris.bukkit.irisenginestatus.service": "§5- Servizio: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metriche: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Periodo di manutenzione: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Parallelismo dei worker: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Attività del mondo attive: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Piastre tettoniche:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Conservazione configurata: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Utilizzo heap: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Residenti: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- In coda: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Durata media di inattività: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Durata massima di inattività: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Durata minima di inattività: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Cache:", + "iris.bukkit.irisenginestatus.resource": "§5- Risorse: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Stream 2D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Stream 3D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Altro: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Altro:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Mondi Iris: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Chunk caricati: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cIl mondo è nullo.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cSeleziona un mondo Iris prima di leggere un dump di Mantle.", + "iris.bukkit.commanddeveloper.upgrading": "§aAggiornamento a {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aAggiornamento completato! Ora puoi aggiornare il server alla versione {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cIl raggio deve essere uguale o maggiore di 0.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cQuesto non è un mondo Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cL'accesso all'engine per questo mondo è nullo.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aEliminazione avviata: §6{chunks}§a chunk attorno a §6{centerX},{centerZ}§a. I blocchi vengono sostituiti con aria.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cIl raggio deve essere uguale o maggiore di 0.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cDevi trovarti in un mondo Iris per usare regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cL'accesso all'engine per questo mondo è nullo. Genera prima alcuni chunk vicini.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRigenerazione avviata: §6{chunks}§a chunk attorno a §6{centerX},{centerZ}§a. Eliminazione e rigenerazione sul posto.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cIl raggio deve essere uguale o maggiore di 0.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cIl mondo di destinazione deve essere un mondo Iris.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cL'accesso all'engine per questo mondo è nullo.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash avviato: §6{chunks}§a chunk attorno a §6{centerX},{centerZ}§a nei buffer (mondo invariato).", + "iris.bukkit.commandedit.players_only": "§cSolo i giocatori!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cNessun mondo Studio è aperto!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cDevi trovarti in un mondo Studio!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cImpossibile aprire file in ambienti senza interfaccia grafica!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cDesktop non è supportato da questo ambiente!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Impossibile trovare il file. Forse non è stato caricato direttamente da un file?", + "iris.bukkit.commandedit.opening_vscode": "§aApertura di {value} {value2} in VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cImpossibile trovare il file oppure la registrazione non esiste", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Impossibile trovare il file. Forse non è stato caricato direttamente da un file?", + "iris.bukkit.commandedit.opening_vscode_2": "§aApertura di {value} {value2} in VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cImpossibile trovare il file oppure la registrazione non esiste", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Impossibile trovare il file. Forse non è stato caricato direttamente da un file?", + "iris.bukkit.commandedit.opening_vscode_3": "§aApertura di {value} {value2} in VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cImpossibile trovare il file oppure la registrazione non esiste", + "iris.bukkit.commandfind.not_iris_world_5": "§6Non sei in un mondo Iris!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Non sei in un mondo Iris!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Non sei in un mondo Iris!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Non sei in un mondo Iris!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: teletrasporto a {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} non è configurato in alcun posizionamento di oggetti di una regione o di un bioma.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cNon puoi usare il nome del mondo \"iris\", perché Iris riserva questa directory ai mondi Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cPossiamo suggerire il nome \"IrisWorld\" invece?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cNon puoi usare il nome del mondo \"benchmark\", perché Iris riserva questa directory ai benchmark dei Pack.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cPossiamo suggerire il nome \"IrisWorld\" invece?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cQuella cartella esiste già!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cImpossibile trovare o scaricare la dimensione \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eProva una delle seguenti opzioni: overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eO scaricare manualmente: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPreparazione del mondo completata. Riavvia il server per generare/caricare \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cSi è verificata un'eccezione durante la creazione. Consulta la console per maggiori dettagli.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aCreato con successo il tuo mondo!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aIl tuo mondo verrà impostato automaticamente come mondo principale al riavvio del server.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eLa creazione di mondi durante l'esecuzione è disattivata su Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§ePreparazione dei file del mondo e di bukkit.yml per il prossimo avvio...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cImpossibile preparare i file del mondo per la dimensione \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aLa proprietà level-name in server.properties è stata impostata su \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cIl mondo è stato preparato, ma non è stato possibile aggiornare il mondo principale in server.properties.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aMondo Iris \"{name}\" preparato con il generatore Iris:{value} e il seed {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aQuesto mondo è ora configurato come principale per il prossimo riavvio.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cImpossibile aggiornare bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cIl giocatore specificato non esiste.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v{value} di Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} a {value2}", + "iris.bukkit.commandiris.total_height": "§aAltezza totale: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Mondi Iris: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Mondi Bukkit: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cQuesto non è un mondo Iris. Mondi Iris: {value}", + "iris.bukkit.commandiris.removing_world": "§aRimozione del mondo: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cImpossibile evacuare il mondo: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cImpossibile scaricare il mondo dalla memoria: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aRimossa con successo {value} da bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eSembra che il mondo sia già stato rimosso da bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cImpossibile salvare bukkit.yml a causa di {value}", + "iris.bukkit.commandiris.set_debug": "§aDebug impostato su: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aDownload del pack: {pack} (versione beta){value}", + "iris.bukkit.commandiris.downloading_pack": "§aDownload del pack: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cDevi trovarti in un mondo Iris", + "iris.bukkit.commandiris.sending_metrics": "§aInvio di metriche...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cQuesto non è un mondo Iris. Mondi Iris: {value}", + "iris.bukkit.commandiris.unloading_world": "§aMondo scaricato dalla memoria: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aMondo scaricato con successo.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cImpossibile scaricare il mondo dalla memoria.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cImpossibile scaricare il mondo dalla memoria: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Non esiste sul server.", + "iris.bukkit.commandiris.generator": "§9Generatore: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} non è un mondo Iris.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cImpossibile determinare la dimensione Iris per {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aCaricamento del mondo: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia non può caricare nuovi mondi a runtime. Riavviare il server per caricare \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} caricato con successo.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cQuesto non è un mondo Iris. Mondi Iris: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvacuazione del mondo{value}", + "iris.bukkit.commandobject.object_size": "Dimensioni oggetto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Blocchi utilizzati: {value}", + "iris.bukkit.commandobject.blocks_object": "== Blocchi nell'oggetto ==", + "iris.bukkit.commandobject.other_block_types": " + {value} altri tipi di blocco", + "iris.bukkit.commandobject.current_object_size": "Dimensione attuale dell'oggetto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Nuova dimensione dell'oggetto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Impossibile salvare l'oggetto {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cNessun oggetto abbinato: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}] ha accodato {value2} oggetti", + "iris.bukkit.commandobject.hold_your_wand": "Tieni la bacchetta.", + "iris.bukkit.commandobject.no_area_selected": "Nessuna area selezionata.", + "iris.bukkit.commandobject.ready_your_wand": "Prepara la bacchetta.", + "iris.bukkit.commandobject.ready_your_wand_2": "Prepara la bacchetta.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eLa scala indicata supera il massimo. Abbassato al massimo: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Bacchetta aggiornata per objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Nuova bacchetta fornita per objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Bacchetta aggiornata per objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§a{object} posizionato", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eDevi tenere la bacchetta!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cIl file esiste già. Impostare overwrite=true per sovrascrivere.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cImpossibile salvare l'oggetto a causa di una IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aOggetto salvato correttamente in: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Tieni la bacchetta.", + "iris.bukkit.commandobject.no_area_selected_2": "Nessuna area selezionata.", + "iris.bukkit.commandobject.reverted_pastes": "§9Ripristinati {actualReverts}§9 incollaggi!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cNon puoi ottenere una selezione WorldEdit senza WorldEdit.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cNon hai una selezione WorldEdit in questo mondo.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aUna nuova bacchetta con la selezione WorldEdit corrente!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPuf! Buona fortuna con la costruzione!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eTieni la bacchetta!", + "iris.bukkit.commandobject.no_area_selected_3": "Nessuna area selezionata.", + "iris.bukkit.commandobject.auto_select_complete": "§aAuto-selezione completa!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eTieni la bacchetta!", + "iris.bukkit.commandobject.no_area_selected_4": "Nessuna area selezionata.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAuto-selezione completa!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cIl raggio di pregenerazione deve essere maggiore di zero blocchi.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cLa pregenerazione strettamente seriale richiede Paper o un server compatibile con Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cL'accesso all'engine per questo mondo è nullo!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cAssicurati che il mondo sia caricato e che l'engine sia inizializzato. Ad esempio, genera un nuovo chunk.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cImpossibile avviare la pregenerazione. Consulta la console per i dettagli.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eNessun compito di pregenerazione attivo per fermare", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aStato di pausa dell'attività di pregenerazione cambiato. Stato corrente: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eNessuna attività di pregenerazione da mettere in pausa o riprendere.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eNessun compito di pregenerazione attivo.", + "iris.bukkit.commandpregen.pregen": "§aPregenerazione §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aVelocità: §6{value}/s§a ETA: §6{value2}§a Trascorso: §6{value3}§a Metodo: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aIndice delle strutture scritto in: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportazione di tutte le strutture vanilla e datapack in §f{value}§a (sovrascrittura)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImportazione completata: §f{imported}§a structures/objects scritti, §f{failed}§a non riusciti.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Aggiungile all'elenco 'structures' di un bioma, una regione o una dimensione, oppure esegui /iris structure list {value} per aggiornare l'indice. Rigenera i chunk per applicare le modifiche.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Acquisite {value} strutture. Posizionale tramite un elenco 'structures' e rigenera i chunk. Elimina un file in structures/*.json per acquisirlo nuovamente.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cNessun mondo Iris caricato per {value}. Entra in un mondo o creane uno (la ricerca viene eseguita in un mondo attivo).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cIl mondo Iris selezionato non dispone di un engine di generazione attivo.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cNessuna struttura Iris '{structure}' in questo pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cLa struttura '{structure}' è stata assemblata con 0 pezzi (controlla startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStruttura '{structure}': §f{value}§a pezzi, ingombro §f{value2}x{value3}§a blocchi (seed di esempio 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cNessuna struttura Iris '{structure}' in questo pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cLa struttura '{structure}' è stata assemblata con 0 pezzi", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a'{structure}' ({value} pezzi) posizionata nella tua posizione.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aApertura di Studio per il pack \"{value}\" (seed: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cSpecifica un Pack di dimensione: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cImpossibile risolvere il pack della dimensione {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aApertura di VSCode per il pack \"{value}\"", + "iris.bukkit.commandstudio.pack_has_version": "§aIl \"{value}\" pack ha la versione: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aApertura di Noise Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cNon può aggiungere oggetti all'inventario virtuale a causa di: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aApertura dell'inventario!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cFunziona solo in un mondo Iris!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cDevi trovarti in un mondo generato da Iris oppure specificarne uno!", + "iris.bukkit.commandstudio.opening_map": "§aAprire la mappa!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Calcolo delle metriche prestazionali dei generatori di noise", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Calcolo dei tempi degli interpolatori...", + "iris.bukkit.commandstudio.processing_generator_scores": "Elaborazione dei punteggi dei generatori: ", + "iris.bukkit.commandstudio.score": "Punteggio: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aFatto! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cDevi trovarti in un mondo Iris per generare correttamente le entità. Verrà effettuato il miglior tentativo possibile.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cNessun mondo di studio è aperto!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cSei già in un mondo di studio!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aTeletrasporto nel mondo Studio!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Aggiornamento del Code Workspace per {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aCode Workspace aggiornato per {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cProgetto non valido: {value}. Prova a eliminare il file code-workspace e riprovare.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cDevi trovarti in un mondo Iris", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Devi essere in un mondo iris.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Acquisizione di IGenData da {value} chunk vicini.", + "iris.bukkit.commandstudio.reported": "Segnalato a: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cDevi abilitare nelle impostazioni le GUI avviate dal server!", + "iris.bukkit.commandstudio.players_only": "§cSolo i giocatori!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cNessun mondo di studio è aperto!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cDevi essere in uno studio!", + "iris.bukkit.commandwhat.material": "Materiale: §a{value}", + "iris.bukkit.commandwhat.full": "Pieno: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Tieni in mano un blocco o un oggetto", + "iris.bukkit.commandwhat.material_2": "Materiale: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Tieni in mano un blocco o un oggetto", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Bioma non Iris: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Bioma datapack: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aSolo mondi Iris.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Si prega di guardare qualsiasi blocco, non al cielo", + "iris.bukkit.commandwhat.material_3": "Materiale: §a{value}", + "iris.bukkit.commandwhat.full_2": "Pieno: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Blocco di stoccaggio (può contenere loot)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Blocco illuminato (può emettere luce)", + "iris.bukkit.commandwhat.foliage_block": "§e* Blocco di fogliame", + "iris.bukkit.commandwhat.decorant_block": "§e* Blocco decorativo", + "iris.bukkit.commandwhat.fluid_block": "§e* Blocco fluido", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Blocco di fogliame piantabile", + "iris.bukkit.commandwhat.solid_block": "§e* Blocco solido", + "iris.bukkit.commandwhat.found_nearby_markers": "Trovati {value} marker nelle vicinanze ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aSolo mondi Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "La console deve specificare un bioma: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "La ricerca di biome è fallita: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Biome sconosciuto: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "La console deve specificare una regione: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Ricerca della regione non riuscita: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Regione sconosciuta: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Impossibile aprire file in questo contesto: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "File non trovato; potrebbe non essere stato caricato direttamente da un file.", + "iris.modded.irismoddedcommands.could_not_open": "Impossibile aprire {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Apertura di {value} {value2} nel tuo editor.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "La console deve specificare un giocatore: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} non è generato da Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teletrasporto non riuscito: la dimensione {dimensionId} non è caricata.", + "iris.modded.irismoddedcommands.teleporting": "Teletrasporto di {value} verso {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} non è generato da Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Impossibile evacuare il mondo principale: non esiste una destinazione per i giocatori.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Evacuati {count} giocatori da {value} a {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Debug impostato su: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Impostazioni ricaricate a caldo", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Questo comando può essere utilizzato solo dai giocatori (ispeziona l'oggetto tenuto).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "La tua mano principale è vuota.", + "iris.modded.irismoddedcommands.hand_x": "Mano: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} non è generata da Iris; usa /iris info per vedere le dimensioni Iris caricate.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "La dimensione corrente ({value}) non è generata da Iris. Specificane una esplicitamente: /iris pregen start {radius} ; usa /iris info per vedere le dimensioni Iris caricate.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "È già in esecuzione un'attività di pregenerazione. Arrestala prima con /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregenerazione avviata in {value} di {value2}, per {value3} blocchi da {centerX},{centerZ}.{modeNote} I progressi vengono registrati nella console; usa /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Arresto della pregenerazione; completamento della regione corrente...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Nessun compito di pregenerazione attivo da fermare.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Nessun compito di pregenerazione attivo per mettere in pausa/riprendere.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "La pregenerazione è ora {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Nessun compito di pregenerazione attivo.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} di Volmit Software su {value2} (Minecraft {value3}), {engines} dimensioni Iris", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Dimensioni caricate: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.biome": "Bioma: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "La ricerca di biome è fallita: {value}", + "iris.modded.irismoddedcommands.region": "Regione: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Ricerca della regione non riuscita: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Bioma della grotta: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Ricerca del bioma della grotta non riuscita: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Blocco di superficie: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Posizione: {value} {value2} {value3} (Chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Questo comando può essere utilizzato solo dai giocatori (osserva il blocco che stai guardando).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Guarda un blocco, non il cielo.", + "iris.modded.irismoddedcommands.block_y": "Blocco: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Questo comando può essere utilizzato solo dai giocatori (i marcatori rendono come particelle intorno a te).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Ricerca di marcatori '{marker}' nelle vicinanze...", + "iris.modded.irismoddedcommands.marker_scan_failed": "La scansione del marcatore non è riuscita: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Trovati {value} marcatori nelle vicinanze ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Biome sconosciuto: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Regione sconosciuta: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} non è definito nella dimensione!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} non è configurato in alcun posizionamento di oggetti di regioni o biomi ({value} chiavi oggetto caricate).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Questo comando può essere usato solo dai giocatori. (La chiave oggetto '{key}' è stata risolta tra {value} chiavi caricate.)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Specifica una struttura Iris o nativa da individuare.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Struttura sconosciuta '{key}'. Usa il completamento automatico per scegliere una struttura collocata da Iris oppure una struttura nativa/datapack registrata.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Ricerca della struttura nativa {value} entro {NATIVESTRUCTURELOCATERADIUS} chunk...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Ricerca della struttura {key} collocata da Iris...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Impossibile individuare la struttura {key} collocata da Iris: è stato raggiunto il limite di sicurezza della ricerca per densità prima di esaminare l'intero raggio di 1024 chunk.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Impossibile trovare la struttura {key} collocata da Iris entro 1024 chunk.", + "iris.modded.irismoddedcommands.search_failed": "Ricerca fallita: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Impossibile trovare la struttura nativa {value} entro {NATIVESTRUCTURELOCATERADIUS} chunk.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Ricerca della struttura nativa {value} non riuscita: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Il giocatore si è disconnesso prima della ricerca struttura completata.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Ha cambiato le dimensioni prima che la ricerca struttura completasse; eseguire nuovamente il comando.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Trovato {label} a {targetX} {clampedY} {targetZ}, ma il teletrasporto non è riuscito.", + "iris.modded.irismoddedcommands.teleported_at": "Teletrasportato a {label} in {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Raggiungibilità delle strutture: {available} native generabili, {irisPlaced} collocate da Iris, {disabled} native disabilitate, {suppressed} native sostituite da collocamenti Iris, {unreachableBiomes} native escluse dai biomi di questo Pack e {unsupported} strutture native registrate non supportate in questa dimensione. Usa /iris structure verify per verificarne una.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "La struttura {key} è collocata da Iris e può essere individuata con /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Struttura sconosciuta '{key}'. Non è collocata da Iris né registrata da vanilla o da un datapack.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "La struttura {value} è sostituita esplicitamente da un collocamento Iris e può essere individuata con /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Struttura nativa {value} è abilitato, supportato dallo stato generatore di questa dimensione e locabile con /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Questo comando può essere usato solo dai giocatori. (Tipo POI '{type}' accettato.)", + "iris.modded.irismoddedcommands.searching": "Ricerca per {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "L'Engine di questo mondo è stato chiuso; rientra nella dimensione e riprova.", + "iris.modded.irismoddedcommands.search_failed_2": "Ricerca fallita: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Impossibile trovare {label} entro il tempo limite della ricerca.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teletrasportato a {label} in {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "L'Engine è cambiato durante la ricerca di {label}; riprova.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.world_seed": "Seed del mondo: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Seed dell'Engine: {value} (combinato: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Scaricamento IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack '{pack}' installato. I tipi di dimensione esatti e i biomi personalizzati verranno aggiunti al datapack Iris forzato al prossimo riavvio del server; riavvia prima di creare mondi da questo Pack.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Download del Pack {pack} non riuscito ({downloadSource}; consulta la console).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Questa dimensione non è stata generata da Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Generati: {value} chunk, {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Sconosciuto Iris sezione di aiuto: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: type={typeKey} active={activeMin}..{activeMax} logical={value} (Pack={value2}, Engine non avviato; altezze del Pack sconosciute)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: type={typeKey} active={activeMin}..{activeMax} logical={value} | Pack '{value2}' richiede {packMin}..{packMax} logical={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " ATTENZIONE: il tipo di dimensione attivo non corrisponde al Pack. Iris rifiuterà di avviare l'Engine del mondo per evitare di troncare il terreno. Esegui /iris world enable per i nuovi mondi oppure /iris datapack install per le dimensioni Iris già caricate, quindi riavvia il server.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Nessuna dimensione Iris è caricata.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Tutte le {irisLevels} dimensioni Iris corrispondono agli intervalli di altezza del loro Pack.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: Engine non avviato; non è ancora possibile ricavarne il tipo di dimensione.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: la generazione del tipo di dimensione è fallita: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Scrittura di {output} non riuscita: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Nessuna dimensione Iris con Engine in esecuzione trovata; non è stato installato nulla.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Scrittura di {mcmeta} non riuscita: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Scritto {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Override dei tipi di dimensione del datapack del mondo '{WORLDPACKNAME}' installati. Riavvia il server per applicarli.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Importazioni dei datapack configurate: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "L'importazione da Modrinth è disponibile solo su Bukkit; se necessario, installa manualmente questi datapack in world/datapacks.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Datapack installati nel mondo: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "È stata inviata un'eccezione di prova al sistema di segnalazione errori di Iris (Sentry se abilitato).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "La scansione di rete non è riuscita: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "È già in esecuzione una scansione GoldenHash.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Questo comando può essere utilizzato solo dai giocatori. (la bacchetta è un elemento fisico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Il tuo inventario e' pieno.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Puff! Buona costruzione! (clic sinistro = angolo 1, clic destro = angolo 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Questo comando può essere utilizzato solo dai giocatori. (la polvere è un elemento fisico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Il tuo inventario e' pieno.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Fare clic con il tasto destro su un blocco per rivelare l'oggetto a cui appartiene.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Questo comando può essere usato solo dai giocatori. (Il salvataggio acquisisce la selezione della bacchetta.)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Questa dimensione non è generata da Iris; gli oggetti vengono salvati nel Pack della dimensione.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Impugna la bacchetta Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Nessuna area selezionata. Fai prima clic sinistro e destro sui blocchi con la bacchetta.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Nome dell'oggetto non valido: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Selezione troppo grande: {volume} blocchi (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Il file esiste già. Usa /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Salvataggio dell'oggetto non riuscito: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Salvato {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} blocchi{tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Oggetto sconosciuto o vuoto: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "La console deve specificare le coordinate: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Non stai guardando un blocco all'interno {value} blocchi.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Incollamento non riuscito: {value} (modifiche parziali registrate per l'annullamento)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Posizionato {key} in {value} {value2} {value3} con rot={rotation} ({value4} scritture, {value5} blocchi non vuoti{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Impugna la bacchetta Iris. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Nessuna area selezionata.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Prepara la bacchetta. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Non stai guardando un blocco.", + "iris.modded.moddedobjectcommands.position_set": "Posizione {value} impostata su {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Tieni la bacchetta!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Nessuna area selezionata.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Selezione troppo grande per selezione automatica: {volume} blocchi (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Auto-selezione completa: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Oggetto sconosciuto: {key}", + "iris.modded.moddedobjectcommands.object_size": "Dimensioni oggetto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Blocchi utilizzati: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Blocchi nell'oggetto ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + altri {remaining} stati di blocco", + "iris.modded.moddedobjectcommands.unknown_object_2": "Oggetto sconosciuto: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Dimensione attuale dell'oggetto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Nuova dimensione dell'oggetto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "L'oggetto non ha un file sorgente; la riduzione non può essere salvata in modo permanente.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Non riuscito a salvare oggetto {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Portata non valida: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Nessun oggetto abbinato: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilizzazione [reach={reach}{value}]: {value2} oggetti in coda", + "iris.modded.moddedobjectcommands.nothing_undo": "Niente da annullare.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Annullati {reverted} incollamenti!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Cartella dei Pack non trovata: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Nessun Pack da convalidare in {value}.", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pack '{pack}' non trovato in {value}.", + "iris.modded.moddedpackcommands.validating_pack_s": "Convalida di {value} Pack...", + "iris.modded.moddedpackcommands.validation_failed": "Convalida di '{value}' non riuscita: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Convalida completata. Pack non validi: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pack '{pack}' non trovato in {value}.", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pack '{pack}' non trovato in {value}.", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Nessun risultato di convalida registrato. Esegui prima /iris pack validate.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blocking={value2}, avvertimenti={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Nessun risultato di convalida per '{pack}'. Esegui /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Il Pack '{value}' può essere caricato. (avvisi={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Il Pack '{value}' non è valido:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... e altri {value} avvisi.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Nessun elemento da ripulire trovato per il Pack '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Anteprima della pulizia del Pack '{pack}': {value} elementi. Nessun file è stato modificato.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Esegui /iris pack cleanup {pack} apply per mettere i file in quarantena dopo una nuova scansione.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Nessun elemento da ripulire trovato per il Pack '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Spostati in quarantena {value} elementi da ripulire in {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Non c'è nulla da ripristinare per il Pack '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Anteprima del ripristino da {value}: {value2} file. Nessun file è stato modificato.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Il ripristino è bloccato da {value} destinazioni già esistenti.", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Esegui /iris pack restore {pack} apply per ripristinare dopo un nuovo controllo dei conflitti.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Ripristino rifiutato perché esistono già {value} destinazioni.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Non c'è nulla da ripristinare per il Pack '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Ripristinati {value} file da {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... e {value} di più.", + "iris.modded.moddedregen.regen_is_already_running": "È già in corso una rigenerazione.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Questa dimensione non è generata da Iris. Esegui il comando da una dimensione Iris affinché il Pack possa essere individuato.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Indice delle strutture scritto: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Nessuna struttura Iris '{key}' in questo Pack.", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "La struttura '{key}' ha assemblato 0 pezzi (controlla startPool '{value}').", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Struttura '{key}': {value} pezzi, area {value2}x{value3} blocchi (seed di esempio 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Questo comando può essere utilizzato solo dai giocatori (la struttura è assemblata nella tua posizione).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Nessuna struttura Iris '{key}' in questo Pack.", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "La struttura '{key}' ha assemblato 0 pezzi.", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Posizionamento non riuscito: {value} (modifiche parziali registrate per l'annullamento)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "'{key}' posizionata nella tua posizione ({value} pezzi, {value2} scritture{tileNote}). Usa /iris object undo per annullare.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Specifica un Pack di dimensione: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Aprire il Noise Explorer sul display del server.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Questa dimensione non è generata da Iris. Esegui /iris studio noise da una dimensione Iris per risolvere i generatori, oppure ometti il nome del generatore.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Generatore sconosciuto '{generatorKey}' nel Pack {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Apertura di Noise Explorer per il generatore '{value}' (seed {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Questa dimensione non è generata da Iris. Entra in una dimensione Iris o studio ed esegui /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Apertura della mappa Vision per {value} sullo schermo del server.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Scrittura dell'area di lavoro per {value} non riuscita: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Area di lavoro rigenerata: {value}, con schemi JSON per il completamento automatico.", + "iris.modded.moddedstudiocommands.could_not_open": "Impossibile aprire {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Apertura di {value} nel tuo editor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Questa dimensione non è generata da Iris; specifica esplicitamente il nome di un Pack.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pack '{name}' non trovato in {value}.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Specifica un Pack di dimensione: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Apertura dello studio per '{pack}' (seed {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pack '{pack}' mancante; download di IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Impossibile scaricare il Pack '{pack}'; controlla il nome e prova /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Il Pack '{pack}' non contiene dimensions/{pack2}.json.", + "iris.modded.moddedstudiocommands.studio_open_failed": "Apertura dello studio non riuscita: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Iniezione dello studio non riuscita: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Studio da console aperto: {dimensionId} ora usa '{pack}' con seed {seed} (temporaneo; non viene scritto in iris-dimensions.json e sarà rimosso al riavvio).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Entraci con: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Pregeneralo con: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Rimuovilo con: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Iniezione dello studio non riuscita: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio aperto: {dimensionId} ora usa '{pack}' con seed {seed}. Al termine usa /iris studio close.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Non hai uno studio aperto. Usa prima /iris studio open .", + "iris.modded.moddedstudiocommands.studio_close_failed": "Chiusura dello studio non riuscita: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio chiuso: {dimensionId} è stato evacuato, scaricato e i suoi dati della regione cancellati.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Attualmente non sono aperte dimensioni dello studio.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Dimensione attiva dello studio(i): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: Pack '{value2}', seed {value3}, proprietario {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Questo comando può essere usato solo dai giocatori.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Non hai uno studio aperto. Usa prima /iris studio open .", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "La tua dimensione studio non è più caricata. Usa di nuovo /iris studio open .", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Teletrasportato al tuo studio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Il Pack '{value}' non contiene dimensions/{value2}.json.", + "iris.modded.moddedstudiocommands.pack_has_version": "Il Pack \"{value}\" ha la versione {value2}.", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Nome progetto non valido '{nameRaw}' (caratteri ammessi: a-z, 0-9, _ e -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Il Pack '{name}' esiste già in {value}.", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Creazione del progetto '{name}' dal modello '{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Il modello '{template}' non è installato; download di IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Impossibile scaricare il modello '{template}'; installa prima un Pack con dimensions/{template2}.json.", + "iris.modded.moddedstudiocommands.created_project_at": "Progetto '{name}' creato in {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Modifica dimensions/{name}.json e il resto del Pack. È stata generata un'area di lavoro VSCode con completamento automatico basato su schema JSON; aprila o riesegui /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "La creazione di progetti è fallita: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Creazione del pacchetto per la dimensione '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Pacchetto compilato: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Imballaggio fallito: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Questo comando può essere utilizzato solo dai giocatori (il campionamento è incentrato sulla tua posizione).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Questa dimensione non è stata generata da Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Distribuzione della regione di campionamento {value}x{value2} chunk intorno a te...", + "iris.modded.moddedstudiocommands.rarity": "{key}* rarità={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Il campionamento della regione è fallito: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Il Pack '{pack}' non è installato; download di IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Impossibile scaricare il Pack '{pack}'; controlla il nome o installalo con /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Iniezione del mondo Iris '{dimensionId}' non riuscita: {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Creato il mondo Iris {dimensionId} dal Pack '{pack}', dimensione '{packDimension}' (seed {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Ora è attivo e viene iniettato a ogni avvio. Teletrasportati con /iris world status o tramite un portale; non è necessario riavviare.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Iniezione del mondo Iris principale non riuscita: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Mondo Iris principale impostato su {dimensionId} (Pack '{pack}', dimensione '{packDimension}', seed {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Il generatore dell’Overworld vanilla non può essere sostituito a caldo, quindi questa operazione NON rigenera l’Overworld esistente.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "{dimensionId} è ora configurato come mondo principale: i giocatori nell'Overworld vanilla vengono indirizzati lì all'accesso e il mondo viene iniettato a ogni avvio.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Override del mondo principale Iris rimosso. L'Overworld mantiene il generatore corrente; modifica level-type in server.properties e riavvia per ripristinarlo.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Seed non valido '{seedRaw}'. Usa un numero o 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Il Pack '{pack}' non è installato; download di IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Impossibile scaricare il Pack '{pack}'; controlla il nome o installalo con /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Il Pack '{pack}' non è ancora pronto: è ancora in caricamento o in convalida. Riprova tra poco.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Scrittura di server.properties non riuscita; controlla i permessi del file e imposta level-type manualmente.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Mondo principale Iris impostato su '{pack}' (preset {preset}, seed {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "level-type in server.properties ora è {preset}. Al prossimo riavvio Overworld, Nether ed End verranno rigenerati come questo mondo Iris.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "I dati del giocatore (inventario, progressi, statistiche) sono conservati; il terreno esistente in tali dimensioni è sostituito. Questo vale una volta.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart è abilitato: il server verrà arrestato ora affinché il sistema di riavvio lo riapra sul nuovo mondo principale.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Riavvia ora il server per generarlo. (Imposta mainWorldAutoRestart=true in modded.json affinché Iris arresti il server automaticamente.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Creazione del mondo '{dimensionId}' con il Pack '{pack}' rifiutata perché la convalida obbligatoria non è riuscita:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Correggi il Pack ed esegui /iris pack validate {pack} per convalidarlo di nuovo.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pack '{pack}' non trovato in {value}.", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Il Pack '{pack}' non contiene dimensions/{packDimension}.json.", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Riferimento Pack non valido '{pack}{value}'. Usa pack oppure pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Seed non valido '{seedRaw}'. Usa un numero o 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Rimozione del mondo Iris '{dimensionId}' non riuscita: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Il mondo Iris '{dimensionId}' non era caricato; la voce persistente del registro è stata rimossa e i dati Chunk/Mantle salvati sono stati cancellati.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris mondo '{dimensionId}' non è stato caricato; ha cancellato la sua voce di registro persistente. I dati mondiali sul disco sono conservati.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Mondo Iris '{dimensionId}' eliminato: evacuato, scaricato, dati Chunk/Mantle cancellati e rimosso dal registro di avvio.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Mondo Iris '{dimensionId}' disabilitato: evacuato, scaricato e rimosso dal registro di avvio.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "I dati del mondo sul disco vengono conservati; riabilitalo con /iris world enable {dimensionId} oppure eliminalo con /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Livello Iris caricato: {value} -> Pack '{value2}', dimensione '{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Mondo primario: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Nessuna dimensione Iris è attualmente caricata. Creane una con /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Dimensioni Iris caricate: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Usa /iris world create per iniettarne una senza riavviare.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Scarica e gestisci le importazioni di datapack esterni da Modrinth", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Scarica o aggiorna tutti i datapack elencati in 'datapackImports' di una dimensione del Pack e installali nel mondo affinché le strutture vengano registrate come in vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Riavviare il server quando vengono installati nuovi datapack (richiesto per nuove strutture di registrare e generare)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Elenca le importazioni di datapack configurate e le loro versioni installate", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Rimuovere un datapack installato da id (eliminarne anche URL da datapackImports per tenerlo lontano)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Il datapack id (nome della cartella) indicato da /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Gestore dei mondi Iris", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Ottieni il numero di TectonicPlates caricate", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Invia un'eccezione di prova a Sentry", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Calcola l'hash dei blocchi generati in un'area fissa per test di determinismo e identità", + "iris.director.commanddeveloper.param.world_hash": "Il mondo di cui calcolare l'hash", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Radio in chunk intorno al centro", + "iris.director.commanddeveloper.param.center_chunk_x": "Centro chunk X", + "iris.director.commanddeveloper.param.center_chunk_z": "Coordinata Z del Chunk centrale", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Aggiorna il Pack di un mondo (NON SICURO!)", + "iris.director.commanddeveloper.param.world_update": "Il mondo per aggiornare", + "iris.director.commanddeveloper.param.pack_install_into_world": "Il Pack da installare nel mondo", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Assicurarsi di fare un backup & leggere prima gli avvertimenti!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Se Iris deve scaricare nuovamente il Pack", + "iris.director.commanddeveloper.director.test": "Test di prova", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Dump l'intera piastra tettonica invece di una singola sezione", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Il file di dump sotto plugins/Iris/dump (v..*)", + "iris.director.commanddeveloper.director.test_2": "Test di prova", + "iris.director.commanddeveloper.param.pack_bench": "Il Pack da sottoporre a benchmark", + "iris.director.commanddeveloper.param.radius_regions": "Radius nelle regioni", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Apri GUI mentre benchmarking", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Aggiornamento ad un altro Minecraft versione", + "iris.director.commanddeveloper.param.version_upgrade": "La versione per l'aggiornamento a", + "iris.director.commanddeveloper.director.test_3": "test di prova", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "La cartella mondiale per la scansione dei file della regione di .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Elimina i blocchi dei Chunk vicini per testare la rigenerazione", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "raggio in chunk intorno al vostro chunk attuale", + "iris.director.commanddeveloper.director.test_4": "Test di prova", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Eliminare e rigenerare i chunk vicini in posizione utilizzando Iris generazione", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Il raggio dei chunk vicini", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Genera Chunk in buffer senza scrivere nel mondo e calcola l'hash di blocchi e biomi; acquisisce un file Golden o verifica quello esistente. Reimposta Mantle nell'area esaminata: usare solo su mondi di test eliminabili.", + "iris.director.commanddeveloper.param.world_scan": "Il mondo per la scansione", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Radio in chunk intorno al centro", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Centro chunk X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Coordinata Z del Chunk centrale", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Eliminare i dati del Mantle nell'area di scansione prima per la rigenerazione completa da zero", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Generazioni chunk corrente; 1 = strettamente seriale per i test di indipendenza dell'ordine", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Anche discaricare completamente per-chunk non-air blockstates per il diffing offline", + "iris.director.commandedit.director.edit_something": "Modifica qualcosa", + "iris.director.commandedit.director.edit_biome_you_specified": "Modificare il biome specificato", + "iris.director.commandedit.param.biome_edit": "Il biome da modificare", + "iris.director.commandedit.director.edit_region_you_specified": "Modifica la regione specificata", + "iris.director.commandedit.param.region_edit": "La regione da modificare", + "iris.director.commandedit.director.edit_dimension_you_specified": "Modificare la dimensione specificata", + "iris.director.commandedit.param.dimension_edit": "La dimensione da modificare", + "iris.director.commandfind.director.iris_find_commands": "Iris Trova i comandi", + "iris.director.commandfind.director.find_biome": "Trova un biome", + "iris.director.commandfind.param.biome_look": "Il biome da cercare", + "iris.director.commandfind.param.should_you_be_teleported": "Se eseguire il teletrasporto", + "iris.director.commandfind.director.find_region": "Trova una regione", + "iris.director.commandfind.param.region_look": "La regione da cercare", + "iris.director.commandfind.param.should_you_be_teleported_2": "Se eseguire il teletrasporto", + "iris.director.commandfind.director.find_point_interest": "Trova un punto di interesse.", + "iris.director.commandfind.param.type_poi_look": "Il tipo di PoI per cercare.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Se eseguire il teletrasporto", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Trova una struttura: una chiave vanilla come minecraft:village_plains o minecraft:stronghold oppure una chiave di struttura Iris importata", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "La struttura da cercare, ad esempio minecraft:village_plains, minecraft:stronghold o minecraft_ancient_city", + "iris.director.commandfind.director.find_object": "Trova un oggetto", + "iris.director.commandfind.param.object_look": "L'oggetto da cercare", + "iris.director.commandfind.param.should_you_be_teleported_4": "Se eseguire il teletrasporto", + "iris.director.commandiris.director.basic_command": "Comando di base", + "iris.director.commandiris.director.create_new_world": "Creare un nuovo mondo", + "iris.director.commandiris.param.name_world_create": "Il nome del mondo da creare", + "iris.director.commandiris.param.dimension_pack_create_world_with": "La dimensione o il Pack con cui creare il mondo", + "iris.director.commandiris.param.seed_generate_world_with": "Il seed con cui generare il mondo", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Che sia o meno utilizzare automaticamente questo mondo come il mondo principale", + "iris.director.commandiris.director.teleport_another_world": "Teletrasporto in un altro mondo", + "iris.director.commandiris.param.world_teleport": "Il mondo verso cui teletrasportarsi", + "iris.director.commandiris.param.player_teleport": "Il giocatore da teletrasportare", + "iris.director.commandiris.director.print_version_information": "Mostra le informazioni sulla versione", + "iris.director.commandiris.director.benchmark_pack": "Esegui il benchmark di un Pack", + "iris.director.commandiris.param.dimension_benchmark": "Dimensione da sottoporre a benchmark", + "iris.director.commandiris.director.print_world_height_information": "Stampa informazioni sull'altezza del mondo", + "iris.director.commandiris.director.check_access_all_worlds": "Controlla l'accesso di tutti i mondi.", + "iris.director.commandiris.director.remove_iris_world": "Rimuovere un Iris mondo", + "iris.director.commandiris.param.world_remove": "Il mondo da rimuovere", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Se rimuovere anche la cartella (se impostato su falso, non caricare il mondo)", + "iris.director.commandiris.director.toggle_debug": "Debug attiva/disattiva", + "iris.director.commandiris.director.download_project": "Scarica un progetto.", + "iris.director.commandiris.param.pack_download": "Il Pack da scaricare", + "iris.director.commandiris.param.branch_download_from": "Il ramo da scaricare", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Se sovrascrivere il Pack con quello scaricato", + "iris.director.commandiris.director.get_metrics_your_world": "Ottieni metriche per il tuo mondo", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "ricarica file di configurazione (questo viene fatto anche automaticamente)", + "iris.director.commandiris.director.unload_iris_world": "Scarica un mondo Iris", + "iris.director.commandiris.param.world_unload": "Il mondo da scaricare", + "iris.director.commandiris.director.load_iris_world": "Caricare un Iris Mondo", + "iris.director.commandiris.param.name_world_load": "Il nome del mondo da caricare", + "iris.director.commandiris.director.evacuate_iris_world": "Evacuare un mondo iris", + "iris.director.commandiris.param.evacuate_world": "Evacuare il mondo", + "iris.director.commandobject.director.iris_object_manipulation": "Iris manipolazione dell'oggetto", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Apri un mondo Object Studio con la griglia di ogni oggetto; dimensione facoltativa, predefinita su tutti i Pack", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Dimensione facoltativa di cui disporre l'Object Pack; ometti per aggregare gli oggetti di ogni Pack", + "iris.director.commandobject.param.seed_generate_studio_with": "Il seed con cui generare lo studio", + "iris.director.commandobject.director.check_composition_object": "Controllare la composizione di un oggetto", + "iris.director.commandobject.param.object_analyze": "L'oggetto da analizzare", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Restringere un oggetto alla sua dimensione minima", + "iris.director.commandobject.param.object_shrink": "L'oggetto a restringere", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Fai crescere rami organici nella chioma affinché ogni foglia sopravviva al decadimento di vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Chiave oggetti, prefisso (tre/), o percorso filesystem", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true esegue solo l'analisi e non scrive nulla", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N imposta la lunghezza massima dei rami in blocchi dal legno esistente; i gruppi di foglie più lontani vengono invece resi persistenti. reach=0 consente crescita illimitata", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Converti file .schem nella cartella 'convert' in file .iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Ottenere una polvere che rivela oggetti", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Riduci una selezione in base alla direzione dello sguardo", + "iris.director.commandobject.param.amount_inset_by": "L'importo da impostare", + "iris.director.commandobject.director.set_point_1_look": "Imposta il punto 1 sulla posizione osservata", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Se utilizzare la posizione attuale, o dove si guarda", + "iris.director.commandobject.director.set_point_2_look": "Imposta il punto 2 sulla posizione osservata", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Se utilizzare la posizione attuale, o dove si guarda", + "iris.director.commandobject.director.paste_object": "Incolla un oggetto", + "iris.director.commandobject.param.object_paste": "L'oggetto da incollare", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Se modificare o meno l'oggetto (necessario tenere bacchetta)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "La quantità di gradi da ruotare", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Il fattore da cui scalare il posizionamento dell'oggetto", + "iris.director.commandobject.param.scale_interpolator_use": "L'interpolator di scala da usare", + "iris.director.commandobject.director.save_object": "Salvare un oggetto", + "iris.director.commandobject.param.dimension_store_object": "La dimensione per memorizzare l'oggetto in", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Il file per memorizzarlo in, può usare / per sottocartelle", + "iris.director.commandobject.param.overwrite_existing_object_files": "Sovrascrivi i file oggetto esistenti", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Utilizzare legacy TileState serializzazione se possibile", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Passa una selezione nella tua direzione di ricerca", + "iris.director.commandobject.param.amount_shift_by": "L'importo da spostare", + "iris.director.commandobject.director.undo_number_pastes": "Annulla più incollamenti", + "iris.director.commandobject.param.amount_pastes_undo": "Il numero di incollamenti da annullare", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Ottieni una bacchetta oggetto e acquisisci la selezione WorldEdit corrente", + "iris.director.commandobject.director.get_object_wand": "Ottieni una bacchetta per oggetti", + "iris.director.commandobject.director.autoselect_up_down_out": "Autoseleziona, giù & fuori", + "iris.director.commandobject.director.autoselect_up_out": "Autoselezionare & fuori", + "iris.director.commandpack.director.pack_validation_maintenance": "Convalida e manutenzione dei Pack", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Convalida un Pack o tutti i Pack e ripubblica i risultati", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Nome della cartella del Pack da convalidare; lascia vuoto per tutti", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Anteprima o applicare la pulizia delle risorse non utilizzate", + "iris.director.commandpack.param.pack_folder_name_clean": "Nome della cartella del Pack da ripulire", + "iris.director.commandpack.param.preview_apply": "preview o apply", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Anteprima o applica il ripristino dell'ultima quarantena", + "iris.director.commandpack.param.pack_folder_name_restore": "Nome della cartella del Pack da ripristinare", + "iris.director.commandpack.param.preview_apply_2": "preview o apply", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Mostra lo stato di convalida memorizzato per un Pack", + "iris.director.commandpack.param.pack_folder_name": "Nome della cartella del Pack", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Pregenera i tuoi mondi Iris!", + "iris.director.commandpregen.director.pregenerate_world": "Pregenerare un mondo", + "iris.director.commandpregen.param.radius_pregen_blocks": "Raggio della pregenerazione in blocchi", + "iris.director.commandpregen.param.world_pregen": "Il mondo da pregenerare", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Centro della pregenerazione; usa \"me\" per la posizione corrente", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Apri la GUI di pregenerazione Iris", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Genera un solo Chunk alla volta", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Interrompere il compito di pregenerazione attiva", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pausa / continuare l'attività di pregenerazione attiva", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Mostra lo stato di pregenerazione attiva", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris strumenti di struttura (indice, importazione, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Rigenera structure-index.json elencando tutte le strutture vanilla, datapack e Iris", + "iris.director.commandstructure.param.dimension_whose_pack_index": "La dimensione il cui Pack deve essere indicizzato", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importa OGNI struttura di vanilla e dei datapack acquisiti in questo Pack come risorsa Iris modificabile, sovrascrivendo sempre i file esistenti. Ricostruisce strutture jigsaw come villaggi, avamposti e jigsaw datapack in grafi modificabili di pool e pezzi, importa ogni modello NBT come oggetto e assembla le strutture composte da più modelli. Esegui dopo aver acquisito un datapack e riavviato. Rigenera i Chunk o usa un mondo nuovo affinché vengano collocate le copie importate.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "La dimensione nel cui Pack eseguire l'importazione", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Acquisisce strutture generate dal codice prive di modello NBT, come capanne nella palude e igloo, come oggetti Iris modificabili generandole in un mondo di prova temporaneo e leggendone i blocchi. Salta le strutture già importabili, troppo grandi o non generabili in un Overworld piatto; roccaforti, magioni e monumenti restano vanilla. Ogni struttura acquisita diventa una struttura Iris a pezzo singolo. Questo passaggio viene eseguito automaticamente al termine di /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "La dimensione nel cui Pack eseguire l'acquisizione", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Verificare l'ammissibilità della struttura nativa e individuare Iris-sostituzioni posizionate senza eseguire il blocco ricerche native.", + "iris.director.commandstructure.param.dimension_verify": "La dimensione da verificare", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "raggio di ricerca in chunk intorno all'origine (più grande è molto più lento)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Risolvi il grafo jigsaw di una struttura Iris e mostra numero di pezzi e limiti", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "La dimensione il cui Pack contiene la struttura", + "iris.director.commandstructure.param.iris_structure_key_inspect": "La struttura iris chiave per ispezionare", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Assemblare e posizionare una struttura iris nella tua posizione (studio testing)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "La dimensione il cui Pack contiene la struttura", + "iris.director.commandstructure.param.iris_structure_key_place": "La chiave della struttura di iris", + "iris.director.commandstudio.director.studio_commands": "Comandi dello studio", + "iris.director.commandstudio.director.open_new_studio_world": "Aprire un nuovo mondo di studio", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Il Pack di dimensione per cui aprire uno studio", + "iris.director.commandstudio.param.seed_generate_studio_with": "Il seed con cui generare lo studio", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Importa dal server alberi, funghi e oggetti, inclusi structures/jigsaw vanilla, nella cartella objects/vanilla di un Pack", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Il Pack di dimensione in cui importare contenuti vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Quante varianti da catturare per funzione albero/oggetto", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Importa nel Pack anche structures/jigsaw vanilla e datapack", + "iris.director.commandstudio.director.open_vscode_dimension": "Apri VSCode per una dimensione", + "iris.director.commandstudio.param.dimension_open_vscode": "La dimensione da aprire VSCode per", + "iris.director.commandstudio.director.close_open_studio_project": "Chiudere un progetto open studio", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "cambiare il tuo tabellone di debug studio", + "iris.director.commandstudio.director.create_new_studio_project": "Creare un nuovo progetto di studio", + "iris.director.commandstudio.param.name_this_new_iris_project": "Il nome di questo nuovo Iris Progetto.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Copia il contenuto di un progetto esistente nella cartella dei Pack e usalo come modello per il nuovo progetto", + "iris.director.commandstudio.director.get_version_pack": "Ottieni la versione di un Pack", + "iris.director.commandstudio.param.dimension_get_version": "La dimensione ottiene la versione di", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Apri Noise Explorer come GUI esterna", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Generatore facoltativo del Pack da visualizzare in anteprima", + "iris.director.commandstudio.param.seed_preview_generator_with": "Il seme per visualizzare in anteprima il generatore con", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Mostra il bottino che avrebbe una cassa in questa posizione", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Inserimento rapido di oggetti in inventario virtuale (può causare la caduta delle prestazioni)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Che si tratti di aggiungere o meno all'inventario attualmente aperto (se falso, cancella l'inventario aperto)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Calcolare la possibilità per ogni regione di generare", + "iris.director.commandstudio.param.radius_chunks": "Il raggio in chunk", + "iris.director.commandstudio.director.render_world_map_external_gui": "Render una mappa del mondo (External GUI)", + "iris.director.commandstudio.param.world_open_generator": "Il mondo per aprire il generatore", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Impacchetta una dimensione in un formato compresso", + "iris.director.commandstudio.param.dimension_pack_compress": "Il Pack di dimensione da comprimere", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Se offuscare il Pack", + "iris.director.commandstudio.param.whether_not_minify_pack": "Se minimizzare il Pack", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profila le prestazioni di una dimensione", + "iris.director.commandstudio.param.dimension_profile": "La dimensione del profilo", + "iris.director.commandstudio.director.spawn_iris_entity": "Genera un'entità Iris", + "iris.director.commandstudio.param.entity_spawn": "L'entità da generare", + "iris.director.commandstudio.param.location_spawn_entity_at": "La posizione in cui generare l'entità", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teletrasporto al mondo dello studio attivo", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Aggiorna l'area di lavoro VSCode del progetto di dimensione", + "iris.director.commandstudio.param.dimension_update_workspace": "La dimensione per aggiornare lo spazio di lavoro", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Acquisisci un report IGenData Chunk per i Chunk vicini", + "iris.director.commandwhat.director.iris_what": "Iris Cosa?", + "iris.director.commandwhat.director.what_is_my_hand": "Cosa c'è nella mia mano?", + "iris.director.commandwhat.director.what_biome_am_i": "In che bioma sono?", + "iris.director.commandwhat.director.what_region_am_i": "In che regione sono?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Che blocco sto guardando?", + "iris.director.commandwhat.director.show_markers_chunk": "Mostra i marcatori nel Chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Nome marcatore come cave floor o cave ceiling", + "iris.modded.help.entry.command.version": "Mostra le informazioni sulla versione", + "iris.modded.help.entry.command.info": "Elenca le dimensioni Iris caricate e i dettagli del relativo Pack", + "iris.modded.help.entry.command.what": "Esamina bioma Iris, regione, bioma della grotta, superficie e Chunk nella tua posizione, oltre al blocco osservato, all'oggetto impugnato o ai marcatori vicini", + "iris.modded.help.entry.group.find": "Trova e raggiungi biomi Iris, regioni, oggetti, strutture Iris, strutture native e punti di interesse", + "iris.modded.help.entry.command.tp": "Teletrasporta te stesso o un giocatore specificato in una dimensione Iris caricata", + "iris.modded.help.entry.command.evacuate": "Teletrasporta tutti i giocatori fuori da una dimensione Iris verso lo spawn del mondo principale", + "iris.modded.help.entry.command.seed": "Mostra le informazioni sui seed del mondo e dell'Engine", + "iris.modded.help.entry.command.debug": "Attiva o disattiva la registrazione di debug Iris e salva settings.json", + "iris.modded.help.entry.command.reload": "Ricarica settings.json; il file viene anche ricaricato automaticamente ogni 3 secondi", + "iris.modded.help.entry.command.download": "Scarica un progetto Pack", + "iris.modded.help.entry.command.metrics": "Mostra le metriche di generazione della dimensione Iris corrente", + "iris.modded.help.entry.command.regen": "Eliminare e rigenerare i chunk vicini al posto", + "iris.modded.help.entry.group.pregen": "Pregenera una dimensione Iris", + "iris.modded.help.entry.command.wand": "Ottieni una bacchetta oggetto Iris", + "iris.modded.help.entry.group.object": "Strumenti per bacchetta oggetto, salvataggio, incollamento, analisi e annullamento", + "iris.modded.help.entry.group.edit": "Apri i file JSON di bioma, regione e dimensione di un Pack nell'editor desktop", + "iris.modded.help.entry.command.create": "Crea e inietta una dimensione Iris persistente; racchiudi pack:dimensionKey tra virgolette per scegliere una dimensione specifica del Pack", + "iris.modded.help.entry.group.studio": "Creazione, impacchettamento e report dei progetti Pack", + "iris.modded.help.entry.group.pack": "Convalida e manutenzione dei Pack", + "iris.modded.help.entry.group.world": "Creazione, rimozione e stato delle dimensioni Iris durante l'esecuzione", + "iris.modded.help.entry.group.datapack": "Installazione e stato dei datapack del mondo", + "iris.modded.help.entry.group.structure": "Iris struttura indice, info e strumenti di posizionamento", + "iris.modded.help.entry.command.goldenhash": "Genera blocchi deterministici per prove di parità", + "iris.modded.help.entry.group.developer": "Diagnostica degli sviluppatori: Test di Sentry, interfacce di rete, scansione dei file regionali", + "iris.modded.help.entry.command.biome": "Trova un bioma Iris", + "iris.modded.help.entry.command.region": "Trova una regione Iris", + "iris.modded.help.entry.command.object": "Trova un posizionamento degli oggetti", + "iris.modded.help.entry.command.structure": "Trova una struttura collocata da Iris o una struttura nativa/datapack", + "iris.modded.help.entry.command.poi": "Trova un punto di interesse supportato", + "iris.modded.help.entry.command.biome_2": "Aprire un json biome nel vostro editor desktop; nessuna chiave apre il biome nella vostra posizione", + "iris.modded.help.entry.command.region_2": "Apri un json regione nel tuo editor desktop; nessuna chiave apre la regione alla tua posizione", + "iris.modded.help.entry.command.dimension": "Apri il JSON della dimensione del Pack corrente nell'editor desktop", + "iris.modded.help.entry.command.start": "Avvia la pregenerazione; raggio in blocchi, cache dei checkpoint ripristinabile attiva per impostazione predefinita, centro tramite 'at '; le opzioni possono essere combinate in qualsiasi ordine", + "iris.modded.help.entry.command.stop": "Interrompere il compito di pregenerazione attiva", + "iris.modded.help.entry.command.pause": "Pausa o riprendere la pregenerazione", + "iris.modded.help.entry.command.status": "Mostra lo stato di pregenerazione", + "iris.modded.help.entry.command.wand_3": "Ottieni una bacchetta oggetto Iris", + "iris.modded.help.entry.command.dust": "Ottenere polvere che rivela posizionamenti oggetti", + "iris.modded.help.entry.command.save": "Salvare il volume della bacchetta selezionata come oggetto", + "iris.modded.help.entry.command.paste": "Incolla un oggetto nella tua posizione o una determinata posizione, ruotando facoltativamente", + "iris.modded.help.entry.command.expand": "Espandi la selezione della bacchetta nella tua direzione di ricerca", + "iris.modded.help.entry.command.contract": "Riduci la selezione della bacchetta nella direzione dello sguardo", + "iris.modded.help.entry.command.shift": "Sposta la selezione della bacchetta nella tua direzione", + "iris.modded.help.entry.command.position1": "Imposta il punto di selezione 1", + "iris.modded.help.entry.command.position2": "Imposta il punto di selezione 2", + "iris.modded.help.entry.command.x_y": "Seleziona automaticamente verso l'alto e l'esterno", + "iris.modded.help.entry.command.x_y_2": "Seleziona automaticamente verso l'alto, il basso e l'esterno", + "iris.modded.help.entry.command.analyze": "Mostra la composizione degli oggetti", + "iris.modded.help.entry.command.shrink": "Restringere un oggetto alla sua dimensione minima", + "iris.modded.help.entry.command.plausibilize": "Fai crescere i rami affinché le foglie sopravvivano al decadimento di vanilla", + "iris.modded.help.entry.command.undo": "Annulla gli oggetti incollati", + "iris.modded.help.entry.command.create_2": "Creare un nuovo progetto pack", + "iris.modded.help.entry.command.package": "Impacchetta una dimensione in formato compresso", + "iris.modded.help.entry.command.version_2": "Mostra la versione di un Pack", + "iris.modded.help.entry.command.regions": "Calcola la distribuzione della regione vicina", + "iris.modded.help.entry.command.open": "Apri una dimensione studio temporanea per un Pack", + "iris.modded.help.entry.command.close": "Chiudere la dimensione open studio e scartare il suo mondo", + "iris.modded.help.entry.command.tpstudio": "Teletrasporto nella dimensione open studio", + "iris.modded.help.entry.command.status_studio": "Mostra la dimensione studio aperta e il relativo Pack", + "iris.modded.help.entry.command.noise": "Apri la GUI di Noise Explorer sullo schermo del server", + "iris.modded.help.entry.command.map": "Aprire la mappa Vision GUI sul display del server", + "iris.modded.help.entry.command.vscode": "Rigenera il file .code-workspace di un Pack e aprilo nell'editor desktop", + "iris.modded.help.entry.command.update": "Rigenera il file .code-workspace di un Pack", + "iris.modded.help.entry.command.importvanilla": "Spiega il flusso di importazione da vanilla", + "iris.modded.help.entry.command.validate": "Convalida un Pack oppure tutti i Pack", + "iris.modded.help.entry.command.cleanup": "Anteprima o quarantena candidati non utilizzati", + "iris.modded.help.entry.command.restore": "Anteprima o ripristinare l'ultima quarantena", + "iris.modded.help.entry.command.status_validation": "Mostra lo stato di convalida cache", + "iris.modded.help.entry.command.enable": "Crea e inietta una dimensione Iris persistente durante l'esecuzione; scarica il Pack se manca e usa pack:dimensionKey tra virgolette per scegliere una dimensione specifica del Pack", + "iris.modded.help.entry.command.replace_overworld": "Inietta un mondo Iris principale e indirizza lì i giocatori al posto dell'Overworld vanilla", + "iris.modded.help.entry.command.disable": "Evacua e scarica una dimensione Iris; i dati del mondo sul disco vengono conservati per poterla riabilitare", + "iris.modded.help.entry.command.delete": "Disabilita una dimensione Iris e cancella dal disco i relativi dati Chunk e Mantle", + "iris.modded.help.entry.command.list": "Elenca le dimensioni Iris caricate", + "iris.modded.help.entry.command.status_world": "Mostra le dimensioni Iris caricate e il mondo principale configurato", + "iris.modded.help.entry.command.status_datapack": "Controlla gli override dei tipi di dimensione Iris caricati", + "iris.modded.help.entry.command.install": "Installa gli override dei tipi di dimensione per le dimensioni Iris caricate", + "iris.modded.help.entry.command.list_datapacks": "Elenca i datapack configurati e installati", + "iris.modded.help.entry.command.ingest": "Spiega il flusso Bukkit per l'importazione dei datapack", + "iris.modded.help.entry.command.remove": "Spiegare il flusso di lavoro di rimozione del datapack", + "iris.modded.help.entry.command.list_structures": "Rigenera structure-index.json", + "iris.modded.help.entry.command.info_2": "Risolvi il grafo di una struttura Iris e mostrane i limiti", + "iris.modded.help.entry.command.place": "Assembla e posiziona una struttura Iris nella tua posizione", + "iris.modded.help.entry.command.import": "Spiega il flusso Bukkit per l'importazione delle strutture", + "iris.modded.help.entry.command.capture": "Spiega il flusso Bukkit per l'acquisizione delle strutture", + "iris.modded.help.entry.command.verify": "Mostra la raggiungibilità delle strutture native e Iris nella dimensione corrente", + "iris.modded.help.entry.command.sentry": "Invia un'eccezione di prova al sistema di segnalazione errori Iris", + "iris.modded.help.entry.command.network": "Elenca le interfacce di rete e i loro indirizzi", + "iris.runtime.progress.finding_regions": "Ricerca delle regioni", + "iris.runtime.progress.converting": "Conversione", + "iris.runtime.status.running": "In esecuzione", + "iris.runtime.status.stopped": "Arrestato", + "iris.runtime.status.paused": "In pausa", + "iris.runtime.status.paused_lower": "in pausa", + "iris.runtime.status.running_lower": "in esecuzione", + "iris.runtime.status.enabled": "abilitato.", + "iris.runtime.status.disabled": "disabilitato.", + "iris.runtime.status.unregistered": "non registrato", + "iris.runtime.status.none": "nessuno", + "iris.runtime.status.random": "casuale", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "vero", + "iris.runtime.status.false": "falso", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " sovrascrittura", + "iris.runtime.datapack.override_suffix": " (override del datapack del mondo installato)", + "iris.runtime.primary_world.players_routed_suffix": " (giocatori reindirizzati lì)", + "iris.runtime.primary_world.routing_disabled_suffix": " (reindirizzamento disabilitato)", + "iris.runtime.modded.no_dimension_match": "Nessuna dimensione Iris corrisponde a '{filter}'.", + "iris.runtime.teleport.world": "Sei stato teletrasportato in {world}.", + "iris.runtime.engine.hotloaded": "Engine ricaricato", + "iris.runtime.job.completed": "{job} completato in {duration}", + "iris.runtime.job.scanning_selection": "Scansione della selezione", + "iris.runtime.job.loading_chunks": "Caricamento dei chunk", + "iris.runtime.job.searched_chunks": "Esaminati {chunks} chunk", + "iris.runtime.job.compile": "Compilazione", + "iris.runtime.job.saving_object": "Salvataggio di oggetti", + "iris.runtime.job.downloading": "Scaricamento", + "iris.runtime.job.extracting": "Estrazione", + "iris.runtime.job.installing": "Installazione", + "iris.runtime.compile.iob_empty": "- IOB {file} ha 0 blocchi!", + "iris.runtime.compile.iob_empty_hover": "Errore:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} non è 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Errore:\n{path}\nLa larghezza, l'altezza o la profondità è zero (formato non valido)", + "iris.runtime.compile.json_error": "- Errore JSON {file}", + "iris.runtime.compile.json_error_hover": "Errore:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Impossibile trovare il loader per {path}", + "iris.runtime.datapack.name": "Generazione mondi Iris", + "iris.runtime.pack.already_exists": "Il Pack esiste già!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "salta {object}: caricamento non riuscito", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} legno ({branches} rami), {converted} foglie->legno, ~{distances} distanze", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} legno ({branches} rami), {converted} foglie->legno, ~{distances} distanze, !{pinned} fissati", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "errore {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Completato: {processed} elaborati, {changed} modificati, {skipped} ignorati, {failed} non riusciti", + "iris.runtime.tree_plausibilize.done_dry": "Completato: {processed} elaborati, {changed} modificati, {skipped} ignorati, {failed} non riusciti (prova a secco, nessuna scrittura)", + "iris.runtime.tree_plausibilize.totals": "Totale: +{wood} legno ({branches} rami), {converted} foglie->legno, ~{distances} distanze, !{pinned} fissati, irraggiungibili {before} -> {after}", + "iris.runtime.item.wand.name": "Bacchetta di Iris", + "iris.runtime.item.wand.lore.first": "Fare clic a sinistra su un blocco per impostare il primo angolo", + "iris.runtime.item.wand.lore.second": "Fare clic destro su un blocco per impostare il secondo angolo", + "iris.runtime.item.dust.name": "Polvere di rivelazione", + "iris.runtime.item.dust.lore": "Fare clic destro su un blocco per rivelare la sua struttura di posizionamento!", + "iris.runtime.wand.position_set": "Posizione {position} impostata a {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Questa dimensione non è stata generata da Iris.", + "iris.runtime.dust.found_object": "Oggetto trovato {object}", + "iris.runtime.dust.revealed": "Rivelato {count} blocco(i) di {object}", + "iris.runtime.dust.revealed_capped": "Rivelati {count} blocchi di {object} (limite raggiunto)", + "iris.runtime.dust.header": "--- Polvere Iris @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Blocco: {block}", + "iris.runtime.dust.position.above": "Posizione: +{offset} sopra superficie (superficie Y={surfaceY})", + "iris.runtime.dust.position.below": "Posizione: {offset} sotto la superficie (superficie Y={surfaceY})", + "iris.runtime.dust.position.at": "Posizione: in superficie (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Oggetto @block: {object}", + "iris.runtime.dust.none": "Nessuno", + "iris.runtime.dust.placed_by.object_above": "Posizionato da: oggetto/pilastro '{object}' (sopra la superficie)", + "iris.runtime.dust.placed_by.decoration_above": "Posizionato da: decorazione/oggetto/pilastro (sopra la superficie)", + "iris.runtime.dust.placed_by.buried_object": "Posizionato da: oggetto sepolto '{object}'", + "iris.runtime.dust.placed_by.terrain": "Posizionato da: strato terreno (profondità {depth} sotto superficie)", + "iris.runtime.dust.column_object": "Oggetto della colonna: {object} -> questo blocco è probabilmente il pilastro dell'oggetto", + "iris.runtime.dust.column_object_none": "Oggetto colonna: {detail}", + "iris.runtime.dust.column_none": "nessuno entro 64 (decoratore o terreno, NON un pilastro di oggetto)", + "iris.runtime.dust.column.above": "{object} @Y={y} (sopra)", + "iris.runtime.dust.column.below": "{object} @Y={y} (sotto)", + "iris.runtime.dust.surface_biome": "Bioma di superficie: {biome}", + "iris.runtime.dust.surface_biome_detail": "Bioma di superficie: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Bioma @Y: {biome}", + "iris.runtime.dust.cave_biome": "Bioma di grotta/Mantle: {biome}", + "iris.runtime.dust.server_biome": "Bioma del server: {biome} (ID: {id})", + "iris.runtime.dust.region": "Regione: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Oggetti in chunk: {objects}", + "iris.runtime.dust.copy_button": "[Clicca per copiare queste statistiche]", + "iris.runtime.dust.copy_hover": "Copia le statistiche del blocco negli appunti", + "iris.runtime.pregen.starting": "Avvio della pregenerazione Iris...", + "iris.runtime.pregen.header": "Pregenerazione Iris", + "iris.runtime.pregen.bossbar.paused": "Pregenerazione Iris {generated}/{total} {percent}% IN PAUSA", + "iris.runtime.pregen.bossbar.running": "Pregenerazione Iris {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " non riusciti {failed}", + "iris.runtime.pregen.status.context": "Dimensione {dimension} · Metodo {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunk {generated}/{total} · Velocità {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunk {generated}/{total} · Velocità {speed}/s · Non riusciti {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Trascorso {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Trascorso {elapsed} · IN PAUSA", + "iris.runtime.pregen.button.pause": "Pausa/Riprendi", + "iris.runtime.pregen.button.pause.hover": "Cambia lo stato di pausa della pregenerazione", + "iris.runtime.pregen.button.stop": "Arresta", + "iris.runtime.pregen.button.stop.hover": "Completa la regione corrente e arresta la pregenerazione", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cCartella packs/ non trovata.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eNessun Pack da convalidare.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aConvalida completata. Pack non validi: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPack '{pack}' non trovato in packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aNessun elemento da ripulire trovato per il Pack '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aSpostati in quarantena {size} elementi da ripulire in {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cLa modalità di pulizia deve essere preview o apply.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aNessun elemento da ripulire trovato per il Pack '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eAnteprima della pulizia del Pack '{pack}': {size} elementi. Nessun file è stato modificato.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Esegui /iris pack cleanup {pack} mode=apply per mettere in quarantena questi elementi dopo una nuova scansione.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cRipristino rifiutato perché esistono già {size} destinazioni.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNon c'è nulla da ripristinare per il Pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aRipristinati {size} file da {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cLa modalità di ripristino deve essere preview o apply.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNon c'è nulla da ripristinare per il Pack '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eAnteprima del ripristino da {dumpPath}: {size} file. Nessun file è stato modificato.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cIl ripristino è bloccato da {size} destinazioni già esistenti.", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Esegui /iris pack restore {pack} mode=apply per applicare il ripristino dopo un nuovo controllo dei conflitti.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eNessun risultato di convalida registrato. Esegui prima /iris pack validate.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK§r {pack}§7 (bloccanti={blocking}, avvisi={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBROKEN§r {pack}§7 (bloccanti={blocking}, avvisi={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cLa pulizia non è riuscita: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cRipristino fallito: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "ancora in quarantena", + "iris.bukkit.runtime.commandpack.path.quarantined": "in quarantena", + "iris.bukkit.runtime.commandpack.path.candidate": "candidato", + "iris.bukkit.runtime.commandpack.path.conflict": "conflitto", + "iris.bukkit.runtime.commandpack.path.restored": "ripristinato", + "iris.bukkit.runtime.commandpack.path.file": "file", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eNessun risultato di convalida per '{pack}'. Esegui /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cConvalida di '{name}' non riuscita: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aIl Pack '{packName}' può essere caricato.§7 (avvisi={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cIl Pack '{packName}' non è valido:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... e altri {count} avvisi.", + "one": "§7 ... e {count} altro avviso." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cCrea sempre un backup prima di usare questa funzione.", + "§eI possibili problemi includono, tra gli altri:", + "§e - Transizioni Chunk danneggiate tra Chunk vecchi e nuovi (prima e dopo l'aggiornamento)", + "§e - Chunk rigenerati che non si raccordano con i vecchi Chunk", + "§e - Strutture che non vengono generate di nuovo durante la rigenerazione", + "§e - Grotte che non si raccordano", + "§e - Strati del terreno che non si raccordano", + "§cDopo aver compreso i rischi e creato un backup:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportazione di §f{total}§a strutture vanilla e datapack (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[errore] {keyString}: chiave non valida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[ignorato] {keyString}: nessun NBT con modello singolo; vanilla crea questa struttura nel codice o da modelli di parti separate, importati durante il passaggio dei modelli. Non esiste una singola struttura da importare.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[errore] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aImportazione in blocco completata: §f{imported}§a importate, §f{skipped}§a ignorate, §f{failed}§a non riuscite (§f{total}§a totali).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aCreazione di strutture con modello singolo dalle parti importate (una variante collocata per ogni generazione)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[gruppo] {value} -> {value2} ({blocks} varianti)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[ignorato] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[errore] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aStrutture con modello singolo: §f{imported}§a create, §f{skipped}§a ignorate, §f{failed}§a non riuscite.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cImpossibile enumerare i modelli di struttura tramite il ResourceManager del server: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eNessun modello di struttura trovato nel percorso di risorse 'structure'.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportazione di §f{total}§a modelli di struttura (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[errore] {keyString}: chiave non valida", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[errore] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importate, {skipped} ignorate, {failed} non riuscite)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aImportazione dei modelli completata: §f{imported}§a importati, §f{skipped}§a ignorati, §f{failed}§a non riusciti (§f{total}§a totali).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eNon sono registrate strutture datapack esterne a Minecraft. Importa prima un datapack, riavvia il server e poi ripeti l'operazione.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportazione di §f{total}§a strutture datapack (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[errore] {keyString}: chiave non valida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[errore] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportazione di §f{size}§a modelli di struttura datapack...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[errore] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[errore] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eImpossibile enumerare i modelli datapack tramite il ResourceManager del server: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aImportazione delle strutture datapack completata: §f{imported}§a importate, §f{skipped}§a ignorate, §f{failed}§a non riuscite.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eIl collegamento NMS attivo non supporta l'acquisizione delle strutture; il relativo passaggio verrà ignorato.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Non restano strutture generate dal codice da acquisire (sono già state tutte importate come strutture).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aAcquisizione di §f{total}§a strutture generate dal codice senza modello NBT in un mondo di lavoro temporaneo; verranno ignorate quelle più larghe o alte di {MAXSPAN} blocchi...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[ignorato] {key}: qui non è stata collocata una struttura acquisibile (troppo grande, dimensione errata o nessun posizionamento valido in un mondo piatto). Continuerà a essere generata da vanilla.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[errore] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[acquisizione] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[errore] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} acquisite, {skipped} ignorate, {failed} non riuscite)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aAcquisizione delle strutture completata: §f{imported}§a acquisite, §f{skipped}§a ignorate, §f{failed}§a non riuscite (§f{total}§a totali).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eIl collegamento NMS attivo non espone feature albero/oggetto di vanilla; verranno importate solo le strutture.", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportazione di §f{total}§a feature albero/oggetto di vanilla, con §f{wantVariants}§a varianti ciascuna, in un mondo di lavoro temporaneo...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[oggetto] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[ignorato] {key}: la feature non ha collocato nulla dopo diversi tentativi.", + "iris.bukkit.runtime.featureimporter.fail": "§c[errore] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importate, {skipped} ignorate, {failed} non riuscite)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aImportazione delle feature completata: §f{imported}§a scritte, §f{skipped}§a ignorate, §f{failed}§a non riuscite (§f{total}§a totali).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cImpossibile creare il mondo di lavoro temporaneo per l'importazione delle feature ({error}); il passaggio albero/oggetto verrà ignorato.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Nessun file schematic da convertire trovato in {path}.", + "iris.bukkit.runtime.irisconverter.converted": "§aConvertito {name} -> {value} nel {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aConvertito {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cSalvataggio non riuscito: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cConversione non riuscita: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Convertito: {get} nel {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cNon è stato possibile convertire alcuni file schematic. Controlla la console per i dettagli.", + "iris.bukkit.runtime.studiosvc.installing_package": "Installazione del pacchetto: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Ricerca del pacchetto: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Trovato {type}.iris nella cartella {WORKSPACENAME}", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Trovata la dimensione {type} nella cartella {WORKSPACENAME}. Creazione del nuovo pacchetto.", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Impossibile trovare {name} nella cartella dimensions di questo Pack. Operazione non riuscita!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Impossibile caricare la dimensione. Operazione non riuscita!", + "iris.bukkit.runtime.studiosvc.type_installed": "Tipo {name} installato. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Il Pack '{key}' non è stato trovato nell'elenco dei Pack.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Usa /iris download branch= per eseguire manualmente il download.", + "iris.bukkit.runtime.studiosvc.failed_download": "Download di '{key}' non riuscito.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Download della versione beta IrisDimensions/overworld non riuscito.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Download di '{repo}' (branch {branch}) non riuscito.", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Impossibile aprire il mondo studio: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Impossibile aprire lo studio '{dimm}': il Pack contiene errori bloccanti:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Correggi il Pack ed esegui /iris pack validate {dimm} per convalidarlo di nuovo.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Impossibile chiudere il progetto studio esistente: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Impossibile chiudere il progetto studio esistente: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Impossibile aprire il mondo studio: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Impossibile trovare il Pack da cui creare una nuova dimensione.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "File di dimensione importato mancante", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importazione {downloadable} nel nuovo progetto {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio: nessuna cella nel punto selezionato (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: salvataggio di §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: nessuna modifica per {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: cella vuota {pack}/{key} (niente da scrivere).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: nessun file di destinazione per {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: salvato §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: salvataggio di {pack}/{key} non riuscito ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Impossibile caricare la dimensione \"{value}\".", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Impossibile ottenere il caricatore della dimensione.", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cApertura dello studio non riuscita: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cApertura dello studio non riuscita.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio pronto §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serializzazione degli oggetti", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Scritti altri {g} oggetti", + "iris.bukkit.runtime.irisproject.package_compiled": "Pacchetto compilato!", + "iris.bukkit.runtime.irisproject.failed": "Fallito!", + "iris.bukkit.runtime.irisengine.total": "Totale: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Engine §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Dettagli: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} non è definito nella dimensione!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cImpossibile trovare {message} entro il raggio di ricerca.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeletrasporto verso {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} a: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Sei stato evacuato da questo mondo.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Sei stato evacuato da questo mondo. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Alcuni Iris Pack contengono biomi personalizzati.", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Devi riavviare il server per usare questi Pack.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Permessi insufficienti", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Non ci sono sottocomandi o non hai il permesso di usarli.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parametri ignorati: {m}", + "iris.runtime.studio.opening": "§6Studio §bAPERTURA", + "iris.runtime.studio.opening_progress": "§6Studio §bAPERTURA§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cNON RIUSCITO§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aPRONTO§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cNON RIUSCITO§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio pronto§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Inizializzazione", + "iris.runtime.studio.stage.queued": "In coda", + "iris.runtime.studio.stage.resolve_dimension": "Risoluzione dimensione", + "iris.runtime.studio.stage.prepare_world_pack": "Preparazione pack del mondo", + "iris.runtime.studio.stage.install_datapacks": "Installazione datapack", + "iris.runtime.studio.stage.create_world": "Creazione mondo", + "iris.runtime.studio.stage.apply_world_rules": "Applicazione regole del mondo", + "iris.runtime.studio.stage.prepare_generator": "Preparazione generatore", + "iris.runtime.studio.stage.request_entry_chunk": "Caricamento chunk di ingresso", + "iris.runtime.studio.stage.resolve_safe_entry": "Ricerca spawn sicuro", + "iris.runtime.studio.stage.teleport_player": "Teletrasporto", + "iris.runtime.studio.stage.finalize_open": "Finalizzazione", + "iris.runtime.studio.stage.cleanup": "Pulizia", + "iris.runtime.world_create.teleport_failed": "§eIl mondo è stato creato, ma il teletrasporto automatico non è riuscito. Prova /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunk", + "iris.runtime.world_create.console": "§6Generazione §e{percent}%§7 {generated}/{required} chunk§8 ({remaining} rimanenti)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregenerazione", + "iris.runtime.world_create.pregen.console": "§6Pregenerazione §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Rigenera", + "iris.runtime.chunk_job.title.delete": "Cancella", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Preparazione", + "iris.runtime.chunk_job.stage.clearing": "Cancellazione", + "iris.runtime.chunk_job.stage.resetting_mantle": "Ripristino di Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Rigenerazione", + "iris.runtime.chunk_job.stage.generating": "Generazione", + "iris.runtime.chunk_job.stage.comparing": "Comparazione", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnosi", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bIN CORSO", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunk in {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunk in {elapsed} ({failures} fallito)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aCOMPLETATO§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cNON RIUSCITO§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aFatto§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cNon riuscito§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} completo: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} finito con errori: {summary}", + "iris.runtime.golden.no_capture": "Nessuna acquisizione Golden in {path}; esegui prima un'acquisizione.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash interrotto: non è stato possibile generare {failed} chunk. Nessun file Golden scritto.", + "one": "GoldenHash interrotto: non è stato possibile generare {failed} chunk. Nessun file Golden scritto." + }, + "iris.runtime.golden.failed": "GoldenHash fallito: {error}", + "iris.runtime.golden.mantle_reset": "Ripristino Mantle ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle reset non riuscito ({type}); continua con lo stato del Mantle esistente.", + "iris.runtime.golden.captured": "Acquisizione Golden completata: {chunks} chunk, combinato={hash}", + "iris.runtime.golden.wrong_world": "Il file Golden è per dim={goldenDimension} seed={goldenSeed}, ma questo mondo è dim={dimension} seed={seed}. Operazione interrotta.", + "iris.runtime.golden.version_warning": "Golden è stato acquisito con mc={goldenVersion}, mentre è in esecuzione mc={version}. Le differenze potrebbero dipendere dalla versione.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunks, combinato={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} I chunk differiscono.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (mancante in Golden)", + "iris.runtime.golden.mismatch_more": " ... e {count} più", + "iris.runtime.golden.current_written": "Hash correnti scritti in {file}", + "iris.runtime.golden.diag.stable": "Generazione ripetuta STABLE, ripristino Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Generazione ripetuta UNSTABLE ({diffs}+ differenze nei blocchi), ripristino Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (la ricostruzione di Mantle riproduce l'output della scansione)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ differenze - la build di Mantle dipende dallo stato o dall'ordine)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnosi fallita: {error}", + "iris.runtime.golden.started": "GoldenHash avviato: {chunks} chunk attorno a 0,0 nei buffer (mondo invariato), threads={threads} mode={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] hash del chunk {x},{z} calcolato", + "iris.runtime.golden.chunk_failed": "Chunk {x},{z} NON RIUSCITO: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Nome del Pack non valido '{pack}' (consentiti: a-z, 0-9, _ e -)", + "iris.runtime.pack_download.invalid_branch_name": "Nome del branch non valido '{branch}' (consentiti: lettere, cifre, . _ e -)", + "iris.runtime.pack_download.failed": "Download del Pack non riuscito: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Scaricamento {url}", + "iris.runtime.pack_download.failed_to_find": "Impossibile trovare il Pack in {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Assicurati di aver specificato il repository e il branch corretti!", + "iris.runtime.pack_download.example_command": "Per esempio: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Disimballaggio {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Si è verificato un problema durante l'estrazione. Controlla quanto segue:", + "1. La connessione a Internet funziona?", + "2. Il download è danneggiato?", + "3. Prova a eliminare la cartella */plugins/iris/packs e a scaricare nuovamente il Pack.", + "4. Scarica il Pack dal repository GitHub: https://github.com/IrisDimensions/overworld", + "5. Contatta il supporto se nessun'altra opzione risolve il problema." + ], + "iris.runtime.pack_download.no_extracted_files": "Nessun file è stato estratto dal file zip.", + "iris.runtime.pack_download.home_directory_error": "Errore quando si trova la home directory. Ci sono caratteri non testo nel nome del file?", + "iris.runtime.pack_download.invalid_archive_format": "Formato non valido. cartella radice mancante o troppe cartelle!", + "iris.runtime.pack_download.no_dimension_file": "Nessun file di dimensione trovato nel file zip estratto.", + "iris.runtime.pack_download.check_github": "Verifica che sia presente su GitHub e segnala il problema allo staff!", + "iris.runtime.pack_download.one_dimension_required": "La cartella delle dimensioni deve contenere esattamente un file.", + "iris.runtime.pack_download.invalid_dimension": "Cartella di dimensione non valida in dimensions/.", + "iris.runtime.pack_download.importing": "Importazione {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Un'altra dimensione nella cartella dei Pack usa già la chiave {key}. Importazione non riuscita!", + "iris.runtime.pack_download.pack_key_conflict": "Un altro Pack usa già la chiave {key}. Importazione non riuscita!", + "iris.runtime.pack_download.acquired": "{name} acquisito correttamente.", + "iris.runtime.pack_download.validation_failed": "Il Pack '{pack}' non ha superato la convalida; la creazione di mondi e Studio verrà rifiutata. Motivi:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pack '{pack}' convalidato con {count} avvisi.", + "one": "Pack '{pack}' convalidato con {count} avviso." + }, + "iris.runtime.pack_download.validated": "Pack '{pack}' convalidato.", + "iris.client.vision.title": "Iris Vision", + "iris.client.vision.connecting": "Connessione al server Iris...", + "iris.client.vision.not_connected": "non collegato", + "iris.client.vision.not_iris_world": "Non è un mondo Iris", + "iris.client.vision.no_dimension_data": "nessun dato sulla dimensione", + "iris.client.vision.header_detail": "{status} zoom {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Trascina per spostare Scorri per ingrandire Esc per chiudere", + "iris.client.vision.dimension_pack": "{dimension} Pack {pack}", + "iris.client.toast.studio_hotload": "Ricaricamento rapido di Studio", + "iris.client.toast.changed_files": { + "other": "{count} file", + "one": "{count} file" + }, + "iris.client.toast.reload_failed": "ricaricamento non riuscito", + "iris.client.toast.reloaded": "ricaricato", + "iris.client.toast.pack_failed": "{pack} fallito", + "iris.client.what.title": "Iris What", + "iris.client.what.querying": "Analisi di {x}, {z}...", + "iris.client.what.biome": "Bioma: {biome}", + "iris.client.what.region": "Regione: {region}", + "iris.client.what.cave": "Grotta: {cave}", + "iris.client.what.height": "Altezza: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "in pausa", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§aVelocità§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bCache§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dCarving§7: {state}", + "iris.bukkit.scoreboard.region": "§bRegione§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBioma§7: {biome}", + "iris.bukkit.scoreboard.height": "§bAltezza§7: {height}", + "iris.bukkit.scoreboard.slope": "§bPendenza§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vision", + "iris.desktop.vision.view": "Vedi:", + "iris.desktop.vision.grid": "Griglia", + "iris.desktop.vision.follow": "Segui", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Aggiornamento", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Ripristino dello zoom", + "iris.desktop.vision.grid_enabled": "Griglia abilitata", + "iris.desktop.vision.grid_disabled": "Griglia disattivata", + "iris.desktop.vision.following": "Stai seguendo {player}", + "iris.desktop.vision.no_player": "Nessun giocatore nel mondo", + "iris.desktop.vision.follow_disabled": "Segui disattivato", + "iris.desktop.vision.low_quality": "Bassa qualità", + "iris.desktop.vision.high_quality": "Alta qualità", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} blocchi", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Posizione: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Salute: {health} / {maximum}", + "iris.desktop.vision.block_position": "Blocco {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk {x}, {z}", + "iris.desktop.vision.region_position": "Regione {x}, {z}", + "iris.desktop.vision.biome_key": "Chiave: {key}", + "iris.desktop.vision.biome_file": "File: {file}", + "iris.desktop.vision.velocity": "Velocità: {velocity}", + "iris.desktop.vision.tiles": "Riquadri: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Worker: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centro: {x}, {z}", + "iris.desktop.vision.help.toggle": "Mostra/nascondi la guida", + "iris.desktop.vision.help.refresh": "Aggiorna i riquadri", + "iris.desktop.vision.help.follow": "Segui il giocatore", + "iris.desktop.vision.help.zoom": "Ingrandisci/riduci", + "iris.desktop.vision.help.reset_zoom": "Ripristina lo zoom", + "iris.desktop.vision.help.cycle_mode": "Cambia modalità di rendering", + "iris.desktop.vision.help.quality": "Cambia qualità dei riquadri", + "iris.desktop.vision.help.fps": "Cambia tra 30/60 FPS", + "iris.desktop.vision.help.grid": "Mostra/nascondi la griglia", + "iris.desktop.vision.help.biome": "Informazioni dettagliate sul biome", + "iris.desktop.vision.help.teleport": "Teletrasportati al cursore", + "iris.desktop.vision.help.editor": "Apri il bioma nell'editor", + "iris.desktop.vision.opened": "Aperto {target}", + "iris.desktop.vision.teleporting": "Teletrasporto a {x}, {z}", + "iris.desktop.vision.mode.biome": "Bioma", + "iris.desktop.vision.mode.biome_land": "Terra dei biomi", + "iris.desktop.vision.mode.biome_sea": "Mare dei biomi", + "iris.desktop.vision.mode.region": "Regione", + "iris.desktop.vision.mode.cave_land": "Terreno della grotta", + "iris.desktop.vision.mode.height": "Altezza", + "iris.desktop.vision.mode.object_load": "Carico oggetto", + "iris.desktop.vision.mode.decorator_load": "Carico decorativo", + "iris.desktop.vision.mode.continent": "Continente", + "iris.desktop.vision.mode.layer_load": "Carico del livello", + "iris.desktop.noise.title": "Noise Explorer", + "iris.desktop.noise.title_generator": "Noise Explorer: {generator}", + "iris.desktop.noise.search": "Ricerca...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | Zoom: {zoom} | Valore: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Personalizzato", + "iris.desktop.noise.category.pack_generators": "Generatori del pack", + "iris.desktop.noise.category.simplex": "Simplex", + "iris.desktop.noise.category.perlin": "Perlin", + "iris.desktop.noise.category.cellular": "Cellulare", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Clover", + "iris.desktop.noise.category.hexagon": "Esagono", + "iris.desktop.noise.category.vascular": "Vascular", + "iris.desktop.noise.category.globe": "Globe", + "iris.desktop.noise.category.cubic": "Cubic", + "iris.desktop.noise.category.fractal": "Fractal", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "Nowhere", + "iris.desktop.noise.category.sierpinski": "Sierpinski", + "iris.desktop.noise.category.utility": "Utilità", + "iris.desktop.noise.category.other": "Altri", + "iris.desktop.pregen.initializing": "Inizializzazione...", + "iris.desktop.pregen.title": "Vista pregenerazione", + "iris.desktop.pregen.method_pending": "In attesa", + "iris.desktop.pregen.paused": "in pausa", + "iris.desktop.pregen.resume_hint": "Premere P per riprendere", + "iris.desktop.pregen.pause_hint": "Premere P per mettere in pausa", + "iris.desktop.pregen.progress_paused": "in pausa {generated} di {total} ({percent} completo)", + "iris.desktop.pregen.progress_saving": "Salvataggio... {generated} di {total} ({percent} completato)", + "iris.desktop.pregen.progress_generating": "Generazione {generated} di {total} ({percent} completo)", + "iris.desktop.pregen.speed": "Velocità: {chunksPerSecond} chunk/s, {regionsPerMinute} regioni/m, {chunksPerMinute} chunk/m", + "iris.desktop.pregen.speed_cached": "Velocità: cache {chunksPerSecond} chunk/s, {regionsPerMinute} regioni/m, {chunksPerMinute} chunk/m", + "iris.desktop.pregen.time": "{remaining} rimanenti ({elapsed} trascorso)", + "iris.desktop.pregen.method": "Metodo di generazione: {method}", + "iris.desktop.pregen.memory": "Memoria: {used} ({usage}) Pressione: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/ja-JP.json b/core/src/main/resources/languages/ja-JP.json new file mode 100644 index 000000000..fcb8fb26e --- /dev/null +++ b/core/src/main/resources/languages/ja-JP.json @@ -0,0 +1,1435 @@ +{ + "locale": "ja-JP", + "messages": { + "director.help.navigation.parent.hover": "親コマンドグループに戻る", + "director.help.navigation.back": "戻る", + "director.help.no_subcommands": "このページにサブコマンドはありません。", + "director.help.no_description": "説明はありません", + "director.help.aliases": "エイリアス", + "director.help.command_group": "コマンドグループ。クリックして開きます。", + "director.help.no_parameters": "パラメーターはありません。クリックしてコマンドを入力します。", + "director.help.parameters": "パラメーター", + "director.help.parameter.required": "必須", + "director.help.parameter.optional": "任意", + "director.help.parameter.default": "デフォルト", + "director.help.navigation.previous.hover": "前のページ", + "director.help.navigation.next.hover": "次のページ", + "director.help.navigation.page": "ページ", + "director.runtime.error.invalid_origin": "この実行元からはコマンドを実行できません。", + "director.runtime.error.unknown_parameter": "不明なパラメーターキー: {key}", + "director.runtime.error.unexpected_argument": "予期しない引数 \"{argument}\"。オプションのパラメーターはキー付きで指定してください。例: seed=123", + "director.runtime.error.conversion_failed": "\"{value}\" を {parameter} 用の {type} に変換できません", + "director.runtime.error.default_parse_failed": "パラメーター {parameter} のデフォルト値を解析できません", + "director.runtime.error.missing_argument": "引数 \"{parameter}\" ({type}) が必要です", + "director.runtime.error.execution_failed": "コマンド {command} の実行に失敗しました: {reason}", + "director.runtime.usage": "使用法: {usage}", + "iris.command.permission_denied": "権限 '{permission}' がありません", + "iris.command.unknown": "不明な Iris コマンドです", + "iris.command.player_only": "このコマンドはプレイヤーのみ使用できます。", + "iris.command.iris_world_required": "このディメンションは Iris によって生成されていません。", + "iris.command.reload.success": "設定と言語 {locale} を再読み込みしました。", + "iris.command.reload.failed": "設定は再読み込みされましたが、言語 {locale} は拒否されました。引き続き {activeLocale} を使用します。", + "iris.modded.help.unknown_section": "不明な Iris ヘルプセクション: {section}", + "iris.modded.help.back_hover": "{parent} に戻ります。", + "iris.modded.help.command_parameter": "コマンドパラメーター", + "iris.modded.help.parameter_required": "このパラメーターは必須です。", + "iris.modded.help.parameter_optional": "このパラメーターは任意です。", + "iris.modded.help.brigadier_text": "このパラメーターは Brigadier によってテキストとして読み取られます。", + "iris.modded.help.operator_notice": "Iris コマンドにはオペレーター権限(レベル 2)が必要です。", + "iris.modded.help.operator_instruction": "コンソールから {command} を実行してください(シングルプレイヤーではチートを有効にしてください)。それまでは、これらのコマンドを実行したりタブ補完したりできません。", + "iris.modded.command.properties.none": "プロパティ:(なし)", + "iris.modded.command.properties.list": "プロパティ: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7データパックの取り込みを開始しています...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§a設定済みのデータパックインポート: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aインストールされたデータパック: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eディメンションの 'datapackImports' リストに Modrinth URL を追加し、/iris datapack ingest を実行してください。", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash開始: {value}チャンク...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cチャンク {rx},{rz} でgenhashに失敗しました: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash グローバル=§6{value}§a チャンク={value2} 固体={solidBlocks} 時間={value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Iris ワールド内ではありません!", + "iris.bukkit.commandfind.unknown_structure": "§c未知の構造: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6構造物へテレポートするには、ゲーム内で実行してください。", + "iris.bukkit.commandfind.locating": "§7{structureKey} を検索しています...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6構造物へテレポートするには、ゲーム内で実行してください。", + "iris.bukkit.commandfind.locating_2": "§7{structure} を検索しています...", + "iris.bukkit.commandfind.teleported": "§a{structure}({value}, {y}, {value2})へテレポートしました", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aワールドフォルダーを削除しました", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aワールドフォルダーを削除しました", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cワールドフォルダーを削除できませんでした", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cこのサーバーには、オブジェクトを含むパックがありません。", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§c選択したパックには配置できるオブジェクトがありません。", + "iris.bukkit.commandobject.opening_object_studio_objects": "§a{scope} のオブジェクトスタジオを開いています({totalObjects} オブジェクト)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cオブジェクトスタジオを開けませんでした: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cパック名を指定する必要があります。", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cpacks/ にパック '{pack}' が見つかりません。", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ...ほか {value} 件。", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§a§f{value}§a の構造物を、{value2},{value3} から {searchRadius} チャンク以内で検証しています...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aバニラコンテンツを §f{value}§a にインポートしています...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla 完了: §f{imported}§a 件を objects/structures に書き込み、§f{failed}§a 件が失敗しました。", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7木やオブジェクトは objects/vanilla/... にあります。バイオームのオブジェクト配置から参照してください。", + "iris.bukkit.commandstudio.no_open_studio_projects": "§c開いているスタジオプロジェクトはありません。", + "iris.bukkit.commandstudio.closing_studio": "§eスタジオを閉じています...", + "iris.bukkit.commandstudio.studio_close_failed": "§cスタジオを閉じられませんでした: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cスタジオを閉じられませんでした: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eスタジオを閉じました。残りのワールド関連データのクリーンアップは、次回起動時に実行されます。", + "iris.bukkit.commandstudio.studio_closed": "§aスタジオを閉じました。", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cデバッグスコアボードを切り替えるには、スタジオの世界にいる必要があります。", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}スタジオデバッグスコアボード {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§c今すぐ Studio デバッグスコアボードを更新できません。", + "iris.bukkit.commandstudio.opened_inventory": "§aインベントリを開きました!", + "iris.bukkit.commandstudio.generating_data": "§7データを生成しています...", + "iris.bukkit.commandstudio.done": "§a完了!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "権限 '{ROOTPERMISSION}' がありません", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5ステータス:", + "iris.bukkit.irisenginestatus.service": "§5- サービス: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- メトリック: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- メンテナンス間隔: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- ワーカー並列数: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- 実行中のワールドタスク: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5プレートテクトニクス:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- 設定済み保持数: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- ヒープ使用量: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- 常駐: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- キュー待機中: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- 平均アイドル時間: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- 最大アイドル時間: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- 最小アイドル時間: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5キャッシュ:", + "iris.bukkit.irisenginestatus.resource": "§5- リソース: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2Dストリーム: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3Dストリーム: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- その他: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5その他:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris 世界: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- ロードされたチャンク: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§c世界はnullです。", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cMantle ダンプを読み込む前に Iris ワールドを対象にしてください。", + "iris.bukkit.commanddeveloper.upgrading": "§a{value} にアップグレードしています...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aアップグレード完了! サーバーバージョンを {value} に更新できます", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§c半径は 0 以上でなければなりません。", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cここは Iris ワールドではありません。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cこの世界のエンジンアクセスはnullです。", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§a削除を開始しました: §6{centerX},{centerZ}§a 周辺の §6{chunks}§a チャンクを空気ブロックに置き換えています。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§c半径は 0 以上でなければなりません。", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cregen を使用するには Iris ワールド内にいる必要があります。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cこのワールドのエンジンにアクセスできません。まず周辺チャンクを生成してください。", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aregen を開始しました: §6{centerX},{centerZ}§a 周辺の §6{chunks}§a チャンクを削除し、その場で再生成しています。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§c半径は 0 以上でなければなりません。", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§c対象は Iris ワールドでなければなりません。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cこの世界のエンジンアクセスはnullです。", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash を開始しました: §6{centerX},{centerZ}§a 周辺の §6{chunks}§a チャンクをバッファー内で処理します(ワールドは変更しません)。", + "iris.bukkit.commandedit.players_only": "§cプレイヤーのみ!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§c開いているスタジオワールドはありません!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cスタジオワールドでなければいけません!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cヘッドレス環境ではファイルを開けません!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cこの環境ではデスクトップはサポートされていません!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6ファイルが見つかりません。ファイルから直接読み込まれていない可能性があります。", + "iris.bukkit.commandedit.opening_vscode": "§aVSCode で {value} {value2} を開いています! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cファイルが見つからないか、登録情報が存在しません", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6ファイルが見つかりません。ファイルから直接読み込まれていない可能性があります。", + "iris.bukkit.commandedit.opening_vscode_2": "§aVSCode で {value} {value2} を開いています! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cファイルが見つからないか、登録情報が存在しません", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6ファイルが見つかりません。ファイルから直接読み込まれていない可能性があります。", + "iris.bukkit.commandedit.opening_vscode_3": "§aVSCode で {value} {value2} を開いています! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cファイルが見つからないか、登録情報が存在しません", + "iris.bukkit.commandfind.not_iris_world_5": "§6Iris ワールド内ではありません!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Iris ワールド内ではありません!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Iris ワールド内ではありません!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Iris ワールド内ではありません!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: {object}へテレポート中", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} は、どのリージョンまたはバイオームのオブジェクト配置にも設定されていません。", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cIris がこのディレクトリを Studio ワールド用に使用するため、ワールド名 \"iris\" は使用できません。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§c代わりに \"IrisWorld\" という名前はいかがですか?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cIris がこのディレクトリをベンチマークパック用に使用するため、ワールド名 \"benchmark\" は使用できません。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§c代わりに \"IrisWorld\" という名前はいかがですか?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cそのフォルダーはすでに存在します!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cディメンション \"{resolvedType}\" を検索またはダウンロードできませんでした。", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§e次のいずれかを指定してください: overworld、vanilla、flat、theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eまたは手動でダウンロード: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aワールドの準備が完了しました。\"{worldName}\" を生成/読み込むにはサーバーを再起動してください。", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§c作成中に例外が発生しました。詳細はコンソールを確認してください。", + "iris.bukkit.commandiris.successfully_created_your_world": "§aワールドを作成しました!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aサーバーを再起動すると、このワールドが自動的にメインワールドに設定されます。", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eFolia では実行中のワールド作成が無効です。", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§e次回起動用のワールドファイルと bukkit.yml を準備しています...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cディメンション \"{value}\" のワールドファイルを準備できませんでした。", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aserver.properties の level-name を \"{name}\" に更新しました。", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cワールドは準備されましたが、server.properties のメインワールド設定を更新できませんでした。", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris ワールド \"{name}\" をジェネレーター Iris:{value}、シード {seed} で準備しました。", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aこのワールドは、次回再起動時のメインワールドとして設定されました。", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cbukkit.yml を更新できませんでした: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§c指定されたプレイヤーは存在しません。", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v{value} by Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} から {value2}", + "iris.bukkit.commandiris.total_height": "§a総高さ: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris ワールド: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit ワールド: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cここは Iris ワールドではありません。Iris ワールド: {value}", + "iris.bukkit.commandiris.removing_world": "§aワールドを削除しています: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§c世界の避難に失敗しました: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cワールドをアンロードできませんでした: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§abukkit.yml から {value} を削除しました", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eワールドはすでに bukkit.yml から削除されているようです", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cbukkit.yml を保存できませんでした: {value}", + "iris.bukkit.commandiris.set_debug": "§aデバッグ設定: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aパックをダウンロードしています: {pack}(ベータリリース){value}", + "iris.bukkit.commandiris.downloading_pack": "§aパックをダウンロードしています: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cIris ワールド内にいる必要があります", + "iris.bukkit.commandiris.sending_metrics": "§aメトリックの送信...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cここは Iris ワールドではありません。Iris ワールド: {value}", + "iris.bukkit.commandiris.unloading_world": "§aワールドをアンロードしています: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aワールドをアンロードしました。", + "iris.bukkit.commandiris.failed_unload_world_2": "§c世界のアンロードに失敗しました。", + "iris.bukkit.commandiris.failed_unload_world_3": "§c世界のアンロードに失敗しました: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} はサーバー上に存在しません。", + "iris.bukkit.commandiris.generator": "§9ジェネレーター: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} は Iris ワールドではありません。", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§c{logicalWorldName} の Iris ディメンションを特定できませんでした。", + "iris.bukkit.commandiris.loading_world": "§aワールドを読み込んでいます: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia は実行中に新しいワールドを読み込めません。\"{logicalWorldName}\" を読み込むにはサーバーを再起動してください。", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} を読み込みました。", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cここは Iris ワールドではありません。Iris ワールド: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aワールドから退避しています{value}", + "iris.bukkit.commandobject.object_size": "オブジェクトサイズ: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "使用ブロック数: {value}", + "iris.bukkit.commandobject.blocks_object": "== オブジェクト内のブロック ==", + "iris.bukkit.commandobject.other_block_types": " + その他 {value} 種類のブロック", + "iris.bukkit.commandobject.current_object_size": "現在のオブジェクトサイズ: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "新しいオブジェクトサイズ: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "オブジェクト {value} を保存できませんでした: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§c一致するオブジェクトがありません: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}] に {value2} 個のオブジェクトを追加しました", + "iris.bukkit.commandobject.hold_your_wand": "杖を手に持ってください。", + "iris.bukkit.commandobject.no_area_selected": "範囲が選択されていません。", + "iris.bukkit.commandobject.ready_your_wand": "杖を準備してください。", + "iris.bukkit.commandobject.ready_your_wand_2": "杖を準備してください。", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§e指定された倍率が上限を超えています。最大値 {maxScale} に縮小しました", + "iris.bukkit.commandobject.updated_wand_objects_iob": "objects/{value}.iob 用に杖を更新しました ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "objects/{value}.iob 用の新しい杖を渡しました ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "objects/{value}.iob 用に杖を更新しました ", + "iris.bukkit.commandobject.placed": "§a{object} を配置しました", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§e杖を手に持つ必要があります!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cファイルはすでに存在します。上書きするには overwrite=true を設定してください。", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cIOException によりオブジェクトを保存できませんでした: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aオブジェクトを保存しました: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "杖を手に持ってください。", + "iris.bukkit.commandobject.no_area_selected_2": "範囲が選択されていません。", + "iris.bukkit.commandobject.reverted_pastes": "§9{actualReverts}§9 件の貼り付けを元に戻しました!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cWorldEdit がなければ WorldEdit の選択範囲は取得できません。", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cこのワールドには WorldEdit の選択範囲がありません。", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§a現在の WorldEdit 選択範囲を設定した新しい杖を用意しました!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aぽんっ! 建築を楽しんでください!", + "iris.bukkit.commandobject.hold_your_wand_3": "§e杖を手に持ってください!", + "iris.bukkit.commandobject.no_area_selected_3": "範囲が選択されていません。", + "iris.bukkit.commandobject.auto_select_complete": "§a自動選択完了!", + "iris.bukkit.commandobject.hold_your_wand_4": "§e杖を手に持ってください!", + "iris.bukkit.commandobject.no_area_selected_4": "範囲が選択されていません。", + "iris.bukkit.commandobject.auto_select_complete_2": "§a自動選択完了!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§c事前生成の半径は 0 ブロックより大きくなければなりません。", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§c厳密な直列事前生成には Paper または Paper 互換サーバーが必要です。", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cこのワールドのエンジンにアクセスできません!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cワールドが読み込まれ、エンジンが初期化されていることを確認してください。たとえば、新しいチャンクを生成してください。", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§c事前生成を開始できませんでした。詳細はコンソールを確認してください。", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§e停止できる実行中の事前生成タスクはありません", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§a事前生成タスクの一時停止状態を切り替えました。現在: {value}。", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§e一時停止を切り替えられる実行中の事前生成タスクはありません。", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§e実行中の事前生成タスクはありません。", + "iris.bukkit.commandpregen.pregen": "§a事前生成 §6{world}§a: §6{value}/{value2}§a(§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§a速度: §6{value}/s§a ETA: §6{value2}§a 経過時間: §6{value3}§a 方式: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstructure.wrote_structure_index": "§a構造物インデックスを書き込みました: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aすべてのバニラおよびデータパック構造物を §f{value}§a にインポートしています(上書き)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aインポート完了: §f{imported}§a 件を structures/objects に書き込み、§f{failed}§a 件が失敗しました。", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7biome/region/dimension の 'structures' リストから参照するか、/iris structure list {value} を実行してインデックスを更新してください。変更を反映するにはチャンクを再生成してください。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7{value} 件の構造物をキャプチャしました。'structures' リストから配置してチャンクを再生成してください。再キャプチャするには structures/*.json を削除してください。", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§c{value} 用に読み込まれた Iris ワールドがありません。検索は稼働中のワールドを対象にするため、先に参加または作成してください。", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§c選択した Iris ワールドには稼働中のジェネレーターエンジンがありません。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cこのパックには Iris 構造物 '{structure}' がありません", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§c構造物 '{structure}' は 0 ピースで組み立てられました(startPool '{value}' を確認してください)", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§a構造物 '{structure}': §f{value}§a ピース、範囲 §f{value2}x{value3}§a ブロック(サンプルシード 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cこのパックには Iris 構造物 '{structure}' がありません", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§c構造物 '{structure}' は 0 ピースで組み立てられました", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a現在位置に '{structure}'({value} ピース)を配置しました。", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aパック \"{value}\" のスタジオを開いています(シード: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cディメンションパックを指定してください: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cディメンション {value} のパックを解決できませんでした", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aパック \"{value}\" を VSCode で開いています", + "iris.bukkit.commandstudio.pack_has_version": "§aパック \"{value}\" のバージョン: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aノイズエクスプローラーを開いています!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§c仮想インベントリにアイテムを追加できません: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aインベントリを開いています!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cIris ワールド内でのみ使用できます!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cIris 生成ワールド内にいるか、そのワールドを指定する必要があります!", + "iris.bukkit.commandstudio.opening_map": "§aマップを開いています!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "ノイズジェネレーターのパフォーマンス指標を計算しています", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "インターポレータータイミングの計算...", + "iris.bukkit.commandstudio.processing_generator_scores": "ジェネレータースコアを処理しています: ", + "iris.bukkit.commandstudio.score": "スコア: {value}", + "iris.bukkit.commandstudio.done_with_result": "§a完了! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cエンティティを正しくスポーンするには Iris ワールド内にいる必要があります。可能な範囲でスポーンを試みます。", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§c開いているスタジオワールドはありません!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cすでにスタジオワールド内にいます!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aスタジオワールドへ移動します!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6{value} のコードワークスペースを更新しています...", + "iris.bukkit.commandstudio.updated_code_workspace": "§a{value} のコードワークスペースを更新しました", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§c無効なプロジェクトです: {value}。code-workspace ファイルを削除して再試行してください。", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cIris ワールド内にいる必要があります", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Iris ワールド内にいる必要があります。", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "周辺の {value} チャンクから IGenData をキャプチャしています。", + "iris.bukkit.commandstudio.reported": "報告: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§c設定でサーバー起動 GUI を有効にする必要があります!", + "iris.bukkit.commandstudio.players_only": "§cプレイヤーのみ!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§c開いているスタジオワールドはありません!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cスタジオワールドでなければいけません!", + "iris.bukkit.commandwhat.material": "マテリアル: §a{value}", + "iris.bukkit.commandwhat.full": "フル: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "ブロックまたはアイテムを手に持ってください", + "iris.bukkit.commandwhat.material_2": "マテリアル: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "ブロックまたはアイテムを手に持ってください", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Iris 以外のバイオーム: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "データパックバイオメ:{value}(ID:{value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aIris ワールド専用です。", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "空ではなく、どんなブロックでも見てください。", + "iris.bukkit.commandwhat.material_3": "材料: §a{value}", + "iris.bukkit.commandwhat.full_2": "フル: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* ストレージブロック(ルート対応)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* 発光ブロック(光源対応)", + "iris.bukkit.commandwhat.foliage_block": "§e* 葉のブロック", + "iris.bukkit.commandwhat.decorant_block": "§e* 装飾ブロック", + "iris.bukkit.commandwhat.fluid_block": "§e* 流体ブロック", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* 植え付け可能な葉ブロック", + "iris.bukkit.commandwhat.solid_block": "§e* 固体ブロック", + "iris.bukkit.commandwhat.found_nearby_markers": "周辺に {value} 個のマーカーが見つかりました({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aIris ワールド専用です。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "コンソールではバイオームを指定してください: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "バイオームの検索に失敗しました: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "不明なバイオーム: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "コンソールではリージョンを指定してください: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "リージョンの検索に失敗しました: {value}", + "iris.modded.irismoddedcommands.unknown_region": "不明なリージョン: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.cannot_open_files_here": "ここではファイルを開けません: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "ファイルが見つかりません。ファイルから直接読み込まれていない可能性があります。", + "iris.modded.irismoddedcommands.could_not_open": "{value} を開けませんでした: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "エディターで {value} {value2} を開いています。", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "コンソールではプレイヤーを指定してください: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} は Iris によって生成されていません。", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "テレポートに失敗しました: ディメンション {dimensionId} は読み込まれていません。", + "iris.modded.irismoddedcommands.teleporting": "{value} を {dimensionId} にテレポートしています...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} は Iris によって生成されていません。", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "プライマリーワールドからは退避できません。プレイヤーの移動先がありません。", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "{count} 人のプレイヤーを {value} から {value2} へ退避させました。", + "iris.modded.irismoddedcommands.set_debug": "デバッグを {to} に設定しました", + "iris.modded.irismoddedcommands.hotloaded_settings": "設定をホットロードしました", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "このコマンドはプレイヤーのみ使用できます(手に持っているアイテムを調べます)。", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "主手は空です。", + "iris.modded.irismoddedcommands.hand_x": "手持ち: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} は Iris によって生成されていません。読み込まれている Iris ディメンションは /iris info で確認できます。", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "現在のディメンション({value})は Iris によって生成されていません。/iris pregen start {radius} のように明示的に指定してください。読み込まれている Iris ディメンションは /iris info で確認できます。", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "事前生成タスクはすでに実行中です。先に /iris pregen stop で停止してください。", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "{centerX},{centerZ} を中心に、{value2} の {value} で半径 {value3} ブロックの事前生成を開始しました。{modeNote} 進捗はコンソールに記録されます。/iris pregen status を確認してください。{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "事前生成を停止しています。現在のリージョンを完了しています...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "停止できる実行中の事前生成タスクはありません。", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "一時停止または再開できる事前生成タスクはありません。", + "iris.modded.irismoddedcommands.pregeneration_is_now": "事前生成は現在 {value} です。", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "アクティブなプレジェネレーションタスクはありません。", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} by Volmit Software、{value2}(Minecraft {value3})、Iris ディメンション {engines} 個", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "読み込み済みディメンション: {total}(Iris: {iris})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.biome": "バイオメ: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "バイオメの検索失敗: {value}", + "iris.modded.irismoddedcommands.region": "地域: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "地域検索失敗: {value}", + "iris.modded.irismoddedcommands.cave_biome": "洞窟バイオメ: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "洞窟バイオームの検索に失敗しました: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "表面ブロック: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "位置: {value} {value2} {value3}(チャンク {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "このコマンドはプレイヤーのみ使用できます(見ているブロックを調べます)。", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "空ではなく、ブロックを見てください。", + "iris.modded.irismoddedcommands.block_y": "ブロック: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "このコマンドはプレイヤーのみ使用できます(周囲のマーカーをパーティクルで表示します)。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "周囲の '{marker}' マーカーをスキャンしています...", + "iris.modded.irismoddedcommands.marker_scan_failed": "マーカースキャンが失敗しました: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "周囲に {value} 個のマーカーが見つかりました({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.unknown_biome_2": "不明なバイオーム: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.unknown_region_2": "不明なリージョン: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} はこのディメンションに定義されていません!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} は、どのリージョンまたはバイオームのオブジェクト配置にも設定されていません(読み込み済みオブジェクトキー: {value} 個)。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "このコマンドはプレイヤーのみ使用できます(オブジェクトキー '{key}' は、読み込み済みの {value} 個のオブジェクトキーから解決されました)。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "検索する Iris 構造物またはネイティブ構造物を指定してください。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "不明な構造物 '{key}' です。タブ補完から Iris 配置または登録済みのネイティブ/データパック構造物を選んでください。", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "{NATIVESTRUCTURELOCATERADIUS} チャンク以内でネイティブ構造物 {value} を検索しています...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Iris が配置した構造物 {key} を検索しています...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Iris が配置した構造物 {key} を検索できませんでした。1024 チャンクの全範囲を検索する前に、密度検索の安全上限に達しました。", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "1024 チャンク以内に Iris が配置した構造物 {key} が見つかりませんでした。", + "iris.modded.irismoddedcommands.search_failed": "検索に失敗しました: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "{NATIVESTRUCTURELOCATERADIUS} チャンク以内にネイティブ構造物 {value} が見つかりませんでした。", + "iris.modded.irismoddedcommands.search_native_structure_failed": "ネイティブ構造物 {value} の検索に失敗しました: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "構造物の検索が完了する前にプレイヤーが切断しました。", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "構造物の検索が完了する前にディメンションを移動しました。もう一度コマンドを実行してください。", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "{targetX} {clampedY} {targetZ} に {label} が見つかりましたが、テレポートに失敗しました。", + "iris.modded.irismoddedcommands.teleported_at": "{targetX} {clampedY} {targetZ} の {label} にテレポートしました", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "構造物の到達可能性: 生成可能なネイティブ {available}、Iris 配置 {irisPlaced}、無効なネイティブ {disabled}、Iris 配置で置換されたネイティブ {suppressed}、このパックのバイオームで除外されたネイティブ {unreachableBiomes}、このディメンションで未対応の登録済みネイティブ {unsupported}。個別の構造物は /iris structure verify で確認できます。", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "構造物 {key} は Iris によって配置されており、/iris goto structure {key2} で検索できます。", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "不明な構造物 '{key}' です。Iris による配置でも、バニラまたはデータパックの登録構造物でもありません。", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "構造物 {value} は Iris 配置によって明示的に置換されており、/iris goto structure {value2} で検索できます。", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "ネイティブ構造物 {value} は有効で、このディメンションのジェネレーターに対応しており、/iris goto structure {value2} で検索できます。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "このコマンドはプレイヤーのみ使用できます(POI タイプ '{type}' を受け付けました)。", + "iris.modded.irismoddedcommands.searching": "{label} を検索しています...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "このワールドのエンジンは終了しています。ディメンションに入り直して、もう一度お試しください。", + "iris.modded.irismoddedcommands.search_failed_2": "検索に失敗しました: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "検索時間内に {label} が見つかりませんでした。", + "iris.modded.irismoddedcommands.teleported_at_2": "{blockX} {blockY} {blockZ} の {label} にテレポートしました", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "{label} の検索中にエンジンが変更されました。もう一度お試しください。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.world_seed": "ワールドシード: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "エンジンシード: {value}(混合値: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "IrisDimensions/{pack} をダウンロードしています({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "パック '{pack}' をインストールしました。正確なディメンションタイプとカスタムバイオームは、次回のサーバー再起動時に強制 Iris データパックへ追加されます。このパックからワールドを作成する前に再起動してください。", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "パック {pack} のダウンロードに失敗しました({downloadSource}。コンソールを確認してください)。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "このディメンションは Iris によって生成されていません。", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "生成済み: {value}チャンク、{value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "未知の Iris ヘルプセクション: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: タイプ={typeKey} 有効範囲={activeMin}..{activeMax} 論理範囲={value}(パック={value2}、エンジン未起動のためパックの高さは不明)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: タイプ={typeKey} 有効範囲={activeMin}..{activeMax} 論理範囲={value} | パック '{value2}' の要求範囲 {packMin}..{packMax} 論理範囲={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " 警告: 有効なディメンションタイプがパックと一致しません。Iris は地形を切り詰めず、このワールドエンジンの起動を拒否します。新しいワールドでは /iris world enable 、読み込み済みの Iris ディメンションでは /iris datapack install を実行してから再起動してください。", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "読み込まれている Iris ディメンションはありません。", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "{irisLevels} 個の Iris ディメンションは、すべてパックの高さ範囲と一致しています。", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: エンジンが起動していないため、ディメンションタイプをまだ導出できません。", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: ディメンションタイプの生成に失敗しました: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "{output} の書き込みに失敗しました: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "実行中のエンジンを持つ Iris ディメンションが見つからなかったため、何もインストールされませんでした。", + "iris.modded.moddeddatapackcommands.failed_write_2": "{mcmeta} の書き込みに失敗しました: {value}", + "iris.modded.moddeddatapackcommands.wrote": "{path} を書き込みました", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "ワールドデータパック '{WORLDPACKNAME}' のディメンションタイプ上書きをインストールしました。適用するにはサーバーを再起動してください。", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "設定済みのデータパックインポート: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth の取り込みは Bukkit 専用です。必要に応じて world/datapacks に手動でインストールしてください。", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "インストール済みのワールドデータパック: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "テスト例外を Iris のエラーレポーターに送信しました(有効な場合は Sentry)。", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "ネットワークスキャン失敗: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "GoldenHash スキャンはすでに実行中です。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "このコマンドはプレイヤーのみ使用できます(杖は実体のあるアイテムです)。", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "インベントリがいっぱいです。", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "ぽんっ! 建築を楽しんでください!(左クリック = 角 1、右クリック = 角 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "このコマンドはプレイヤーのみ使用できます(ダストは実体のあるアイテムです)。", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "インベントリがいっぱいです。", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "ブロックを右クリックすると、そのブロックが属するオブジェクトを表示します。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "このコマンドはプレイヤーのみ使用できます(保存対象は杖で選択した範囲です)。", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "このディメンションは Iris によって生成されていません。オブジェクトはディメンションのパックに保存されます。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Iris の杖を手に持ってください。(/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "範囲が選択されていません。先に杖でブロックを左クリック/右クリックしてください。", + "iris.modded.moddedobjectcommands.invalid_object_name": "無効なオブジェクト名: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "選択範囲が大きすぎます: {volume} ブロック(最大 {MAXSAVEVOLUME})。", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "ファイルはすでに存在します。/iris object save overwrite {name} を使用してください", + "iris.modded.moddedobjectcommands.failed_save_object": "オブジェクトを保存できませんでした: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "{value}/objects/{name}.iob を保存しました: {w}x{h}x{d}、{value2} ブロック{tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "不明または空のオブジェクト: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "コンソールは座標を指定しなければなりません: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "{value} ブロック以内のブロックを見ていません。", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "貼り付けに失敗しました: {value}(途中までの変更は元に戻せるよう記録されました)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "{key} を {value} {value2} {value3} に配置しました。rot={rotation}(書き込み {value4}、空気以外 {value5}{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Iris の杖を手に持ってください。(/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "範囲が選択されていません。", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "杖を準備してください。(/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "ブロックを見ていません。", + "iris.modded.moddedobjectcommands.position_set": "選択位置 {value} を {value2} {value3} {value4} に設定しました", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.moddedobjectcommands.hold_your_wand": "杖を手に持ってください!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "範囲が選択されていません。", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "自動選択するには範囲が大きすぎます: {volume} ブロック(最大 {MAXAUTOSELECTVOLUME})。", + "iris.modded.moddedobjectcommands.auto_select_complete": "自動選択完了: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "不明なオブジェクト: {key}", + "iris.modded.moddedobjectcommands.object_size": "オブジェクトサイズ: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "使用ブロック数: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== オブジェクト内のブロック ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + その他 {remaining} 種類のブロック状態", + "iris.modded.moddedobjectcommands.unknown_object_2": "不明なオブジェクト: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "現在のオブジェクトサイズ: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "新しいオブジェクトのサイズ: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "オブジェクトに読み込み元ファイルがないため、縮小結果を保存できません。", + "iris.modded.moddedobjectcommands.failed_save_object_2": "オブジェクト {value} を保存できませんでした: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "無効な範囲: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "一致するオブジェクトがありません: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilize [reach={reach}{value}] に {value2} 個のオブジェクトを追加しました", + "iris.modded.moddedobjectcommands.nothing_undo": "元に戻す操作はありません。", + "iris.modded.moddedobjectcommands.reverted_paste_s": "{reverted} 件の貼り付けを元に戻しました!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "パックフォルダーが見つかりません: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "{value} に検証対象のパックがありません", + "iris.modded.moddedpackcommands.pack_not_found_under": "{value} にパック '{pack}' が見つかりません", + "iris.modded.moddedpackcommands.validating_pack_s": "{value} 個のパックを検証しています...", + "iris.modded.moddedpackcommands.validation_failed": "'{value}' の検証に失敗しました: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "検証が完了しました。破損パック: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "{value} にパック '{pack}' が見つかりません", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "{value} にパック '{pack}' が見つかりません", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "検証結果がありません。先に /iris pack validate を実行してください。", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value}(ブロック項目={value2}、警告={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "'{pack}' の検証結果がありません。/iris pack validate {pack2} を実行してください。", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "パック '{value}' は読み込み可能です(警告={value2})。", + "iris.modded.moddedpackcommands.pack_is_broken": "パック '{value}' は破損しています:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ...ほか {value} 件の警告。", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "パック '{pack}' にクリーンアップ候補はありません。", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "パック '{pack}' のクリーンアッププレビュー: 候補 {value} 件。ファイルは変更されていません。", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "再スキャン後に候補を隔離するには /iris pack cleanup {pack} apply を実行してください。", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "パック '{pack}' にクリーンアップ候補はありません。", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "{value} 件のクリーンアップ候補を {value2} に隔離しました。", + "iris.modded.moddedpackcommands.nothing_restore_pack": "パック '{pack}' に復元対象はありません。", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "{value} の復元プレビュー: {value2} ファイル。ファイルは変更されていません。", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "既存の復元先 {value} 件と競合するため復元できません。", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "競合を再確認して復元するには /iris pack restore {pack} apply を実行してください。", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "復元先が {value} 件すでに存在するため、復元を中止しました。", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "パック '{pack}' に復元対象はありません。", + "iris.modded.moddedpackcommands.restored_file_s_from": "{value2} から {value} ファイルを復元しました。", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ...ほか {value} 件。", + "iris.modded.moddedregen.regen_is_already_running": "チャンク再生成はすでに実行中です。", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "このディメンションは Iris によって生成されていません。パックを解決できるよう、Iris ディメンション内で実行してください。", + "iris.modded.moddedstructurecommands.wrote_structure_index": "構造物インデックスを書き込みました: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "このパックに Iris 構造物 '{key}' はありません", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "構造物 '{key}' は 0 ピースしか組み立てられませんでした(startPool '{value}' を確認してください)", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "構造物 '{key}': {value} ピース、占有範囲 {value2}x{value3} ブロック(サンプルシード 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "このコマンドはプレイヤーのみ使用できます(現在位置に構造物を組み立てます)。", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "このパックに Iris 構造物 '{key}' はありません", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "構造物 '{key}' は 0 ピースしか組み立てられませんでした", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "配置に失敗しました: {value}(途中までの変更は元に戻せるよう記録されました)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "現在位置に '{key}' を配置しました({value} ピース、書き込み {value2}{tileNote})。元に戻すには /iris object undo を実行してください。", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "ディメンションパックを指定してください: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "サーバー画面でノイズエクスプローラーを開いています。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "このディメンションは Iris によって生成されていません。ジェネレーターを解決するには Iris ディメンション内で /iris studio noise を実行するか、ジェネレーター名を省略してください。", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "パック {value} に不明なジェネレーター '{generatorKey}' が指定されています。", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "ジェネレーター '{value}'(シード {seed})をノイズエクスプローラーで開いています。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "このディメンションは Iris によって生成されていません。Iris またはスタジオディメンション内で /iris studio map を実行してください。", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "サーバー画面で {value} の Vision マップを開いています。", + "iris.modded.moddedstudiocommands.failed_write_workspace": "{value} のワークスペースを書き込めませんでした: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "ワークスペース {value} を JSON スキーマによる自動補完付きで再生成しました。", + "iris.modded.moddedstudiocommands.could_not_open": "{value} を開けませんでした: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "エディターで {value} を開いています。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "このディメンションは Iris によって生成されていません。パック名を明示的に指定してください。", + "iris.modded.moddedstudiocommands.pack_not_found_under": "{value} にパック '{name}' が見つかりません", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "ディメンションパックを指定してください: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "パック '{pack}'(シード {seed})のスタジオを開いています...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "パック '{pack}' がありません。IrisDimensions/{pack2} をダウンロードしています...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "パック '{pack}' をダウンロードできませんでした。名前を確認して /iris download {pack2} を実行してください。", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "パック '{pack}' に dimensions/{pack2}.json がありません", + "iris.modded.moddedstudiocommands.studio_open_failed": "スタジオを開けませんでした: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "スタジオの注入に失敗しました: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "コンソールからスタジオを開きました: {dimensionId} はパック '{pack}'、シード {seed} で実行中です(一時的な設定のため iris-dimensions.json には書き込まれず、再起動時に解除されます)。", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "入るには次を実行してください: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "事前生成するには次を実行してください: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "削除するには次を実行してください: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "スタジオの注入に失敗しました: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "スタジオを開きました: {dimensionId} はパック '{pack}'、シード {seed} で実行中です。完了後は /iris studio close を実行してください。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "開いているスタジオがありません。先に /iris studio open を実行してください。", + "iris.modded.moddedstudiocommands.studio_close_failed": "スタジオを閉じられませんでした: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "スタジオを閉じました: {dimensionId} から退避し、アンロードしてリージョンデータを削除しました。", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "現在開いているスタジオディメンションはありません。", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "有効なスタジオディメンション: {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: パック '{value2}'、シード {value3}、所有者 {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "このコマンドはプレイヤーのみ使用できます。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "開いているスタジオがありません。先に /iris studio open を実行してください。", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "スタジオディメンションは読み込まれていません。もう一度 /iris studio open を実行してください。", + "iris.modded.moddedstudiocommands.teleported_your_studio": "スタジオ({dimensionId})にテレポートしました。", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "パック '{value}' に dimensions/{value2}.json がありません", + "iris.modded.moddedstudiocommands.pack_has_version": "パック \"{value}\" のバージョン: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "無効なプロジェクト名 '{nameRaw}' です(使用可能: a-z、0-9、_、-)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "パック '{name}' は {value} にすでに存在します", + "iris.modded.moddedstudiocommands.creating_project_from_template": "テンプレート '{template}' からプロジェクト '{name}' を作成しています...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "テンプレート '{template}' がインストールされていません。IrisDimensions/{template2} をダウンロードしています...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "テンプレート '{template}' をダウンロードできませんでした。先に dimensions/{template2}.json を含むパックをインストールしてください。", + "iris.modded.moddedstudiocommands.created_project_at": "プロジェクト '{name}' を {value} に作成しました", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "dimensions/{name}.json とパックのほかのファイルを編集してください。JSON スキーマの自動補完に対応した VSCode ワークスペースを生成しました。開くか、/iris studio vscode を再実行してください。", + "iris.modded.moddedstudiocommands.project_creation_failed": "プロジェクトを作成できませんでした: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "ディメンション '{dimKey}' をパッケージ化しています...", + "iris.modded.moddedstudiocommands.package_compiled": "パッケージをコンパイルしました: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "パッケージ化に失敗しました: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "このコマンドはプレイヤーのみ使用できます(現在位置を中心にサンプリングします)。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "このディメンションは Iris によって生成されていません。", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "周囲 {value}x{value2} チャンクのリージョン分布をサンプリングしています...", + "iris.modded.moddedstudiocommands.rarity": "{key}: レア度={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "リージョンのサンプリングに失敗しました: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "パック '{pack}' がインストールされていません。IrisDimensions/{pack2} をダウンロードしています...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "パック '{pack}' をダウンロードできませんでした。名前を確認するか、/iris download {pack2} でインストールしてください。", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Iris ワールド '{dimensionId}' を注入できませんでした: {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Iris ワールド {dimensionId} を、パック '{pack}' のディメンション '{packDimension}'(シード {seed})から作成しました。", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "現在使用可能で、起動するたびに再注入されます。/iris world status またはポータルからテレポートできます。再起動は不要です。", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Iris プライマリーワールドを注入できませんでした: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris プライマリーワールドを {dimensionId} に設定しました(パック '{pack}'、ディメンション '{packDimension}'、シード {seed})。", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "バニラのオーバーワールド生成器は実行中に差し替えられないため、この操作で既存のオーバーワールドが再生成されることはありません。", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "代わりに {dimensionId} をプライマリーワールドとして設定しました。バニラのオーバーワールドにいるプレイヤーは参加時にそこへ移動し、起動するたびに再注入されます。", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris メインワールドの上書きを解除しました。オーバーワールドは現在のジェネレーターを維持します。元に戻すには server.properties の level-type を編集して再起動してください。", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "無効なシード '{seedRaw}' です。数値または 'random' を指定してください。", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "パック '{pack}' がインストールされていません。IrisDimensions/{pack2} をダウンロードしています...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "パック '{pack}' をダウンロードできませんでした。名前を確認するか、/iris download {pack2} でインストールしてください。", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "パック '{pack}' はまだ準備中です(読み込みまたは検証中)。しばらくしてからもう一度コマンドを実行してください。", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "server.properties を書き込めませんでした。ファイル権限を確認し、level-type を手動で設定してください。", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris メインワールドを '{pack}'(プリセット {preset}、シード {value})に設定しました。", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties の level-type を {preset} に設定しました。次回の再起動時に、オーバーワールド、ネザー、エンドがこの Iris ワールドとして再生成されます。", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "プレイヤーデータ(インベントリ、進捗、統計)は保持されますが、各ディメンションの既存地形は置換されます。この処理は一度だけ適用されます。", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart が有効です。再起動ラッパーが新しいメインワールドでサーバーを再開できるよう、サーバーを停止します。", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "生成するにはサーバーを再起動してください(modded.json で mainWorldAutoRestart=true にすると、Iris がサーバーを停止します)。", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "必須の検証に失敗したため、パック '{pack}' を使ったワールド '{dimensionId}' の作成を拒否しました:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "パックを修正し、/iris pack validate {pack} を実行して再検証してください。", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "{value} にパック '{pack}' が見つかりませんでした", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "パック '{pack}' に dimensions/{packDimension}.json がありません", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "無効なパック参照 '{pack}{value}' です。pack または pack:dimensionKey を指定してください。", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "無効なシード '{seedRaw}' です。数値または 'random' を指定してください。", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Iris ワールド '{dimensionId}' を削除できませんでした: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris 世界の '{dimensionId}' は読み込まれていません。永続的なレジストリエントリをクリアし、保存されたチャンク/マントルデータを消去しました。", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris 世界の '{dimensionId}' は読み込まれていません。永続的なレジストリエントリをクリアしました。 ディスク上の世界データが保存されます。", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Iris ワールド '{dimensionId}' を削除しました。プレイヤーを退避し、ワールドをアンロードしてチャンク/Mantle データを消去し、起動レジストリから外しました。", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Iris ワールド '{dimensionId}' を無効にしました。プレイヤーを退避し、ワールドをアンロードして起動レジストリから外しました。", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "ディスク上のワールドデータは保持されます。再び有効にするには /iris world enable {dimensionId} 、削除するには /iris world delete {dimensionId2} を実行してください。", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "読み込み済み Iris レベル: {value} -> パック '{value2}'、ディメンション '{value3}'", + "iris.modded.moddedworldcommands.primary_world": "プライマリーワールド: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "現在読み込まれている Iris ディメンションはありません。/iris world create で作成できます。", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "読み込み済み Iris ディメンション: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "再起動せずに注入するには /iris world create を使用してください。", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "外部データパックのインポートをダウンロードして管理します(Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "パックディメンションの 'datapackImports' にある全データパックをダウンロードまたは更新し、構造物がバニラ同様に登録されるようワールドへインストールします", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "新しいデータパックをインストールしたときにサーバーを再起動します(新しい構造物の登録と生成に必要です)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "設定済みのデータパックインポートとインストール済みバージョンを一覧表示します", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "ID を指定してインストール済みデータパックを削除します(再インストールを防ぐには datapackImports から URL も削除してください)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "/iris datapack list に表示されるデータパック ID(フォルダー名)", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris ワールドマネージャー", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "読み込み済み TectonicPlates の数を取得します", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Sentry へテスト例外を送信します", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "固定範囲で生成されたブロック出力をハッシュ化し、決定性と一致性を検証します", + "iris.director.commanddeveloper.param.world_hash": "ハッシュ化するワールド", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "中心からの半径(チャンク単位)", + "iris.director.commanddeveloper.param.center_chunk_x": "中心チャンクの X", + "iris.director.commanddeveloper.param.center_chunk_z": "中心チャンクの Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "ワールドのパックを更新します(危険!)", + "iris.director.commanddeveloper.param.world_update": "更新するワールド", + "iris.director.commanddeveloper.param.pack_install_into_world": "ワールドへインストールするパック", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "必ずバックアップを作成し、先に警告を読んでください!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Iris がパックを再ダウンロードするかどうか", + "iris.director.commanddeveloper.director.test": "テスト", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "単一セクションではなくプレート全体をダンプします", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "plugins/Iris/dump 内のダンプファイル ID(pv..*)", + "iris.director.commanddeveloper.director.test_2": "テスト", + "iris.director.commanddeveloper.param.pack_bench": "ベンチマークするパック", + "iris.director.commanddeveloper.param.radius_regions": "半径(リージョン単位)", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "ベンチマーク中に GUI を開くかどうか", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "別の Minecraft バージョンへアップグレードします", + "iris.director.commanddeveloper.param.version_upgrade": "アップグレード先のバージョン", + "iris.director.commanddeveloper.director.test_3": "テスト", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": ".mca リージョンファイルをスキャンするワールドフォルダー", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "再生成テスト用に周囲のチャンクブロックを削除します", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "現在のチャンクからの半径(チャンク単位)", + "iris.director.commanddeveloper.director.test_4": "テスト", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "周囲のチャンクを削除し、Iris の生成処理でその場に再生成します", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "周囲のチャンクの半径", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "チャンクをバッファー内に生成し(ワールドへの書き込みなし)、ブロックとバイオームをハッシュ化します。Golden ファイルの作成または既存ファイルとの検証に使用します。スキャン範囲の Mantle はリセットされるため、使い捨てのテストワールドで使用してください。", + "iris.director.commanddeveloper.param.world_scan": "スキャンするワールド", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "中心からの半径(チャンク単位)", + "iris.director.commanddeveloper.param.center_chunk_x_2": "中心チャンクの X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "中心チャンクの Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "最初にスキャン範囲の Mantle データを削除し、完全に新規生成します", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "同時チャンク生成数。1 = 順序依存性テスト用の厳密な直列処理", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "オフライン比較用に、チャンクごとの空気以外の全ブロック状態もダンプします", + "iris.director.commandedit.director.edit_something": "リソースを編集します", + "iris.director.commandedit.director.edit_biome_you_specified": "指定したバイオームを編集します", + "iris.director.commandedit.param.biome_edit": "編集するバイオーム", + "iris.director.commandedit.director.edit_region_you_specified": "指定したリージョンを編集します", + "iris.director.commandedit.param.region_edit": "編集するリージョン", + "iris.director.commandedit.director.edit_dimension_you_specified": "指定したディメンションを編集します", + "iris.director.commandedit.param.dimension_edit": "編集するディメンション", + "iris.director.commandfind.director.iris_find_commands": "Iris 検索コマンド", + "iris.director.commandfind.director.find_biome": "バイオームを検索します", + "iris.director.commandfind.param.biome_look": "検索するバイオーム", + "iris.director.commandfind.param.should_you_be_teleported": "検索結果へテレポートするかどうか", + "iris.director.commandfind.director.find_region": "リージョンを検索します", + "iris.director.commandfind.param.region_look": "検索するリージョン", + "iris.director.commandfind.param.should_you_be_teleported_2": "検索結果へテレポートするかどうか", + "iris.director.commandfind.director.find_point_interest": "地点を検索します。", + "iris.director.commandfind.param.type_poi_look": "検索する PoI のタイプ。", + "iris.director.commandfind.param.should_you_be_teleported_3": "検索結果へテレポートするかどうか", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "構造物を検索します(minecraft:village_plains や minecraft:stronghold などのバニラキー、またはインポート済み Iris 構造物キー)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "検索する構造物(例: minecraft:village_plains、minecraft:stronghold、minecraft_ancient_city)", + "iris.director.commandfind.director.find_object": "オブジェクトを検索します", + "iris.director.commandfind.param.object_look": "検索するオブジェクト", + "iris.director.commandfind.param.should_you_be_teleported_4": "検索結果へテレポートするかどうか", + "iris.director.commandiris.director.basic_command": "基本コマンド", + "iris.director.commandiris.director.create_new_world": "新しいワールドを作成します", + "iris.director.commandiris.param.name_world_create": "作成するワールドの名前", + "iris.director.commandiris.param.dimension_pack_create_world_with": "ワールドの作成に使用するディメンションまたはパック", + "iris.director.commandiris.param.seed_generate_world_with": "ワールドの生成に使用するシード", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "このワールドをメインワールドとして自動設定するかどうか", + "iris.director.commandiris.director.teleport_another_world": "別のワールドへテレポートします", + "iris.director.commandiris.param.world_teleport": "テレポート先のワールド", + "iris.director.commandiris.param.player_teleport": "テレポートさせるプレイヤー", + "iris.director.commandiris.director.print_version_information": "バージョン情報を表示します", + "iris.director.commandiris.director.benchmark_pack": "パックをベンチマークします", + "iris.director.commandiris.param.dimension_benchmark": "ベンチマークするディメンション", + "iris.director.commandiris.director.print_world_height_information": "ワールドの高さ情報を表示します", + "iris.director.commandiris.director.check_access_all_worlds": "全ワールドへのアクセスを確認します。", + "iris.director.commandiris.director.remove_iris_world": "Iris ワールドを削除します", + "iris.director.commandiris.param.world_remove": "削除するワールド", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "フォルダーも削除するかどうか(false の場合はワールドを読み込まないだけです)", + "iris.director.commandiris.director.toggle_debug": "デバッグを切り替えます", + "iris.director.commandiris.director.download_project": "プロジェクトをダウンロードします。", + "iris.director.commandiris.param.pack_download": "ダウンロードするパック", + "iris.director.commandiris.param.branch_download_from": "ダウンロード元のブランチ", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "ダウンロードしたパックで既存パックを上書きするかどうか", + "iris.director.commandiris.director.get_metrics_your_world": "ワールドのメトリクスを取得します", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "設定ファイルを再読み込みします(自動でも実行されます)", + "iris.director.commandiris.director.unload_iris_world": "Iris ワールドをアンロードします", + "iris.director.commandiris.param.world_unload": "アンロードするワールド", + "iris.director.commandiris.director.load_iris_world": "Iris ワールドを読み込みます", + "iris.director.commandiris.param.name_world_load": "読み込むワールドの名前", + "iris.director.commandiris.director.evacuate_iris_world": "Iris ワールドからプレイヤーを退避させます", + "iris.director.commandiris.param.evacuate_world": "退避対象のワールド", + "iris.director.commandobject.director.iris_object_manipulation": "Iris オブジェクト操作", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "オブジェクトスタジオワールドを開きます(全オブジェクトのグリッド。ディメンションは省略可能で、既定では全パック)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "配置するオブジェクトパックのディメンション。省略すると全パックのオブジェクトを集約します", + "iris.director.commandobject.param.seed_generate_studio_with": "スタジオの生成に使用するシード", + "iris.director.commandobject.director.check_composition_object": "オブジェクトの構成を確認します", + "iris.director.commandobject.param.object_analyze": "分析するオブジェクト", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "オブジェクトを最小サイズまで縮小します", + "iris.director.commandobject.param.object_shrink": "縮小するオブジェクト", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "樹冠内に自然な枝を伸ばし、すべての葉がバニラの消滅処理に耐えるようにします", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "オブジェクトキー、プレフィックス(trees/)、またはファイルシステムパス", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true の場合は分析のみ行い、書き込みません", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N は既存の木材から伸ばす枝の最大長(ブロック単位)。それより遠い葉のまとまりは永続化されます。reach=0 では無制限に伸ばします", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "'convert' フォルダー内の .schem ファイルを .iob ファイルへ変換します。", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "オブジェクトを可視化する粉末を取得します", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "見ている方向に基づいて選択範囲を縮小します", + "iris.director.commandobject.param.amount_inset_by": "内側へ縮める量", + "iris.director.commandobject.director.set_point_1_look": "見ている位置を選択点 1 に設定します", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "現在位置と見ている位置のどちらを使用するか", + "iris.director.commandobject.director.set_point_2_look": "見ている位置を選択点 2 に設定します", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "現在位置と見ている位置のどちらを使用するか", + "iris.director.commandobject.director.paste_object": "オブジェクトを貼り付けます", + "iris.director.commandobject.param.object_paste": "貼り付けるオブジェクト", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "オブジェクトを編集するかどうか(杖を手に持つ必要があります)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "回転角度", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "オブジェクト配置の倍率", + "iris.director.commandobject.param.scale_interpolator_use": "使用する拡大縮小補間方式", + "iris.director.commandobject.director.save_object": "オブジェクトを保存します", + "iris.director.commandobject.param.dimension_store_object": "オブジェクトの保存先ディメンション", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "保存先ファイル。/ でサブフォルダーを指定できます", + "iris.director.commandobject.param.overwrite_existing_object_files": "既存のオブジェクトファイルを上書きするかどうか", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "可能な場合は従来の TileState シリアライズを使用します", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "見ている方向へ選択範囲を移動します", + "iris.director.commandobject.param.amount_shift_by": "移動量", + "iris.director.commandobject.director.undo_number_pastes": "指定件数の貼り付けを元に戻します", + "iris.director.commandobject.param.amount_pastes_undo": "元に戻す貼り付けの件数", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "オブジェクト用の杖を取得し、現在の WorldEdit 選択範囲を設定します。", + "iris.director.commandobject.director.get_object_wand": "オブジェクト用の杖を取得します", + "iris.director.commandobject.director.autoselect_up_down_out": "上下方向と外側へ自動選択します", + "iris.director.commandobject.director.autoselect_up_out": "上方向と外側へ自動選択します", + "iris.director.commandpack.director.pack_validation_maintenance": "パックの検証とメンテナンス", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "指定したパックまたは全パックを検証し、結果を再公開します", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "検証するパックフォルダー名(空欄で全パック)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "未使用リソースのクリーンアップをプレビューまたは適用します", + "iris.director.commandpack.param.pack_folder_name_clean": "クリーンアップするパックフォルダー名", + "iris.director.commandpack.param.preview_apply": "preview または apply", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "最新の隔離内容の復元をプレビューまたは適用します", + "iris.director.commandpack.param.pack_folder_name_restore": "復元するパックフォルダー名", + "iris.director.commandpack.param.preview_apply_2": "preview または apply", + "iris.director.commandpack.director.show_cached_validation_status_pack": "パックのキャッシュ済み検証状態を表示します", + "iris.director.commandpack.param.pack_folder_name": "パックフォルダー名", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Iris ワールドを事前生成します!", + "iris.director.commandpregen.director.pregenerate_world": "ワールドを事前生成します", + "iris.director.commandpregen.param.radius_pregen_blocks": "事前生成の半径(ブロック単位)", + "iris.director.commandpregen.param.world_pregen": "事前生成するワールド", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "事前生成の中心位置。現在位置には \"me\" を指定します", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Iris 事前生成 GUI を開くかどうか", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "一度に 1 チャンクだけ生成するかどうか", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "実行中の事前生成タスクを停止します", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "実行中の事前生成タスクを一時停止または再開します", + "iris.director.commandpregen.director.show_active_pregeneration_status": "実行中の事前生成状態を表示します", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris 構造物ツール(インデックス、インポート、情報)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "全バニラ、データパック、Iris 構造物を一覧にした structure-index.json を再生成します", + "iris.director.commandstructure.param.dimension_whose_pack_index": "インデックスを作成するパックのディメンション", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "すべての構造物(vanilla と取り込んだ datapack の両方)を編集可能な Iris リソースとしてこのパックへ常に上書きでインポートします。jigsaw 構造物(村、前哨基地、datapack jigsaw)を編集可能な pool/piece グラフとして再構築し、各 NBT 構造テンプレートをオブジェクトとしてインポートして、複数テンプレートの構造物(難破船、荒廃したポータル、海底遺跡、ネザー化石)を組み立てます。datapack を取り込んで再起動した後に実行してください。インポートしたコピーを配置するにはチャンクを再生成するか、新しいワールドを使用してください。", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "インポート先パックのディメンション", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "NBT テンプレートを持たないコード生成構造物(沼地の小屋、イグルーなど)を、使い捨ての一時ワールドにそれぞれ生成してブロックを読み戻し、編集可能な Iris オブジェクトとしてキャプチャします。すでに構造物としてインポートされるもの、キャプチャ上限より幅/高さが大きいもの(要塞、森の洋館、海底神殿は vanilla のまま)、フラットな overworld で生成されないものはスキップします。キャプチャした各構造物は、biome/region/dimension の 'structures' リストから配置できる単一ピースの Iris 構造物になります。/iris structure import の最終段階として自動実行されます。", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "キャプチャ先パックのディメンション", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "ブロッキングするネイティブ検索を実行せずに、ネイティブ構造物の生成可否を検証し、Iris 配置構造物を検索します。", + "iris.director.commandstructure.param.dimension_verify": "検証するディメンション", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "原点からの検索半径(チャンク単位。大きいほど大幅に遅くなります)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Iris 構造物のジグソーグラフを解決し、ピース数と境界を報告します", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "構造物を含むパックのディメンション", + "iris.director.commandstructure.param.iris_structure_key_inspect": "調査する Iris 構造物キー", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "現在位置に Iris 構造物を組み立てて配置します(スタジオテスト用)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "構造物を含むパックのディメンション", + "iris.director.commandstructure.param.iris_structure_key_place": "配置する Iris 構造物キー", + "iris.director.commandstudio.director.studio_commands": "スタジオコマンド", + "iris.director.commandstudio.director.open_new_studio_world": "新しいスタジオワールドを開きます", + "iris.director.commandstudio.param.dimension_pack_open_studio": "スタジオを開くディメンションパック", + "iris.director.commandstudio.param.seed_generate_studio_with": "スタジオの生成に使用するシード", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "サーバーからバニラの木、キノコ、オブジェクト、structures/jigsaw をパックの objects/vanilla フォルダーへインポートします", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "バニラコンテンツのインポート先ディメンションパック", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "木またはオブジェクト機能ごとにキャプチャするバリアント数", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "バニラおよびデータパックの structures/jigsaw もパックへインポートします", + "iris.director.commandstudio.director.open_vscode_dimension": "ディメンションを VSCode で開きます", + "iris.director.commandstudio.param.dimension_open_vscode": "VSCode で開くディメンション", + "iris.director.commandstudio.director.close_open_studio_project": "開いているスタジオプロジェクトを閉じます", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "スタジオのデバッグスコアボードを切り替えます", + "iris.director.commandstudio.director.create_new_studio_project": "新しいスタジオプロジェクトを作成します", + "iris.director.commandstudio.param.name_this_new_iris_project": "新しい Iris プロジェクトの名前。", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "packs フォルダー内の既存プロジェクトをコピーし、新しいプロジェクトのテンプレートとして使用します。", + "iris.director.commandstudio.director.get_version_pack": "パックのバージョンを取得します", + "iris.director.commandstudio.param.dimension_get_version": "バージョンを取得するディメンション", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "ノイズエクスプローラーを開きます(外部 GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "プレビューするパックジェネレーター(任意)", + "iris.director.commandstudio.param.seed_preview_generator_with": "ジェネレーターのプレビューに使用するシード", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "現在位置にチェストがある場合の戦利品を表示します", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "仮想インベントリへアイテムを高速挿入します(性能が低下する場合があります)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "現在開いているインベントリへ追加するかどうか(false の場合は開いているインベントリを消去します)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "各リージョンの生成確率を計算します", + "iris.director.commandstudio.param.radius_chunks": "半径(チャンク単位)", + "iris.director.commandstudio.director.render_world_map_external_gui": "ワールドマップを描画します(外部 GUI)", + "iris.director.commandstudio.param.world_open_generator": "ジェネレーターを開くワールド", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "ディメンションを圧縮形式にパッケージ化します", + "iris.director.commandstudio.param.dimension_pack_compress": "圧縮するディメンションパック", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "パックを難読化するかどうか", + "iris.director.commandstudio.param.whether_not_minify_pack": "パックを最小化するかどうか", + "iris.director.commandstudio.director.profiles_performance_dimension": "ディメンションの性能をプロファイルします", + "iris.director.commandstudio.param.dimension_profile": "プロファイルするディメンション", + "iris.director.commandstudio.director.spawn_iris_entity": "Iris エンティティをスポーン", + "iris.director.commandstudio.param.entity_spawn": "スポーンするエンティティ", + "iris.director.commandstudio.param.location_spawn_entity_at": "エンティティをスポーンする位置", + "iris.director.commandstudio.director.teleport_active_studio_world": "有効なスタジオワールドへテレポートします", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "ディメンションプロジェクトの VSCode ワークスペースを更新します", + "iris.director.commandstudio.param.dimension_update_workspace": "ワークスペースを更新するディメンション", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "周囲のチャンクから IGenData チャンクレポートを取得します", + "iris.director.commandwhat.director.iris_what": "Iris 情報", + "iris.director.commandwhat.director.what_is_my_hand": "手に持っているものを調べます", + "iris.director.commandwhat.director.what_biome_am_i": "現在のバイオームを調べます", + "iris.director.commandwhat.director.what_region_am_i": "現在のリージョンを調べます", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "見ているブロックを調べます", + "iris.director.commandwhat.director.show_markers_chunk": "チャンク内のマーカーを表示します", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "cave_floor や cave_ceiling などのマーカー名", + "iris.modded.help.entry.command.version": "バージョン情報を表示します", + "iris.modded.help.entry.command.info": "読み込み済みの Iris ディメンションとパック詳細を一覧表示します", + "iris.modded.help.entry.command.what": "現在位置の Iris バイオーム、リージョン、洞窟バイオーム、地表、チャンク、見ているブロック、手持ちアイテム、周囲のマーカーを調べます", + "iris.modded.help.entry.group.find": "Iris バイオーム、リージョン、オブジェクト、Iris 構造物、ネイティブ構造物、地点を検索してテレポートします", + "iris.modded.help.entry.command.tp": "自分または指定したプレイヤーを読み込み済みの Iris ディメンションへテレポートします", + "iris.modded.help.entry.command.evacuate": "Iris ディメンション内の全プレイヤーをプライマリーワールドのスポーン地点へ退避させます", + "iris.modded.help.entry.command.seed": "ワールドとエンジンのシード情報を表示します", + "iris.modded.help.entry.command.debug": "Iris のデバッグログを切り替えて settings.json を保存します", + "iris.modded.help.entry.command.reload": "settings.json を再読み込みします(3s ごとの自動ホットロードにも対応)", + "iris.modded.help.entry.command.download": "パックプロジェクトをダウンロードします", + "iris.modded.help.entry.command.metrics": "現在の Iris ディメンションの生成メトリクスを表示します", + "iris.modded.help.entry.command.regen": "周囲のチャンクを削除し、その場で再生成します", + "iris.modded.help.entry.group.pregen": "Iris ディメンションを事前生成します", + "iris.modded.help.entry.command.wand": "Iris オブジェクト用の杖を取得します", + "iris.modded.help.entry.group.object": "オブジェクト用の杖、保存、貼り付け、分析、元に戻すためのツールです", + "iris.modded.help.entry.group.edit": "パックのバイオーム、リージョン、ディメンションの JSON ファイルをデスクトップエディターで開きます", + "iris.modded.help.entry.command.create": "永続的な Iris ディメンションを作成して注入します。特定のパックディメンションを選ぶには pack:dimensionKey を引用符で囲んで指定します", + "iris.modded.help.entry.group.studio": "パックプロジェクトの作成、パッケージ化、レポートを扱います", + "iris.modded.help.entry.group.pack": "パックの検証とメンテナンスを行います", + "iris.modded.help.entry.group.world": "実行中の Iris ディメンションの作成、削除、状態確認を行います", + "iris.modded.help.entry.group.datapack": "ワールドデータパックのインストールと状態確認を支援します", + "iris.modded.help.entry.group.structure": "Iris 構造物のインデックス、情報、配置ツールです", + "iris.modded.help.entry.command.goldenhash": "互換性テスト用に決定論的なブロックハッシュを生成します", + "iris.modded.help.entry.group.developer": "開発者の診断: Sentryテスト、ネットワーク インターフェイス、地域 ファイル スキャン", + "iris.modded.help.entry.command.biome": "Iris バイオームを検索します", + "iris.modded.help.entry.command.region": "Iris リージョンを検索します", + "iris.modded.help.entry.command.object": "オブジェクト配置を検索します", + "iris.modded.help.entry.command.structure": "Iris が配置した構造物、またはネイティブ/データパック構造物を検索します", + "iris.modded.help.entry.command.poi": "対応している地点を検索します", + "iris.modded.help.entry.command.biome_2": "バイオームの JSON をデスクトップエディターで開きます。キーを省略すると現在位置のバイオームを開きます", + "iris.modded.help.entry.command.region_2": "リージョンの JSON をデスクトップエディターで開きます。キーを省略すると現在位置のリージョンを開きます", + "iris.modded.help.entry.command.dimension": "現在のパックのディメンション JSON をデスクトップエディターで開きます", + "iris.modded.help.entry.command.start": "事前生成を開始します。半径はブロック単位で、再開可能なチェックポイントキャッシュは既定で有効です。中心は 'at ' で指定し、フラグは任意の順序で組み合わせられます", + "iris.modded.help.entry.command.stop": "実行中の事前生成タスクを停止します", + "iris.modded.help.entry.command.pause": "事前生成を一時停止または再開します", + "iris.modded.help.entry.command.status": "事前生成の状態を表示します", + "iris.modded.help.entry.command.wand_3": "Iris オブジェクト用の杖を取得します", + "iris.modded.help.entry.command.dust": "オブジェクト配置を可視化するダストを取得します", + "iris.modded.help.entry.command.save": "杖で選択した範囲をオブジェクトとして保存します", + "iris.modded.help.entry.command.paste": "現在位置または指定位置に、任意の回転でオブジェクトを貼り付けます", + "iris.modded.help.entry.command.expand": "見ている方向へ杖の選択範囲を拡張します", + "iris.modded.help.entry.command.contract": "見ている方向から杖の選択範囲を縮小します", + "iris.modded.help.entry.command.shift": "見ている方向へ杖の選択範囲を移動します", + "iris.modded.help.entry.command.position1": "選択点 1 を設定します", + "iris.modded.help.entry.command.position2": "選択点 2 を設定します", + "iris.modded.help.entry.command.x_y": "上方向と外側へ自動選択します", + "iris.modded.help.entry.command.x_y_2": "上下方向と外側へ自動選択します", + "iris.modded.help.entry.command.analyze": "オブジェクトの構成を表示します", + "iris.modded.help.entry.command.shrink": "オブジェクトを最小サイズまで縮小します", + "iris.modded.help.entry.command.plausibilize": "バニラの葉の消滅を防ぐよう枝を成長させます", + "iris.modded.help.entry.command.undo": "貼り付けたオブジェクトを元に戻します", + "iris.modded.help.entry.command.create_2": "新しいパックプロジェクトを作成します", + "iris.modded.help.entry.command.package": "ディメンションを圧縮形式にパッケージ化します", + "iris.modded.help.entry.command.version_2": "パックのバージョンを表示します", + "iris.modded.help.entry.command.regions": "周囲のリージョン分布を計算します", + "iris.modded.help.entry.command.open": "パック用の一時的なスタジオディメンションを開きます", + "iris.modded.help.entry.command.close": "開いているスタジオディメンションを閉じ、そのワールドを破棄します", + "iris.modded.help.entry.command.tpstudio": "開いているスタジオディメンションへテレポートします", + "iris.modded.help.entry.command.status_studio": "開いているスタジオディメンションとパックを表示します", + "iris.modded.help.entry.command.noise": "サーバー画面でノイズエクスプローラーの GUI を開きます", + "iris.modded.help.entry.command.map": "サーバー画面で Vision マップの GUI を開きます", + "iris.modded.help.entry.command.vscode": "パックの .code-workspace を再生成し、デスクトップエディターで開きます", + "iris.modded.help.entry.command.update": "パックの .code-workspace を再生成します", + "iris.modded.help.entry.command.importvanilla": "バニラコンテンツのインポート手順を説明します", + "iris.modded.help.entry.command.validate": "指定したパックまたは全パックを検証します", + "iris.modded.help.entry.command.cleanup": "未使用リソース候補をプレビューまたは隔離します", + "iris.modded.help.entry.command.restore": "最新の隔離内容をプレビューまたは復元します", + "iris.modded.help.entry.command.status_validation": "キャッシュ済みの検証状態を表示します", + "iris.modded.help.entry.command.enable": "永続的な Iris ディメンションを実行中に作成して注入します。不足しているパックはダウンロードします。特定のパックディメンションを選ぶには pack:dimensionKey を引用符で囲んで指定します", + "iris.modded.help.entry.command.replace_overworld": "Iris プライマリーワールドを注入し、バニラのオーバーワールドではなくそちらへプレイヤーを移動します", + "iris.modded.help.entry.command.disable": "Iris ディメンションから退避してアンロードします。再び有効にできるよう、ディスク上のワールドデータは保持します", + "iris.modded.help.entry.command.delete": "Iris ディメンションを無効にし、ディスク上のチャンクと Mantle データを消去します", + "iris.modded.help.entry.command.list": "読み込み済みの Iris ディメンションを一覧表示します", + "iris.modded.help.entry.command.status_world": "読み込み済みの Iris ディメンションと設定済みのプライマリーワールドを表示します", + "iris.modded.help.entry.command.status_datapack": "読み込み済み Iris ディメンションのタイプ上書きを確認します", + "iris.modded.help.entry.command.install": "読み込み済み Iris ディメンションのタイプ上書きをインストールします", + "iris.modded.help.entry.command.list_datapacks": "設定済みおよびインストール済みのデータパックを一覧表示します", + "iris.modded.help.entry.command.ingest": "Bukkit のデータパック取り込み手順を説明します", + "iris.modded.help.entry.command.remove": "データパックの削除手順を説明します", + "iris.modded.help.entry.command.list_structures": "structure-index.json を再生成します", + "iris.modded.help.entry.command.info_2": "Iris 構造物グラフを解決し、境界を表示します", + "iris.modded.help.entry.command.place": "現在位置に Iris 構造物を組み立てて配置します", + "iris.modded.help.entry.command.import": "Bukkit の構造物インポート手順を説明します", + "iris.modded.help.entry.command.capture": "Bukkit の構造物キャプチャ手順を説明します", + "iris.modded.help.entry.command.verify": "現在のディメンションでネイティブ構造物と Iris 構造物が到達可能か報告します", + "iris.modded.help.entry.command.sentry": "Iris エラーレポーターへテスト例外を送信します", + "iris.modded.help.entry.command.network": "ネットワークインターフェースとアドレスを一覧表示します", + "iris.runtime.progress.finding_regions": "リージョンを検索中", + "iris.runtime.progress.converting": "変換中", + "iris.runtime.status.running": "実行中", + "iris.runtime.status.stopped": "停止済み", + "iris.runtime.status.paused": "一時停止中", + "iris.runtime.status.paused_lower": "一時停止中", + "iris.runtime.status.running_lower": "実行中", + "iris.runtime.status.enabled": "有効。", + "iris.runtime.status.disabled": "無効。", + "iris.runtime.status.unregistered": "未登録", + "iris.runtime.status.none": "なし", + "iris.runtime.status.random": "ランダム", + "iris.runtime.status.match": "一致", + "iris.runtime.status.mismatch": "不一致", + "iris.runtime.status.true": "はい", + "iris.runtime.status.false": "いいえ", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " 上書き", + "iris.runtime.datapack.override_suffix": "(ワールドデータパックの上書きをインストール済み)", + "iris.runtime.primary_world.players_routed_suffix": "(プレイヤーをこのワールドへ移動)", + "iris.runtime.primary_world.routing_disabled_suffix": "(移動は無効)", + "iris.runtime.modded.no_dimension_match": "'{filter}' に一致する Iris ディメンションはありません。", + "iris.runtime.teleport.world": "{world} にテレポートしました。", + "iris.runtime.engine.hotloaded": "エンジンをホットロードしました", + "iris.runtime.job.completed": "{job} を {duration} で完了しました", + "iris.runtime.job.scanning_selection": "選択範囲をスキャン中", + "iris.runtime.job.loading_chunks": "チャンクを読み込み中", + "iris.runtime.job.searched_chunks": "{chunks} チャンクを検索しました", + "iris.runtime.job.compile": "コンパイル", + "iris.runtime.job.saving_object": "オブジェクトを保存中", + "iris.runtime.job.downloading": "ダウンロード中", + "iris.runtime.job.extracting": "展開中", + "iris.runtime.job.installing": "インストール中", + "iris.runtime.compile.iob_empty": "- IOB {file} にブロックがありません!", + "iris.runtime.compile.iob_empty_hover": "エラー:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} は 3D ではありません!", + "iris.runtime.compile.iob_not_3d_hover": "エラー:\n{path}\n幅、高さ、奥行きのいずれかが 0 です(不正な形式)", + "iris.runtime.compile.json_error": "- JSON エラー {file}", + "iris.runtime.compile.json_error_hover": "エラー:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "{path} 用のローダーが見つかりません", + "iris.runtime.datapack.name": "Iris ワールドジェネレーション", + "iris.runtime.pack.already_exists": "パックはすでに存在します!", + "iris.runtime.tree_plausibilize.dry_suffix": ", ドライラン", + "iris.runtime.tree_plausibilize.skip_load": "スキップ {object}: 読み込みに失敗", + "iris.runtime.tree_plausibilize.result": "{object}: 木材 +{wood}(枝 {branches})、葉 -> 木材 {converted}、距離計算 ~{distances}", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: 木材 +{wood}(枝 {branches})、葉 -> 木材 {converted}、距離計算 ~{distances}、固定 !{pinned}", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "失敗 {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "完了: 処理 {processed}、変更 {changed}、スキップ {skipped}、失敗 {failed}", + "iris.runtime.tree_plausibilize.done_dry": "完了: 処理 {processed}、変更 {changed}、スキップ {skipped}、失敗 {failed}(ドライランのため書き込みなし)", + "iris.runtime.tree_plausibilize.totals": "合計: 木材 +{wood}(枝 {branches})、葉 -> 木材 {converted}、距離計算 ~{distances}、固定 !{pinned}、到達不能 {before} -> {after}", + "iris.runtime.item.wand.name": "Iris の杖", + "iris.runtime.item.wand.lore.first": "ブロックを左クリックして 1 つ目の角を設定します", + "iris.runtime.item.wand.lore.second": "ブロックを右クリックして 2 つ目の角を設定します", + "iris.runtime.item.dust.name": "看破のダスト", + "iris.runtime.item.dust.lore": "ブロックを右クリックすると、その配置構造を表示します!", + "iris.runtime.wand.position_set": "選択位置 {position} を {x}, {y}, {z} に設定しました", + "iris.runtime.dust.iris_world_required": "このディメンションは Iris によって生成されていません。", + "iris.runtime.dust.found_object": "オブジェクト {object} が見つかりました", + "iris.runtime.dust.revealed": "{object} のブロックを {count} 個表示しました", + "iris.runtime.dust.revealed_capped": "{object} のブロックを {count} 個表示しました(上限到達)", + "iris.runtime.dust.header": "--- Iris ダスト @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "ブロック: {block}", + "iris.runtime.dust.position.above": "位置: 地表より +{offset} 上(地表 Y={surfaceY})", + "iris.runtime.dust.position.below": "位置: 地表より {offset} 下(地表 Y={surfaceY})", + "iris.runtime.dust.position.at": "位置: 地表(Y={surfaceY})", + "iris.runtime.dust.object_at_block": "このブロックのオブジェクト: {object}", + "iris.runtime.dust.none": "なし", + "iris.runtime.dust.placed_by.object_above": "配置元: object/stilt '{object}'(地表より上)", + "iris.runtime.dust.placed_by.decoration_above": "配置元: decoration/object/stilt(地表より上)", + "iris.runtime.dust.placed_by.buried_object": "配置元: 埋設オブジェクト '{object}'", + "iris.runtime.dust.placed_by.terrain": "配置元: 地形レイヤー(地表からの深さ {depth})", + "iris.runtime.dust.column_object": "列のオブジェクト: {object} -> このブロックはそのオブジェクトの支柱である可能性があります", + "iris.runtime.dust.column_object_none": "列のオブジェクト: {detail}", + "iris.runtime.dust.column_none": "64 ブロック以内になし(デコレーターまたは地形。オブジェクトの支柱ではありません)", + "iris.runtime.dust.column.above": "{object} @Y={y}(上)", + "iris.runtime.dust.column.below": "{object} @Y={y}(下)", + "iris.runtime.dust.surface_biome": "地表バイオーム: {biome}", + "iris.runtime.dust.surface_biome_detail": "地表バイオーム: {biome}({derivative})", + "iris.runtime.dust.biome_at_y": "バイオメ@Y: {biome}", + "iris.runtime.dust.cave_biome": "洞窟/Mantle バイオメ: {biome}", + "iris.runtime.dust.server_biome": "サーバーバイオーム: {biome}(ID: {id})", + "iris.runtime.dust.region": "リージョン: {region}({name})", + "iris.runtime.dust.objects_in_chunk": "チャンク内のオブジェクト: {objects}", + "iris.runtime.dust.copy_button": "[クリックして統計をコピー]", + "iris.runtime.dust.copy_hover": "ブロック統計をクリップボードへコピーします", + "iris.runtime.pregen.starting": "Iris 事前生成を開始しています...", + "iris.runtime.pregen.header": "Iris 事前生成", + "iris.runtime.pregen.bossbar.paused": "Iris 事前生成 {generated}/{total} {percent}% 一時停止中", + "iris.runtime.pregen.bossbar.running": "Iris 事前生成 {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " 失敗 {failed}", + "iris.runtime.pregen.status.context": "ディメンション {dimension} · 方式 {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "チャンク {generated}/{total} · 速度 {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "チャンク {generated}/{total} · 速度 {speed}/s · 失敗 {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · 経過時間 {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · 経過時間 {elapsed} · 一時停止中", + "iris.runtime.pregen.button.pause": "一時停止/再開", + "iris.runtime.pregen.button.pause.hover": "事前生成の一時停止状態を切り替えます", + "iris.runtime.pregen.button.stop": "停止", + "iris.runtime.pregen.button.stop.hover": "現在のリージョンを完了して事前生成を停止します", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cpacks/ フォルダーが見つかりません。", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§e検証するパックはありません。", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§a検証完了。破損パック: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cpacks/ にパック '{pack}' が見つかりません。", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aパック '{pack}' にクリーンアップ候補はありません。", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a{size} 件のクリーンアップ候補を {quarantinePath} に隔離しました。", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cクリーンアップモードをプレビューまたは適用する必要があります。", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aパック '{pack}' にクリーンアップ候補はありません。", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eパック '{pack}' のクリーンアッププレビュー: {size} 件の候補。ファイルは変更されていません。", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7再スキャン後に候補を隔離するには /iris pack cleanup {pack} mode=apply を実行してください。", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§c{size} 件の復元先がすでに存在するため、復元を拒否しました。", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eパック '{pack}' に復元対象はありません。", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a{dumpPath} から {size} 件のファイルを復元しました。", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§c復元モードをプレビューまたは適用する必要があります。", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eパック '{pack}' に復元対象はありません。", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§e{dumpPath} の復元プレビュー: {size} 件のファイル。ファイルは変更されていません。", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§c既存の復元先 {size} 件により復元がブロックされています。", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7競合を再確認した後に復元するには /iris pack restore {pack} mode=apply を実行してください。", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§e検証結果がありません。先に /iris pack validate を実行してください。", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK§r {pack}§7(ブロック={blocking}、警告={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§c破損§r {pack}§7(ブロック={blocking}、警告={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cクリーンアップ失敗: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§c復元に失敗しました: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "まだ検疫", + "iris.bukkit.runtime.commandpack.path.quarantined": "隔離済み", + "iris.bukkit.runtime.commandpack.path.candidate": "候補", + "iris.bukkit.runtime.commandpack.path.conflict": "競合", + "iris.bukkit.runtime.commandpack.path.restored": "復元", + "iris.bukkit.runtime.commandpack.path.file": "ファイル", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§e'{pack}' の検証結果がありません。/iris pack validate {pack2} を実行してください。", + "iris.bukkit.runtime.commandpack.validation_failed": "§c'{name}' の検証に失敗しました: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aパック '{packName}' は読み込み可能です。§7(警告={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cパック '{packName}' は破損しています:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ...ほか {count} 件の警告。", + "one": "§7 ...ほか {count} 件の警告。" + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cこの機能を使用する前に、必ずバックアップを作成してください", + "§e発生する可能性がある問題には、次のものがあります:", + "§e - 更新前 & 更新後の古いチャンクと新しいチャンク間に生じる切れ目", + "§e - 再生成されたチャンクが古いチャンクとつながらない", + "§e - 再生成時に構造物が再びスポーンしない", + "§e - 洞窟がつながらない", + "§e - 地形レイヤーがつながらない", + "§cリスクを理解し、バックアップを作成したら実行してください:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aバニラおよびデータパック構造物 §f{total}§a 件をインポートしています(mode={mode}、includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[失敗] {keyString}: 無効なキー", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[スキップ] {keyString}: 単一テンプレートの NBT がありません。バニラはコードまたは個別のピーステンプレートから構築します(テンプレート処理でインポート済み)。単一構造物としてインポートする対象はありません。", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§a一括インポート完了: §f{imported}§a 件をインポート、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗(合計 §f{total}§a 件)。", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aインポートしたピースから単一テンプレート構造物を構築しています(生成ごとに 1 バリアントを配置)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} バリアント)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[スキップ] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[失敗] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§a単一テンプレート構造物: §f{imported}§a 件を構築、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗しました。", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cサーバーの ResourceManager から構造物テンプレートを列挙できませんでした: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§e'structure' リソースパスに構造物テンプレートがありません。", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§a構造物テンプレート §f{total}§a 件をインポートしています(mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[失敗] {keyString}: 無効なキー", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total}(インポート {imported}、スキップ {skipped}、失敗 {failed})", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aテンプレートのインポート完了: §f{imported}§a 件をインポート、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗(合計 §f{total}§a 件)。", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§edatapack(non-minecraft)の構造物が登録されていません。先に datapack を取り込んで再起動してから、もう一度実行してください。", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aデータパック構造物 §f{total}§a 件をインポートしています(mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[失敗] {keyString}: 無効なキー", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aデータパック構造物テンプレート §f{size}§a 件をインポートしています...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eサーバーの ResourceManager からデータパックテンプレートを列挙できませんでした: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aデータパック構造物のインポート完了: §f{imported}§a 件をインポート、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗しました。", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§e現在の NMS バインディングは構造物キャプチャに対応していないため、キャプチャ処理をスキップします。", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7キャプチャ対象のコード生成構造物は残っていません(すべて構造物としてインポート済みです)。", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aコード生成構造物(NBT テンプレートなし)§f{total}§a 件を作業用ワールドでキャプチャしています(幅または高さが {MAXSPAN} ブロックを超えるものはスキップ)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[スキップ] {key}: キャプチャ可能な構造物を配置できませんでした(大きすぎる、ディメンションが違う、またはフラットワールドに有効な配置場所がない)。バニラ生成のままにします。", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[失敗] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[キャプチャ] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[失敗] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total}(キャプチャ {imported}、スキップ {skipped}、失敗 {failed})", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§a構造物キャプチャ完了: §f{imported}§a 件をキャプチャ、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗(合計 §f{total}§a 件)。", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§e現在の NMS バインディングではバニラの木またはオブジェクト機能を取得できません(構造物のみインポートします)。", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aバニラの木またはオブジェクト機能 §f{total}§a 件(各 §f{wantVariants}§a バリアント)を作業用ワールドにインポートしています...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[スキップ] {key}: 再試行しても機能が何も配置しませんでした。", + "iris.bukkit.runtime.featureimporter.fail": "§c[失敗] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total}(インポート {imported}、スキップ {skipped}、失敗 {failed})", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§a機能のインポート完了: §f{imported}§a 件を書き込み、§f{skipped}§a 件をスキップ、§f{failed}§a 件が失敗(合計 §f{total}§a 件)。", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§c機能インポート用の作業ワールドを作成できませんでした({error})。木またはオブジェクトの処理をスキップします。", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "{path} に変換対象の schematic ファイルがありません", + "iris.bukkit.runtime.irisconverter.converted": "§a{name} -> {value} に変換しました({value2})", + "iris.bukkit.runtime.irisconverter.converted_2": "§a{name} -> {value} に変換しました", + "iris.bukkit.runtime.irisconverter.failed_save": "§c保存に失敗しました: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§c変換に失敗しました: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7変換完了: {get}({value})", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§c一部の schematic を変換できませんでした。詳細はコンソールを確認してください。", + "iris.bukkit.runtime.studiosvc.installing_package": "パッケージのインストール: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "パッケージを探します: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "{WORKSPACENAME} フォルダーに {type}.iris が見つかりました", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "{WORKSPACENAME} フォルダーに {type} ディメンションが見つかりました。再パッケージしています", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "このパックの dimensions フォルダーに {name} がありません。失敗しました!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "ディメンションを読み込めません。失敗しました!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} タイプをインストールしました。 ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "パック一覧にパック '{key}' が見つかりません。", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "手動でダウンロードするには /iris download branch= を使用してください。", + "iris.bukkit.runtime.studiosvc.failed_download": "'{key}' のダウンロードに失敗しました。", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "IrisDimensions/overworld のベータリリースをダウンロードできませんでした。", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "'{repo}'(ブランチ {branch})をダウンロードできませんでした。", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "スタジオワールドを開けませんでした: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "スタジオ '{dimm}' を開けません。パックに処理を妨げるエラーがあります:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "パックを修正し、/iris pack validate {dimm} を実行して再検証してください。", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "既存のスタジオプロジェクトを閉じられませんでした: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "既存のスタジオプロジェクトを閉じられませんでした: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "スタジオワールドを開けませんでした: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "新しいディメンションの作成元となるパックが見つかりませんでした。", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "インポートしたディメンションファイルがありません", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "{downloadable} を新しいプロジェクト {s} にインポートしています", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7オブジェクトスタジオ: クリック位置にセルがありません(x={x} z={z})。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bオブジェクトスタジオ: §f{pack}/{key}§7 を保存しています({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7オブジェクトスタジオ: {pack}/{key} に変更はありません。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7オブジェクトスタジオ: {pack}/{key} は空のセルです(書き込む内容がありません)。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cオブジェクトスタジオ: {pack}/{key} の保存先ファイルがありません。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aオブジェクトスタジオ: §f{pack}/{key} を保存しました", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cオブジェクトスタジオ: {pack}/{key} の保存に失敗しました({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "ディメンション \"{value}\" を読み込めませんでした", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "ディメンションローダーを取得できませんでした", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cスタジオを開けませんでした: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cスタジオを開けませんでした。", + "iris.bukkit.runtime.irisproject.studio_ready": "§aスタジオ準備完了 §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "オブジェクトのシリアライズ", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "さらに {g} 個のオブジェクトを書き込みました", + "iris.bukkit.runtime.irisproject.package_compiled": "パッケージをコンパイルしました!", + "iris.bukkit.runtime.irisproject.failed": "失敗しました!", + "iris.bukkit.runtime.irisengine.total": "合計: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " エンジン §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "詳細: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} はディメンション内に定義されていません!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§c検索範囲内に {message} が見つかりませんでした。", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§a{message} へテレポートしています...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} の位置: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "このワールドから退避しました。", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "このワールドから退避しました。{m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "カスタムバイオームを含む Iris パックがあります", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "これらのパックを使用するには、サーバーを再起動する必要があります。", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "権限が不足しています", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "サブコマンドがないか、使用する権限がありません。", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "無視されたパラメーター: {m}", + "iris.runtime.studio.opening": "§6Studio §bオープン中", + "iris.runtime.studio.opening_progress": "§6Studio §bオープン中§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §c失敗§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §a準備完了§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §c失敗§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aスタジオの準備完了§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "初期化中", + "iris.runtime.studio.stage.queued": "キュー待機中", + "iris.runtime.studio.stage.resolve_dimension": "ディメンションを解決中", + "iris.runtime.studio.stage.prepare_world_pack": "ワールドパックを準備中", + "iris.runtime.studio.stage.install_datapacks": "データパックをインストール中", + "iris.runtime.studio.stage.create_world": "ワールドを作成中", + "iris.runtime.studio.stage.apply_world_rules": "ワールドルールを適用中", + "iris.runtime.studio.stage.prepare_generator": "ジェネレーターを準備中", + "iris.runtime.studio.stage.request_entry_chunk": "開始チャンクを読み込み中", + "iris.runtime.studio.stage.resolve_safe_entry": "安全なスポーン地点を検索中", + "iris.runtime.studio.stage.teleport_player": "テレポート中", + "iris.runtime.studio.stage.finalize_open": "完了処理中", + "iris.runtime.studio.stage.cleanup": "クリーンアップ中", + "iris.runtime.world_create.teleport_failed": "§eワールドを作成しましたが、自動テレポートに失敗しました。/iris teleport world={world} をお試しください", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} チャンク", + "iris.runtime.world_create.console": "§6生成中 §e{percent}%§7 {generated}/{required} チャンク§8(残り {remaining})", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §f事前生成中", + "iris.runtime.world_create.pregen.console": "§6事前生成中 §e{percent}%", + "iris.runtime.chunk_job.title.regen": "再生成", + "iris.runtime.chunk_job.title.delete": "削除", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "準備中", + "iris.runtime.chunk_job.stage.clearing": "消去中", + "iris.runtime.chunk_job.stage.resetting_mantle": "Mantle をリセット中", + "iris.runtime.chunk_job.stage.regenerating": "再生成中", + "iris.runtime.chunk_job.stage.generating": "生成中", + "iris.runtime.chunk_job.stage.comparing": "比較中", + "iris.runtime.chunk_job.stage.diagnosing": "診断中", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §b処理中", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{elapsed} で {applied}/{total} チャンク", + "iris.runtime.chunk_job.summary.failed": "{elapsed} で {applied}/{total} チャンク(失敗 {failures})", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §a完了§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §c失敗§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §a完了§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §c失敗§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} 完了: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} はエラー付きで終了しました: {summary}", + "iris.runtime.golden.no_capture": "{path} に Golden キャプチャがありません。先にキャプチャを実行してください。", + "iris.runtime.golden.aborted": { + "other": "GoldenHash を中止しました: {failed} チャンクの生成に失敗しました。Golden ファイルは書き込まれていません。", + "one": "GoldenHash を中止しました: {failed} チャンクの生成に失敗しました。Golden ファイルは書き込まれていません。" + }, + "iris.runtime.golden.failed": "GoldenHash に失敗しました: {error}", + "iris.runtime.golden.mantle_reset": "Mantle をリセットしました({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle のリセットに失敗しました({type})。既存の Mantle 状態で続行します。", + "iris.runtime.golden.captured": "Golden をキャプチャしました: {chunks} チャンク、結合ハッシュ={hash}", + "iris.runtime.golden.wrong_world": "Golden ファイルは dim={goldenDimension} seed={goldenSeed} 用ですが、このワールドは dim={dimension} seed={seed} です。中止します。", + "iris.runtime.golden.version_warning": "Golden は mc={goldenVersion} でキャプチャされていますが、実行中は mc={version} です。差分はバージョンによる可能性があります。", + "iris.runtime.golden.match": "GOLDEN 一致: {current}/{golden} チャンク、結合ハッシュ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN 不一致: {mismatches}/{chunks} チャンクが異なります。", + "iris.runtime.golden.mismatch_chunk": " チャンク {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk}(Golden に存在しません)", + "iris.runtime.golden.mismatch_more": " ...ほか {count} 件", + "iris.runtime.golden.current_written": "現在のハッシュを {file} に書き込みました", + "iris.runtime.golden.diag.stable": "再生成は安定、Mantle リセット {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "再生成は不安定(ブロック差分 {diffs}+)、Mantle リセット {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "安定(Mantle の再構築でスキャン結果を再現)", + "iris.runtime.golden.diag.mantle_diverged": "不一致(差分 {diffs}+ - Mantle の構築は状態または順序に依存)", + "iris.runtime.golden.diag.mantle_skipped": "スキップ({type})", + "iris.runtime.golden.diag.failed": "診断に失敗しました: {error}", + "iris.runtime.golden.started": "GoldenHash を開始しました: 0,0 周辺の {chunks} チャンクをバッファー内で処理します(ワールドは変更しません)。スレッド={threads} モード={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] チャンク {x},{z} をハッシュ化しました", + "iris.runtime.golden.chunk_failed": "チャンク {x},{z} 失敗: {type}", + "iris.runtime.pack_download.invalid_pack_name": "無効なパック名 '{pack}' です(使用可能: a-z、0-9、_、-)", + "iris.runtime.pack_download.invalid_branch_name": "無効なブランチ名 '{branch}' です(使用可能: 英字、数字、.、_、-)", + "iris.runtime.pack_download.failed": "パックのダウンロードに失敗しました: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "{url} をダウンロードしています", + "iris.runtime.pack_download.failed_to_find": "{url} にパックが見つかりませんでした", + "iris.runtime.pack_download.check_repository_and_branch": "リポジトリとブランチが正しいか確認してください!", + "iris.runtime.pack_download.example_command": "例えば: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "{repository} を展開しています", + "iris.runtime.pack_download.unpack_failed": [ + "展開中に問題が発生しました。次の項目を確認してください:", + "1. インターネット接続は利用できますか?", + "2. ダウンロードしたファイルが破損していませんか?", + "3. */plugins/iris/packs フォルダーを削除して、もう一度ダウンロードしてください。", + "4. GitHub リポジトリからパックをダウンロードしてください: https://github.com/IrisDimensions/overworld", + "5. ほかの方法で解決しない場合はサポートへ連絡してください。" + ], + "iris.runtime.pack_download.no_extracted_files": "zip ファイルからファイルを展開できませんでした。", + "iris.runtime.pack_download.home_directory_error": "ホームディレクトリの検出中にエラーが発生しました。ファイル名にテキスト以外の文字が含まれていないか確認してください。", + "iris.runtime.pack_download.invalid_archive_format": "無効な形式です。ルートフォルダーがないか、フォルダーが多すぎます!", + "iris.runtime.pack_download.no_dimension_file": "展開した zip ファイルにディメンションファイルがありません。", + "iris.runtime.pack_download.check_github": "GitHub に存在することを確認し、スタッフへ報告してください!", + "iris.runtime.pack_download.one_dimension_required": "dimensions フォルダーにはファイルがちょうど 1 つ必要です。", + "iris.runtime.pack_download.invalid_dimension": "dimensions/ 内のディメンションフォルダーが無効です。", + "iris.runtime.pack_download.importing": "{name}({key})をインポートしています", + "iris.runtime.pack_download.dimension_key_conflict": "packs フォルダー内の別のディメンションがキー {key} をすでに使用しています。インポートに失敗しました!", + "iris.runtime.pack_download.pack_key_conflict": "別のパックがキー {key} を使用しています。インポートに失敗しました!", + "iris.runtime.pack_download.acquired": "{name} を取得しました。", + "iris.runtime.pack_download.validation_failed": "パック '{pack}' は検証に失敗しました。ワールドと Studio の作成を拒否します。理由:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "パック '{pack}' の検証が {count} 件の警告付きで完了しました。", + "one": "パック '{pack}' の検証が {count} 件の警告付きで完了しました。" + }, + "iris.runtime.pack_download.validated": "パック '{pack}' の検証が完了しました。", + "iris.client.vision.title": "Iris ビジョン", + "iris.client.vision.connecting": "Iris サーバーへ接続しています...", + "iris.client.vision.not_connected": "未接続", + "iris.client.vision.not_iris_world": "Iris ワールドではありません", + "iris.client.vision.no_dimension_data": "ディメンションデータなし", + "iris.client.vision.header_detail": "{status} ズーム {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "ドラッグで移動 スクロールでズーム Esc で閉じる", + "iris.client.vision.dimension_pack": "{dimension} パック {pack}", + "iris.client.toast.studio_hotload": "スタジオホットロード", + "iris.client.toast.changed_files": { + "other": "{count} ファイル", + "one": "{count} ファイル" + }, + "iris.client.toast.reload_failed": "リロード失敗", + "iris.client.toast.reloaded": "再読み込み完了", + "iris.client.toast.pack_failed": "{pack} 失敗", + "iris.client.what.title": "Iris 情報", + "iris.client.what.querying": "{x}, {z} を照会しています...", + "iris.client.what.biome": "バイオメ: {biome}", + "iris.client.what.region": "リージョン: {region}", + "iris.client.what.cave": "洞窟: {cave}", + "iris.client.what.height": "高さ: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "一時停止中", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§aスピード§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bキャッシュ§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dカービング§7: {state}", + "iris.bukkit.scoreboard.region": "§bリージョン§7: {region}", + "iris.bukkit.scoreboard.biome": "§bバイオーム§7: {biome}", + "iris.bukkit.scoreboard.height": "§b高さ§7: {height}", + "iris.bukkit.scoreboard.slope": "§bスロープ§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris ビジョン", + "iris.desktop.vision.view": "表示:", + "iris.desktop.vision.grid": "グリッド", + "iris.desktop.vision.follow": "フォロー", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "更新中", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "ズームリセット", + "iris.desktop.vision.grid_enabled": "グリッド有効", + "iris.desktop.vision.grid_disabled": "グリッド無効", + "iris.desktop.vision.following": "{player} を追跡中", + "iris.desktop.vision.no_player": "ワールドにプレイヤーがいません", + "iris.desktop.vision.follow_disabled": "追跡無効", + "iris.desktop.vision.low_quality": "低品質", + "iris.desktop.vision.high_quality": "高品質", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} ブロック", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "位置: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "体力: {health} / {maximum}", + "iris.desktop.vision.block_position": "ブロック {x}, {z}", + "iris.desktop.vision.chunk_position": "チャンク {x}, {z}", + "iris.desktop.vision.region_position": "リージョン {x}, {z}", + "iris.desktop.vision.biome_key": "キー: {key}", + "iris.desktop.vision.biome_file": "ファイル: {file}", + "iris.desktop.vision.velocity": "速度: {velocity}", + "iris.desktop.vision.tiles": "タイル: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "ワーカー: {high} HD / {low} LQ", + "iris.desktop.vision.center": "センター: {x}, {z}", + "iris.desktop.vision.help.toggle": "ヘルプを切り替え", + "iris.desktop.vision.help.refresh": "タイルを更新", + "iris.desktop.vision.help.follow": "プレイヤーを追跡", + "iris.desktop.vision.help.zoom": "ズームイン/アウト", + "iris.desktop.vision.help.reset_zoom": "ズームをリセット", + "iris.desktop.vision.help.cycle_mode": "描画モードを切り替え", + "iris.desktop.vision.help.quality": "タイル品質を切り替え", + "iris.desktop.vision.help.fps": "30/60 FPS を切り替え", + "iris.desktop.vision.help.grid": "グリッドを切り替え", + "iris.desktop.vision.help.biome": "詳細なバイオメ情報", + "iris.desktop.vision.help.teleport": "カーソル位置へテレポート", + "iris.desktop.vision.help.editor": "エディタでバイオメを開く", + "iris.desktop.vision.opened": "{target} を開きました", + "iris.desktop.vision.teleporting": "{x}, {z} へテレポートしています", + "iris.desktop.vision.mode.biome": "バイオメ", + "iris.desktop.vision.mode.biome_land": "陸地バイオーム", + "iris.desktop.vision.mode.biome_sea": "海洋バイオーム", + "iris.desktop.vision.mode.region": "リージョン", + "iris.desktop.vision.mode.cave_land": "洞窟地形", + "iris.desktop.vision.mode.height": "高さ", + "iris.desktop.vision.mode.object_load": "オブジェクト負荷", + "iris.desktop.vision.mode.decorator_load": "デコレーター負荷", + "iris.desktop.vision.mode.continent": "大陸", + "iris.desktop.vision.mode.layer_load": "レイヤー負荷", + "iris.desktop.noise.title": "ノイズエクスプローラー", + "iris.desktop.noise.title_generator": "ノイズエクスプローラ: {generator}", + "iris.desktop.noise.search": "検索...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | ズーム: {zoom} | 値: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "カスタム", + "iris.desktop.noise.category.pack_generators": "パックジェネレーター", + "iris.desktop.noise.category.simplex": "Simplex", + "iris.desktop.noise.category.perlin": "パーリン", + "iris.desktop.noise.category.cellular": "セルラー", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "クローバー", + "iris.desktop.noise.category.hexagon": "六角形", + "iris.desktop.noise.category.vascular": "Vascular", + "iris.desktop.noise.category.globe": "グローブ", + "iris.desktop.noise.category.cubic": "キュービック", + "iris.desktop.noise.category.fractal": "フラクタール", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "なし", + "iris.desktop.noise.category.sierpinski": "シエルピンスキー", + "iris.desktop.noise.category.utility": "ユーティリティ", + "iris.desktop.noise.category.other": "その他", + "iris.desktop.pregen.initializing": "初期化中...", + "iris.desktop.pregen.title": "事前生成ビュー", + "iris.desktop.pregen.method_pending": "保留中", + "iris.desktop.pregen.paused": "一時停止中", + "iris.desktop.pregen.resume_hint": "P を押して再開", + "iris.desktop.pregen.pause_hint": "P を押して一時停止", + "iris.desktop.pregen.progress_paused": "一時停止中 {generated}/{total}({percent} 完了)", + "iris.desktop.pregen.progress_saving": "保存中... {generated}/{total}({percent} 完了)", + "iris.desktop.pregen.progress_generating": "生成中 {generated}/{total}({percent} 完了)", + "iris.desktop.pregen.speed": "速度: {chunksPerSecond} チャンク/s、{regionsPerMinute} リージョン/m、{chunksPerMinute} チャンク/m", + "iris.desktop.pregen.speed_cached": "速度: キャッシュ {chunksPerSecond} チャンク/s、{regionsPerMinute} リージョン/m、{chunksPerMinute} チャンク/m", + "iris.desktop.pregen.time": "残り {remaining}(経過 {elapsed})", + "iris.desktop.pregen.method": "生成方法: {method}", + "iris.desktop.pregen.memory": "メモリ: {used}({usage})負荷: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/ko_KR.json b/core/src/main/resources/languages/ko_KR.json new file mode 100644 index 000000000..ef9f7c6cd --- /dev/null +++ b/core/src/main/resources/languages/ko_KR.json @@ -0,0 +1,1435 @@ +{ + "locale": "ko_KR", + "messages": { + "director.help.navigation.parent.hover": "상위 명령어 그룹으로 돌아가기", + "director.help.navigation.back": "뒤로", + "director.help.no_subcommands": "이 페이지에는 하위 명령어가 없습니다.", + "director.help.no_description": "설명이 없습니다", + "director.help.aliases": "별칭", + "director.help.command_group": "명령어 그룹입니다. 클릭하여 엽니다.", + "director.help.no_parameters": "매개변수가 없습니다. 클릭하여 명령어를 미리 입력합니다.", + "director.help.parameters": "매개변수", + "director.help.parameter.required": "필수", + "director.help.parameter.optional": "선택 사항", + "director.help.parameter.default": "기본값", + "director.help.navigation.previous.hover": "이전 페이지", + "director.help.navigation.next.hover": "다음 페이지", + "director.help.navigation.page": "페이지", + "director.runtime.error.invalid_origin": "이 실행 위치에서는 이 명령어를 실행할 수 없습니다.", + "director.runtime.error.unknown_parameter": "알 수 없는 매개변수 키: {key}", + "director.runtime.error.unexpected_argument": "예상하지 못한 인수 \"{argument}\". 선택적 매개변수는 키와 함께 지정해야 합니다. 예: seed=123", + "director.runtime.error.conversion_failed": "\"{value}\" 값을 {parameter}용 {type} 형식으로 변환할 수 없습니다", + "director.runtime.error.default_parse_failed": "매개변수 {parameter}의 기본값을 분석할 수 없습니다", + "director.runtime.error.missing_argument": "인수 \"{parameter}\" ({type})가 필요합니다", + "director.runtime.error.execution_failed": "명령어 {command} 실행에 실패했습니다: {reason}", + "director.runtime.usage": "사용법: {usage}", + "iris.command.permission_denied": "'{permission}' 권한이 없습니다", + "iris.command.unknown": "알 수 없는 Iris 명령어", + "iris.command.player_only": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.command.iris_world_required": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.command.reload.success": "설정과 {locale} 언어를 다시 불러왔습니다.", + "iris.command.reload.failed": "설정은 다시 불러왔지만 {locale} 언어가 거부되어 {activeLocale}을 계속 사용합니다.", + "iris.modded.help.unknown_section": "알 수 없는 Iris 도움말 섹션: {section}", + "iris.modded.help.back_hover": "{parent}(으)로 돌아갑니다.", + "iris.modded.help.command_parameter": "명령어 매개변수", + "iris.modded.help.parameter_required": "필수 매개변수입니다.", + "iris.modded.help.parameter_optional": "선택 매개변수입니다.", + "iris.modded.help.brigadier_text": "Brigadier가 이 매개변수를 텍스트로 읽습니다.", + "iris.modded.help.operator_notice": "Iris 명령어에는 운영자 권한(레벨 2)이 필요합니다.", + "iris.modded.help.operator_instruction": "콘솔에서 {command}을(를) 실행하세요(싱글 플레이에서는 치트를 활성화하세요). 그 전에는 이 명령어를 실행하거나 탭 완성할 수 없습니다.", + "iris.modded.command.properties.none": "속성: (없음)", + "iris.modded.command.properties.list": "속성: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7시작 데이터 팩 수집 ...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§a설정된 datapack 가져오기: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§a설치된 데이터 팩: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§e차원의 'datapackImports' 목록에 Modrinth URL을 추가한 다음 /iris datapack ingest를 실행하세요.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash 시작: {value}개 청크...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§c청크 {rx},{rz}에서 genhash 실패: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash 전역=§6{value}§a 청크={value2} 고체={solidBlocks} 소요={value3}", + "iris.bukkit.commandfind.not_iris_world": "§6아니. Iris 세계!", + "iris.bukkit.commandfind.unknown_structure": "§c알려진 구조: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6이 게임에서 텔레포트를 구조로 실행합니다.", + "iris.bukkit.commandfind.locating": "§7{structureKey} 검색 중...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6이 게임에서 텔레포트를 구조로 실행합니다.", + "iris.bukkit.commandfind.locating_2": "§7{structure} 검색 중...", + "iris.bukkit.commandfind.teleported": "§a텔레포트 {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§a성공적으로 세계 폴더를 제거", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§a성공적으로 세계 폴더를 제거", + "iris.bukkit.commandiris.failed_remove_world_folder": "§c세계 폴더를 제거하는 실패", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§c이 서버에서 개체를 가진 팩이 발견되지 않았습니다.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§c선택된 팩(s)를 가로지르는 물건이 없습니다.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§a{scope}에 대해 Object Studio 여는 중 ({totalObjects}개 객체)", + "iris.bukkit.commandobject.failed_open_object_studio": "§c열린 객체 스튜디오에 실패: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§c팩 이름을 지정해야 합니다.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§c팩 '{pack}다음에서 찾을 수 없음 packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ...외 {value}개.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§a§f{value}§a의 구조물을 {value2},{value3}에서 {searchRadius}청크 이내로 검증 중...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§avanilla 콘텐츠 가져 오기 §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla 완전한: §f{imported}§a objects/structures 작성, §f{failed}§a 실패.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7나무/부대는 아래에 있습니다 objects/vanilla/...; biome 객체 배치에서 참조.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§c오픈 스튜디오 프로젝트 없음.", + "iris.bukkit.commandstudio.closing_studio": "§e닫기 스튜디오...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStudio 닫기 실패: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStudio 닫기 실패: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio를 닫았습니다. 남은 월드 계열 정리는 다음 시작 시 처리하도록 대기열에 추가했습니다.", + "iris.bukkit.commandstudio.studio_closed": "§a스튜디오 폐쇄.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§c사용자는 디버그 득점판을 토글하는 스튜디오 세계에 있어야 합니다.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}스튜디오 디버그 득점판 {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§c할 수 없음 지금 Studio 디버그 득점판을 업데이트하지 않았습니다.", + "iris.bukkit.commandstudio.opened_inventory": "§a관련 상품", + "iris.bukkit.commandstudio.generating_data": "§7데이터 생성...", + "iris.bukkit.commandstudio.done": "§a완료!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "당신은 권한이 없어{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5상태:", + "iris.bukkit.irisenginestatus.service": "§5- 서비스: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- 미터: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- 정비 기간: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- 노동자 병렬: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- 활성 세계 작업: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tectonic 판:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- 구성 유지: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heap 사용법: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- 거주자: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- 잡힌: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- 평균 이들 기간: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- 최대 이들 기간: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- 최소 이들 기간: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5캐치:", + "iris.bukkit.irisenginestatus.resource": "§5- 자원: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2D 스트림 : §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3D 스트림: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- 기타: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5다른 것:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris 세계: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- 적재된 Chunks: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§c세계는 null입니다.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§c대상 : Iris 맨틀 덤프를 읽기 전에 세계.", + "iris.bukkit.commanddeveloper.upgrading": "§a업그레이딩 {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§a업그레이드 완료! 이제 서버 버전을 {value}(으)로 업데이트할 수 있습니다", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§c반경는 있어야 합니다 0 또는 더 큰.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§c이것은 아니다 Iris 세계.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§c이 세상의 엔진 접근은 null입니다.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§a삭제 시작: §6{chunks}§a 청크 () §6{centerX},{centerZ}§a 주위.공기에 구획을 지우기.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§c반경는 있어야 합니다 0 또는 더 큰.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§c당신은 있어야 Iris regen을 사용하는 세계.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§c이 세상의 엔진 접근은 null입니다. 근처의 청크를 먼저 생성하십시오.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen 시작: §6{chunks}§a 청크 () §6{centerX},{centerZ}§a 주위.장소에서 삭제 및 재생.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§c반경는 있어야 합니다 0 또는 더 큰.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§c대상은 Iris 세계.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§c이 세상의 엔진 접근은 null입니다.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash 시작: §6{chunks}§a 청크 주위 (s) §6{centerX},{centerZ}§a 버퍼 (세계 무감각).", + "iris.bukkit.commandedit.players_only": "§c플레이어 만!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§c스튜디오 세계가 오픈!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§c스튜디오 세계에 있어야합니다!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§c헤드리스 환경에서 파일을 열 수 없습니다!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§c데스크톱은이 환경에 의해 지원되지 않습니다!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6파일을 찾을 수 없습니다; 아마도 그것은 파일에서 직접로드되지 않았습니까?", + "iris.bukkit.commandedit.opening_vscode": "§aVSCode에서 {value} {value2} 여는 중! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§c파일을 찾을 수 없습니다. 또는 등록은 존재하지 않습니다.", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6파일을 찾을 수 없습니다; 아마도 그것은 파일에서 직접로드되지 않았습니까?", + "iris.bukkit.commandedit.opening_vscode_2": "§aVSCode에서 {value} {value2} 여는 중! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§c파일을 찾을 수 없습니다. 또는 등록은 존재하지 않습니다.", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6파일을 찾을 수 없습니다; 아마도 그것은 파일에서 직접로드되지 않았습니까?", + "iris.bukkit.commandedit.opening_vscode_3": "§aVSCode에서 {value} {value2} 여는 중! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§c파일을 찾을 수 없습니다. 또는 등록은 존재하지 않습니다.", + "iris.bukkit.commandfind.not_iris_world_5": "§6아니. Iris 세계!", + "iris.bukkit.commandfind.not_iris_world_2": "§6아니. Iris 세계!", + "iris.bukkit.commandfind.not_iris_world_3": "§6아니. Iris 세계!", + "iris.bukkit.commandfind.not_iris_world_4": "§6아니. Iris 세계!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: {object}(으)로 순간이동 중", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} 어떤 영역/biome 개체 배치에서 구성되지 않습니다.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cIris가 이 디렉터리를 Studio 월드에 사용하므로 월드 이름 \"iris\"는 사용할 수 없습니다.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§c우리는 이름 \"을 제안 할 수있다IrisWorld\" 대신?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cIris가 이 디렉터리를 벤치마크 팩에 사용하므로 월드 이름 \"benchmark\"는 사용할 수 없습니다.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§c우리는 이름 \"을 제안 할 수있다IrisWorld\" 대신?", + "iris.bukkit.commandiris.that_folder_already_exists": "§c그 폴더는 이미 존재합니다!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§c찾을 수 없거나 다운로드 치수 \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§e중 하나를 시도: overworld, 바닐라, 플랫, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§e또는 수동으로 다운로드: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§a월드 준비가 완료되었습니다. \"{worldName}\"을 생성/로드하려면 서버를 재시작하세요.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§c창조 중 발생한 예외. 자세한 내용은 콘솔을 참조하십시오.", + "iris.bukkit.commandiris.successfully_created_your_world": "§a세상을 성공적으로 만들었습니다!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§a서버가 재시작할 때 세계로 자동 설정됩니다.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eRuntime 세계 생성은 비활성화됩니다 Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§e세계 파일 및 준비 bukkit.yml 다음 시작...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§c차원을 위한 단계 세계 파일에 실패 \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§a으로 server.properties \"에 수평 이름{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§c세계는 무대로, 하지만 업데이트 실패 server.properties 주요 세계.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris 월드 \"{name}\"을 생성기 Iris:{value}, 시드 {seed}로 준비했습니다.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§a다음 재시작의 메인 월드로 설정했습니다.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§c업데이트 실패 bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§c지정된 플레이어는 존재하지 않습니다.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§a아이리스 v{value} Volmit 소프트웨어", + "iris.bukkit.commandiris.to": "§a{value} 으로 {value2}", + "iris.bukkit.commandiris.total_height": "§a총 고도: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris 세계: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit 세계: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§c이것은 아니다 Iris 세계. Iris 세계: {value}", + "iris.bukkit.commandiris.removing_world": "§a세계를 제거: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§c대피 세계에 실패: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§c실패하지 않는 세상: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§abukkit.yml에서 {value}을(를) 제거했습니다", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§e세상과 같은 모습은 이미 제거되었습니다. bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§c{value} 때문에 bukkit.yml을 저장하지 못했습니다", + "iris.bukkit.commandiris.set_debug": "§a디버그 설정: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§a다운로드 팩: {pack} (베타 릴리스){value}", + "iris.bukkit.commandiris.downloading_pack": "§a다운로드 팩: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cIris 월드 안에 있어야 합니다", + "iris.bukkit.commandiris.sending_metrics": "§a메트릭 전송...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§c이것은 아니다 Iris 세계. Iris 세계: {value}", + "iris.bukkit.commandiris.unloading_world": "§a공급 업체: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§a세계는 성공적으로 언로드.", + "iris.bukkit.commandiris.failed_unload_world_2": "§c세상을 내리지 못했습니다.", + "iris.bukkit.commandiris.failed_unload_world_3": "§c세상을 내리지 못했습니다: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} 서버가 존재합니다.", + "iris.bukkit.commandiris.generator": "§9생성기: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} 아이리스 세계는 아닙니다.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§c결정할 수 없습니다. Iris 차원을 위한 {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§a선적 세계: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia는 런타임에 새로운 세상을 로드할 수 없습니다. 서버를 다시로드 \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} 로드 되었습니다.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§c이것은 아니다 Iris 세계. Iris 세계: {value}", + "iris.bukkit.commandiris.evacuating_world": "§a관련 제품{value}", + "iris.bukkit.commandobject.object_size": "목표 크기: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "사용된 구획: {value}", + "iris.bukkit.commandobject.blocks_object": "== 객체의 블록 ==", + "iris.bukkit.commandobject.other_block_types": " + {value} 다른 구획 유형", + "iris.bukkit.commandobject.current_object_size": "현재 목표 크기: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "새로운 목표 크기: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "객체를 저장하는 실패 {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§c일치하는 물체 없음: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibilize [reach={reach}{value}]에 오브젝트 {value2}개를 추가했습니다", + "iris.bukkit.commandobject.hold_your_wand": "지팡이를 잡아라.", + "iris.bukkit.commandobject.no_area_selected": "선택 없음.", + "iris.bukkit.commandobject.ready_your_wand": "지팡이를 준비하십시오.", + "iris.bukkit.commandobject.ready_your_wand_2": "지팡이를 준비하십시오.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§e표시된 가늠자는 최대를 초과합니다. 최대로 확장: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "지팡이 업데이트 objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "새로운 지팡이를 objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "지팡이 업데이트 objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§a{object} 배치 완료", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§e당신은 당신의 지팡이를 붙들 필요가 있습니다!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§c파일이 이미 존재합니다. overwrite=true를 설정한다.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§c객체를 저장하기 위해 실패 IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§a성공적으로 저장하는 객체: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "지팡이를 잡아라.", + "iris.bukkit.commandobject.no_area_selected_2": "선택 없음.", + "iris.bukkit.commandobject.reverted_pastes": "§9붙여넣기 {actualReverts}§9건을 되돌렸습니다!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§c당신은 얻을 수 없습니다 WorldEdit 선택 없음 WorldEdit, 당신은 알고 있습니다.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§c당신은 없습니다 WorldEdit 이 세상에서 선택.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§a당신의 현재에 신선한 지팡이 WorldEdit 그것을 선택!", + "iris.bukkit.commandobject.poof_good_luck_building": "§a펑! 즐겁게 건축하세요!", + "iris.bukkit.commandobject.hold_your_wand_3": "§e지팡이를 잡아!", + "iris.bukkit.commandobject.no_area_selected_3": "선택 없음.", + "iris.bukkit.commandobject.auto_select_complete": "§a자동 선택 완료!", + "iris.bukkit.commandobject.hold_your_wand_4": "§e지팡이를 잡아!", + "iris.bukkit.commandobject.no_area_selected_4": "선택 없음.", + "iris.bukkit.commandobject.auto_select_complete_2": "§a자동 선택 완료!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen 반경은 0 개 이상의 블록이 있어야합니다.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§c엄격한 순차 사전 생성에는 Paper 또는 Paper 호환 서버가 필요합니다.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§c이 세상의 엔진 접근은 null입니다!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§c세상이 로드되었는지 확인하십시오. & 엔진은 초기화됩니다. 새로운 청크 생성, 예를 들어.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§c이전 세대를 시작 실패. 자세히 보기", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§e능동태가 없는 작업", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§a사전 생성 작업 일시 중지/재개, 현재: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§ePX/재개에 능동적 전 세대 작업.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§e활동적인 전세대 업무 없음.", + "iris.bukkit.commandpregen.pregen": "§a사전 생성 §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§a속도: §6{value}/s§a ETA: §6{value2}§a 탈출 : §6{value3}§a 방법: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§a기록함 구조 색인: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§a가져오는 중 모든 바닐라 & 데이터 팩 구조 §f{value}§a (overwrite) ...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§a가져오기 완료: structures/objects §f{imported}§a개 기록, §f{failed}§a개 실패.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7biome/region/dimension의 'structures' 목록에서 참조하거나 /iris structure list {value} 명령을 실행하여 인덱스를 새로 고치세요. 변경 사항을 적용하려면 청크를 다시 생성하세요.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7다운로드 {value} 구조. 'structures' 목록에서 배치하고 청크를 재생합니다. 더 알아보기 structures/*.json 다시 캡처합니다.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§c짐 없음 Iris 현재 위치 {value}. 1개의 첫 번째 (라이브 세계에 대한 검색 실행)를 가입하거나 만들 수 있습니다.", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§c선택 사항 Iris 세계는 활동적인 생성기 엔진이 없습니다.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§c아이리스 구조 없음 '{structure}이 팩에서", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§c구조 '{structure}' 조립 0 조각 (체크 startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§a구조 '{structure}': §f{value}§a 조각, 발자국 §f{value2}x{value3}§a 블록 (샘플 씨 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§c아이리스 구조 없음 '{structure}이 팩에서", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§c구조물 '{structure}' 조립 결과: 조각 0개", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a장소 '{structure}' ({value} 당신의 위치에 조각).", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§a\"를 위한 오프닝 스튜디오{value}\"팩 (seed: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§c차원 팩을 제공: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§c차원을 위한 팩을 해결할 수 없습니다 {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§a\"{value}\" 팩을 VSCode에서 여는 중", + "iris.bukkit.commandstudio.pack_has_version": "§a\"{value}\" 팩에는 버전이 있습니다 : {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§a노이즈 탐색기!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§c가상 재고로 항목을 추가할 수 없습니다: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§a지금 재고!", + "iris.bukkit.commandstudio.only_works_iris_world": "§c만 작품에서 Iris 세계!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§c또는 지정할 필요가 있습니다. Iris- 생성 된 세계!", + "iris.bukkit.commandstudio.opening_map": "§a지도 열기!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "소음 생성기를 위한 계산 중 성과 미터", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "계산 보간기 타이밍...", + "iris.bukkit.commandstudio.processing_generator_scores": "생성기 점수 처리: ", + "iris.bukkit.commandstudio.score": "점수: {value}", + "iris.bukkit.commandstudio.done_with_result": "§a완료! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§c사용자는 Iris 세계가 제대로 스폰에 있어야합니다.우리가 할 수있는 가장 좋은 옷을 입고.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§c스튜디오 세계가 오픈!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§c스튜디오 세계에서 이미!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§a스튜디오 세계에 당신을 보내십시오!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6업데이트 중 코드 작업 공간{value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§a업데이트 된 코드 작업 공간 {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§c잘못된 프로젝트: {value}. Code-workspace 파일을 삭제하고 다시 시도하십시오.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cIris 월드 안에 있어야 합니다", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "당신은 아이리스 세계에 있어야합니다.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "주변 {value}개 청크에서 IGenData를 캡처하는 중입니다.", + "iris.bukkit.commandstudio.reported": "보고 위치: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§c서버가 시작되어야 합니다. GUIs 설정에서 활성화!", + "iris.bukkit.commandstudio.players_only": "§c플레이어 만!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§c스튜디오 세계가 오픈!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§c스튜디오 세계에 있어야합니다!", + "iris.bukkit.commandwhat.material": "물자: §a{value}", + "iris.bukkit.commandwhat.full": "공급 능력: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "블록/item를 잡아주세요", + "iris.bukkit.commandwhat.material_2": "물자: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "블록/item를 잡아주세요", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "비-Iris 바이오메트: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "데이터 팩 Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aIris 세계.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "어떤 블록을 봐, 하늘에", + "iris.bukkit.commandwhat.material_3": "물자: §a{value}", + "iris.bukkit.commandwhat.full_2": "공급 능력: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* 저장 블록 (전리품 가능)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* 발광 구획 (가벼운 가능)", + "iris.bukkit.commandwhat.foliage_block": "§e* Foliage 구획", + "iris.bukkit.commandwhat.decorant_block": "§e* 장식적인 구획", + "iris.bukkit.commandwhat.fluid_block": "§e* 유체 블록", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Foliage 블록", + "iris.bukkit.commandwhat.solid_block": "§e* 단단한 구획", + "iris.bukkit.commandwhat.found_nearby_markers": "주변 마커 {value}개 발견 ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aIris 세계.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "콘솔은 biome를 명명해야합니다. /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biome 조회 실패: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "알려진 biome: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "콘솔은 지역을 명명해야 합니다: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "지역 조회 실패: {value}", + "iris.modded.irismoddedcommands.unknown_region": "알려진 지역: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "여기에 파일을 열 수 없습니다: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "파일을 찾을 수 없습니다. 아마도 파일에서 직접로드되지 않았습니까?", + "iris.modded.irismoddedcommands.could_not_open": "열 수 없습니다 {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "편집기에서 {value} {value2} 여는 중입니다.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "콘솔은 플레이어를 지정해야 합니다: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} 에 의해 생성되지 않음 Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleport 실패: 차원 {dimensionId} 로드 되지 않습니다.", + "iris.modded.irismoddedcommands.teleporting": "팟캐스트 {value} 으로 {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} 에 의해 생성되지 않음 Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "1 차 세계를 피할 수 없습니다. 플레이어에게 보내는 곳이 없습니다.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "플레이어 {count}명을 {value}에서 {value2}(으)로 대피시켰습니다.", + "iris.modded.irismoddedcommands.set_debug": "디버그 설정: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "핫로드 설정", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "이 명령은 플레이어에 의해서만 사용될 수 있습니다 (그것은 당신의 열린 품목을 검사합니다).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "당신의 주요 손은 비어 있습니다.", + "iris.modded.irismoddedcommands.hand_x": "손: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} 에 의해 생성되지 않음 Iris; 참조 /iris info 로드 중 Iris 크기.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "현재 차원 ({value})에 의해 생성되지 않습니다 Iris. 이름 1 명시적으로: /iris pregen start {radius} ; 참조 /iris info 로드 중 Iris 크기.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "이전 작업은 이미 실행됩니다. 처음에 /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "{centerX},{centerZ}을(를) 중심으로 {value2}의 {value}에서 반경 {value3}블록 사전 생성을 시작했습니다.{modeNote} 진행 상황은 콘솔에 기록됩니다. /iris pregen status를 확인하세요.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "축소; 현재 지역을 마무리...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "중지할 수 있는 능동태 작업 없음.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "일시 중지/재개할 활성 사전 생성 작업이 없습니다.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "현재 위치 {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "활동적인 전세대 업무 없음.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} 에 의해 Volmit 소프트웨어 {value2} (Minecraft {value3}), {engines} Iris 차원 (s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "적재된 차원: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.biome": "바이오메트: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biome 조회 실패: {value}", + "iris.modded.irismoddedcommands.region": "지역: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "지역 조회 실패: {value}", + "iris.modded.irismoddedcommands.cave_biome": "동굴 biome: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "동굴 생물 관찰 실패: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "지상 구획: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "위치: {value} {value2} {value3} (크렁크 {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "이 명령은 플레이어에서만 사용할 수 있습니다 (그것은 당신이 찾고있는 블록을 검사합니다).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "블록을 보면 하늘이 아닙니다.", + "iris.modded.irismoddedcommands.block_y": "구획: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "이 명령은 플레이어에 의해서만 사용할 수 있습니다 (마스터는 주변 입자로 렌더링).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "검색하기{marker}당신 주위의 감적...", + "iris.modded.irismoddedcommands.marker_scan_failed": "마커 검사 실패: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "주변 마커 {value}개 발견 ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.unknown_biome_2": "알려진 biome: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.unknown_region_2": "알려진 지역: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} 차원에서 정의되지 않습니다!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} 어떤 영역/biome 개체 배치에서 구성되지 않습니다 ({value} 객체 키 로드).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "이 명령은 플레이어에서만 사용할 수 있습니다. (키를 대체하십시오 '{key}'에 대한 해결 {value} 적재된 목표 열쇠)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "찾을 Iris 구조물 또는 네이티브 구조물을 지정하세요.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "알 수 없는 구조 '{key}'. 탭 완성을 사용하여 Iris 배치 또는 등록된 native/datapack 구조를 선택하세요.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "{NATIVESTRUCTURELOCATERADIUS}청크 이내에서 네이티브 구조물 {value} 검색 중...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Iris 배치 구조물 {key} 검색 중...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Iris 배치 구조물 {key}을(를) 찾지 못했습니다. 전체 1024청크 반경을 검색하기 전에 밀도 검색 안전 한도에 도달했습니다.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "1024청크 이내에서 Iris 배치 구조물 {key}을(를) 찾지 못했습니다.", + "iris.modded.irismoddedcommands.search_failed": "검색 실패: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "{NATIVESTRUCTURELOCATERADIUS}청크 이내에서 네이티브 구조물 {value}을(를) 찾지 못했습니다.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "기본 구조에 대한 검색 {value} 실패: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "플레이어는 구조 검색 완료 전에 차단.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "구조 검색 완료 전에 크기를 변경; 명령을 다시 실행.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "{label}을(를) {targetX} {clampedY} {targetZ}에서 찾았지만 순간이동에 실패했습니다.", + "iris.modded.irismoddedcommands.teleported_at": "텔레포트 {label} 에 의해 {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "구조물 도달 가능성: 생성 가능한 네이티브 {available}개, Iris 배치 {irisPlaced}개, 비활성 네이티브 {disabled}개, Iris 배치로 대체된 네이티브 {suppressed}개, 이 팩의 바이옴에서 제외된 네이티브 {unreachableBiomes}개, 이 차원에서 지원하지 않는 등록 네이티브 {unsupported}개. 개별 구조물은 /iris structure verify 로 확인하세요.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "구조물 {key}은(는) Iris 배치 구조물이며 /iris goto structure {key2}로 찾을 수 있습니다.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "알 수없는 구조 '{key}'. 그것은 없다 Iris- vanilla 또는 datapack에 의해 또는 등록.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "구조물 {value}은(는) Iris 배치로 명시적으로 대체되었으며 /iris goto structure {value2}로 찾을 수 있습니다.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "기본 구조 {value} 이 차원의 생성기 상태에 의해 지원되고, 접근할 수 있는 /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "이 명령은 플레이어에서만 사용할 수 있습니다. (POI 유형 '{type}' 허용됨)", + "iris.modded.irismoddedcommands.searching": "{label} 검색 중...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "이 세상을 위한 엔진은 닫혔습니다; 차원을 다시 접속하고 다시 시도하십시오.", + "iris.modded.irismoddedcommands.search_failed_2": "검색 실패: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "찾을 수 없음 {label} 검색 시간 내에.", + "iris.modded.irismoddedcommands.teleported_at_2": "텔레포트 {label} 에 의해 {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "엔진은 위치를 찾는 동안 변경 {label}; 다시 시도.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.world_seed": "세계 씨앗: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "엔진 씨: {value} (혼합: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "다운로드 IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "팩 '{pack}' 설치 완료. 정확한 차원 유형과 사용자 지정 바이옴은 다음 서버 재시작 때 강제 Iris 데이터 팩에 추가됩니다. 이 팩으로 월드를 만들기 전에 재시작하세요.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "팩 다운로드 실패 {pack} ({downloadSource}; 콘솔 참조).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "생성됨: {value}개 청크, {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "알 수 없는 Iris 도움말 섹션: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: 유형 ={typeKey} 활동 ={activeMin}..{activeMax} 논리 ={value} (팩={value2}, 엔진을 시작하지; 팩 높이 알 수없는)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: 유형 ={typeKey} 활동 ={activeMin}..{activeMax} 논리 ={value} | 팩 '{value2}' 원 {packMin}..{packMax} 논리 ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " 경고: 활성 차원 유형이 팩과 일치하지 않습니다. Iris는 지형을 잘라내는 대신 이 월드 엔진의 시작을 거부합니다. 새 월드는 /iris world enable , 이미 로드된 Iris 차원은 /iris datapack install을 실행한 뒤 재시작하세요.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "로드된 Iris 차원이 없습니다.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "모든 것 {irisLevels} Iris 차원 (s)는 그들의 팩 고도 범위를 일치합니다.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: 엔진이 시작되지 않습니다. 치수 유형을 아직 파생 할 수 없습니다.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: 차원 유형 발생 실패: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "쓰기 실패 {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "실행 중인 엔진이 있는 Iris 차원을 찾지 못해 아무것도 설치하지 않았습니다.", + "iris.modded.moddeddatapackcommands.failed_write_2": "쓰기 실패 {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "{path}에 기록했습니다", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "데이터팩 '{WORLDPACKNAME}' 차원 유형 overrides 설치. 적용할 차원 유형을 위한 서버를 재시작하십시오.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "구성 된 데이터 팩 가져 오기 : {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth 수집는 Bukkit-만; 수동으로 설치 world/datapacks 필요한 경우.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "설치된 세계 데이터 팩: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "테스트 예외를 Iris 오류 보고기로 전송했습니다(Sentry가 활성화된 경우).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "네트워크 검사 실패: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "황금빛 검사는 이미 달리고 있습니다.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "이 명령은 플레이어에서만 사용할 수 있습니다. (지팡이는 물리적 아이템입니다)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "재고가 가득합니다.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "펑! 즐겁게 건축하세요! (왼쪽 클릭 = 모서리 1, 오른쪽 클릭 = 모서리 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "이 명령은 플레이어에서만 사용할 수 있습니다. ( 먼지는 물리적 품목입니다)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "재고가 가득합니다.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "오른쪽 클릭 블록을 우클릭하여 해당 객체를 확인 그것 속임수.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "이 명령은 플레이어에서만 사용할 수 있습니다. (당신의 지팡이 선택을 저장하십시오)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "이 치수는 생성되지 않습니다. Iris; 물체는 차원의 팩으로 저장합니다.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Iris 지팡이를 손에 드세요. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "선택 없음. 왼쪽 / 오른쪽 클릭 블록 지팡이 첫째.", + "iris.modded.moddedobjectcommands.invalid_object_name": "잘못된 객체 이름: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "너무 큰 선택: {volume} 블록 (최대 {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "파일이 이미 있습니다. /iris object save overwrite {name}을(를) 사용하세요", + "iris.modded.moddedobjectcommands.failed_save_object": "객체를 저장하는 실패: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "다운로드 {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} 블록 (s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "알려진 또는 빈 객체: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "콘솔은 좌표를 지정해야 합니다: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "블록을 찾고 있지 않습니다. {value} 블록.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "붙여넣기 실패: {value} (불행의 변화)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "{key}을(를) {value} {value2} {value3}에 배치했습니다. rot={rotation} (쓰기 {value4}회, 비공기 {value5}개{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Iris 지팡이를 손에 드세요. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "선택 없음.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "지팡이를 준비하십시오. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "블록을 찾고 있지 않습니다.", + "iris.modded.moddedobjectcommands.position_set": "선택 위치 {value}을(를) {value2} {value3} {value4}(으)로 설정했습니다", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.moddedobjectcommands.hold_your_wand": "지팡이를 잡아!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "선택 없음.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "자동 선택을위한 너무 큰 선택 : {volume} 블록 (최대 {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "자동 선택 완료: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "알려진 객체: {key}", + "iris.modded.moddedobjectcommands.object_size": "목표 크기: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "사용된 구획: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== 객체의 블록 ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} 다른 구획 국가 (s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "알려진 객체: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "현재 목표 크기: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "새로운 목표 크기: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "오브젝트에는 로드 파일이 없습니다; 수축을 지속할 수 없습니다.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "객체를 저장하는 실패 {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "잘못된 범위: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "일치하는 물체 없음: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibilize [reach={reach}{value}]에 오브젝트 {value2}개를 추가했습니다", + "iris.modded.moddedobjectcommands.nothing_undo": "아무것도 할 수 없습니다.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "붙여넣기 {reverted}건을 되돌렸습니다!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "찾을 수없는 팩 폴더 : {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "아래에 유효한 팩 없음 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "팩 '{pack}다음에서 찾을 수 없음 {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "옵션 정보 {value} 팩 (s)...", + "iris.modded.moddedpackcommands.validation_failed": "의 유효성{value}' 실패: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "유효성 검사 부서지는 팩: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "팩 '{pack}다음에서 찾을 수 없음 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "팩 '{pack}다음에서 찾을 수 없음 {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "검증 결과가 없습니다. 먼저 /iris pack validate를 실행하세요.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (블록 ={value2}, 경고 ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "'{pack}'의 검증 결과가 없습니다. /iris pack validate {pack2}을(를) 실행하세요.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "팩 '{value}'로드 가능. (워닝 ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "팩 '{value}'이(가) 손상되었습니다:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... · {value} 더 많은 경고 (s).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "팩을 찾을 수 없습니다 '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "팩에 대한 정리 미리보기 '{pack}': {value} 후보자 (s). 파일이 변경되지 않았습니다.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "다시 검사한 뒤 격리하려면 /iris pack cleanup {pack} apply를 실행하세요.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "팩을 찾을 수 없습니다 '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "정리 후보 {value}개를 {value2} 아래에 격리했습니다.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "팩을 복원 할 수없는 '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "복원 미리보기 {value}: {value2} 파일(s). 파일이 변경되지 않았습니다.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "복원에 의해 차단 {value} 기존 목적지(s).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "충돌을 다시 확인하고 복원하려면 /iris pack restore {pack} apply를 실행하세요.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "휴관일 {value} 대상 (s) 이미 존재합니다.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "팩을 복원 할 수없는 '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "{value2}에서 파일 {value}개를 복원했습니다.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ...외 {value}개.", + "iris.modded.moddedregen.regen_is_already_running": "regen는 이미 달리고 있습니다.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "이 치수는 생성되지 않습니다. Iris. 이 작업을 실행 Iris 차원 그래서 팩은 해결될 수 있습니다.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "기록함 구조 색인: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "아이리스 구조 없음 '{key}이 팩에서", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "구조 '{key}' 조립 0 조각 (체크 startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "구조 '{key}': {value} 조각, 발자국 {value2}x{value3} 블록 (샘플 씨 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "이 명령은 플레이어에서만 사용할 수 있습니다 (구조는 위치에 조립됩니다).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "아이리스 구조 없음 '{key}이 팩에서", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "구조물 '{key}' 조립 결과: 조각 0개", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "장소 실패: {value} (불행의 변화)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "장소 '{key}' ({value} 조각, {value2} 쓰기(s){tileNote}) 귀하의 위치에. /iris object undo 뒤로.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "차원 팩을 제공: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "서버 디스플레이에서 소음 탐험 공구를 엽니다.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "이 차원은 Iris가 생성하지 않았습니다. 생성기를 확인하려면 Iris 차원에서 /iris studio noise를 실행하거나 생성기 이름을 생략하세요.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "알 수없는 생성기 '{generatorKey}'팩 {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "생성기 '{value}'(시드 {seed})을(를) Noise Explorer에서 여는 중입니다.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "이 치수는 생성되지 않습니다. Iris; 안으로 대 Iris (또는 스튜디오) 치수 및 실행 /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Vision 지도 열기 {value} 서버 디스플레이에.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "작업 영역을 쓸 실패 {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "JSON 스키마 자동 완성을 포함해 워크스페이스 {value}을(를) 다시 생성했습니다.", + "iris.modded.moddedstudiocommands.could_not_open": "열 수 없습니다 {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "편집기에서 {value} 여는 중입니다.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "이 치수는 생성되지 않습니다. Iris; 팩 이름을 명시적으로 지정합니다.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "팩 '{name}다음에서 찾을 수 없음 {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "차원 팩을 제공: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "팩 '{pack}'(시드 {seed})의 Studio를 여는 중...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "팩 '{pack}' 누락; 다운로드 IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "팩 '{pack}'다운로드 할 수 없습니다; 이름을 확인하고 시도 /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "팩 '{pack}'에 dimensions/{pack2}.json이 없습니다", + "iris.modded.moddedstudiocommands.studio_open_failed": "스튜디오 오픈 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Studio 주입 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "콘솔 스튜디오 오픈: {dimensionId} 지금 실행 '{pack}'씨 {seed} (임시; 쓰지 않는 iris-dimensions.json 재시작에 명확하게 됨).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "다음을 입력하십시오: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "그것을 가진 Pregen: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "그것을 제거: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Studio 주입 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio 열림: {dimensionId}에서 팩 '{pack}', 시드 {seed}을(를) 실행 중입니다. 완료하면 /iris studio close를 사용하세요.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "열린 Studio가 없습니다. 먼저 /iris studio open 을(를) 사용하세요.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Studio 닫기 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio가 닫혔습니다. {dimensionId}는 공급 업체 및 그 지역 데이터 삭제되었습니다.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "스튜디오 차원은 현재 열려 있습니다.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "활동 스튜디오 차원 (s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: 팩 '{value2}', 시드 {value3}, 소유자 {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "이 명령어는 플레이어만 사용할 수 있습니다.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "열린 Studio가 없습니다. 먼저 /iris studio open 을(를) 사용하세요.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Studio 차원이 더 이상 로드되어 있지 않습니다. /iris studio open 을(를) 다시 사용하세요.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "당신의 스튜디오로 이동 ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "팩 '{value}'에 dimensions/{value2}.json이 없습니다", + "iris.modded.moddedstudiocommands.pack_has_version": "\"{value}\" 팩에는 버전이 있습니다 : {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "잘못된 프로젝트 이름 '{nameRaw}' (사용 가능: a-z, 0-9, _, -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "팩 '{name}' 이미 존재 {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "프로젝트 만들기{name}템플릿에서 '{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "템플릿 '{template}'는 설치되지 않습니다; 다운로드 IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "템플릿 '{template}'다운로드 할 수 없습니다; 팩을 설치 dimensions/{template2}.json 처음.", + "iris.modded.moddedstudiocommands.created_project_at": "프로젝트 '{name}'을(를) {value}에 만들었습니다", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "dimensions/{name}.json를 편집하고 팩의 나머지.JSON 스키마 자동 완성이 생성 된 VSCode 작업 공간; /iris studio vscode를 엽니 다.", + "iris.modded.moddedstudiocommands.project_creation_failed": "프로젝트 생성 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "차원 '{dimKey}' 패키징 중...", + "iris.modded.moddedstudiocommands.package_compiled": "패키지 컴파일 완료: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "포장 실패: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "이 명령은 플레이어에 의해서만 사용할 수 있습니다 (샘플링은 위치에 집중됩니다).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "샘플링 지역 배포 {value}x{value2} 너 주변의 청크...", + "iris.modded.moddedstudiocommands.rarity": "{key}: rarity ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "지역 표본 추출 실패: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "팩 '{pack}'는 설치되지 않습니다; 다운로드 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "팩 '{pack}'다운로드 할 수 없습니다; 이름을 확인하거나 함께 설치 /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Iris 월드 '{dimensionId}' 주입 실패: {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "팩 '{pack}'의 차원 '{packDimension}'(시드 {seed})에서 Iris 월드 {dimensionId}을(를) 만들었습니다.", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "그것은 지금 살고 모든 시작에 거부. Teleport와 함께 /iris world status 또는 포털; 재시작 필요 없음.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Iris 기본 월드 주입 실패: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris 1 차 세계 세트에 {dimensionId} (팩 '{pack}' 차원'{packDimension}'씨 {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "바닐라 오버월드 생성기는 실행 중에 교체할 수 없으므로, 이 작업은 기존 오버월드를 재생성하지 않습니다.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "대신 {dimensionId}을(를) 기본 월드로 설정했습니다. 바닐라 오버월드의 플레이어는 접속 시 해당 월드로 이동하며, 시작할 때마다 다시 주입됩니다.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris 뚜렷한 주요 세계. overworld는 그것의 현재 생성기를 지킵니다; 편집 server.properties 레벨 타입과 다시 변경합니다.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "잘못된 씨앗 '{seedRaw}'. 숫자 또는 'random'를 사용합니다.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "팩 '{pack}'는 설치되지 않습니다; 다운로드 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "팩 '{pack}'다운로드 할 수 없습니다; 이름을 확인하거나 함께 설치 /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "팩 '{pack}'는 아직 준비되지 않습니다 (실 적재 또는 검증). 현재 명령을 다시 시도하십시오.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "쓰기 실패 server.properties; 파일 권한 확인 및 수동 레벨 유형 설정.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris 주요 세계는 '{pack}' (이전 {preset}, 씨 {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties의 level-type을 {preset}(으)로 설정했습니다. 다음 재시작 때 오버월드, 네더, 엔드가 이 Iris 월드로 다시 생성됩니다.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "플레이어 데이터, 인벤토리, 발전 과제, 통계)가 유지됩니다. 이러한 차원의 기존 지형은 대체됩니다.이것은 한 번 적용됩니다.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart가 활성화되어 있습니다. 재시작 래퍼가 새 메인 월드로 서버를 다시 시작하도록 지금 서버를 중지합니다.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "생성하려면 지금 서버를 재시작하세요. (modded.json에서 mainWorldAutoRestart=true로 설정하면 Iris가 서버를 중지합니다.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "세계를 창조하는 거부{dimensionId}'팩 사용'{pack}'필수 유효성 검사 실패:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "팩을 수정하고 /iris pack validate {pack}을(를) 실행해 다시 검증하세요.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "팩 '{pack}'는 아래에서 찾을 수 없습니다 {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "팩 '{pack}'는 포함하지 않습니다 dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "잘못된 팩 참조 '{pack}{value}'. 팩 또는 팩을 사용하십시오:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "잘못된 씨앗 '{seedRaw}'. 숫자 또는 'random'를 사용합니다.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "제거 실패 Iris 세계 '{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris 세계 '{dimensionId}'는로드되지 않았습니다. 지속적 레지스트리 항목을 정리하고 저장된 청크 / 맨틀 데이터를 닦았습니다.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris 세계 '{dimensionId}'는로드되지 않았습니다. 지속적 레지스트리 항목을 삭제했습니다. 디스크의 세계 데이터가 유지됩니다.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "삭제 된 Iris 세계 '{dimensionId}': 공급 업체 청크/mantle 데이터 와이퍼, 그리고 시작 레지스트리에서 떨어졌다.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Iris 세계 '{dimensionId}': 공급 업체, 그리고 시작 레지스트리에서 떨어졌다.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "디스크에 대한 세계 데이터가 유지됩니다; /iris world enable {dimensionId} 로 재 활성화하거나 /iris world delete {dimensionId2}로 삭제하십시오.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "로드 중 ... Iris 수준: {value} -> 팩 '{value2}' 차원'{value3}'", + "iris.modded.moddedworldcommands.primary_world": "차 세계: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "현재 로드된 Iris 차원이 없습니다. /iris world create 으로 만드세요.", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "로드 중 ... Iris 크기: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "재시작하지 않고 주입하려면 /iris world create 을(를) 사용하세요.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "외부 데이터 팩 가져오기를 다운로드하고 관리합니다(Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "팩 차원의 'datapackImports'에 있는 모든 데이터 팩을 다운로드하거나 업데이트하고, 구조물이 바닐라처럼 등록되도록 월드에 설치합니다", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "새 데이터 팩을 설치했을 때 서버를 재시작합니다(새 구조물 등록과 생성에 필요)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "설정된 데이터 팩 가져오기와 설치된 버전을 나열합니다", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "ID로 설치된 데이터 팩을 제거합니다(다시 설치되지 않게 하려면 datapackImports에서 URL도 삭제하세요)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "/iris datapack list에 표시되는 데이터 팩 ID(폴더 이름)", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris 월드 관리자", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "로드된 TectonicPlates 수를 가져옵니다", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Sentry로 테스트 예외를 보냅니다", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "고정 영역의 생성 블록 출력을 해시해 결정성과 일치성을 검사합니다", + "iris.director.commanddeveloper.param.world_hash": "해시할 월드", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "중심 기준 반경(청크 단위)", + "iris.director.commanddeveloper.param.center_chunk_x": "중심 청크 X", + "iris.director.commanddeveloper.param.center_chunk_z": "중심 청크 Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "월드의 팩을 업데이트합니다(위험!)", + "iris.director.commanddeveloper.param.world_update": "업데이트할 월드", + "iris.director.commanddeveloper.param.pack_install_into_world": "월드에 설치할 팩", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "반드시 백업을 만들고 경고를 먼저 읽으세요!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Iris가 팩을 다시 다운로드할지 여부", + "iris.director.commanddeveloper.director.test": "테스트", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "단일 섹션 대신 지각판 전체를 덤프합니다", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "plugins/Iris/dump 아래의 덤프 파일 ID(pv..*)", + "iris.director.commanddeveloper.director.test_2": "테스트", + "iris.director.commanddeveloper.param.pack_bench": "벤치마크할 팩", + "iris.director.commanddeveloper.param.radius_regions": "반경(리전 단위)", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "벤치마크 중 GUI를 열지 여부", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "다른 Minecraft 버전으로 업그레이드합니다", + "iris.director.commanddeveloper.param.version_upgrade": "업그레이드할 버전", + "iris.director.commanddeveloper.director.test_3": "테스트", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": ".mca 리전 파일을 검사할 월드 폴더", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "재생성 테스트를 위해 주변 청크 블록을 삭제합니다", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "현재 청크 기준 반경(청크 단위)", + "iris.director.commanddeveloper.director.test_4": "테스트", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "주변 청크를 삭제하고 Iris 생성 방식으로 제자리에서 다시 생성합니다", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "주변 청크 반경", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "청크를 버퍼에서 생성하고(월드 쓰기 없음) 블록과 바이옴을 해시합니다. Golden 파일을 캡처하거나 기존 파일과 검증합니다. 검사 영역의 Mantle이 초기화되므로 폐기 가능한 테스트 월드에서 사용하세요.", + "iris.director.commanddeveloper.param.world_scan": "검사할 월드", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "중심 기준 반경(청크 단위)", + "iris.director.commanddeveloper.param.center_chunk_x_2": "중심 청크 X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "중심 청크 Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "먼저 검사 영역의 Mantle 데이터를 삭제해 완전히 새로 생성합니다", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "동시 청크 생성 수. 1 = 순서 의존성 검사용 완전 직렬 처리", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "오프라인 비교를 위해 청크별 비공기 블록 상태 전체도 덤프합니다", + "iris.director.commandedit.director.edit_something": "리소스를 편집합니다", + "iris.director.commandedit.director.edit_biome_you_specified": "지정한 바이옴을 편집합니다", + "iris.director.commandedit.param.biome_edit": "편집할 바이옴", + "iris.director.commandedit.director.edit_region_you_specified": "지정한 리전을 편집합니다", + "iris.director.commandedit.param.region_edit": "편집할 리전", + "iris.director.commandedit.director.edit_dimension_you_specified": "지정한 차원을 편집합니다", + "iris.director.commandedit.param.dimension_edit": "편집할 차원", + "iris.director.commandfind.director.iris_find_commands": "Iris 검색 명령어", + "iris.director.commandfind.director.find_biome": "바이옴을 찾습니다", + "iris.director.commandfind.param.biome_look": "찾을 바이옴", + "iris.director.commandfind.param.should_you_be_teleported": "검색 결과로 순간이동할지 여부", + "iris.director.commandfind.director.find_region": "리전을 찾습니다", + "iris.director.commandfind.param.region_look": "찾을 리전", + "iris.director.commandfind.param.should_you_be_teleported_2": "검색 결과로 순간이동할지 여부", + "iris.director.commandfind.director.find_point_interest": "관심 지점을 찾습니다.", + "iris.director.commandfind.param.type_poi_look": "찾을 PoI 유형.", + "iris.director.commandfind.param.should_you_be_teleported_3": "검색 결과로 순간이동할지 여부", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "구조물을 찾습니다(minecraft:village_plains 또는 minecraft:stronghold 같은 바닐라 키나 가져온 Iris 구조물 키)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "찾을 구조물(예: minecraft:village_plains, minecraft:stronghold, minecraft_ancient_city)", + "iris.director.commandfind.director.find_object": "오브젝트를 찾습니다", + "iris.director.commandfind.param.object_look": "찾을 오브젝트", + "iris.director.commandfind.param.should_you_be_teleported_4": "검색 결과로 순간이동할지 여부", + "iris.director.commandiris.director.basic_command": "기본 명령어", + "iris.director.commandiris.director.create_new_world": "새 월드를 만듭니다", + "iris.director.commandiris.param.name_world_create": "만들 월드 이름", + "iris.director.commandiris.param.dimension_pack_create_world_with": "월드 생성에 사용할 차원 또는 팩", + "iris.director.commandiris.param.seed_generate_world_with": "월드 생성에 사용할 시드", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "이 월드를 메인 월드로 자동 사용할지 여부", + "iris.director.commandiris.director.teleport_another_world": "다른 월드로 순간이동합니다", + "iris.director.commandiris.param.world_teleport": "순간이동할 월드", + "iris.director.commandiris.param.player_teleport": "순간이동시킬 플레이어", + "iris.director.commandiris.director.print_version_information": "버전 정보를 표시합니다", + "iris.director.commandiris.director.benchmark_pack": "팩을 벤치마크합니다", + "iris.director.commandiris.param.dimension_benchmark": "벤치마크할 차원", + "iris.director.commandiris.director.print_world_height_information": "월드 높이 정보를 표시합니다", + "iris.director.commandiris.director.check_access_all_worlds": "모든 월드의 접근 상태를 확인합니다.", + "iris.director.commandiris.director.remove_iris_world": "Iris 월드를 제거합니다", + "iris.director.commandiris.param.world_remove": "제거할 월드", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "폴더도 제거할지 여부(false이면 월드를 로드하지 않기만 합니다)", + "iris.director.commandiris.director.toggle_debug": "디버그를 전환합니다", + "iris.director.commandiris.director.download_project": "프로젝트를 다운로드합니다.", + "iris.director.commandiris.param.pack_download": "다운로드할 팩", + "iris.director.commandiris.param.branch_download_from": "다운로드할 브랜치", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "다운로드한 팩으로 기존 팩을 덮어쓸지 여부", + "iris.director.commandiris.director.get_metrics_your_world": "월드의 측정값을 가져옵니다", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "설정 파일을 다시 로드합니다(자동으로도 실행됨)", + "iris.director.commandiris.director.unload_iris_world": "Iris 월드를 언로드합니다", + "iris.director.commandiris.param.world_unload": "언로드할 월드", + "iris.director.commandiris.director.load_iris_world": "Iris 월드를 로드합니다", + "iris.director.commandiris.param.name_world_load": "로드할 월드 이름", + "iris.director.commandiris.director.evacuate_iris_world": "Iris 월드에서 플레이어를 대피시킵니다", + "iris.director.commandiris.param.evacuate_world": "대피시킬 월드", + "iris.director.commandobject.director.iris_object_manipulation": "Iris 오브젝트 조작", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "오브젝트 Studio 월드를 엽니다(모든 오브젝트의 격자. 차원은 선택 사항이며 기본값은 모든 팩)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "배치할 오브젝트 팩의 차원. 생략하면 모든 팩의 오브젝트를 모읍니다", + "iris.director.commandobject.param.seed_generate_studio_with": "Studio 생성에 사용할 시드", + "iris.director.commandobject.director.check_composition_object": "오브젝트 구성을 확인합니다", + "iris.director.commandobject.param.object_analyze": "분석할 오브젝트", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "오브젝트를 최소 크기로 줄입니다", + "iris.director.commandobject.param.object_shrink": "줄일 오브젝트", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "수관을 따라 자연스러운 가지를 자라게 해 모든 잎이 바닐라 소멸을 견디게 합니다", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "오브젝트 키, 접두사(trees/) 또는 파일 시스템 경로", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true이면 분석만 하고 아무것도 쓰지 않습니다", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "reach=N은 기존 나무에서 자라는 가지의 최대 길이(블록)입니다. 더 먼 잎 무리는 대신 영구 고정됩니다. reach=0은 제한 없이 자랍니다", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "'convert' 폴더의 .schem 파일을 .iob 파일로 변환합니다.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "오브젝트를 드러내는 가루를 받습니다", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "바라보는 방향을 기준으로 선택 영역을 줄입니다", + "iris.director.commandobject.param.amount_inset_by": "안쪽으로 줄일 양", + "iris.director.commandobject.director.set_point_1_look": "바라보는 위치를 선택 지점 1로 설정합니다", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "현재 위치와 바라보는 위치 중 무엇을 사용할지", + "iris.director.commandobject.director.set_point_2_look": "바라보는 위치를 선택 지점 2로 설정합니다", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "현재 위치와 바라보는 위치 중 무엇을 사용할지", + "iris.director.commandobject.director.paste_object": "오브젝트를 붙여넣습니다", + "iris.director.commandobject.param.object_paste": "붙여넣을 오브젝트", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "오브젝트를 편집할지 여부(지팡이를 들어야 함)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "회전할 각도", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "오브젝트 배치 배율", + "iris.director.commandobject.param.scale_interpolator_use": "사용할 크기 보간 방식", + "iris.director.commandobject.director.save_object": "오브젝트를 저장합니다", + "iris.director.commandobject.param.dimension_store_object": "오브젝트를 저장할 차원", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "저장할 파일. /로 하위 폴더를 지정할 수 있습니다", + "iris.director.commandobject.param.overwrite_existing_object_files": "기존 오브젝트 파일을 덮어쓸지 여부", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "가능하면 기존 TileState 직렬화를 사용합니다", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "바라보는 방향으로 선택 영역을 이동합니다", + "iris.director.commandobject.param.amount_shift_by": "이동할 양", + "iris.director.commandobject.director.undo_number_pastes": "지정한 수의 붙여넣기를 되돌립니다", + "iris.director.commandobject.param.amount_pastes_undo": "되돌릴 붙여넣기 수", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "오브젝트 지팡이를 받고 현재 WorldEdit 선택 영역을 설정합니다.", + "iris.director.commandobject.director.get_object_wand": "오브젝트 지팡이를 받습니다", + "iris.director.commandobject.director.autoselect_up_down_out": "위, 아래, 바깥쪽으로 자동 선택합니다", + "iris.director.commandobject.director.autoselect_up_out": "위와 바깥쪽으로 자동 선택합니다", + "iris.director.commandpack.director.pack_validation_maintenance": "팩 검증과 유지 관리", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "팩 또는 모든 팩을 검증하고 결과를 다시 게시합니다", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "검증할 팩 폴더 이름(비워 두면 모두)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "사용하지 않는 리소스 정리를 미리 보거나 적용합니다", + "iris.director.commandpack.param.pack_folder_name_clean": "정리할 팩 폴더 이름", + "iris.director.commandpack.param.preview_apply": "preview 또는 apply", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "최근 격리 항목 복원을 미리 보거나 적용합니다", + "iris.director.commandpack.param.pack_folder_name_restore": "복원할 팩 폴더 이름", + "iris.director.commandpack.param.preview_apply_2": "preview 또는 apply", + "iris.director.commandpack.director.show_cached_validation_status_pack": "팩의 캐시된 검증 상태를 표시합니다", + "iris.director.commandpack.param.pack_folder_name": "팩 폴더 이름", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Iris 월드를 사전 생성합니다!", + "iris.director.commandpregen.director.pregenerate_world": "월드를 사전 생성합니다", + "iris.director.commandpregen.param.radius_pregen_blocks": "사전 생성 반경(블록 단위)", + "iris.director.commandpregen.param.world_pregen": "사전 생성할 월드", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "사전 생성 중심 위치. 현재 위치는 \"me\"를 사용하세요", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Iris 사전 생성 GUI를 열지 여부", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "한 번에 한 청크만 생성할지 여부", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "실행 중인 사전 생성 작업을 중지합니다", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "실행 중인 사전 생성 작업을 일시 중지하거나 계속합니다", + "iris.director.commandpregen.director.show_active_pregeneration_status": "실행 중인 사전 생성 상태를 표시합니다", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris 구조물 도구(인덱스, 가져오기, 정보)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "모든 vanilla, datapack 및 Iris 구조물이 나열된 structure-index.json을 다시 생성합니다", + "iris.director.commandstructure.param.dimension_whose_pack_index": "인덱싱할 팩의 차원", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "모든 구조물(바닐라와 수집된 데이터 팩)을 편집 가능한 Iris 리소스로 이 팩에 항상 덮어써 가져옵니다. 직소 구조물(마을, 전초기지, 데이터 팩 직소)을 편집 가능한 pool/piece 그래프로 다시 만들고, 모든 구조물 템플릿 NBT를 오브젝트로 가져오며, 여러 템플릿 구조물(난파선, 무너진 포털, 해저 폐허, 네더 화석)을 조립합니다. 데이터 팩을 수집하고 재시작한 뒤 실행하세요. 가져온 구조물이 배치되도록 청크를 다시 생성하거나 새 월드를 사용하세요.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "가져올 대상 팩의 차원", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "NBT 템플릿이 없는 코드 생성 구조물(늪지 오두막, 이글루 등)을 일회용 임시 세계에 각각 생성하고 블록을 다시 읽어 편집 가능한 Iris 객체로 캡처합니다. 이미 구조물로 가져온 항목, 캡처 한도보다 너비/높이가 큰 구조물(요새, 대저택, 기념물은 vanilla 상태로 유지), 평면 overworld에서 생성되지 않는 항목은 건너뜁니다. 캡처한 각 구조물은 biome/region/dimension의 'structures' 목록에서 배치할 수 있는 단일 조각 Iris 구조물이 됩니다. /iris structure import의 마지막 단계로 자동 실행됩니다.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "캡처할 대상 팩의 차원", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "차단되는 네이티브 검색을 실행하지 않고 네이티브 구조물 생성 가능성을 검증하고 Iris 배치 구조물을 찾습니다.", + "iris.director.commandstructure.param.dimension_verify": "검증할 차원", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "원점 기준 검색 반경(청크 단위. 클수록 훨씬 느림)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Iris 구조물의 직소 그래프를 해석하고 조각 수와 경계를 보고합니다", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "구조물이 든 팩의 차원", + "iris.director.commandstructure.param.iris_structure_key_inspect": "검사할 Iris 구조물 키", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "현재 위치에 Iris 구조물을 조립해 배치합니다(Studio 테스트)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "구조물이 든 팩의 차원", + "iris.director.commandstructure.param.iris_structure_key_place": "배치할 Iris 구조물 키", + "iris.director.commandstudio.director.studio_commands": "Studio 명령어", + "iris.director.commandstudio.director.open_new_studio_world": "새 Studio 월드를 엽니다", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Studio를 열 차원 팩", + "iris.director.commandstudio.param.seed_generate_studio_with": "Studio 생성에 사용할 시드", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "서버의 바닐라 나무, 버섯, 오브젝트와 structures/jigsaw를 팩의 objects/vanilla 폴더로 가져옵니다", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "바닐라 콘텐츠를 가져올 차원 팩", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "나무 또는 오브젝트 기능마다 캡처할 변형 수", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "바닐라 및 데이터 팩의 structures/jigsaw도 팩으로 가져옵니다", + "iris.director.commandstudio.director.open_vscode_dimension": "차원을 VSCode로 엽니다", + "iris.director.commandstudio.param.dimension_open_vscode": "VSCode로 열 차원", + "iris.director.commandstudio.director.close_open_studio_project": "열린 Studio 프로젝트를 닫습니다", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Studio 디버그 점수판을 전환합니다", + "iris.director.commandstudio.director.create_new_studio_project": "새 Studio 프로젝트를 만듭니다", + "iris.director.commandstudio.param.name_this_new_iris_project": "새 Iris 프로젝트의 이름.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "packs 폴더의 기존 프로젝트 내용을 복사해 새 프로젝트의 템플릿으로 사용합니다.", + "iris.director.commandstudio.director.get_version_pack": "팩 버전을 가져옵니다", + "iris.director.commandstudio.param.dimension_get_version": "버전을 가져올 차원", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Noise Explorer를 엽니다(외부 GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "미리 볼 팩 생성기(선택 사항)", + "iris.director.commandstudio.param.seed_preview_generator_with": "생성기 미리 보기에 사용할 시드", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "현재 위치에 상자가 있다면 나올 전리품을 표시합니다", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "가상 인벤토리에 아이템을 빠르게 넣습니다(성능 저하 가능)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "현재 열린 인벤토리에 추가할지 여부(false이면 열린 인벤토리를 비움)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "각 리전의 생성 확률을 계산합니다", + "iris.director.commandstudio.param.radius_chunks": "반경(청크 단위)", + "iris.director.commandstudio.director.render_world_map_external_gui": "월드 지도를 렌더링합니다(외부 GUI)", + "iris.director.commandstudio.param.world_open_generator": "생성기를 열 월드", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "차원을 압축 형식으로 패키징합니다", + "iris.director.commandstudio.param.dimension_pack_compress": "압축할 차원 팩", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "팩을 난독화할지 여부", + "iris.director.commandstudio.param.whether_not_minify_pack": "팩을 최소화할지 여부", + "iris.director.commandstudio.director.profiles_performance_dimension": "차원 성능을 프로파일링합니다", + "iris.director.commandstudio.param.dimension_profile": "프로파일링할 차원", + "iris.director.commandstudio.director.spawn_iris_entity": "Iris 엔티티 스폰", + "iris.director.commandstudio.param.entity_spawn": "스폰할 엔티티", + "iris.director.commandstudio.param.location_spawn_entity_at": "엔티티를 스폰할 위치", + "iris.director.commandstudio.director.teleport_active_studio_world": "활성 Studio 월드로 순간이동합니다", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "차원 프로젝트의 VSCode 워크스페이스를 업데이트합니다", + "iris.director.commandstudio.param.dimension_update_workspace": "워크스페이스를 업데이트할 차원", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "주변 청크의 IGenData 청크 보고서를 캡처합니다", + "iris.director.commandwhat.director.iris_what": "Iris 정보", + "iris.director.commandwhat.director.what_is_my_hand": "손에 든 것을 확인합니다", + "iris.director.commandwhat.director.what_biome_am_i": "현재 바이옴을 확인합니다", + "iris.director.commandwhat.director.what_region_am_i": "현재 리전을 확인합니다", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "바라보는 블록을 확인합니다", + "iris.director.commandwhat.director.show_markers_chunk": "청크의 마커를 표시합니다", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "cave_floor 또는 cave_ceiling 같은 마커 이름", + "iris.modded.help.entry.command.version": "버전 정보를 표시합니다", + "iris.modded.help.entry.command.info": "로드된 Iris 차원과 팩 세부 정보를 나열합니다", + "iris.modded.help.entry.command.what": "현재 위치의 Iris 바이옴, 리전, 동굴 바이옴, 지표, 청크와 바라보는 블록, 손에 든 아이템, 주변 마커를 확인합니다", + "iris.modded.help.entry.group.find": "Iris 바이옴, 리전, 오브젝트, Iris 구조물, 네이티브 구조물, 관심 지점을 찾아 순간이동합니다", + "iris.modded.help.entry.command.tp": "자신 또는 지정한 플레이어를 로드된 Iris 차원으로 순간이동합니다", + "iris.modded.help.entry.command.evacuate": "Iris 차원의 모든 플레이어를 기본 월드 스폰으로 대피시킵니다", + "iris.modded.help.entry.command.seed": "월드와 엔진의 시드 정보를 표시합니다", + "iris.modded.help.entry.command.debug": "Iris 디버그 로깅을 전환하고 settings.json을 저장합니다", + "iris.modded.help.entry.command.reload": "settings.json을 다시 로드합니다(3s마다 자동 핫로드도 수행)", + "iris.modded.help.entry.command.download": "팩 프로젝트를 다운로드합니다", + "iris.modded.help.entry.command.metrics": "현재 Iris 차원의 생성 측정값을 표시합니다", + "iris.modded.help.entry.command.regen": "주변 청크를 삭제하고 제자리에서 다시 생성합니다", + "iris.modded.help.entry.group.pregen": "Iris 차원을 사전 생성합니다", + "iris.modded.help.entry.command.wand": "Iris 오브젝트 지팡이를 받습니다", + "iris.modded.help.entry.group.object": "오브젝트 지팡이, 저장, 붙여넣기, 분석, 되돌리기 도구입니다", + "iris.modded.help.entry.group.edit": "팩의 바이옴, 리전, 차원 JSON 파일을 데스크톱 편집기에서 엽니다", + "iris.modded.help.entry.command.create": "영구 Iris 차원을 만들고 주입합니다. 특정 팩 차원을 선택하려면 pack:dimensionKey를 따옴표로 감싸세요", + "iris.modded.help.entry.group.studio": "팩 프로젝트 생성, 패키징, 보고서 기능입니다", + "iris.modded.help.entry.group.pack": "팩 검증과 유지 관리 기능입니다", + "iris.modded.help.entry.group.world": "실행 중 Iris 차원 생성, 제거, 상태 기능입니다", + "iris.modded.help.entry.group.datapack": "월드 데이터 팩 설치와 상태 확인 도구입니다", + "iris.modded.help.entry.group.structure": "Iris 구조물 인덱스, 정보, 배치 도구입니다", + "iris.modded.help.entry.command.goldenhash": "동일성 검사용 결정적 블록 해시를 생성합니다", + "iris.modded.help.entry.group.developer": "개발자 진단: Sentry 테스트, 네트워크 인터페이스, 리전 파일 검사", + "iris.modded.help.entry.command.biome": "Iris 바이옴을 찾습니다", + "iris.modded.help.entry.command.region": "Iris 리전을 찾습니다", + "iris.modded.help.entry.command.object": "오브젝트 배치를 찾습니다", + "iris.modded.help.entry.command.structure": "Iris 배치 또는 네이티브/데이터 팩 구조물을 찾습니다", + "iris.modded.help.entry.command.poi": "지원되는 관심 지점을 찾습니다", + "iris.modded.help.entry.command.biome_2": "바이옴 JSON을 데스크톱 편집기에서 엽니다. 키를 생략하면 현재 위치의 바이옴을 엽니다", + "iris.modded.help.entry.command.region_2": "리전 JSON을 데스크톱 편집기에서 엽니다. 키를 생략하면 현재 위치의 리전을 엽니다", + "iris.modded.help.entry.command.dimension": "현재 팩의 차원 JSON을 데스크톱 편집기에서 엽니다", + "iris.modded.help.entry.command.start": "사전 생성을 시작합니다. 반경은 블록 단위이고 재개 가능한 체크포인트 캐시는 기본으로 켜집니다. 중심은 'at '로 지정하며 플래그는 어떤 순서로든 조합할 수 있습니다", + "iris.modded.help.entry.command.stop": "실행 중인 사전 생성 작업을 중지합니다", + "iris.modded.help.entry.command.pause": "사전 생성을 일시 중지하거나 재개합니다", + "iris.modded.help.entry.command.status": "사전 생성 상태를 표시합니다", + "iris.modded.help.entry.command.wand_3": "Iris 오브젝트 지팡이를 받습니다", + "iris.modded.help.entry.command.dust": "오브젝트 배치를 드러내는 가루를 받습니다", + "iris.modded.help.entry.command.save": "지팡이로 선택한 영역을 오브젝트로 저장합니다", + "iris.modded.help.entry.command.paste": "현재 위치 또는 지정한 위치에 선택적으로 회전해 오브젝트를 붙여넣습니다", + "iris.modded.help.entry.command.expand": "바라보는 방향으로 지팡이 선택 영역을 확장합니다", + "iris.modded.help.entry.command.contract": "바라보는 방향에서 지팡이 선택 영역을 줄입니다", + "iris.modded.help.entry.command.shift": "바라보는 방향으로 지팡이 선택 영역을 이동합니다", + "iris.modded.help.entry.command.position1": "선택 지점 1을 설정합니다", + "iris.modded.help.entry.command.position2": "선택 지점 2를 설정합니다", + "iris.modded.help.entry.command.x_y": "위와 바깥쪽으로 자동 선택합니다", + "iris.modded.help.entry.command.x_y_2": "위, 아래, 바깥쪽으로 자동 선택합니다", + "iris.modded.help.entry.command.analyze": "오브젝트 구성을 표시합니다", + "iris.modded.help.entry.command.shrink": "오브젝트를 최소 크기로 줄입니다", + "iris.modded.help.entry.command.plausibilize": "바닐라 잎 소멸을 견디도록 가지를 자라게 합니다", + "iris.modded.help.entry.command.undo": "붙여넣은 오브젝트를 되돌립니다", + "iris.modded.help.entry.command.create_2": "새 팩 프로젝트를 만듭니다", + "iris.modded.help.entry.command.package": "차원을 압축 형식으로 패키징합니다", + "iris.modded.help.entry.command.version_2": "팩 버전을 표시합니다", + "iris.modded.help.entry.command.regions": "주변 리전 분포를 계산합니다", + "iris.modded.help.entry.command.open": "팩의 임시 Studio 차원을 엽니다", + "iris.modded.help.entry.command.close": "열린 Studio 차원을 닫고 해당 월드를 버립니다", + "iris.modded.help.entry.command.tpstudio": "열린 Studio 차원으로 순간이동합니다", + "iris.modded.help.entry.command.status_studio": "열린 Studio 차원과 팩을 표시합니다", + "iris.modded.help.entry.command.noise": "서버 화면에서 Noise Explorer GUI를 엽니다", + "iris.modded.help.entry.command.map": "서버 화면에서 Vision 지도 GUI를 엽니다", + "iris.modded.help.entry.command.vscode": "팩의 .code-workspace를 다시 생성하고 데스크톱 편집기에서 엽니다", + "iris.modded.help.entry.command.update": "팩의 .code-workspace를 다시 생성합니다", + "iris.modded.help.entry.command.importvanilla": "바닐라 콘텐츠 가져오기 절차를 설명합니다", + "iris.modded.help.entry.command.validate": "지정한 팩 또는 모든 팩을 검증합니다", + "iris.modded.help.entry.command.cleanup": "미사용 리소스 후보를 미리 보거나 격리합니다", + "iris.modded.help.entry.command.restore": "최근 격리 항목을 미리 보거나 복원합니다", + "iris.modded.help.entry.command.status_validation": "캐시된 검증 상태를 표시합니다", + "iris.modded.help.entry.command.enable": "영구 Iris 차원을 실행 중에 만들고 주입합니다. 없는 팩은 다운로드합니다. 특정 팩 차원을 선택하려면 pack:dimensionKey를 따옴표로 감싸세요", + "iris.modded.help.entry.command.replace_overworld": "Iris 기본 월드를 주입하고 바닐라 오버월드 대신 그곳으로 플레이어를 이동합니다", + "iris.modded.help.entry.command.disable": "Iris 차원에서 대피하고 언로드합니다. 다시 활성화할 수 있도록 디스크의 월드 데이터는 유지합니다", + "iris.modded.help.entry.command.delete": "Iris 차원을 비활성화하고 디스크의 청크와 Mantle 데이터를 삭제합니다", + "iris.modded.help.entry.command.list": "로드된 Iris 차원을 나열합니다", + "iris.modded.help.entry.command.status_world": "로드된 Iris 차원과 설정된 기본 월드를 표시합니다", + "iris.modded.help.entry.command.status_datapack": "로드된 Iris 차원 유형 덮어쓰기를 확인합니다", + "iris.modded.help.entry.command.install": "로드된 Iris 차원의 유형 덮어쓰기를 설치합니다", + "iris.modded.help.entry.command.list_datapacks": "설정되고 설치된 데이터 팩을 나열합니다", + "iris.modded.help.entry.command.ingest": "Bukkit 데이터 팩 수집 절차를 설명합니다", + "iris.modded.help.entry.command.remove": "데이터 팩 제거 절차를 설명합니다", + "iris.modded.help.entry.command.list_structures": "structure-index.json 다시 생성", + "iris.modded.help.entry.command.info_2": "Iris 구조물 그래프를 해석하고 경계를 보고합니다", + "iris.modded.help.entry.command.place": "현재 위치에 Iris 구조물을 조립해 배치합니다", + "iris.modded.help.entry.command.import": "Bukkit 구조물 가져오기 절차를 설명합니다", + "iris.modded.help.entry.command.capture": "Bukkit 구조물 캡처 절차를 설명합니다", + "iris.modded.help.entry.command.verify": "현재 차원의 네이티브 및 Iris 구조물 도달 가능성을 보고합니다", + "iris.modded.help.entry.command.sentry": "Iris 오류 보고기로 테스트 예외를 보냅니다", + "iris.modded.help.entry.command.network": "네트워크 인터페이스와 주소를 나열합니다", + "iris.runtime.progress.finding_regions": "지역 찾기", + "iris.runtime.progress.converting": "변환 중", + "iris.runtime.status.running": "실행 중", + "iris.runtime.status.stopped": "중지됨", + "iris.runtime.status.paused": "일시 중지됨", + "iris.runtime.status.paused_lower": "일시 중지됨", + "iris.runtime.status.running_lower": "실행 중", + "iris.runtime.status.enabled": "활성화됨.", + "iris.runtime.status.disabled": "비활성화됨.", + "iris.runtime.status.unregistered": "관련 상품", + "iris.runtime.status.none": "없음", + "iris.runtime.status.random": "무작위", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "예", + "iris.runtime.status.false": "아니요", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " 관련 제품", + "iris.runtime.datapack.override_suffix": " (월드 데이터 팩 덮어쓰기 설치됨)", + "iris.runtime.primary_world.players_routed_suffix": " (플레이어는 거기로)", + "iris.runtime.primary_world.routing_disabled_suffix": " (사용 가능)", + "iris.runtime.modded.no_dimension_match": "'{filter}'과(와) 일치하는 Iris 차원이 없습니다.", + "iris.runtime.teleport.world": "{world}(으)로 순간이동했습니다.", + "iris.runtime.engine.hotloaded": "엔진 핫로드 완료", + "iris.runtime.job.completed": "{job}을(를) {duration}에 완료했습니다", + "iris.runtime.job.scanning_selection": "선택 영역 검사 중", + "iris.runtime.job.loading_chunks": "청크 로드 중", + "iris.runtime.job.searched_chunks": "{chunks}개 청크 검색 완료", + "iris.runtime.job.compile": "컴파일", + "iris.runtime.job.saving_object": "오브젝트 저장 중", + "iris.runtime.job.downloading": "다운로드 중", + "iris.runtime.job.extracting": "압축 해제 중", + "iris.runtime.job.installing": "설치 중", + "iris.runtime.compile.iob_empty": "- IOB {file}에 블록이 0개 있습니다!", + "iris.runtime.compile.iob_empty_hover": "오류:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} 3D는 없습니다!", + "iris.runtime.compile.iob_not_3d_hover": "오류:\n{path}\n폭, 고도, 또는 깊이는 0입니다 (나쁜 체재)", + "iris.runtime.compile.json_error": "- JSON 오류 수정 {file}", + "iris.runtime.compile.json_error_hover": "오류:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "로더를 찾을 수 없습니다. {path}", + "iris.runtime.datapack.name": "Iris 세계시대", + "iris.runtime.pack.already_exists": "팩은 이미 존재합니다!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "건너뜀 {object}: 로드 실패", + "iris.runtime.tree_plausibilize.result": "{object}: 나무 +{wood}개(가지 {branches}개), 잎->나무 {converted}개, 거리 ~{distances}", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: 나무 +{wood}개(가지 {branches}개), 잎->나무 {converted}개, 거리 ~{distances}, 고정 !{pinned}개", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "실패 {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "완료: 처리 {processed}, 변경 {changed}, 건너뜀 {skipped}, 실패 {failed}", + "iris.runtime.tree_plausibilize.done_dry": "이름: {processed} 가공, {changed} 수정, {skipped} 건너뛰기, {failed} 실패 (건조 실행, 아무것도 작성)", + "iris.runtime.tree_plausibilize.totals": "합계: 나무 +{wood}개(가지 {branches}개), 잎->나무 {converted}개, 거리 ~{distances}, 고정 !{pinned}개, 도달 불가 {before} -> {after}", + "iris.runtime.item.wand.name": "Iris 지팡이", + "iris.runtime.item.wand.lore.first": "왼쪽 클릭 블록을 설정 첫 번째 코너", + "iris.runtime.item.wand.lore.second": "오른쪽 클릭 블록을 두 번째 코너 설정", + "iris.runtime.item.dust.name": "드러냄의 가루", + "iris.runtime.item.dust.lore": "오른쪽 블록을 클릭하여 배치 구조를 알 수 있습니다!", + "iris.runtime.wand.position_set": "선택 위치 {position}을(를) {x}, {y}, {z}(으)로 설정했습니다", + "iris.runtime.dust.iris_world_required": "이 차원은 Iris가 생성하지 않았습니다.", + "iris.runtime.dust.found_object": "오브젝트 {object} 발견", + "iris.runtime.dust.revealed": "{object}의 블록 {count}개를 드러냈습니다", + "iris.runtime.dust.revealed_capped": "{object}의 블록 {count}개를 드러냈습니다(상한 도달)", + "iris.runtime.dust.header": "--- Iris 먼지 @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "구획: {block}", + "iris.runtime.dust.position.above": "위치: +{offset} 위 표면 (표면 Y={surfaceY})", + "iris.runtime.dust.position.below": "위치: {offset} 표면의 밑에 (표면 Y={surfaceY})", + "iris.runtime.dust.position.at": "위치: 표면에 (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "오브젝트 @block: {object}", + "iris.runtime.dust.none": "없음", + "iris.runtime.dust.placed_by.object_above": "배치 원인: object/stilt '{object}'(표면 위)", + "iris.runtime.dust.placed_by.decoration_above": "배치 원인: decoration/object/stilt(표면 위)", + "iris.runtime.dust.placed_by.buried_object": "에 의해 장소: 매장된 개체 '{object}'", + "iris.runtime.dust.placed_by.terrain": "에 의해 배치: 지형 층 (깊이 {depth} 표면의 밑에)", + "iris.runtime.dust.column_object": "란 목표: {object} -> 이 블록은 객체의 stilt가 될 가능성이 있습니다.", + "iris.runtime.dust.column_object_none": "란 목표: {detail}", + "iris.runtime.dust.column_none": "없음 64 (디코더 또는 지형, 아님 객체 stilt)", + "iris.runtime.dust.column.above": "{object} @Y={y} (이상)", + "iris.runtime.dust.column.below": "{object} @Y={y} (아래)", + "iris.runtime.dust.surface_biome": "지상 biome: {biome}", + "iris.runtime.dust.surface_biome_detail": "지상 biome: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "바이오메 @Y: {biome}", + "iris.runtime.dust.cave_biome": "동굴 /Mantle 바이오메트: {biome}", + "iris.runtime.dust.server_biome": "서버 biome: {biome} (ID: {id})", + "iris.runtime.dust.region": "지역: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "청크의 개체: {objects}", + "iris.runtime.dust.copy_button": "[이 통계를 복사하려면 클릭하십시오]", + "iris.runtime.dust.copy_hover": "클립보드에 복사 블록 통계", + "iris.runtime.pregen.starting": "Iris 사전 생성 시작 중...", + "iris.runtime.pregen.header": "Iris 사전 생성", + "iris.runtime.pregen.bossbar.paused": "Iris 사전 생성 {generated}/{total} {percent}% 일시 중지", + "iris.runtime.pregen.bossbar.running": "Iris 사전 생성 {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " 실패한 {failed}", + "iris.runtime.pregen.status.context": "크기 : {dimension} · 방법 {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "주 메뉴 {generated}/{total} · 속도 {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "주 메뉴 {generated}/{total} · 속도 {speed}/s · 실패 {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · 탈출 {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · 탈출 {elapsed} · 일시 중지", + "iris.runtime.pregen.button.pause": "일시 중지/재개", + "iris.runtime.pregen.button.pause.hover": "전 세대 일시 정지 상태", + "iris.runtime.pregen.button.stop": "중지", + "iris.runtime.pregen.button.stop.hover": "현재 지역을 완료하고 전세대를 멈추십시오", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§c찾을 수없는 팩 / 폴더.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§e유효한 팩 없음.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§a유효성 검사 부서지는 팩: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§c팩 '{pack}다음에서 찾을 수 없음 packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§a팩을 찾을 수 없습니다 '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a정리 후보 {size}개를 {quarantinePath} 아래에 격리했습니다.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§c정리 모드는 미리보기 또는 적용해야 합니다.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§a팩을 찾을 수 없습니다 '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§e팩에 대한 정리 미리보기 '{pack}': {size} 후보자 (s). 파일이 변경되지 않았습니다.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7다시 검사한 뒤 후보를 격리하려면 /iris pack cleanup {pack} mode=apply를 실행하세요.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§c휴관일 {size} 대상 (s) 이미 존재합니다.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§e팩을 복원 할 수없는 '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a{dumpPath}에서 파일 {size}개를 복원했습니다.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§c복원 모드는 미리보기 또는 적용해야합니다.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§e팩을 복원 할 수없는 '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§e복원 미리보기 {dumpPath}: {size} 파일(s). 파일이 변경되지 않았습니다.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§c복원에 의해 차단 {size} 기존 목적지(s).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7충돌을 다시 확인하고 복원하려면 /iris pack restore {pack} mode=apply를 실행하세요.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§e검증 결과가 없습니다. 먼저 /iris pack validate를 실행하세요.", + "iris.bukkit.runtime.commandpack.status.ok": "§a정상§r {pack}§7 (차단={blocking}, 경고={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§c프로젝트§r {pack}§7 (블록 ={blocking}, 경고 ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§c정리 실패: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§c복원 실패: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "계속 격리됨", + "iris.bukkit.runtime.commandpack.path.quarantined": "격리됨", + "iris.bukkit.runtime.commandpack.path.candidate": "후보", + "iris.bukkit.runtime.commandpack.path.conflict": "충돌", + "iris.bukkit.runtime.commandpack.path.restored": "인기있는", + "iris.bukkit.runtime.commandpack.path.file": "파일", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§e'{pack}'의 검증 결과가 없습니다. /iris pack validate {pack2}을(를) 실행하세요.", + "iris.bukkit.runtime.commandpack.validation_failed": "§c의 유효성{name}' 실패: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§a팩 '{packName}'로드 가능.§7 (워닝 ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§c팩 '{packName}'이(가) 손상되었습니다:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... · {count} 더 많은 경고.", + "one": "§7 ... · {count} 더 많은 경고." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§c당신은 항상 이것을 사용하기 전에 백업을해야합니다", + "§e이것에 의해 발생 하는 문제는, 하지만 제한 되지 않습니다:", + "§e - 이전과 새로운 청크 사이에 깨진 청크 (& 업데이트 후)", + "§e - 오래된 청크와 맞지 않는 재생된 덩크", + "§e - 재생할 때 구조가 다시 달지 않습니다.", + "§e - 동굴 안감", + "§e - 지형 층은 위로 안대지 않습니다", + "§c당신은 위험의 인식이며, 백업을했다 :", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§a관련 상품 §f{total}§a 바닐라 & datapack 구조 (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[실패] {keyString}: 잘못된 키", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[건너뜀] {keyString}: 단일 템플릿 없음 NBT - 바닐라는 코드 또는 별도의 조각 템플릿 ( 템플렛 패스를 통해 전달); 하나의 구조로 가져 오기에 아무것도.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[실패] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§a일괄 가져오기 완료: §f{imported}§a개 가져옴, §f{skipped}§a개 건너뜀, §f{failed}§a개 실패(전체 §f{total}§a개).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§a가져온 조각으로 단일 템플릿 구조물을 만드는 중(생성마다 변형 하나 배치)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} 변형)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[건너뜀] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[실패] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§a단일 템플릿 구조: §f{imported}§a 내장, §f{skipped}§a 건너뛰기, §f{failed}§a 실패.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§c서버를 통해 구조 템플릿을 열거 ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§e구조 템플릿은 'structure' 리소스 경로에서 찾을 수 없습니다.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§a관련 상품 §f{total}§a 구조 템플릿 (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[실패] {keyString}: 잘못된 키", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[실패] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} (가져옴 {imported}, 건너뜀 {skipped}, 실패 {failed})", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§a템플릿 가져오기 완료: §f{imported}§a개 가져옴, §f{skipped}§a개 건너뜀, §f{failed}§a개 실패(전체 §f{total}§a개).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§e등록된 datapack(non-minecraft) 구조물이 없습니다. 먼저 datapack을 수집하고 재시작한 다음 이 명령을 다시 실행하세요.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§a관련 상품 §f{total}§a datapack 구조 (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[실패] {keyString}: 잘못된 키", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[실패] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§a관련 상품 §f{size}§a datapack 구조 템플릿...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[실패] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[실패] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§e서버를 통해 datapack 템플릿을 열거 할 수 없습니다. ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§a데이터 팩 구조물 가져오기 완료: §f{imported}§a개 가져옴, §f{skipped}§a개 건너뜀, §f{failed}§a개 실패.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eStructure 캡처는 활성에서 지원되지 않습니다. NMS 바인딩; 캡처 패스를 건너.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7캡처할 코드 생성 구조물이 없습니다(모두 이미 구조물로 가져왔습니다).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§a코드 생성 구조물 §f{total}§a개(NBT 템플릿 없음)를 임시 세계에 캡처하는 중({MAXSPAN}블록보다 너비/높이가 큰 항목은 건너뜀)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[건너뜀] {key}: 여기에 캡처 가능 구조를 배치하지 않았다 (큰, 잘못된 차원 또는 평평한 세계에 유효한 배치 없음). 숙박 약관", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[실패] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[캡처] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[실패] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} 캡처, {skipped} 건너뛰기, {failed} 실패)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§a구조 캡처 완료: §f{imported}§a 캡처, §f{skipped}§a 건너뛰기, §f{failed}§a 실패 (§f{total}§a 전체).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§e활성 NMS 바인딩이 노출하는 vanilla 트리/객체 기능이 없습니다(구조물만 가져옵니다).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§a관련 상품 §f{total}§a 바닐라 트리/부드 기능 (§f{wantVariants}§a 변형) 스크래치 세계로...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[건너뜀] {key}: 재시도 후에 아무것도 두었습니다.", + "iris.bukkit.runtime.featureimporter.fail": "§c[실패] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} (가져옴 {imported}, 건너뜀 {skipped}, 실패 {failed})", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§a기능 가져오기 완료: §f{imported}§a개 기록, §f{skipped}§a개 건너뜀, §f{failed}§a개 실패(전체 §f{total}§a개).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§c기능 가져오기용 임시 월드를 만들지 못했습니다({error}). 나무/오브젝트 단계를 건너뜁니다.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "설계도 파일이 없습니다. {path}", + "iris.bukkit.runtime.irisconverter.converted": "§a{name} 변환 완료 -> {value}, 소요 시간 {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§a{name} 변환 완료 -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§c저장에 실패: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§c변환 실패: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7변환 완료: {get}, 소요 {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§c일부 설계도 변환 실패. 자세한 내용은 콘솔을 확인하십시오.", + "iris.bukkit.runtime.studiosvc.installing_package": "패키지 설치 중: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "포장을 위한 보기: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "{WORKSPACENAME} 폴더에서 {type}.iris를 찾았습니다", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "{WORKSPACENAME} 폴더에서 {type} 차원을 찾았습니다. 다시 패키징합니다", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "찾을 수 없습니다 {name} 이 팩의 크기 폴더에! 실패!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "차원을 적재할 수 없습니다! 실패!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} 유형 설치. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "팩 '{key}'는 팩 목록에서 찾을 수 없습니다.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "수동으로 다운로드하려면 /iris download branch=을(를) 사용하세요.", + "iris.bukkit.runtime.studiosvc.failed_download": "다운로드 실패 '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "다운로드 실패 IrisDimensions/overworld 베타 릴리스.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "다운로드 실패 '{repo}' (branch {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "열린 스튜디오 세계에 실패: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "열린 스튜디오 '{dimm}' - 팩은 오류를 차단했습니다.", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "팩을 수정하고 /iris pack validate {dimm}을(를) 실행해 다시 검증하세요.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "기존 스튜디오 프로젝트에 실패: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "기존 스튜디오 프로젝트에 실패: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "열린 스튜디오 세계에 실패: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "팩을 찾을 수 없습니다.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "가져 오기 치수 파일", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "관련 상품 {downloadable} 새 프로젝트 {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7객체 편집기: 클릭 아래 셀 없음 (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: 저장 중 §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7객체 편집기: {pack}/{key}의 변경 사항 없음.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7객체 편집기: 빈 셀 {pack}/{key} ( 쓰기).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: {pack}/{key}의 대상 파일이 없습니다.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: 저장됨 §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: {pack}/{key} 저장 실패 ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "차원을 적재하지 않을 수 있었습니다 \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "차원 장전기를 얻을 수 없습니다", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§c스튜디오 오픈 실패: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§c스튜디오 오픈 실패.", + "iris.bukkit.runtime.irisproject.studio_ready": "§a스튜디오 준비 §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "직렬화 개체", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "다른 사람 {g} 기타", + "iris.bukkit.runtime.irisproject.package_compiled": "패키지 컴파일 완료!", + "iris.bukkit.runtime.irisproject.failed": "실패!", + "iris.bukkit.runtime.irisengine.total": "총 : §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " 엔진 §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "상세 정보: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} 차원에서 정의되지 않습니다!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§c찾을 수 없음 {message} 검색 범위 내에서.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§a텔레포트 {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} 다음 : {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "이 세상에서 대피함.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "이 세상에서 대피함. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "몇 가지 Iris 그들에 있는 주문 생물이 있는 팩", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "이 팩을 사용하려면 서버를 재시작해야 합니다.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "충분한 권한", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "하위 명령는 없습니다.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "무시됨 모수: {m}", + "iris.runtime.studio.opening": "§6Studio §b여는 중", + "iris.runtime.studio.opening_progress": "§6Studio §b여는 중§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §c실패§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §a준비 완료§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §c실패§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §a스튜디오 준비 완료§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "초기화 중", + "iris.runtime.studio.stage.queued": "대기열에 추가됨", + "iris.runtime.studio.stage.resolve_dimension": "차원 확인 중", + "iris.runtime.studio.stage.prepare_world_pack": "월드 팩 준비 중", + "iris.runtime.studio.stage.install_datapacks": "데이터 팩 설치 중", + "iris.runtime.studio.stage.create_world": "월드 생성 중", + "iris.runtime.studio.stage.apply_world_rules": "월드 규칙 적용 중", + "iris.runtime.studio.stage.prepare_generator": "생성기 준비 중", + "iris.runtime.studio.stage.request_entry_chunk": "입장 청크 로드 중", + "iris.runtime.studio.stage.resolve_safe_entry": "안전한 스폰 지점 검색 중", + "iris.runtime.studio.stage.teleport_player": "순간이동 중", + "iris.runtime.studio.stage.finalize_open": "마무리 중", + "iris.runtime.studio.stage.cleanup": "정리 중", + "iris.runtime.world_create.teleport_failed": "§e월드를 만들었지만 자동 순간이동에 실패했습니다. /iris teleport world={world}을(를) 사용해 보세요", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} 청크", + "iris.runtime.world_create.console": "§6생성 중 §e{percent}%§7 {generated}/{required} 청크§8 ({remaining} 남음)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §f연구분야", + "iris.runtime.world_create.pregen.console": "§6연구분야 §e{percent}%", + "iris.runtime.chunk_job.title.regen": "재생성", + "iris.runtime.chunk_job.title.delete": "삭제", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "준비 중", + "iris.runtime.chunk_job.stage.clearing": "지우는 중", + "iris.runtime.chunk_job.stage.resetting_mantle": "맨틀을 재설정", + "iris.runtime.chunk_job.stage.regenerating": "연구분야", + "iris.runtime.chunk_job.stage.generating": "생성 중", + "iris.runtime.chunk_job.stage.comparing": "비교 중", + "iris.runtime.chunk_job.stage.diagnosing": "진단", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §b작업 중", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks 에 {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks 에 {elapsed} ({failures} 실패)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §a완료§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §c실패§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §a완료§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §c실패한§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} 완료: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} 오류 완료 : {summary}", + "iris.runtime.golden.no_capture": "황금 캡처 없음 {path}; 캡처를 먼저 실행합니다.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash 지불 조건: {failed} chunks는 생성하지 못했습니다. 기록 된 황금 파일 없음.", + "one": "GoldenHash 지불 조건: {failed} chunk는 생성하지 못했습니다. 기록 된 황금 파일 없음." + }, + "iris.runtime.golden.failed": "GoldenHash 실패: {error}", + "iris.runtime.golden.mantle_reset": "Mantle 초기화 ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle 리셋 실패 ({type}); 기존 맨틀 상태에서 계속.", + "iris.runtime.golden.captured": "황금 붙잡음: {chunks} chunks 결합={hash}", + "iris.runtime.golden.wrong_world": "Golden 파일은 dim={goldenDimension} seed={goldenSeed}용이지만 이 월드는 dim={dimension} seed={seed}입니다. 중단합니다.", + "iris.runtime.golden.version_warning": "황금은 mc=에 붙였습니다{goldenVersion}mc=를 실행{version}. 차이는 버전 유도될지도 모릅니다.", + "iris.runtime.golden.match": "황금 일치: {current}/{golden} 청크, combined={hash}", + "iris.runtime.golden.mismatch": "황금 잡화: {mismatches}/{chunks} 청크는 다릅니다.", + "iris.runtime.golden.mismatch_chunk": " 청크 {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (황금)", + "iris.runtime.golden.mismatch_more": " ...외 {count}개", + "iris.runtime.golden.current_written": "현재 해시에 게시 {file}", + "iris.runtime.golden.diag.stable": "반복 gen 안정, 맨틀 리셋 {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "반복 gen 불안정 ({diffs}+ 블록 디프), 맨틀 리셋 {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "안정 (맨틀 재현를 재건 검사 산출)", + "iris.runtime.golden.diag.mantle_diverged": "분기 ({diffs}+개 차이 - 맨틀 빌드는 상태/순서에 따라 달라짐)", + "iris.runtime.golden.diag.mantle_skipped": "건너뜀 ({type})", + "iris.runtime.golden.diag.failed": "진단 실패: {error}", + "iris.runtime.golden.started": "GoldenHash 시작 : {chunks} 청크 주위에 0,0 버퍼 (세계 변경 없음), 스레드 ={threads} 모드 ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] 청크 {x},{z} 청크", + "iris.runtime.golden.chunk_failed": "주 메뉴 {x},{z} 실패: {type}", + "iris.runtime.pack_download.invalid_pack_name": "잘못된 팩 이름 '{pack}' (사용 가능: a-z, 0-9, _, -)", + "iris.runtime.pack_download.invalid_branch_name": "잘못된 브랜치 이름 '{branch}' (사용 가능: 문자, 숫자, ., _, -)", + "iris.runtime.pack_download.failed": "팩 다운로드 실패: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "다운로드 {url}", + "iris.runtime.pack_download.failed_to_find": "팩을 찾기 위해 실패 {url}", + "iris.runtime.pack_download.check_repository_and_branch": "올바른 저장소와 브랜치를 지정했는지 확인하세요!", + "iris.runtime.pack_download.example_command": "예를 들면: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "옵션 정보 {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "압축 해제 중 문제가 발생했습니다. 다음 항목을 확인하세요:", + "1. 인터넷 연결이 정상적으로 작동합니까?", + "2. 다운로드한 파일이 손상되지 않았습니까?", + "3. */plugins/iris/packs 폴더를 삭제하고 다시 다운로드해 보세요.", + "4. GitHub 저장소에서 팩을 다운로드하세요: https://github.com/IrisDimensions/overworld", + "5. 다른 방법으로 해결되지 않으면 지원팀에 문의하세요." + ], + "iris.runtime.pack_download.no_extracted_files": "파일이 zip 파일에서 추출되지 않았습니다.", + "iris.runtime.pack_download.home_directory_error": "홈 디렉토리를 찾을 때 오류. 파일 이름의 비 텍스트 문자가 있습니까?", + "iris.runtime.pack_download.invalid_archive_format": "잘못된 형식. 루트 폴더 또는 너무 많은 폴더를 밀어!", + "iris.runtime.pack_download.no_dimension_file": "추출 된 zip 파일에서 찾을 수있는 치수 파일 없음.", + "iris.runtime.pack_download.check_github": "GitHub에 있는지 확인하고 직원에게 보고하세요!", + "iris.runtime.pack_download.one_dimension_required": "치수 폴더는 정확히 하나의 파일을 포함해야합니다.", + "iris.runtime.pack_download.invalid_dimension": "잘못된 차원 폴더 dimensions/.", + "iris.runtime.pack_download.importing": "관련 상품 {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "packs 폴더의 다른 차원이 이미 키 {key}을(를) 사용합니다. 가져오기에 실패했습니다!", + "iris.runtime.pack_download.pack_key_conflict": "다른 팩이 키 {key}을(를) 사용합니다. 가져오기에 실패했습니다!", + "iris.runtime.pack_download.acquired": "성공적으로 취득 {name}.", + "iris.runtime.pack_download.validation_failed": "팩 '{pack}' 유효성 검사; 세계 및 스튜디오 생성은 거부됩니다. 이유:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "팩 '{pack}' 유효성 {count} 경고.", + "one": "팩 '{pack}' 유효성 {count} 경고." + }, + "iris.runtime.pack_download.validated": "팩 '{pack}' 유효성.", + "iris.client.vision.title": "Iris Vision", + "iris.client.vision.connecting": "Iris 서버에 연결 중...", + "iris.client.vision.not_connected": "연결되지 않음", + "iris.client.vision.not_iris_world": "Iris 월드가 아님", + "iris.client.vision.no_dimension_data": "차원 데이터 없음", + "iris.client.vision.header_detail": "{status} 확대 {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "드래그로 이동 스크롤로 확대 Esc로 닫기", + "iris.client.vision.dimension_pack": "{dimension} 팩 {pack}", + "iris.client.toast.studio_hotload": "스튜디오 핫로드", + "iris.client.toast.changed_files": { + "other": "파일 {count}개", + "one": "파일 {count}개" + }, + "iris.client.toast.reload_failed": "다시 불러오기 실패", + "iris.client.toast.reloaded": "관련 상품", + "iris.client.toast.pack_failed": "{pack} 실패한", + "iris.client.what.title": "Iris 정보", + "iris.client.what.querying": "{x}, {z} 조회 중...", + "iris.client.what.biome": "바이오메트: {biome}", + "iris.client.what.region": "지역: {region}", + "iris.client.what.cave": "동굴: {cave}", + "iris.client.what.height": "고도: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "일시 중지", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§a아이리스", + "iris.bukkit.scoreboard.speed": "§a속도§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§b캐시§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§d조각 중§7: {state}", + "iris.bukkit.scoreboard.region": "§b주요 특징§7: {region}", + "iris.bukkit.scoreboard.biome": "§b바이오메트§7: {biome}", + "iris.bukkit.scoreboard.height": "§b고도:§7: {height}", + "iris.bukkit.scoreboard.slope": "§b기울기§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vision", + "iris.desktop.vision.view": "보기:", + "iris.desktop.vision.grid": "격자", + "iris.desktop.vision.follow": "추적", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "새로 고치는 중", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Zoom 리셋", + "iris.desktop.vision.grid_enabled": "격자 활성화", + "iris.desktop.vision.grid_disabled": "격자 비활성화", + "iris.desktop.vision.following": "{player} 추적 중", + "iris.desktop.vision.no_player": "월드에 플레이어가 없음", + "iris.desktop.vision.follow_disabled": "추적 비활성화", + "iris.desktop.vision.low_quality": "낮은 품질", + "iris.desktop.vision.high_quality": "높은 품질", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} 블록", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "위치: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "건강 : {health} / {maximum}", + "iris.desktop.vision.block_position": "블록 {x}, {z}", + "iris.desktop.vision.chunk_position": "주 메뉴 {x}, {z}", + "iris.desktop.vision.region_position": "주요 특징 {x}, {z}", + "iris.desktop.vision.biome_key": "주요: {key}", + "iris.desktop.vision.biome_file": "파일 : {file}", + "iris.desktop.vision.velocity": "속도: {velocity}", + "iris.desktop.vision.tiles": "타일: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "노동자: {high} HD / {low} LQ", + "iris.desktop.vision.center": "센터: {x}, {z}", + "iris.desktop.vision.help.toggle": "도움말 전환", + "iris.desktop.vision.help.refresh": "타일 새로 고침", + "iris.desktop.vision.help.follow": "플레이어 추적", + "iris.desktop.vision.help.zoom": "줌 / 아웃", + "iris.desktop.vision.help.reset_zoom": "확대 초기화", + "iris.desktop.vision.help.cycle_mode": "렌더링 모드 전환", + "iris.desktop.vision.help.quality": "타일 품질 전환", + "iris.desktop.vision.help.fps": "30/60 FPS 전환", + "iris.desktop.vision.help.grid": "격자 전환", + "iris.desktop.vision.help.biome": "Biome 정보", + "iris.desktop.vision.help.teleport": "커서 위치로 순간이동", + "iris.desktop.vision.help.editor": "본문 바로가기", + "iris.desktop.vision.opened": "{target} 열기 완료", + "iris.desktop.vision.teleporting": "{x}, {z}(으)로 순간이동 중", + "iris.desktop.vision.mode.biome": "바이오메트", + "iris.desktop.vision.mode.biome_land": "Biome 토지", + "iris.desktop.vision.mode.biome_sea": "Biome 바다", + "iris.desktop.vision.mode.region": "주요 특징", + "iris.desktop.vision.mode.cave_land": "동굴 땅", + "iris.desktop.vision.mode.height": "고도:", + "iris.desktop.vision.mode.object_load": "객체 부하", + "iris.desktop.vision.mode.decorator_load": "장식자 짐", + "iris.desktop.vision.mode.continent": "대륙", + "iris.desktop.vision.mode.layer_load": "층 짐", + "iris.desktop.noise.title": "소음 Explorer", + "iris.desktop.noise.title_generator": "소음 Explorer: {generator}", + "iris.desktop.noise.search": "검색...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | 줌: {zoom} | 가치: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "사용자 지정", + "iris.desktop.noise.category.pack_generators": "팩 생성기", + "iris.desktop.noise.category.simplex": "심플렉스", + "iris.desktop.noise.category.perlin": "펄린", + "iris.desktop.noise.category.cellular": "Cellular", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "클로버", + "iris.desktop.noise.category.hexagon": "육각형", + "iris.desktop.noise.category.vascular": "품질 관리", + "iris.desktop.noise.category.globe": "구형", + "iris.desktop.noise.category.cubic": "입방형", + "iris.desktop.noise.category.fractal": "프랙탈", + "iris.desktop.noise.category.static": "Static", + "iris.desktop.noise.category.nowhere": "없음", + "iris.desktop.noise.category.sierpinski": "스낵 바", + "iris.desktop.noise.category.utility": "유틸리티", + "iris.desktop.noise.category.other": "기타", + "iris.desktop.pregen.initializing": "초기화...", + "iris.desktop.pregen.title": "Pregen 보기", + "iris.desktop.pregen.method_pending": "대기 중", + "iris.desktop.pregen.paused": "일시 중지", + "iris.desktop.pregen.resume_hint": "재개하려면 P를 누르세요", + "iris.desktop.pregen.pause_hint": "일시 중지하려면 P를 누르세요", + "iris.desktop.pregen.progress_paused": "일시 중지 {generated}/{total} ({percent} 완료)", + "iris.desktop.pregen.progress_saving": "저장 중... {generated}/{total} ({percent} 완료)", + "iris.desktop.pregen.progress_generating": "전체 {total} 중 {generated} 생성 중 ({percent} 완료)", + "iris.desktop.pregen.speed": "속도: {chunksPerSecond} 청크/s, {regionsPerMinute} 지구/m, {chunksPerMinute} 청크/m", + "iris.desktop.pregen.speed_cached": "속도: 캐시 {chunksPerSecond} 청크/s, {regionsPerMinute} 지구/m, {chunksPerMinute} 청크/m", + "iris.desktop.pregen.time": "{remaining} 나머지 ({elapsed} 탈출)", + "iris.desktop.pregen.method": "생성 방법: {method}", + "iris.desktop.pregen.memory": "기억: {used} ({usage}) 압력: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/lt_LT.json b/core/src/main/resources/languages/lt_LT.json new file mode 100644 index 000000000..9e488ce24 --- /dev/null +++ b/core/src/main/resources/languages/lt_LT.json @@ -0,0 +1,1435 @@ +{ + "locale": "lt_LT", + "messages": { + "director.help.navigation.parent.hover": "Grįžti į pirminę komandų grupę", + "director.help.navigation.back": "Atgal", + "director.help.no_subcommands": "Šiame puslapyje nėra antrinių komandų.", + "director.help.no_description": "Aprašymas nepateiktas", + "director.help.aliases": "Slapyvardžiai", + "director.help.command_group": "Komandų grupė. Spustelėkite, kad atidarytumėte.", + "director.help.no_parameters": "Parametrų nėra. Spustelėkite, kad iš anksto užpildytumėte komandą.", + "director.help.parameters": "Parametrai", + "director.help.parameter.required": "privalomas", + "director.help.parameter.optional": "pasirenkamas", + "director.help.parameter.default": "numatytasis", + "director.help.navigation.previous.hover": "Ankstesnis puslapis", + "director.help.navigation.next.hover": "Kitas puslapis", + "director.help.navigation.page": "Puslapis", + "director.runtime.error.invalid_origin": "Šios komandos negalima vykdyti iš šio šaltinio.", + "director.runtime.error.unknown_parameter": "Nežinomas parametro raktas: {key}", + "director.runtime.error.unexpected_argument": "Netikėtas argumentas \"{argument}\". Pasirenkami parametrai turi būti nurodyti su raktu, pvz. seed=123", + "director.runtime.error.conversion_failed": "Reikšmės \"{value}\" nepavyko konvertuoti į {type} parametrui {parameter}", + "director.runtime.error.default_parse_failed": "Nepavyko nuskaityti parametro {parameter} numatytosios reikšmės", + "director.runtime.error.missing_argument": "Trūksta argumento \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Nepavyko įvykdyti komandos {command}: {reason}", + "director.runtime.usage": "Naudojimas: {usage}", + "iris.command.permission_denied": "Jums trūksta leidimo '{permission}'", + "iris.command.unknown": "Nežinoma Iris komanda", + "iris.command.player_only": "Šią komandą gali naudoti tik žaidėjai.", + "iris.command.iris_world_required": "Šio matmens nesugeneravo Iris.", + "iris.command.reload.success": "Nustatymai ir kalba {locale} įkelti iš naujo.", + "iris.command.reload.failed": "Nustatymai įkelti iš naujo, tačiau kalba {locale} atmesta; toliau naudojama {activeLocale}.", + "iris.modded.help.unknown_section": "Nežinoma Iris pagalbos skyrius: {section}", + "iris.modded.help.back_hover": "Grįžti į {parent}.", + "iris.modded.help.command_parameter": "Komandų parametras", + "iris.modded.help.parameter_required": "Šis parametras yra būtinas.", + "iris.modded.help.parameter_optional": "Šis parametras neprivalomas.", + "iris.modded.help.brigadier_text": "Šis parametras perskaitomas kaip tekstas: Brigadier.", + "iris.modded.help.operator_notice": "Iris komandoms reikia operatoriaus leidimo (lygis 2).", + "iris.modded.help.operator_instruction": "Vykdyti {command} iš konsolės (arba leidžia cheats į vieną grotuvą); iki tol šios komandos nebus paleisti arba skirtukas baigtas.", + "iris.modded.command.properties.none": "Savybės: (nėra)", + "iris.modded.command.properties.list": "Savybės: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7@ info: tooltip...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aSukurtas duomenų apie importą kiekis: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aĮdiegti duomenų aplankai: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§ePridėti Modrinth URLs į dimensiją \"datapackImports\"sąrašas, tada paleisti /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash pradėtas: {value} chunkai...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash nepavyko chunke {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash visuotinis=§6{value}§a chunkai={value2} kieti={solidBlocks} per {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Ne Iris Pasaulis!", + "iris.bukkit.commandfind.unknown_structure": "§cNežinoma struktūra: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Vykdyti šį in- žaidimas teleport į struktūrą.", + "iris.bukkit.commandfind.locating": "§7Vieta {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Vykdyti šį in- žaidimas teleport į struktūrą.", + "iris.bukkit.commandfind.locating_2": "§7Vieta {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeleportuotas į {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aSėkmingai pašalintas pasaulio aplankas", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aSėkmingai pašalintas pasaulio aplankas", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cNepavyko pašalinti pasaulio aplanko", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cŠiame serveryje nerasta paketų su objektais.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cnėra objektai, kuriuos reikia įdėti į pasirinktą (-as) pakuotę (-as).", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aAtidaryti objekto studiją {scope} ({totalObjects} objektai)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cNepavyko atverti objekto studijos: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cTurite nurodyti pakuotės pavadinimą.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPakuotė \"{pack}\"nerasta po packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... ir {value} daugiau.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aTikrinamosios struktūros §f{value}§a nuo {value2},{value3} per {searchRadius} chunkai...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§avanilla kiekio importavimas į §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilės komplektas: §f{imported}§a objects/structures raštu, §f{failed}§a Nepavyko.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Medžiai / objektai yra pagal objects/vanilla/...; nuoroda į juos iš biomo objekto vietas.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cNėra atvirų studijų projektų.", + "iris.bukkit.commandstudio.closing_studio": "§eUždarymo studija...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStudijos uždarymas nepavyko: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStudijos uždarymas nepavyko: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudija baigta. Likusios pasaulio šeimos valymas buvo eilėje paleidžiant atsargą.", + "iris.bukkit.commandstudio.studio_closed": "§aStudija baigta.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cJūs turite būti Studijos pasaulyje perjungti derinimo rezultatų suvestinę.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studijos derinimo rezultatų suvestinė {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cNepavyko atnaujinti Studio derinimo suvestinės dabar.", + "iris.bukkit.commandstudio.opened_inventory": "§aAtidarytas inventorius!", + "iris.bukkit.commandstudio.generating_data": "§7Gaunami duomenys...", + "iris.bukkit.commandstudio.done": "§aBaigta!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Tau trūksta leidimo \"{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Būsena:", + "iris.bukkit.irisenginestatus.service": "§5- Paslauga: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metrika: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Išlaikymo laikotarpis: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Paralelizmas: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Aktyvus pasaulio uždaviniai: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tectoninės plokštės:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Konstruotas išlaikymas: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heap naudojimas: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Gyventojas: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- Eilutė: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5Vidutinė neveikos trukmė: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Max tuščiosios eigos trukmė: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Min tuščiosios eigos trukmė: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Laivai:", + "iris.bukkit.irisenginestatus.resource": "§5- Išteklius: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2D srautas: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3D srautas: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Kiti: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Kiti:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Pasauliai: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Pakrautos chunks: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cPasaulis nulinis.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cTikslas Iris Pasaulis prieš skaitant Mantle sąvartyną.", + "iris.bukkit.commanddeveloper.upgrading": "§aAtnaujinimas iki {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aBaigta modernizacija! Dabar galite atnaujinti serverio versiją į {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cSpindulys turi būti 0 arba didesnis.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cTai nėra Iris Pasaulis.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cVariklio pasiekiamumas šiam pasauliui yra nulinis.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aTrinti pradėtą: §6{chunks}§a nuopjova (-os) aplink §6{centerX},{centerZ}§a. Švarūs blokai į orą.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cSpindulys turi būti 0 arba didesnis.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cJūs turite būti Iris pasaulis naudoti regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cVariklio pasiekiamumas šiam pasauliui yra nulinis. Pirmiausia generuoti netoliese esančius gabaliukus.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen pradėjo: §6{chunks}§a nuopjova (-os) aplink §6{centerX},{centerZ}§a. Šalinama ir regeneruojama vietoje.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cSpindulys turi būti 0 arba didesnis.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cTaikinys turi būti Iris Pasaulis.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cVariklio pasiekiamumas šiam pasauliui yra nulinis.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash prasidėjo: §6{chunks}§a nuopjova (-os) aplink §6{centerX},{centerZ}§a buferiai (pasaulis nepaliestas).", + "iris.bukkit.commandedit.players_only": "§cTik žaidėjai!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cJokio studijos pasaulio nėra!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cJūs turbūt studijuojat!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cNepavyko atverti failų begalvėje aplinkoje!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cDarbastalio nepalaiko ši aplinka!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Nepavyko rasti failo; gal jis nebuvo įkeltas tiesiai iš failo?", + "iris.bukkit.commandedit.opening_vscode": "§aAtidaryti {value} {value2} yra VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cCant rasti failą. Arba registruotojas neegzistuoja", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Nepavyko rasti failo; gal jis nebuvo įkeltas tiesiai iš failo?", + "iris.bukkit.commandedit.opening_vscode_2": "§aAtidaryti {value} {value2} yra VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cCant rasti failą. Arba registruotojas neegzistuoja", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Nepavyko rasti failo; gal jis nebuvo įkeltas tiesiai iš failo?", + "iris.bukkit.commandedit.opening_vscode_3": "§aAtidaryti {value} {value2} yra VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cCant rasti failą. Arba registruotojas neegzistuoja", + "iris.bukkit.commandfind.not_iris_world_5": "§6Ne Iris Pasaulis!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Ne Iris Pasaulis!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Ne Iris Pasaulis!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Ne Iris Pasaulis!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObjekto studija: teleportavimas į {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} nėra sukonfigūruotas nė viename regione / biomo objekto išdėstymą.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cNegalite naudoti pasaulio pavadinimo \"iris\", nes Iris šį katalogą naudoja Studio pasauliams.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cAr galime pasiūlyti pavadinimą \"IrisWorld\"vietoj to?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cNegalite naudoti pasaulio pavadinimo \"benchmark\", nes Iris šį katalogą naudoja našumo bandymų paketams.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cAr galime pasiūlyti pavadinimą \"IrisWorld\"vietoj to?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cTas aplankas jau egzistuoja!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cNepavyko rasti ar atsiųsti dimensijos \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§ePabandykite vieną iš: per pasaulį, vanilla, butas, pabaiga", + "iris.bukkit.commandiris.download_manually_iris_download": "§eArba atsisiųsti rankiniu būdu: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPasaulio paruošimas baigtas. Paleiskite serverį iš naujo, kad sugeneruotumėte / įkeltumėte „{worldName}“.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cSukūrimo metu iškelta išimtis. Daugiau informacijos rasite konsolėje.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aSėkmingai sukūrė savo pasaulį!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aJūsų pasaulis bus automatiškai nustatytas kaip pagrindinis pasaulis, kai serveris vėl paleidžiamas.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eweather forecast Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eRuošiami pasauliniai failai ir bukkit.yml kitam paleidimui...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cNepavyko sukurti pasaulinių matmenų failų \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aAtnaujinta server.properties Lyginamasis pavadinimas į \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cPasaulis buvo suskirstytas, bet nepavyko atnaujinti server.properties pagrindinis pasaulis.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aParuoštas Iris pasaulis „{name}“ su generatoriumi Iris:{value} ir pradine reikšme {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aŠis pasaulis dabar yra sukonfigūruotas kaip pagrindinis kitą startą.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cNepavyko atnaujinti bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cNurodytasis žaidėjas neegzistuoja.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris prieš{value} pagal Volmit programinė įranga", + "iris.bukkit.commandiris.to": "§a{value} iki {value2}", + "iris.bukkit.commandiris.total_height": "§aBendras aukštis: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris pasauliai: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit pasauliai: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cTai nėra Iris Pasaulis. Iris pasauliai: {value}", + "iris.bukkit.commandiris.removing_world": "§aŠalinamas pasaulis: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cNepavyko evakuoti pasaulio: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cNepavyko iškelti pasaulio: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aSėkmingai pašalinta {value} nuo bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eAtrodo, pasaulis jau buvo pašalintas iš bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cNepavyko įrašyti bukkit.yml dėl {value}", + "iris.bukkit.commandiris.set_debug": "§aNustatyti derinimą į: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aSiunčiama pakuotė: {pack} (beta atsipalaidavimas){value}", + "iris.bukkit.commandiris.downloading_pack": "§aSiunčiama pakuotė: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cJūs turite būti Iris pasaulis", + "iris.bukkit.commandiris.sending_metrics": "§aSiunčiami metrikos...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cTai nėra Iris Pasaulis. Iris pasauliai: {value}", + "iris.bukkit.commandiris.unloading_world": "§aAtsiunčiamas pasaulis: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aPasaulis sėkmingai iškrautas.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cNepavyko išardyti pasaulio.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cNepavyko iškelti pasaulio: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Serveryje neegzistuoja.", + "iris.bukkit.commandiris.generator": "§9Generatorius: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} nėra rainelės pasaulis.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cNepavyko nustatyti Iris dydis {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aĮkeliamas pasaulis: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolicija negali pakrauti naujų pasaulių. Iš naujo įkelti serverį \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} sėkmingai įkelta.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cTai nėra Iris Pasaulis. Iris pasauliai: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvakuojantis pasaulis{value}", + "iris.bukkit.commandobject.object_size": "Objekto dydis: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Naudojami blokai: {value}", + "iris.bukkit.commandobject.blocks_object": "= = Objekto blokai = =", + "iris.bukkit.commandobject.other_block_types": " + {value} kiti blokų tipai", + "iris.bukkit.commandobject.current_object_size": "Dabartinis objekto dydis: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Naujas objekto dydis: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Nepavyko įrašyti objekto {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cNėra suderintų objektų: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aComment [reach={reach}{value}] eilėje {value2} objektas (-ai)", + "iris.bukkit.commandobject.hold_your_wand": "Laikyk lazdelę.", + "iris.bukkit.commandobject.no_area_selected": "Nepasirinkta sritis.", + "iris.bukkit.commandobject.ready_your_wand": "Paruošk lazdelę.", + "iris.bukkit.commandobject.ready_your_wand_2": "Paruošk lazdelę.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eNurodyta skalė viršija maksimalią. Sumažinta iki didžiausios: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Atnaujinta lazdelė objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Atsižvelgiant į naują lazdelę objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Atnaujinta lazdelė objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aPateikta {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eLaikyk lazdelę!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cFailas jau egzistuoja. Nustatyti perrašyti = teisinga jį perrašyti.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cNepavyko įrašyti objekto dėl IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aSėkmingai įrašyti objektą: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Laikyk lazdelę.", + "iris.bukkit.commandobject.no_area_selected_2": "Nepasirinkta sritis.", + "iris.bukkit.commandobject.reverted_pastes": "§9Atšaukta {actualReverts}§9 įklijavimų!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cTu negali gauti WorldEdit Pasirinkti be WorldEditŽinai.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cTu neturi WorldEdit atranka šiame pasaulyje.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aŠviežia lazdelė su jūsų dabartimi WorldEdit atrankos!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPoofai! Sėkmės pastatas!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eLaikyk lazdelę!", + "iris.bukkit.commandobject.no_area_selected_3": "Nepasirinkta sritis.", + "iris.bukkit.commandobject.auto_select_complete": "§aAuto-pasirinkite baigtas!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eLaikyk lazdelę!", + "iris.bukkit.commandobject.no_area_selected_4": "Nepasirinkta sritis.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAuto-pasirinkite baigtas!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen spindulys turi būti didesnis nei nulis blokų.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cGriežtai nuosekliam išankstiniam generavimui reikia Paper arba su Paper suderinamo serverio.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cVariklio pasiekiamumas šiam pasauliui nulinis!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cĮsitikinkite, kad pasaulis įkeltas & variklis įjungiamas. Pavyzdžiui, generuoti naują gabalą.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cNepavyko paleisti regeneracijos. Išsamesnė informacija pateikiama konsolėje.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eNėra aktyvių sustojimo užduočių", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aPakeista išankstinio generavimo užduoties pristabdymo būsena. Dabar: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eNėra aktyvaus regeneravimo užduotys sustabdyti / išjungti.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eAktyvios regeneracijos užduoties nėra.", + "iris.bukkit.commandpregen.pregen": "§agreat- britain _ counties. kgm §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aGreitis: §6{value}/s§a ETA: §6{value2}§a Nuplikyti: §6{value3}§a Metodas: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aįrašyta struktūros indeksas: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportuojama visa vanilla & duomenų kaupimo struktūros į §f{value}§a (perrašyti)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImportuoti pilną: §f{imported}§a structures/objects raštu, §f{failed}§a Nepavyko.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Nuoroda į juos iš biomo / regiono / dimensijos \"struktūrų\" sąrašo arba paleisti /iris structure list {value} atnaujinti indeksą. Regeneruoti gabaliukus, kad pakeitimai įsigaliotų.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Kapinti {value} struktūros. Įdėkite juos iš \"struktūrų\" sąrašo ir regeneruoti gabaliukus. Pašalinti structures/*.json kad jį vėl pagautų.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cNeįkelta Iris pasaulis rastas {value}. Prisijungti arba sukurti pirmą (paieška vyksta prieš gyvą pasaulį).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cPažymėti Iris pasaulyje nėra aktyvaus generatoriaus variklio.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cNėra rainelės struktūros \"{structure}\"šioje pakuotėje", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cStruktūra \"{structure}'surinkti 0 vienetų (patikrinti startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStruktūra \"{structure}': §f{value}§a vienetai, pėdsakas §f{value2}x{value3}§a blokai (mėginio sėklos 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cNėra rainelės struktūros \"{structure}\"šioje pakuotėje", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cStruktūra \"{structure}'surinkti 0 vienetai", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aPateikta \"{structure}' ({value} vienetų).", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aAtidarymo studija \"{value}\"pakuotė (sėkla: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cPateikite matmenų paketą: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cNepavyko išspręsti pakuotės dimensijai {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aAtidaryti VSCode yra \"{value}\"pakuotė", + "iris.bukkit.commandstudio.pack_has_version": "§a\"{value}\"pakuotė turi versiją: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aAtidarom Triukšmo tyrinėtoją!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cNepavyko įtraukti elementų į virtualų inventorių dėl: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aAtidarykit inventorių!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cVeikia tik Iris Pasaulis!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cJūs turite būti arba nurodyti Iris- sukurtas pasaulis!", + "iris.bukkit.commandstudio.opening_map": "§aAtidarykit žemėlapį!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Triukšmo generatorių našumo metrikos apskaičiavimas", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Interpoliatoriaus laiko apskaičiavimas...", + "iris.bukkit.commandstudio.processing_generator_scores": "Apdorojimo generatoriaus požymiai: ", + "iris.bukkit.commandstudio.score": "Taškai: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aBaigta! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cTurite būti Iris pasaulyje, kad esybės būtų sukurtos tinkamai. Bandoma jas sukurti geriausiu įmanomu būdu.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cJokio studijos pasaulio nėra!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cTu jau studijoje!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aSiunčiu tave į studijos pasaulį!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Atnaujinamas kodas Darbo erdvė {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aAtnaujintas kodas darbo vieta {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cNetinkamas projektas: {value}. Pabandykite ištrinti kodo darbastalio failą ir bandykite dar kartą.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cJūs turite būti Iris pasaulis", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Turbūt esi rainelės pasaulyje.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Gaudymas IGenData nuo {value} Šalia šakutės.", + "iris.bukkit.commandstudio.reported": "Pranešama apie: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cJūs turite paleisti serverį GUIs įjungta nustatymuose!", + "iris.bukkit.commandstudio.players_only": "§cTik žaidėjai!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cJokio studijos pasaulio nėra!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cJūs turbūt studijuojat!", + "iris.bukkit.commandwhat.material": "Medžiaga: §a{value}", + "iris.bukkit.commandwhat.full": "Visas: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Prašome laikyti bloką / elementą", + "iris.bukkit.commandwhat.material_2": "Medžiaga: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Prašome laikyti bloką / elementą", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Ne.Iris Biomas: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Duomenų rinkinys Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aTik Iris pasauliai.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Pažvelkite į bet kokį kvartalą, o ne į dangų", + "iris.bukkit.commandwhat.material_3": "Medžiaga: §a{value}", + "iris.bukkit.commandwhat.full_2": "Visas: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Saugojimo blokas (Loot Cable)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Lit Block (Lengva)", + "iris.bukkit.commandwhat.foliage_block": "§e* Foliage blokas", + "iris.bukkit.commandwhat.decorant_block": "§e* Decorant blokas", + "iris.bukkit.commandwhat.fluid_block": "§e* Skysčių blokada", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Planuojamas lapų blokas", + "iris.bukkit.commandwhat.solid_block": "§e* Kietas blokas", + "iris.bukkit.commandwhat.found_nearby_markers": "Rasta {value} Artimiausi žymekliai ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aTik Iris pasauliai.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Konsolės pavadinimas turi būti biomas: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biomo peržiūra nepavyko: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Nežinoma biomase: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Konsolės pavadinimas turi būti regionas: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Regiono paieška nepavyko: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Nežinoma sritis: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Nepavyko atverti failų čia: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Nepavyko rasti failo; gal jis nebuvo įkeltas tiesiai iš failo?", + "iris.modded.irismoddedcommands.could_not_open": "Nepavyko atverti {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Atidaryti {value} {value2} redaktoriuje.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Konsolė turi pavadinti žaidėją: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} generuoja ne Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleportas nepavyko: dimensija {dimensionId} neįkrauta.", + "iris.modded.irismoddedcommands.teleporting": "Teleportavimas {value} iki {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} generuoja ne Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Negalima evakuoti pirminio pasaulio; nėra kur siųsti žaidėjų.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Evakuoti {count} grotuvas (-ai) iš {value} iki {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Nustatyti derinimą į: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Įkelti nustatymai", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Šią komandą gali naudoti tik žaidėjai (ji tikrina jūsų turimą elementą).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Tavo pagrindinė ranka tuščia.", + "iris.modded.irismoddedcommands.hand_x": "Ranka: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} generuoja ne Iris; žr. /iris info pakrauta Iris matmenys.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Dabartinis aspektas ({value}) nėra generuojamas Iris. Vardas, pavardė: /iris pregen start {radius} ; žr. /iris info pakrauta Iris matmenys.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Jau vykdoma pregeneracijos užduotis. Sustabdykite pirmiausia /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen pradėjo {value} iš {value2} pagal {value3} blokai {centerX},{centerZ}.{modeNote} Progress žurnalai konsolės; žr. /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Stabdoma regeneracija; baigiama dabartinis regionas...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Nėra aktyvaus regeneracijos užduotį sustabdyti.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Nėra aktyvaus regeneracijos užduotį sustabdyti / atnaujinti.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Presencija yra dabar {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Aktyvios regeneracijos užduoties nėra.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} pagal Volmit programinė įranga {value2} (Minecraft {value3}), {engines} Iris matmuo (-iai)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Įkeltos matmenys: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.biome": "Biomas: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biomo peržiūra nepavyko: {value}", + "iris.modded.irismoddedcommands.region": "Regionas: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Regiono paieška nepavyko: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Cave biomas: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Nepavyko rasti dvikomponenčio vaizdo: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Paviršiaus blokas: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Pareigos: {value} {value2} {value3} (chunk. {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Ši komanda gali būti naudojama tik žaidėjų (ji tikrina bloką jūs ieškote).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Pažiūrėk į kvartalą, ne į dangų.", + "iris.modded.irismoddedcommands.block_y": "Blokas: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Šią komandą gali naudoti tik žaidėjai (žymekliai tampa dalelėmis aplink jus).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Ieškoma \"{marker}\"žymekliai aplink jus...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Žymeklio skenavimas nepavyko: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Rasta {value} nearby marker(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Nežinoma biomase: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Nežinoma sritis: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} nėra apibrėžtas dimensija!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} nesukonfigūruotas nė viename regione / biomo objekto išdėstymą ({value} Įkelti objekto raktai).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Šią komandą gali naudoti tik žaidėjai. (objekto raktas \"{key}\"nusprendė prieš {value} įkelti objektų raktus)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Pavadinimas Iris arba vietinis struktūra rasti.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Nežinoma struktūra \"{key}'. Naudoti kortelių užbaigimą pasirinkimui Iris vieta arba registruota gimtoji / duomenų tvarkymo struktūra.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Ieškoma vietinės struktūros {value} per {NATIVESTRUCTURELOCATERADIUS} chunkai...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Ieškoma Iris- įdėta struktūra {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Nepavyko rasti Iris- įdėta struktūra {key}: tankis paieškos saugumo riba buvo pasiekta prieš visą 1024- Buvo apieškotas kastuvas.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Nepavyko rasti Iris- įdėta struktūra {key} per 1024 chunkai.", + "iris.modded.irismoddedcommands.search_failed": "Ieškoti nepavyko: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Nepavyko rasti vietinės struktūros {value} per {NATIVESTRUCTURELOCATERADIUS} chunkai.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Ieškoti vietinės struktūros {value} nepavyko: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Žaidėjas atjungtas iki struktūros paieškos pabaigos.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Pakeitei matmenis prieš struktūros paiešką; vėl paleiskite komandą.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Rasta {label} : {targetX} {clampedY} {targetZ}, bet teleportacija nepavyko.", + "iris.modded.irismoddedcommands.teleported_at": "Teleportuotas į {label} : {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Struktūros pasiekiamumas: {available} vietinė grupė, atitinkanti reikalavimus, {irisPlaced} Iris- dedamas, {disabled} gimtoji negalia, {suppressed} gimtoji, pakeičiama Iris stažuotės, {unreachableBiomes} vietinės kilmės, į kurias neatsižvelgiama naudojant šios pakuotės biomus, ir {unsupported} Registruotos vietinės struktūros, kurioms šis matmuo netaikomas. Naudojimas /iris structure verify vienai struktūrai.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Struktūra {key} yra Iris- dedamas ir lokuojamas su /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Nežinoma struktūra \"{key}'. Tai nėra Iris- patalpinta ar užregistruota vanilla ar duomenų.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Struktūra {value} yra aiškiai pakeistas Iris vieta ir lokuojamas su /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Gimtoji struktūra {value} įjungta, palaikoma šio dimensijos generatoriaus būsenos ir fiksuojama /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Šią komandą gali naudoti tik žaidėjai. (POI tipas \"{type}\"priimta)", + "iris.modded.irismoddedcommands.searching": "Ieškoma {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Šio pasaulio variklis buvo uždarytas; vėl prisijungti dimensiją ir bandyti dar kartą.", + "iris.modded.irismoddedcommands.search_failed_2": "Ieškoti nepavyko: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Nepavyko rasti {label} per paieškos laiką.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teleportuotas į {label} : {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Įsikūriant pasikeitė variklis {label}, pabandykite dar kartą.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.world_seed": "Pasaulinė sėkla: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Variklio sėklos: {value} (mišinys: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Atsiunčiama IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pakuotė \"{pack}\"įdiegta. Jo tikslių matmenų tipai ir papročių biomedžiagos prisijungti prie priverstinio Iris @ info: whatsthis", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Paketo atsiuntimas nepavyko {pack} ({downloadSource}, žr. konsolę).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Šio matmens nesugeneravo Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Pagaminta: {value} nuopjova (-os), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Nežinoma Iris pagalbos skyrius: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: tipas ={typeKey} aktyvus ={activeMin}..{activeMax} loginis ={value} (pakuotė ={value2}, variklis nepradėtas; pakuotės aukštis nežinomas)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: tipas ={typeKey} aktyvus ={activeMin}..{activeMax} loginis ={value} Bendrijoje - 124; pakuotėje \"{value2}'nori {packMin}..{packMax} loginis ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: aktyvaus matmens tipas neatitinka pakuotės. Iris atsisakys paleisti šį pasaulinį variklį, o ne nukirpti žemę. Vykdyti /iris world enable naujiems pasauliams arba /iris datapack install įjungta Iris matmenys, tada paleisti.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Ne Iris matmenys yra pakrauti.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Visi {irisLevels} Iris matmuo (-iai) atitinka pakuotės aukščio ribas.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: variklis dar nepradėtas; kol kas negali išvesti savo matmenų tipo.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: dimensijos tipo generavimas nepavyko: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Nepavyko įrašyti {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Ne Iris matmenys surasta veikiančių variklių; nieko nebuvo įdiegta.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Nepavyko įrašyti {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Vrotas {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Pasaulinis duomenų rinkinys \"{WORLDPACKNAME}\"Matmenų tipas yra viršytas. Iš naujo paleisti serverį, kad būtų taikomi matmenų tipai.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Sukurtas duomenų apie importą kiekis: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth vartoti Bukkit-tik; įdiegti šiuos rankiniu būdu į world/datapacks jei reikia.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Įdiegti pasauliniai duomenys: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Bandomoji išimtis išsiųsta į Iris klaidų pranešimų sistemą (Sentry, jei įjungta).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Tinklo skenavimas nepavyko: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Auksinis skenavimas jau veikia.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Šią komandą gali naudoti tik žaidėjai. (lazdelė yra fizinis daiktas)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Tavo inventorius pilnas.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Poofai! Sėkmės pastatas! (kairysis spragtelėjimas = kampas 1, dešinysis spragtelėjimas = kampas 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Šią komandą gali naudoti tik žaidėjai. (dulkės yra fizinis daiktas)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Tavo inventorius pilnas.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Dešiniuoju pelės mygtuku spustelėkite bloką atskleisti objektą, kuriam jis priklauso.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Šią komandą gali naudoti tik žaidėjai. (išsaugoti fiksuoja savo lazdelės pasirinkimą)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Šis matmuo nėra generuojamas Iris; objektai įrašyti į dimensijos paketą.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Laikykite Iris lazdelės. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Nepasirinkta sritis. Kairė / dešinė spustelėkite blokai su lazdele pirmą.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Netinkamas objekto pavadinimas: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Pažymėjimas per didelis: {volume} blokai (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Failas jau egzistuoja. Naudojimas /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Nepavyko įrašyti objekto: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Išsaugota {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} blokas (-iai){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Nežinomas arba tuščias objektas: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Konsolė turi nurodyti koordinates: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Tu nežiūri į bloką viduje {value} blokus.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Įklijuoti nepavyko: {value} (daliniai pakeitimai įrašyti atšaukimui)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Pateikta {key} : {value} {value2} {value3} puvinio ={rotation} ({value4} rašymas (-ai), {value5} ne oras{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Laikykite Iris lazdelės. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Nepasirinkta sritis.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Paruošk lazdelę. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Tu nežiūri į bloką.", + "iris.modded.moddedobjectcommands.position_set": "Padėtis {value} nustatyti {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Laikyk lazdelę!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Nepasirinkta sritis.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Pažymėjimas per didelis, kad būtų galima pasirinkti automatiškai: {volume} blokai (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Automatinis žymėjimas baigtas: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Nežinomas objektas: {key}", + "iris.modded.moddedobjectcommands.object_size": "Objekto dydis: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Naudojami blokai: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "= = Objekto blokai = =", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} kita bloko būsena (-ys)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Nežinomas objektas: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Dabartinis objekto dydis: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Naujas objekto dydis: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Objektas neturi apkrovos failo; negali išlaikyti trauka.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Nepavyko įrašyti objekto {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Netinkamas tikslas: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Nėra suderintų objektų: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Comment [reach={reach}{value}] eilėje {value2} objektas (-ai)", + "iris.modded.moddedobjectcommands.nothing_undo": "Nieko.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Atšaukta {reverted} įklijavimų.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Paketų aplankas nerastas: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Nėra patvirtintų pakuočių pagal {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pakuotė \"{pack}\"nerasta po {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Patvirtinimas {value} pakuotė (-os)...", + "iris.modded.moddedpackcommands.validation_failed": "Patvirtinimas \"{value}\"nepavyko: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Patvirtinimas baigtas. Sulūžusios pakuotės: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pakuotė \"{pack}\"nerasta po {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pakuotė \"{pack}\"nerasta po {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Neįrašyti patvirtinimo rezultatai. Vykdyti /iris pack validate Pirma.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blokavimas ={value2}, įspėjimai ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Nėra patvirtinimo rezultato \"{pack}'. Vykdyti /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Pakuotė \"{value}\"yra pakeliamas. (įspėjimai ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Pakuotė \"{value}' sugadinta:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... ir {value} daugiau įspėjimo (-ų).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Jokių išvalymo kandidatų nerasta paketui \"{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Pakuotės valymo peržiūra \"{pack}': {value} kandidatas (-ai). Failai nebuvo pakeisti.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Vykdyti /iris pack cleanup {pack} apply po naujo skenavimo laikyti karantine.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Jokių išvalymo kandidatų nerasta paketui \"{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Karantinuoti {value} Išvalyti kandidatą (-us) pagal {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Nieko, kas atstatytų pakuotę \"{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Atstatyti peržiūrą {value}: {value2} byla (-os). Failai nebuvo pakeisti.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Atstatyti blokuoja esamas {value} paskirties šalis.", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Vykdyti /iris pack restore {pack} apply atkurti po naujo konflikto patikrinimo.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Atstatyti atsisakė, nes {value} paskirties vieta (-os) jau egzistuoja.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Nieko, kas atstatytų pakuotę \"{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Atstatyta {value} failas (-ai) iš {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... ir {value} daugiau.", + "iris.modded.moddedregen.regen_is_already_running": "Regen jau veikia.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Šis matmuo nėra generuojamas Iris. Paleisti iš Iris dydis, kad pakuotė gali būti išspręsta.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "įrašyta struktūros indeksas: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Nėra rainelės struktūros \"{key}\"šioje pakuotėje", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Struktūra \"{key}'surinkti 0 vienetų (patikrinti startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Struktūra \"{key}': {value} vienetai, pėdsakas {value2}x{value3} blokai (mėginio sėklos 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Šią komandą gali naudoti tik žaidėjai (struktūra surenkama jūsų vietoje).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Nėra rainelės struktūros \"{key}\"šioje pakuotėje", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Struktūra \"{key}'surinkti 0 vienetai", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Vieta nepavyko: {value} (daliniai pakeitimai užregistruoti atleidimui)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Pateikta \"{key}' ({value} vienetai, {value2} rašymas (-ai){tileNote}) jūsų vietoje. /iris object undo grįžti.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Pateikite matmenų paketą: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Atidaryti triukšmo naršyklę serverio ekrane.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Šis matmuo nėra generuojamas Iris; paleisti /iris studio noise iš Iris dimensija išspręsti generatorius, arba praleisti generatoriaus pavadinimą.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Nežinomas generatorius \"{generatorKey}\"pakuotėje {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Atidaryti triukšmo naršyklę generatoriui \"{value}\"(sėklos {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Šis matmuo nėra generuojamas Iris; stovėti Iris (arba studija) matmuo ir paleisti /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Atidaryti vizijos žemėlapį {value} serverio ekrane.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Nepavyko įrašyti darbo vietos {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Darbo erdvė regeneruota: {value} su JSON automatinio užbaigimo schemos.", + "iris.modded.moddedstudiocommands.could_not_open": "Nepavyko atverti {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Atidaryti {value} redaktoriuje.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Šis matmuo nėra generuojamas Iris; aiškiai nurodyti pakuotės pavadinimą.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pakuotė \"{name}\"nerasta po {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Pateikite matmenų paketą: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Atidarymo studija skirta \"{pack}\"(sėklos {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pakuotė \"{pack}\"trūksta; parsisiuntimas IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Pakuotė \"{pack}\"negali būti atsisiųsti; patikrinkite vardą ir bandykite /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Pakuotė \"{pack}\"neturi dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Studija atsidarė nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Studijos injekcija nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Konsolės studija atvira: {dimensionId} dabar veikia \"{pack}\"sėklos {seed} (laikinas; nerašytas iris-dimensions.json ir atlaisvintas iš naujo).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Įveskite ją su: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Peržiūrėti jį su: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Pašalinti jį su: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Studijos injekcija nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studija atvira: {dimensionId} dabar veikia \"{pack}\"sėklos {seed}. Naudojimas /iris studio close kai baigsi.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Tu neturi atviros studijos. Naudojimas /iris studio open Pirma.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Studijos uždarymas nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studija baigta: {dimensionId} buvo evakuotas, iškrautas ir pašalinti regiono duomenys.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Šiuo metu nėra jokių studijų matmenų.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Aktyvusis studijos matmuo (-iai): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: pakuotė \"{value2}\"sėklos {value3} savininkas {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Šią komandą gali naudoti tik žaidėjai.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Tu neturi atviros studijos. Naudojimas /iris studio open Pirma.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Jūsų studijos dimensija nebeįkelta. Naudojimas /iris studio open Dar kartą.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Teleportuotas į studiją ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Pakuotė \"{value}\"neturi dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"{value}\"pakuotė turi versiją: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Netinkamas projekto pavadinimas \"{nameRaw}\"(leidžiama: a- z, 0-9, _ ir -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Pakuotė \"{name}\"jau egzistuoja {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Kuriamas projektas \"{name}\"iš šablono\"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Šablonas \"{template}\"nėra įdiegtas; parsisiuntimas IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Šablonas \"{template}\"negali būti atsisiųsti; įdiegti pakuotės dimensions/{template2}.json Pirma.", + "iris.modded.moddedstudiocommands.created_project_at": "Projektas '{name}' sukurtas adresu {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Keisti dimensions/{name}.json ir likusią pakuotę. A VSCode darbo erdvė, JSON schema autocomplete buvo sukurta; atidaryti arba release it /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Projekto kūrimas nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Pakavimo mastas \"{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paketas sudarytas: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Pakuotė nepavyko: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Šią komandą gali naudoti tik žaidėjai (atranka yra orientuota į jūsų poziciją).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Šio matmens nesugeneravo Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Mėginių ėmimo regiono pasiskirstymas {value}x{value2} kekšės aplink tave...", + "iris.modded.moddedstudiocommands.rarity": "{key}: retumas ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Regiono mėginių ėmimas nepavyko: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Pakuotė \"{pack}\"nėra įdiegtas; parsisiuntimas IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Pakuotė \"{pack}\"negali būti atsisiųsti; patikrinti pavadinimą arba įdiegti jį su /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Nepavyko sušvirkšti Iris pasaulis \"{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Sukurta Iris pasaulis {dimensionId} iš pakuotės \"{pack}\"matmuo\"{packDimension}\"(sėklos {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Jis gyvena dabar ir pakartotinai įšvirkščiamas į kiekvieną paleidimą. Teleportas su /iris world status arba portalas; nereikia paleisti iš naujo.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Nepavyko sušvirkšti Iris pirminis pasaulis: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris pirminis pasaulis nustatytas {dimensionId} (pakuotė \"{pack}\"matmuo\"{packDimension}\"sėklos {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Vanilinio pagrindinio pasaulio generatoriaus negalima pakeisti veikimo metu, todėl ši komanda NEPERGENERUOJA esamo pagrindinio pasaulio.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Vietoj to, {dimensionId} dabar sukonfigūruotas pirminis pasaulis: žaidėjai vanilla overworld yra nukreipiami ten prisijungti, ir jis re- objektai kiekvieną startuolį.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris pagrindinis pasaulis išsilaisvino. Pasaulis išlaiko savo dabartinį generatorių; redaguoti server.properties lygiuoti ir iš naujo jį pakeisti atgal.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Netinkama sėkla \"{seedRaw}'. Naudokite skaičių arba \"atsitiktinis\".", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Pakuotė \"{pack}\"nėra įdiegtas; parsisiuntimas IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Pakuotė \"{pack}\"negali būti atsisiųsti; patikrinti pavadinimą arba įdiegti jį su /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Pakuotė \"{pack}\"dar neparuoštas (vis dar pakraunamas arba patvirtinamas). Pabandyk dar kartą.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Nepavyko įrašyti server.properties; patikrinti failų leidimus ir nustatyti lygio tipo rankiniu būdu.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris pagrindinis pasaulis nustatytas į \"{pack}\"(preset {preset}, sėklos {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties lygis tipo dabar {preset}. Kitą kartą iš naujo visame pasaulyje, tyliau, ir baigti regeneruoti kaip tai Iris Pasaulis.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Žaidėjų duomenys (aprašai, pasiekimai, statistika) yra saugomi; esamas reljefas tuose matmenyse pakeičiamas. Tai taikoma vieną kartą.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart yra įjungtas - sustabdyti serverį dabar, kad jūsų restart įpakavimas grąžina jį atgal į naują pagrindinį pasaulį.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Pakeisti serverį dabar jį generuoti. (Nustatyti mainWorldAutoRestart= tiesa modded.json turi Iris sustabdyti serverį jums.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Atsisakymas kurti pasaulį \"{dimensionId}\"naudojant pakuotę\"{pack}\"kadangi būtinas patvirtinimas nepavyko:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Nustatyti pakuotę ir paleisti /iris pack validate {pack} patvirtinti.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pakuotė \"{pack}\"nebuvo rasta pagal {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Pakuotė \"{pack}\"neturi dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Neteisinga pakuotės nuoroda \"{pack}{value}'. Vartojimo pakuotė arba pakuotė:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Netinkama sėkla \"{seedRaw}'. Naudokite skaičių arba \"atsitiktinis\".", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Nepavyko pašalinti Iris pasaulis \"{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris pasaulis \"{dimensionId}\"nebuvo pakrautas; išvalė savo nuolatinį įrašą registre ir sunaikino saugomus pang / mantle duomenis.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris pasaulis \"{dimensionId}\"nebuvo įkeltas; patvirtino nuolatinį registro įrašą. Pasaulio duomenys diske yra saugomi.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "PanaikintaIrispasaulis \"{dimensionId}': evakuota, nepakrauta, sukapota/užtvaros duomenys nuvalomi ir paleidžiami iš paleidimo registro.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Išjungtas Iris pasaulis \"{dimensionId}\": evakuotas, iškrautas ir išmestas iš paleidimo registro.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Pasaulio duomenys diske yra saugomi; iš naujo įgalinti /iris world enable {dimensionId} arba ištrinti jį: /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Įkelta Iris lygis: {value} -> pakuotė \"{value2}\"matmuo\"{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Pirminis pasaulis: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Ne Iris šiuo metu įkeliami matmenys. Sukurti vieną su /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Įkelta Iris matmenys: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Naudojimas /iris world create švirkšti vieną nepradedant iš naujo.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Parsisiųsti & valdyti išorės importą (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Parsisiųsti / atnaujinti visus duomenis, išvardytus pakuotės dimensijos 's'datapackImports\"ir įdiegti jį į pasaulį, kad jos struktūros registruotis kaip vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Atnaujinti serverį, kai įdiegiami nauji duomenų įrašai (reikalingi naujoms struktūroms registruoti ir generuoti)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Sąrašas sukonfigūruotų duomenų apie importą ir jų įdiegtas versijas", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Pašalinti įdiegtą datapack pagal id (taip pat ištrinti savo URL nuo datapackImports išlaikyti jį dingo)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Datapack id (aplanko pavadinimas) rodo /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Pasaulio vadybininkas", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Įkelti TectonicPlates Skaičius", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Siųsti bandymo išimtį Sentry", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Stacionarios zonos sukauptas bloko išvestis determinizmui / tapatumo bandymams", + "iris.director.commanddeveloper.param.world_hash": "Pasaulis, kuriam reikia maišyti", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Spindulys į gabaliukus aplink centrą", + "iris.director.commanddeveloper.param.center_chunk_x": "Centruotas mazgas X", + "iris.director.commanddeveloper.param.center_chunk_z": "Centrinis chunk Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Atnaujinti pasaulio paketą (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "Atnaujinti pasaulį", + "iris.director.commanddeveloper.param.pack_install_into_world": "Paketas įdiegti į pasaulį", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Įsitikinkite, kad yra atsarginė kopija & pirma perskaitykite įspėjimus!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Turėtų Iris vėl atsisiųskite pakuotę", + "iris.director.commanddeveloper.director.test": "Bandymas", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Ištrinkite visą tektoninę plokštelę vietoj vieno pjūvio", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Name plugins/Iris/dump (plg..*)", + "iris.director.commanddeveloper.director.test_2": "Bandymas", + "iris.director.commanddeveloper.param.pack_bench": "Pakuotė suoleliui", + "iris.director.commanddeveloper.param.radius_regions": "Spindulys regionuose", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Atverti GUI Lyginamoji analizė", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Atnaujinti kitą Minecraft versija", + "iris.director.commanddeveloper.param.version_upgrade": "Atnaujinti versiją į", + "iris.director.commanddeveloper.director.test_3": "bandymas", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Name", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Ištrinti gretimus gabalų blokus regeno testavimui", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Spindulys į gabaliukus aplink savo dabartinį gabalą", + "iris.director.commanddeveloper.director.test_4": "Bandymas", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Pašalinti ir regeneruoti netoliese chunkai vietoje naudojant Iris generavimas", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Šalia esančių chunkų spindulys", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Generuoti gabaliukai į buferių (ne pasaulis rašo) ir maišų blokai + biomes; fiksuoja aukso failą arba patikrina prieš esamą. Atstato manekeną nuskenuotoje vietoje - naudoti vienkartiniuose bandymų pasauliuose.", + "iris.director.commanddeveloper.param.world_scan": "Name", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Spindulys į gabaliukus aplink centrą", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Centruotas mazgas X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Centrinis chunk Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Pašalinti Mantle duomenis skenavimo srityje pirmą kartą visiškai regeneruoti iš nulio", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Gretutinės įpjovos kartos; 1 = griežtai serijinis, kad būtų galima atlikti priklausomybės nuo narkotikų tyrimus", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Taip pat mesti visą per-chunk non- oro blokada už atsijungęs diffing", + "iris.director.commandedit.director.edit_something": "Keisti kažką", + "iris.director.commandedit.director.edit_biome_you_specified": "Keisti nurodytą biomą", + "iris.director.commandedit.param.biome_edit": "Redaguojamas biomas", + "iris.director.commandedit.director.edit_region_you_specified": "Keisti nurodytą regioną", + "iris.director.commandedit.param.region_edit": "Regionas, kurį reikia redaguoti", + "iris.director.commandedit.director.edit_dimension_you_specified": "Keisti nurodytą dimensiją", + "iris.director.commandedit.param.dimension_edit": "Redaguoti dimensiją", + "iris.director.commandfind.director.iris_find_commands": "Iris Rasti komandas", + "iris.director.commandfind.director.find_biome": "Rasti biomą", + "iris.director.commandfind.param.biome_look": "Ieškoti biomo", + "iris.director.commandfind.param.should_you_be_teleported": "Ar jums reikia teleportuoti", + "iris.director.commandfind.director.find_region": "Rasti regioną", + "iris.director.commandfind.param.region_look": "Regionas ieško", + "iris.director.commandfind.param.should_you_be_teleported_2": "Ar jums reikia teleportuoti", + "iris.director.commandfind.director.find_point_interest": "Surask interesų tašką.", + "iris.director.commandfind.param.type_poi_look": "Tipas PoI ieškoti.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Ar jums reikia teleportuoti", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Rasti struktūrą (vanilla klavišas kaip minecraft:village_plains arba minecraft:strongholdarba importuoto rainelės struktūros rakto)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Ieškoma struktūra (e.g. minecraft:village_plains, minecraft:stronghold, Minecraft _ senovės _ miestas)", + "iris.director.commandfind.director.find_object": "Rasti objektą", + "iris.director.commandfind.param.object_look": "Objektas, kurio ieškoti", + "iris.director.commandfind.param.should_you_be_teleported_4": "Ar jums reikia teleportuoti", + "iris.director.commandiris.director.basic_command": "Pagrindinė komanda", + "iris.director.commandiris.director.create_new_world": "Sukurti naują pasaulį", + "iris.director.commandiris.param.name_world_create": "Kuriamo pasaulio pavadinimas", + "iris.director.commandiris.param.dimension_pack_create_world_with": "dimensija / paketas sukurti pasaulį su", + "iris.director.commandiris.param.seed_generate_world_with": "Sėkla generuoti pasaulį su", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Ar automatiškai naudoti šį pasaulį kaip pagrindinį pasaulį", + "iris.director.commandiris.director.teleport_another_world": "Teleportas į kitą pasaulį", + "iris.director.commandiris.param.world_teleport": "Pasaulis teleportui į", + "iris.director.commandiris.param.player_teleport": "Žaidėjas į teleportą", + "iris.director.commandiris.director.print_version_information": "Spausdinti versijos informaciją", + "iris.director.commandiris.director.benchmark_pack": "Lyginamoji pakuotė", + "iris.director.commandiris.param.dimension_benchmark": "Lyginamojo indekso dydis", + "iris.director.commandiris.director.print_world_height_information": "Spausdinti pasaulio aukščio informaciją", + "iris.director.commandiris.director.check_access_all_worlds": "Patikrink priėjimą prie visų pasaulių.", + "iris.director.commandiris.director.remove_iris_world": "Pašalinti Iris pasaulis", + "iris.director.commandiris.param.world_remove": "Pašalinti pasaulį", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Ar taip pat pašalinti aplanką (jei nustatyta klaidinga, tiesiog neįkelia pasaulio)", + "iris.director.commandiris.director.toggle_debug": "Perjungti derinimą", + "iris.director.commandiris.director.download_project": "Atsisiųskite projektą.", + "iris.director.commandiris.param.pack_download": "Siunčiama pakuotė", + "iris.director.commandiris.param.branch_download_from": "@ info: whatsthis", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Ar perrašyti pakuotę su atsisiųstu", + "iris.director.commandiris.director.get_metrics_your_world": "Gauti metrikos savo pasaulį", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Iš naujo įkelti konfigūracijos failą (tai taip pat daroma automatiškai)", + "iris.director.commandiris.director.unload_iris_world": "Įkelti Iris Pasaulis", + "iris.director.commandiris.param.world_unload": "Pasaulis, kurį reikia iškrauti", + "iris.director.commandiris.director.load_iris_world": "Įkelti Iris Pasaulis", + "iris.director.commandiris.param.name_world_load": "Įkelti pasaulio pavadinimą", + "iris.director.commandiris.director.evacuate_iris_world": "Evakuoti rainelės pasaulį", + "iris.director.commandiris.param.evacuate_world": "Evakuoti pasaulį", + "iris.director.commandobject.director.iris_object_manipulation": "Iris objektų manipuliavimas", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Atverti objekto studijos pasaulį (tinklelis kiekvieno objekto; dimensija neprivaloma, numatytosios visų paketų)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Neprivalomas matmuo, kurio objektas pakuotės išdėstyti; praleisti agreguoti objektus iš kiekvienos pakuotės", + "iris.director.commandobject.param.seed_generate_studio_with": "Sėkla generuoti studiją su", + "iris.director.commandobject.director.check_composition_object": "Tikrinti objekto sudėtį", + "iris.director.commandobject.param.object_analyze": "Objektas, kurį reikia analizuoti", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Sumažinti objektą iki mažiausio dydžio", + "iris.director.commandobject.param.object_shrink": "Objektas trauktis", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Auginti organines šakas per baidarę, kad kiekvienas lapas išgyventų vanilla irimo", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Objekto raktas, priešdėlis (medžiai /) arba failų sistemos kelias", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun = tiesa analizuoja tik, rašo nieko", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "pasiekti = N max šakos ilgis blokais iš esamos medienos; toliau lapų klasteriai yra atkaklus vietoj. pasiekimas =0 auga neribotas", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Konvertuoti .schem failus į \"konvertuoti\" aplanką .iob failus.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Gauti miltelius, kurie atskleidžia objektus", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Sutartis pasirinkimas pagal jūsų ieško kryptimi", + "iris.director.commandobject.param.amount_inset_by": "Suma, kurią nustato", + "iris.director.commandobject.director.set_point_1_look": "Nustatyti tašką 1 ieškoti", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Ar naudoti dabartinę poziciją, ar į kurią žiūrite", + "iris.director.commandobject.director.set_point_2_look": "Nustatyti tašką 2 ieškoti", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Ar naudoti dabartinę poziciją, ar į kurią žiūrite", + "iris.director.commandobject.director.paste_object": "Įklijuoti objektą", + "iris.director.commandobject.param.object_paste": "Objektas, kurį reikia įklijuoti", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Ar redaguoti objektą (reikia laikyti lazdelę)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Kiek laipsnių pasukti", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Koeficientas, kuriuo padalinti objekto vietą", + "iris.director.commandobject.param.scale_interpolator_use": "Naudotinas skalės interpoliatorius", + "iris.director.commandobject.director.save_object": "Įrašyti objektą", + "iris.director.commandobject.param.dimension_store_object": "Objektas", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Failas, kuriame jis saugomas, gali naudoti / paaplankiams", + "iris.director.commandobject.param.overwrite_existing_object_files": "Perrašyti esamus objektų failus", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Naudoti palikimą TileState Serializavimas, jei įmanoma", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Perkelti pasirinkimą savo ieško kryptimi", + "iris.director.commandobject.param.amount_shift_by": "Suma, kurią reikia perkelti", + "iris.director.commandobject.director.undo_number_pastes": "Atšaukti kelis įklijavimus", + "iris.director.commandobject.param.amount_pastes_undo": "Atšaukiamų įklijavimų skaičius", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Leidžia objektą lazdelė ir griebs dabartinę WorldEdit atranka.", + "iris.director.commandobject.director.get_object_wand": "Gauti objekto lazdelę", + "iris.director.commandobject.director.autoselect_up_down_out": "automatinis pasirinkimas aukštyn, žemyn & iš", + "iris.director.commandobject.director.autoselect_up_out": "Automatinis išrinkimas & iš", + "iris.director.commandpack.director.pack_validation_maintenance": "Paketo patvirtinimas ir priežiūra", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Patvirtinti pakuotę (arba visas pakuotes) ir iš naujo paskelbti rezultatus", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Patvirtintinas paketo pavadinimas (palikti tuščią visiems)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Peržiūrėti arba taikyti nenaudojamą ištekliaus valymą", + "iris.director.commandpack.param.pack_folder_name_clean": "Paketo aplanko pavadinimas valymui", + "iris.director.commandpack.param.preview_apply": "Peržiūra arba taikymas", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Peržiūra arba paskutinio karantino atnaujinimas", + "iris.director.commandpack.param.pack_folder_name_restore": "Grąžintinas paketo pavadinimas", + "iris.director.commandpack.param.preview_apply_2": "Peržiūra arba taikymas", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Rodyti pakuotės patvirtinimo būseną", + "iris.director.commandpack.param.pack_folder_name": "Paketo aplanko pavadinimas", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Jūsų Iris pasauliai!", + "iris.director.commandpregen.director.pregenerate_world": "Generuoti pasaulį", + "iris.director.commandpregen.param.radius_pregen_blocks": "Blokuose esančio pregeno spindulys", + "iris.director.commandpregen.param.world_pregen": "Pasaulis į pregen", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Prageno centras. Naudokite \"man\" dabartinėje vietoje", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Atidaryti Iris gregen gui", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Generuoti tik vieną gabalą vienu metu", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Sustabdyti aktyvios regeneracijos užduotį", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pristabdyti / tęsti aktyvią regeneracijos užduotį", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Rodyti aktyvaus regeneravimo būseną", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris struktūros įrankiai (indeksas, importas, informacija)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Percentuoti structure-index.json sąrašas visų vanilla, datapack & rainelės struktūros", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Matmuo, kurio pakuotė indeksuota", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importuoti kiekviena struktūra - vanilla ir suvartoti duomenų - į šią pakuotę kaip redaguoti Iris ištekliai, visada perrašymas. Rekonstruoja dėlionės struktūras (kaimus, outposts, datapack jigdiers) kaip redaguojamą baseinas / gabalas grafikai, importuoti kiekvieną struktūros šabloną NBT kaip objektas, ir surenka įvairių šablonų struktūras (laivų avarijas, sugadinti portalai, vandenyno griuvėsiai, apatinė fostilės). Vykdyti po į, kai surijo duomenų apie ir vėl pradėti. Atkurkite gabaliukus arba naudokitės šviežiu pasauliu, kad importuotos kopijos būtų įdėtos.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Dydis, į kurio pakuotę importuoti", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Surinkti kogeneracines struktūras, kurios neturi NBT šablonas (pelkių gaubtukai, igloos ir tt) į redaguoti Iris objektų generuoti kiekvieną į kastuvu nulio pasaulyje ir skaityti atgal savo blokų. Praleidžia struktūras, kurios jau importuoja kaip struktūra, struktūros platesnės / aukštesnės nei užfiksuoti kepurės (tvirtovės, dvarai, paminklai likti vanilla), ir nieko, kad nebus generuoti butas virš pasaulio. Kiekviena užfiksuota struktūra tampa vientisa Iris struktūra galite įdėti iš biomo / regiono / dimensijos \"struktūros\" sąrašą. Automatiškai paleidžiamas kaip paskutinis /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Matmuo, į kurį įdėta pakuotė", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Patikrinti vietinės struktūros tinkamumą ir vietą Iris-įdėti struktūras be blokuoti gimtosios paieškos.", + "iris.director.commandstructure.param.dimension_verify": "Tikrinimo mastas", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Paieškos spindulys chunkais aplink kilmės (didesnis yra daug lėčiau)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Išspręsti rainelės struktūros dėlionės grafiką ir pranešti apie gabalų skaičių & ribos", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Matmenys, kurių pakuotės konstrukcija", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Tikrinamas rainelės struktūros raktas", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Surinkite ir padėkite rainelės struktūrą savo vietoje (studijos bandymas)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Matmenys, kurių pakuotės konstrukcija", + "iris.director.commandstructure.param.iris_structure_key_place": "Raktas į rainelės struktūrą", + "iris.director.commandstudio.director.studio_commands": "Studijos komandos", + "iris.director.commandstudio.director.open_new_studio_world": "Atverti naują studijos pasaulį", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Matmenų paketas, skirtas studijai atidaryti", + "iris.director.commandstudio.param.seed_generate_studio_with": "Sėkla generuoti studiją su", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "vanilla medžių, grybų importas & objektų (ir structures/jigsaw) iš serverio į paketą objects/vanilla aplankas", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "dimensijos paketas vanilla kiekiui importuoti į", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Kiek variantų užfiksuoti medį / objektą funkcija", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Taip pat importuoti vanilę & datapakas structures/jigsaw į pakuotę", + "iris.director.commandstudio.director.open_vscode_dimension": "Atverti VSCode dimensijai", + "iris.director.commandstudio.param.dimension_open_vscode": "Atvira dimensija VSCode yra", + "iris.director.commandstudio.director.close_open_studio_project": "Užverti atvirą studijos projektą", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Perjungti studijų derinimo rezultatų suvestinę", + "iris.director.commandstudio.director.create_new_studio_project": "Sukurti naują studijos projektą", + "iris.director.commandstudio.param.name_this_new_iris_project": "Šio naujo pavadinimas Iris Projektas.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Kopijuoti esamo projekto turinį į savo paketų aplanką ir naudoti jį kaip šabloną šiame naujame projekte.", + "iris.director.commandstudio.director.get_version_pack": "Gauti pakuotės versiją", + "iris.director.commandstudio.param.dimension_get_version": "Matmuo gauti versija", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Atidarykite triukšmo tyrinėtoją (Išorinis GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Neprivalomas pakuotės generatorius peržiūrai", + "iris.director.commandstudio.param.seed_preview_generator_with": "Sėkla peržiūrėti generatorius,", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "@ action: button", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Greitas daiktų įtraukimas į virtualų inventorių (gali sukelti veiklos sumažėjimą)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Ar pridėti prie šiuo metu atidaryto inventoriaus (jei klaidinga, išvalo atidarytą inventorių)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Apskaičiuokite kiekvieno regiono galimybę generuoti", + "iris.director.commandstudio.param.radius_chunks": "Šakutės spindulys", + "iris.director.commandstudio.director.render_world_map_external_gui": "Pervadinti pasaulio žemėlapį (Išorės GUI)", + "iris.director.commandstudio.param.world_open_generator": "Pasaulis atverti generatorius", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Pakuoti dimensiją į suspaustą formatą", + "iris.director.commandstudio.param.dimension_pack_compress": "Matmenų rinkinys, kurį reikia suspausti", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Ar valyti pakuotę", + "iris.director.commandstudio.param.whether_not_minify_pack": "Ar kaltinti pakuotę", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiliai dimensijos veikimą", + "iris.director.commandstudio.param.dimension_profile": "Matmuo iki profilio", + "iris.director.commandstudio.director.spawn_iris_entity": "Sukurti Iris esybę", + "iris.director.commandstudio.param.entity_spawn": "Esybė, kurią reikia sukurti", + "iris.director.commandstudio.param.location_spawn_entity_at": "Vieta, kurioje sukurti esybę", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teleportas į aktyvų studijos pasaulį", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Atnaujinti savo dimensijos projektus VSCode darbo erdvė", + "iris.director.commandstudio.param.dimension_update_workspace": "dimensija, skirta atnaujinti", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Gaudyti IGenData pranešimas apie netoliese esančius gabaliukus", + "iris.director.commandwhat.director.iris_what": "Iris Ką?", + "iris.director.commandwhat.director.what_is_my_hand": "Kas mano rankoje?", + "iris.director.commandwhat.director.what_biome_am_i": "Koks aš biomas?", + "iris.director.commandwhat.director.what_region_am_i": "Kokiame regione aš esu?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Į kokį kvartalą žiūriu?", + "iris.director.commandwhat.director.show_markers_chunk": "Rodyti žymeklius gabalėlyje", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Žymeklio pavadinimas, pavyzdžiui, urvas _ grindys arba lubos", + "iris.modded.help.entry.command.version": "Spausdinti versijos informaciją", + "iris.modded.help.entry.command.info": "Įkeltas sąrašas Iris matmenys ir pakuotės detalės", + "iris.modded.help.entry.command.what": "Apžiūrėkite Iris biomas, regionas, urvas, paviršius ir krūva jūsų vietoje, į bloką jūs žiūrite, jūsų laikomas elementas, arba netoliese žymekliai", + "iris.modded.help.entry.group.find": "Rasti ir teleportuoti į Iris bitai, regionai, objektai, Iris struktūros, vietinės struktūros ir interesų grupės", + "iris.modded.help.entry.command.tp": "Teleportuoti save arba pavadintą žaidėją į pakrautą Iris matmuo", + "iris.modded.help.entry.command.evacuate": "Teleportuoti visus žaidėjus iš Iris matmens į pagrindinio pasaulio atsiradimo vietą", + "iris.modded.help.entry.command.seed": "Rodyti pasaulio ir generatoriaus seed informaciją", + "iris.modded.help.entry.command.debug": "Perjungti Iris Derinti prisijungimą ir įrašymą settings.json", + "iris.modded.help.entry.command.reload": "Įkelti iš naujo settings.json (taip pat įkeliamas automatiškai kas 3s)", + "iris.modded.help.entry.command.download": "Parsisiųsti paketo projektą", + "iris.modded.help.entry.command.metrics": "Spausdinti kartos metrikos savo dabartinę Iris matmuo", + "iris.modded.help.entry.command.regen": "Pašalinti ir regeneruoti netoliese gabaliukus vietoje", + "iris.modded.help.entry.group.pregen": "Regeneruoti Iris matmuo", + "iris.modded.help.entry.command.wand": "Gauti Iris objekto lazdelė", + "iris.modded.help.entry.group.object": "Objektų lazdelės, išsaugojimo, įklijavimo, analizavimo ir atšaukimo įrankiai", + "iris.modded.help.entry.group.edit": "Atverti paketą biome, regione ir dimensijos json failus darbastalio redaktoriuje", + "iris.modded.help.entry.command.create": "Sukurti ir švirkšti nuolatinį Iris dydis; citavimo pakuotė:dimensionKey pasirinkti konkretų pakuotės matmenį", + "iris.modded.help.entry.group.studio": "Pack projekto kūrimas, pakuotė ir ataskaitos", + "iris.modded.help.entry.group.pack": "Paketo patvirtinimas ir priežiūra", + "iris.modded.help.entry.group.world": "Skrydžio laikas Iris dimensijos kūrimas, pašalinimas ir statusas", + "iris.modded.help.entry.group.datapack": "World datapack įdiegti ir būsenos pagalbininkai", + "iris.modded.help.entry.group.structure": "Iris struktūros indeksas, informacija ir diegimo įrankiai", + "iris.modded.help.entry.command.goldenhash": "Sugeneruoti deterministinius bloko smūgius pariteto bandymams", + "iris.modded.help.entry.group.developer": "Kūrėjo diagnostika: Sentry testas, tinklo sąsajos, regionų failų nuskaitymas", + "iris.modded.help.entry.command.biome": "Rasti Iris biomas", + "iris.modded.help.entry.command.region": "Rasti Iris regionas", + "iris.modded.help.entry.command.object": "Rasti objekto vietą", + "iris.modded.help.entry.command.structure": "Rasti Iris-dedamas arba gimtoji / datapack struktūra", + "iris.modded.help.entry.command.poi": "Ieškoti palaikomo susidomėjimo taško", + "iris.modded.help.entry.command.biome_2": "Atidarykite biome json darbastalio redaktoriuje; joks raktas neatveria biome jūsų padėtyje", + "iris.modded.help.entry.command.region_2": "Atidarykite regioną json darbastalio redaktoriuje; joks raktas neatveria regiono jūsų padėtyje", + "iris.modded.help.entry.command.dimension": "Atidaryti dabartinio paketo matmens JSON darbalaukio redaktoriuje", + "iris.modded.help.entry.command.start": "Pradėti precovery; spindulys blokuose, atnaujinamas kontrolinį tašką talpyklos pagal nutylėjimą, centras per \"at ', vėliavos sukurti bet kokia tvarka", + "iris.modded.help.entry.command.stop": "Sustabdyti aktyvios regeneracijos užduotį", + "iris.modded.help.entry.command.pause": "Pristabdyti arba atnaujinti regeneraciją", + "iris.modded.help.entry.command.status": "Rodyti regeneracijos būseną", + "iris.modded.help.entry.command.wand_3": "Gauti Iris objekto lazdelė", + "iris.modded.help.entry.command.dust": "Gauti dulkių, kurios atskleidžia objektų išdėstymus", + "iris.modded.help.entry.command.save": "Įrašyti pasirinktą lazdelės garsumą kaip objektą", + "iris.modded.help.entry.command.paste": "Įklijuoti objektą savo arba nurodytoje vietoje, pasirinktinai pasukus", + "iris.modded.help.entry.command.expand": "Išplėsti lazdelės pasirinkimą savo ieškote kryptimi", + "iris.modded.help.entry.command.contract": "Sutartis lazdelės pasirinkimas jūsų ieško kryptimi", + "iris.modded.help.entry.command.shift": "Shift lazdelės pasirinkimas savo ieško kryptimi", + "iris.modded.help.entry.command.position1": "Nustatyti pasirinkimo tašką 1", + "iris.modded.help.entry.command.position2": "Nustatyti pasirinkimo tašką 2", + "iris.modded.help.entry.command.x_y": "automatinis pasirinkimas up ir išorėn", + "iris.modded.help.entry.command.x_y_2": "automatinis pasirinkimas up, down ir išorėn", + "iris.modded.help.entry.command.analyze": "Rodyti objekto kompoziciją", + "iris.modded.help.entry.command.shrink": "Sumažinti objektą iki mažiausio dydžio", + "iris.modded.help.entry.command.plausibilize": "Auginti šakas, kad medžio lapai išgyventi vanilla irimą", + "iris.modded.help.entry.command.undo": "Atšaukti įklijuotus objektus", + "iris.modded.help.entry.command.create_2": "Sukurti naują paketo projektą", + "iris.modded.help.entry.command.package": "Pakuoti dimensiją į suspaustą formatą", + "iris.modded.help.entry.command.version_2": "Spausdinti pakuotės versiją", + "iris.modded.help.entry.command.regions": "Skaičiuoti netoliese regiono pasiskirstymą", + "iris.modded.help.entry.command.open": "Atverti laikiną studijos dimensiją paketui", + "iris.modded.help.entry.command.close": "Uždaryti atvirą studijos dimensiją ir išmesti savo pasaulį", + "iris.modded.help.entry.command.tpstudio": "Teleportas į atvirą studiją", + "iris.modded.help.entry.command.status_studio": "Rodyti atvirą studijos dimensiją ir jos pakuotę", + "iris.modded.help.entry.command.noise": "Atidarykite triukšmo naršyklę GUI serverio ekrane", + "iris.modded.help.entry.command.map": "Atverti vizijos žemėlapį GUI serverio ekrane", + "iris.modded.help.entry.command.vscode": "Atnaujinkite .code- darbo vietą paketui ir atidarykite ją darbastalio redaktoriuje", + "iris.modded.help.entry.command.update": "Atnaujinti .code- darbo vietos paketą", + "iris.modded.help.entry.command.importvanilla": "Paaiškinkite vanilla importo darbų srautą", + "iris.modded.help.entry.command.validate": "Patvirtinti pakuotę arba kiekvieną pakuotę", + "iris.modded.help.entry.command.cleanup": "Peržiūra arba karantinas nenaudojami ištekliai kandidatai", + "iris.modded.help.entry.command.restore": "Peržiūrėti arba atkurti naujausią karantiną", + "iris.modded.help.entry.command.status_validation": "Rodyti kabineto patvirtinimo būseną", + "iris.modded.help.entry.command.enable": "Sukurti ir švirkšti nuolatinį Iris matmuo kilimo metu; parsisiunčia pakuotę, jei jos nėra, citavimo pakuotę:dimensionKey pasirinkti konkretų pakuotės matmenį", + "iris.modded.help.entry.command.replace_overworld": "Švirkšti Iris pagrindinis pasaulis ir maršruto žaidėjai ten vietoj vanilla pasaulyje", + "iris.modded.help.entry.command.disable": "Evakuoti ir iškrauti Iris dimensija; pasaulio duomenys diske yra saugomi įgalinimui", + "iris.modded.help.entry.command.delete": "Išjungti Iris dimensija ir nušluostyti savo gabalas ir Mantle duomenis iš disko", + "iris.modded.help.entry.command.list": "Įkeltas sąrašas Iris matmenys", + "iris.modded.help.entry.command.status_world": "Rodyti įkeltą Iris matmenys ir sukonfigūruotas pirminis pasaulis", + "iris.modded.help.entry.command.status_datapack": "Pažymėti įkeltą Iris dimensijos tipas viršija", + "iris.modded.help.entry.command.install": "Įdiegti įkelto dimensijos tipo iškyšas Iris matmenys", + "iris.modded.help.entry.command.list_datapacks": "Sukonfigūruotų ir įdiegtų duomenų aplankų sąrašas", + "iris.modded.help.entry.command.ingest": "Paaiškinti Bukkit @ info: tooltip", + "iris.modded.help.entry.command.remove": "Išaiškinti duomenų kaupimo šalinimo darbų srautą", + "iris.modded.help.entry.command.list_structures": "Percentuoti structure-index.json", + "iris.modded.help.entry.command.info_2": "Išspręsti Iris struktūros grafikas ir ataskaitos ribos", + "iris.modded.help.entry.command.place": "Surinkti ir vieta Iris struktūra jūsų vietoje", + "iris.modded.help.entry.command.import": "Paaiškinti Bukkit struktūra importo darbo eiga", + "iris.modded.help.entry.command.capture": "Paaiškinti Bukkit struktūros surinkimo darbų srautas", + "iris.modded.help.entry.command.verify": "Pranešti vietos ir Iris struktūros pasiekiamumas dabartiniame matmenyje", + "iris.modded.help.entry.command.sentry": "Siųsti bandymo išimtį Iris klaidų reporteris", + "iris.modded.help.entry.command.network": "Išvardyti tinklo sąsajas ir jų adresus", + "iris.runtime.progress.finding_regions": "Ieškomi regionai", + "iris.runtime.progress.converting": "Konvertuojama", + "iris.runtime.status.running": "Vykdoma", + "iris.runtime.status.stopped": "Sustabdyta", + "iris.runtime.status.paused": "Pristabdytas", + "iris.runtime.status.paused_lower": "pristabdytas", + "iris.runtime.status.running_lower": "veikia", + "iris.runtime.status.enabled": "įjungta.", + "iris.runtime.status.disabled": "išjungtas.", + "iris.runtime.status.unregistered": "neregistruotas", + "iris.runtime.status.none": "nėra", + "iris.runtime.status.random": "atsitiktinė", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "tiesa", + "iris.runtime.status.false": "klaidinga", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " perrašymas", + "iris.runtime.datapack.override_suffix": " (įdiegtas pasaulinis duomenų valdymas)", + "iris.runtime.primary_world.players_routed_suffix": " (žaidėjai nuriedėjo ten)", + "iris.runtime.primary_world.routing_disabled_suffix": " (maršrutas išjungtas)", + "iris.runtime.modded.no_dimension_match": "Ne Iris matmenų atitikmenys \"{filter}'.", + "iris.runtime.teleport.world": "Jūs buvote teleportuotas į {world}.", + "iris.runtime.engine.hotloaded": "Įkrautas variklis", + "iris.runtime.job.completed": "Baigta {job} yra {duration}", + "iris.runtime.job.scanning_selection": "Skenuojamas žymėjimas", + "iris.runtime.job.loading_chunks": "Įkeliami chunkai", + "iris.runtime.job.searched_chunks": "Ieškota {chunks} Šakutės.", + "iris.runtime.job.compile": "Kompiliuoti", + "iris.runtime.job.saving_object": "Įrašomas objektas", + "iris.runtime.job.downloading": "Atsiunčiama", + "iris.runtime.job.extracting": "Išgavimas", + "iris.runtime.job.installing": "Įdiegiama", + "iris.runtime.compile.iob_empty": "- IOB {file} turi 0 blokus!", + "iris.runtime.compile.iob_empty_hover": "Klaida:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} nėra 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Klaida:\n{path}\nPlotis, aukštis arba gylis yra nulis (blogas formatas)", + "iris.runtime.compile.json_error": "- JSON Klaida {file}", + "iris.runtime.compile.json_error_hover": "Klaida:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Nepavyko rasti krautuvo {path}", + "iris.runtime.datapack.name": "Iris Pasaulinė karta", + "iris.runtime.pack.already_exists": "Paketas jau egzistuoja!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "praleisti {object}: nepavyko įkelti", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} medienos ({branches} filialai), {converted} Lapai->mediena, ~{distances} atstumai", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} medienos ({branches} filialai), {converted} Lapai->mediena, ~{distances} Atstumas!{pinned} Prisegimas", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "nepakankamumas {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Atlikta: {processed} perdirbti, {changed} pasikeitė, {skipped} praleista, {failed} nepavyko", + "iris.runtime.tree_plausibilize.done_dry": "Atlikta: {processed} perdirbti, {changed} pasikeitė, {skipped} praleista, {failed} nepavyko (sauso paleisti, nieko parašyta)", + "iris.runtime.tree_plausibilize.totals": "Iš viso: +{wood} medienos ({branches} filialai), {converted} Lapai->mediena, ~{distances} Atstumas!{pinned} Prikabinamas, nepasiekiamas {before} -> {after}", + "iris.runtime.item.wand.name": "Trukmė Iris", + "iris.runtime.item.wand.lore.first": "Kairėje spustelėkite bloką nustatyti pirmąjį kampą", + "iris.runtime.item.wand.lore.second": "Dešiniuoju pelės mygtuku spustelėkite bloką, kad nustatytumėte antrąjį kampą", + "iris.runtime.item.dust.name": "Išpirkimo dulkės", + "iris.runtime.item.dust.lore": "Dešiniuoju pelės mygtuku spustelėkite bloką, kad būtų atskleista jo išdėstymo struktūra!", + "iris.runtime.wand.position_set": "Padėtis {position} nustatyti {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Šio matmens nesugeneravo Iris.", + "iris.runtime.dust.found_object": "Rastas objektas {object}", + "iris.runtime.dust.revealed": "Atšaldytas {count} blokas (-iai) {object}", + "iris.runtime.dust.revealed_capped": "Atšaldytas {count} blokas (-iai) {object} (riba)", + "iris.runtime.dust.header": "--- Iris Dulkės @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Blokas: {block}", + "iris.runtime.dust.position.above": "Padėtis: +{offset} virš paviršiaus (paviršius Y ={surfaceY})", + "iris.runtime.dust.position.below": "Pareigos: {offset} po paviršiumi (paviršius Y ={surfaceY})", + "iris.runtime.dust.position.at": "Padėtis: paviršiuje (Y ={surfaceY})", + "iris.runtime.dust.object_at_block": "Objektas @ block: {object}", + "iris.runtime.dust.none": "nėra", + "iris.runtime.dust.placed_by.object_above": "Pateikta: objektas / stilt \"{object}\"(virš paviršiaus)", + "iris.runtime.dust.placed_by.decoration_above": "Pateikta: dekoravimas / objektas / stilt (virš paviršiaus)", + "iris.runtime.dust.placed_by.buried_object": "Vieta: palaidotas objektas \"{object}'", + "iris.runtime.dust.placed_by.terrain": "Vieta: reljefo sluoksnis (gylis {depth} žemiau paviršiaus)", + "iris.runtime.dust.column_object": "Stulpelių objektas: {object} -> šis blokas yra tikėtina, kad objekto stilt", + "iris.runtime.dust.column_object_none": "Stulpelių objektas: {detail}", + "iris.runtime.dust.column_none": "nėra 64 (dekoratorius arba reljefas, ne objektas stilt)", + "iris.runtime.dust.column.above": "{object} @Y={y} (pirmiau)", + "iris.runtime.dust.column.below": "{object} @Y={y} (toliau)", + "iris.runtime.dust.surface_biome": "Paviršiaus biomas: {biome}", + "iris.runtime.dust.surface_biome_detail": "Paviršiaus biomas: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @ Y: {biome}", + "iris.runtime.dust.cave_biome": "Cave /Mantle biomas: {biome}", + "iris.runtime.dust.server_biome": "Serverio biomas: {biome} (ID: {id})", + "iris.runtime.dust.region": "Regionas: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objektai gabale: {objects}", + "iris.runtime.dust.copy_button": "[Spustelėkite norėdami nukopijuoti šiuos statistinius duomenis]", + "iris.runtime.dust.copy_hover": "Kopijuoti bloko statistiką į iškarpinę", + "iris.runtime.pregen.starting": "Iris Pregen paleidimas...", + "iris.runtime.pregen.header": "Iris great- britain _ counties. kgm", + "iris.runtime.pregen.bossbar.paused": "Iris great- britain _ counties. kgm {generated}/{total} {percent}% pristabdyta", + "iris.runtime.pregen.bossbar.running": "Iris great- britain _ counties. kgm {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " nepavyko {failed}", + "iris.runtime.pregen.status.context": "Matmuo {dimension} · Metodas {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Šakutės. {generated}/{total} · Greitis {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Šakutės. {generated}/{total} · Greitis {speed}/s · Nepavyko {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Elapsad {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Elapsad {elapsed} · pristabdyta", + "iris.runtime.pregen.button.pause": "Pristabdyti / tęsti", + "iris.runtime.pregen.button.pause.hover": "Perjungti regeneravimo pauzę", + "iris.runtime.pregen.button.stop": "Stabdyti", + "iris.runtime.pregen.button.stop.hover": "Užbaigti dabartinį regioną ir sustabdyti regeneraciją", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cpaketų / aplanko nerasta.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eNėra patvirtintinų paketų.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aPatvirtinimas baigtas. Sulūžusios pakuotės: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPakuotė \"{pack}\"nerasta po packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aJokių išvalymo kandidatų nerasta paketui \"{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aKarantinuoti {size} Išvalyti kandidatą (-us) pagal {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cValymo režimas turi būti peržiūrimas arba taikomas.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aJokių išvalymo kandidatų nerasta paketui \"{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§ePakuotės valymo peržiūra \"{pack}': {size} kandidatas (-ai). Failai nebuvo pakeisti.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Vykdyti /iris pack cleanup {pack} mode=apply po naujo skenavimo šiuos kandidatus laikyti karantine.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cAtstatyti atsisakė, nes {size} paskirties vieta (-os) jau egzistuoja.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNieko, kas atstatytų pakuotę \"{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aAtstatyta {size} failas (-ai) iš {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cAtstatyti režimą turi būti peržiūros arba taikoma.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNieko, kas atstatytų pakuotę \"{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eAtstatyti peržiūrą {dumpPath}: {size} byla (-os). Failai nebuvo pakeisti.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cAtstatyti blokuojamas{size}esama (-os) paskirties vieta (-os).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Vykdyti /iris pack restore {pack} mode=apply atkurti po naujo konflikto patikrinimo.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eNeįrašyti patvirtinimo rezultatai. Vykdyti /iris pack validate Pirma.", + "iris.bukkit.runtime.commandpack.status.ok": "§aGerai§r {pack}§7 (blokavimas ={blocking}, įspėjimai ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBROKENAS§r {pack}§7 (blokavimas ={blocking}, įspėjimai ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cIšvalyti nepavyko: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cAtstatyti nepavyko: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "vis dar karantine", + "iris.bukkit.runtime.commandpack.path.quarantined": "karantinuoti", + "iris.bukkit.runtime.commandpack.path.candidate": "kandidatas", + "iris.bukkit.runtime.commandpack.path.conflict": "konfliktas", + "iris.bukkit.runtime.commandpack.path.restored": "atstatyta", + "iris.bukkit.runtime.commandpack.path.file": "failas", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eNėra patvirtinimo rezultato \"{pack}'. Vykdyti /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cPatvirtinimas \"{name}\"nepavyko: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPakuotė \"{packName}\"yra pakeliamas.§7 (įspėjimai ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPakuotė \"{packName}' sugadinta:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... ir {count} daugiau įspėjimų.", + "one": "§7 ... ir {count} daugiau įspėjimo." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cPrieš naudodami šią funkciją visada sukurkite atsarginę kopiją", + "§eGalimos problemos, be kita ko:", + "§e - Sugadinti chunkai (nutraukti kraštai) tarp senų ir naujų chunkų (prieš atnaujinimą & po jo)", + "§e - Iš naujo sugeneruoti chunkai, nesutampantys su senais chunkų kraštais", + "§e - Regeneruojant pakartotinai neatsirandančios struktūros", + "§e - Nesutampantys urvai", + "§e - Nesutampantys reljefo sluoksniai", + "§cKai suprantate riziką ir turite atsarginę kopiją:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportuojama §f{total}§a vanilla & duomenų kaupimo struktūros (režimas ={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[klaida] {keyString}: neteisingas raktas", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[praleista] {keyString}: nėra vieno šablono NBT - vanilla stato šį kodą arba iš atskirų dalių šablonus (importuoti per šablonų praeiti); nieko importuoti kaip vieną struktūrą.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[klaida] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aNesupakuotų prekių importas baigtas: §f{imported}§a importuotos, §f{skipped}§a praleista, §f{failed}§a nepavyko (§f{total}§a iš viso).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aPastato vieno šablono struktūros iš importuotų vienetų (po vieną variantą kiekvienai kartai)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} variantai)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[praleista] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[klaida] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aVieno šablono struktūros: §f{imported}§a pastatytas, §f{skipped}§a praleista, §f{failed}§a Nepavyko.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cNepavyko surašyti struktūros šablonų per serverį ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eIšteklių kelyje \"struktūra\" nerasta struktūros šablonų.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportuojama §f{total}§a struktūros šablonai (režimas ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[klaida] {keyString}: neteisingas raktas", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[klaida] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importuotos, {skipped} praleista, {failed} nepavyko)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§a@ info: tooltip §f{imported}§a importuotos, §f{skipped}§a praleista, §f{failed}§a nepavyko (§f{total}§a iš viso).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eNeregistruojamos jokios duomenų saugyklos (ne- mikrofonas) struktūros. Paskutinis duomenų ir iš naujo pirmą kartą, tada paleisti tai dar kartą.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportuojama §f{total}§a duomenų kaupimo struktūros (režimas ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[klaida] {keyString}: neteisingas raktas", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[klaida] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportuojama §f{size}§a duomenų rinkinio struktūros šablonai...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[klaida] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[klaida] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eNepavyko per serverį surašyti datapack šablonų ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aDatapack struktūros importas baigtas: §f{imported}§a importuotos, §f{skipped}§a praleista, §f{failed}§a Nepavyko.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eStruktūros fiksavimas nepalaikomas aktyviu NMS privalomas; praleidžia surinkimo praeiti.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Nėra kogeneracinių struktūrų, kurias būtų galima užfiksuoti (viskas jau importuojama kaip struktūra).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aGaudymas §f{total}§a koduoti sukurti statiniai (ne NBT šabloną) į įbrėžimų pasaulyje (praleisti bet platesnę / aukštesnę nei {MAXSPAN} blokai)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[praleista] {key}: nepadėjo apkabinama struktūra čia (per didelis, neteisingas dimensija, arba nėra tinkamas išdėstymas plokščiame pasaulyje). Status vanilla-generated.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[klaida] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[klaida] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} užfiksuoti, {skipped} praleista, {failed} nepavyko)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aStruktūros fiksavimas baigtas: §f{imported}§a užfiksuoti, §f{skipped}§a praleista, §f{failed}§a nepavyko (§f{total}§a iš viso).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eAktyvusis neturi vanilla medžio / objekto savybių NMS privalomas (tik importuojančios struktūros).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportuojama §f{total}§a vanilla medžio / objekto ypatybės (§f{wantVariants}§a variantų kiekvienas) į įbrėžimų pasaulyje...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[praleista] {key}: funkcija įdėti nieko po pakartotinių bandymų.", + "iris.bukkit.runtime.featureimporter.fail": "§c[klaida] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importuotos, {skipped} praleista, {failed} nepavyko)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aAtvaizdų importas baigtas: §f{imported}§a parašytos savybės, §f{skipped}§a praleista, §f{failed}§a nepavyko (§f{total}§a iš viso).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cNepavyko sukurti įbrėžimų pasaulio funkcijų importui ({error}); praleisti medis / objektas praeiti.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Nėra schemų failus konvertuoti rasti {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aKonvertuotas {name} -> {value} yra {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aKonvertuotas {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cNepavyko įrašyti: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cNepavyko konvertuoti: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Konvertuotas: {get} yra {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cKai schemos nepavyko konvertuoti. Patikrinkite konsolės detales.", + "iris.bukkit.runtime.studiosvc.installing_package": "Įdiegiamas paketas: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Ieškoma paketo: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Aplanke {WORKSPACENAME} rastas {type}.iris", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Rasta {type} dimensija {WORKSPACENAME} aplankas. Perpakavimas", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Negaliu rasti {name} šios pakuotės matmenų aplanke! Nepavyko!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Negaliu įkelti dimensijos! Nepavyko!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} įdiegtas tipas. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Pakuotė \"{key}\"nebuvo rasta pakuotės sąraše.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Naudojimas /iris download branch= atsisiųsti rankiniu būdu.", + "iris.bukkit.runtime.studiosvc.failed_download": "Nepavyko atsisiųsti \"{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Nepavyko atsisiųsti IrisDimensions/ overworld beta release.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Nepavyko atsisiųsti \"{repo}'(šaka {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Nepavyko atverti studijos pasaulio: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Nepavyko atverti studijos \"{dimm}\"- pakuotė turi blokavimo klaidų:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Nustatyti pakuotę ir paleisti /iris pack validate {dimm} patvirtinti.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Nepavyko užbaigti esamos studijos projekto: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Nepavyko užbaigti esamos studijos projekto: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Nepavyko atverti studijos pasaulio: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Nepavyko rasti paketo naujam matmeniui sukurti.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Trūksta importuoto dimensijos failo", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importuojama {downloadable} į naują projektą {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Objekto studija: nėra langelio paspaudimu (x ={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObjekto studija: įrašymas §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Objekto studija: nėra pakeitimų {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Objekto studija: tuščias langelis {pack}/{key} (Nėra ką rašyti).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObjekto studija: nėra tikslo failo {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObjekto studija: išsaugota §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObjekto studija: įrašyti nepavyko {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Nepavyko įkelti dimensijos \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Nepavyko gauti dimensijos įkloto", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStudija atsidarė nepavyko: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStudija atsidarė nepavyko.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudija paruošta §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serializuojami objektai", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "įrašyta kitą {g} Objektai", + "iris.bukkit.runtime.irisproject.package_compiled": "Paketas sukompiliuotas!", + "iris.bukkit.runtime.irisproject.failed": "Nepavyko!", + "iris.bukkit.runtime.irisengine.total": "Iš viso: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Variklis §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Detalės: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} nėra apibrėžtas dimensija!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cNepavyko rasti {message} paieškos ribose.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeleportavimas į {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} : {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Jus evakavo iš šio pasaulio.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Jus evakavo iš šio pasaulio. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Yra keletas Iris Pakuotės, kuriose yra standartinių biologinių medžiagų", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Jums reikia iš naujo paleisti savo serverį naudoti šias pakuotes.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Nepakankami leidimai", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Arba nėra pokomandų, arba jūs neturite leidimo jomis naudotis.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parametrai Ignored: {m}", + "iris.runtime.studio.opening": "§6Studio §bATIDAROMA", + "iris.runtime.studio.opening_progress": "§6Studio §bATIDAROMA§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cNEPAVYKO§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aPARUOŠTA§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cNEPAVYKO§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudija paruošta§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Inicijuojama", + "iris.runtime.studio.stage.queued": "Eilėje", + "iris.runtime.studio.stage.resolve_dimension": "Nustatomas matmuo", + "iris.runtime.studio.stage.prepare_world_pack": "Ruošiamas pasaulio paketas", + "iris.runtime.studio.stage.install_datapacks": "Diegiami duomenų paketai", + "iris.runtime.studio.stage.create_world": "Kuriamas pasaulis", + "iris.runtime.studio.stage.apply_world_rules": "Taikomos pasaulio taisyklės", + "iris.runtime.studio.stage.prepare_generator": "Ruošiamas generatorius", + "iris.runtime.studio.stage.request_entry_chunk": "Įkeliamas pradinis chunkas", + "iris.runtime.studio.stage.resolve_safe_entry": "Ieškoma saugios atsiradimo vietos", + "iris.runtime.studio.stage.teleport_player": "Teleportuojama", + "iris.runtime.studio.stage.finalize_open": "Užbaigiama", + "iris.runtime.studio.stage.cleanup": "Valoma", + "iris.runtime.world_create.teleport_failed": "§ePasaulis buvo sukurtas, bet automatinis teleportas nepavyko. Stenkitės /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunkai", + "iris.runtime.world_create.console": "§6Generuojama §e{percent}%§7 {generated}/{required} chunkai§8 ({remaining} kairėje)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fRegeneravimas", + "iris.runtime.world_create.pregen.console": "§6Regeneravimas §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Režen", + "iris.runtime.chunk_job.title.delete": "Trinti", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Pasiruošimas", + "iris.runtime.chunk_job.stage.clearing": "Tarpuskaita", + "iris.runtime.chunk_job.stage.resetting_mantle": "Atstatomasis gaubtas", + "iris.runtime.chunk_job.stage.regenerating": "Atšaukimas", + "iris.runtime.chunk_job.stage.generating": "Generuojama", + "iris.runtime.chunk_job.stage.comparing": "Palyginimas", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnozė", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bDARBAS", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} kastruoja {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} kastruoja {elapsed} ({failures} nepavyko)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aDONAS§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cREIKALAI§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aAtlikta§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cNepavyko§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} užbaigti: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} baigtas su klaidomis: {summary}", + "iris.runtime.golden.no_capture": "Nėra aukso surinkimo ne {path}; paleisti surinkimo pirma.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash nutrauktos: {failed} skiautės nepavyko generuoti. Nėra parašyto aukso failo.", + "one": "GoldenHash nutrauktos: {failed} nepavyko generuoti gabalo. Nėra parašyto aukso failo." + }, + "iris.runtime.golden.failed": "GoldenHash nepavyko: {error}", + "iris.runtime.golden.mantle_reset": "Mantle iš naujo nustatyti ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle Atstatyti nepavyko ({type}); toliau su esama Mantle valstybė.", + "iris.runtime.golden.captured": "Auksas užfiksuotas: {chunks} chunkai kartu ={hash}", + "iris.runtime.golden.wrong_world": "Golden failas skirtas dim={goldenDimension}, seed={goldenSeed}, tačiau šis pasaulis yra dim={dimension}, seed={seed}. Nutraukiama.", + "iris.runtime.golden.version_warning": "Auksas buvo užfiksuotas mc ={goldenVersion}, veikia mc ={version}. Antrankiai gali būti sukelti.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunkai, kartu ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} chunkai skiriasi.", + "iris.runtime.golden.mismatch_chunk": " unit description in lists {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (trūksta aukso)", + "iris.runtime.golden.mismatch_more": " ... ir {count} daugiau", + "iris.runtime.golden.current_written": "Dabartinis Hases parašyta {file}", + "iris.runtime.golden.diag.stable": "Pakartojamas genas STABLE, mant- reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Pakartojamas genas UNSTABLE ({diffs}+ bloko pokyčiai), atstatymas {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (Mantle rekonstruoja skenavimo išvestį)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ difuzijos - Mantle kūrimas priklauso nuo būsenos / tvarkos)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnozė nepavyko: {error}", + "iris.runtime.golden.started": "GoldenHash pradėjo: {chunks} chunkai aplink 0,0 taukšuose (nepaliestas pasaulis), siūlai ={threads} režimas ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] unit description in lists {x},{z} hash", + "iris.runtime.golden.chunk_failed": "Šriftas {x},{z} nepavyko: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Netinkamas pakuotės pavadinimas \"{pack}\"(leidžiama: a- z, 0-9, _ ir -)", + "iris.runtime.pack_download.invalid_branch_name": "Netinkamas filialo pavadinimas \"{branch}\"(leidžiama: raidės, skaitmenys,. _ ir -)", + "iris.runtime.pack_download.failed": "Paketo atsiuntimas nepavyko: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Atsiunčiama {url}", + "iris.runtime.pack_download.failed_to_find": "Nepavyko rasti pakuotės {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Įsitikinkite, kad nurodėte teisingą atpirkimo ir filialas!", + "iris.runtime.pack_download.example_command": "Pavyzdžiui: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Išpakavimas {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Išpakuojama. Prašome patikrinti / atlikti šiuos veiksmus:", + "1. Ar turite veikiantį interneto ryšį?", + "2. Ar parsisiuntimas sugadintas?", + "3. Bandyti ištrinti */plugins/iris/packs aplanką ir iš naujo atsisiųsti.", + "4. Parsisiųsti pakuotę iš GitHub Atpirkimo sandoriai: https://github.com/IrisDimensions/overworld", + "5. Kontaktinė pagalba (jei visos kitos galimybės nepadeda)" + ], + "iris.runtime.pack_download.no_extracted_files": "Iš \"zip\" failo nebuvo paimta jokių failų.", + "iris.runtime.pack_download.home_directory_error": "Klaida ieškant namų aplanko. Ar failo pavadinime yra ne teksto simbolių?", + "iris.runtime.pack_download.invalid_archive_format": "Neteisingas formatas. Trūksta šakninio aplanko arba per daug aplankų!", + "iris.runtime.pack_download.no_dimension_file": "Ištrauktame zip faile nėra dimensijos failo.", + "iris.runtime.pack_download.check_github": "Patikrinkite, ar jis yra GitHub ir pranešti apie tai darbuotojams!", + "iris.runtime.pack_download.one_dimension_required": "Išmatavimai aplanke turi būti tiksliai vienas failas.", + "iris.runtime.pack_download.invalid_dimension": "Netinkamas dimensijos aplankas pagal dimensions/.", + "iris.runtime.pack_download.importing": "Importuojama {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Kitas matmuo paketų aplanke jau naudoja raktą {key}. Importuoti nepavyko!", + "iris.runtime.pack_download.pack_key_conflict": "Kita pakuotė naudoja raktą {key}. Importuoti nepavyko!", + "iris.runtime.pack_download.acquired": "Sėkmingai įgyta {name}.", + "iris.runtime.pack_download.validation_failed": "Pakuotė \"{pack}\"nepavyko patvirtinimas; pasaulio ir Studio kūrimas bus atsisakyta. Motyvai:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pakuotė \"{pack}\"patvirtinta {count} įspėjimai.", + "one": "Pakuotė \"{pack}\"patvirtinta {count} įspėjimas." + }, + "iris.runtime.pack_download.validated": "Pakuotė \"{pack}\"patvirtintas.", + "iris.client.vision.title": "Iris Regėjimas", + "iris.client.vision.connecting": "Jungiamasi prie Iris serveris...", + "iris.client.vision.not_connected": "neprijungta", + "iris.client.vision.not_iris_world": "Ne Iris pasaulis", + "iris.client.vision.no_dimension_data": "Nėra matmenų duomenų", + "iris.client.vision.header_detail": "{status} priartinimas {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Vilkti į visos slinkti iki didinimo Esc uždaryti", + "iris.client.vision.dimension_pack": "{dimension} pakuotė {pack}", + "iris.client.toast.studio_hotload": "Studija Hotload", + "iris.client.toast.changed_files": { + "other": "{count} failai", + "one": "{count} failas" + }, + "iris.client.toast.reload_failed": "įkelti nepavyko", + "iris.client.toast.reloaded": "įkelta iš naujo", + "iris.client.toast.pack_failed": "{pack} nepavyko", + "iris.client.what.title": "Iris Kas", + "iris.client.what.querying": "Užklausa {x}, {z}...", + "iris.client.what.biome": "Biomas: {biome}", + "iris.client.what.region": "Regionas: {region}", + "iris.client.what.cave": "Cava: {cave}", + "iris.client.what.height": "Aukštis: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "pristabdyta", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIlis", + "iris.bukkit.scoreboard.speed": "§aGreitis§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bDėlionė§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantlas§7: {count}", + "iris.bukkit.scoreboard.carving": "§dRaižyti§7: {state}", + "iris.bukkit.scoreboard.region": "§bRegionas§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiomas§7: {biome}", + "iris.bukkit.scoreboard.height": "§bAukštis§7: {height}", + "iris.bukkit.scoreboard.slope": "§bSpop§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBID/s§7: {updates}", + "iris.desktop.vision.title": "Iris Regėjimas", + "iris.desktop.vision.view": "Rodymas:", + "iris.desktop.vision.grid": "Tinklelis", + "iris.desktop.vision.follow": "Sekti", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Atnaujinimas", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Mastelis iš naujo", + "iris.desktop.vision.grid_enabled": "Tinklelis įjungtas", + "iris.desktop.vision.grid_disabled": "Tinklelis išjungtas", + "iris.desktop.vision.following": "Sekamas {player}", + "iris.desktop.vision.no_player": "Jokio žaidėjo pasaulyje", + "iris.desktop.vision.follow_disabled": "Sekti išjungtą", + "iris.desktop.vision.low_quality": "Žemos kokybės", + "iris.desktop.vision.high_quality": "Aukšta kokybė", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp. {width} x {height} blokai", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Pareigos: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Sveikata: {health} / {maximum}", + "iris.desktop.vision.block_position": "Blokas {x}, {z}", + "iris.desktop.vision.chunk_position": "Šriftas {x}, {z}", + "iris.desktop.vision.region_position": "Regionas {x}, {z}", + "iris.desktop.vision.biome_key": "Raktas: {key}", + "iris.desktop.vision.biome_file": "Failas: {file}", + "iris.desktop.vision.velocity": "Greitis: {velocity}", + "iris.desktop.vision.tiles": "Plytelės: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Darbuotojai: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centras: {x}, {z}", + "iris.desktop.vision.help.toggle": "Perjungti pagalbą", + "iris.desktop.vision.help.refresh": "Atnaujinti", + "iris.desktop.vision.help.follow": "Sekite grotuvą", + "iris.desktop.vision.help.zoom": "Mastelis", + "iris.desktop.vision.help.reset_zoom": "Atstatyti mastelį", + "iris.desktop.vision.help.cycle_mode": "Ciklo pateikimo veiksena", + "iris.desktop.vision.help.quality": "Perjungti plytelių kokybę", + "iris.desktop.vision.help.fps": "Perjungti 30/60 FPS", + "iris.desktop.vision.help.grid": "Perjungti tinklelį", + "iris.desktop.vision.help.biome": "Detali biomo informacija", + "iris.desktop.vision.help.teleport": "Teleportuoti žymeklį", + "iris.desktop.vision.help.editor": "Atverti biomą redaktoriuje", + "iris.desktop.vision.opened": "Atidaryta {target}", + "iris.desktop.vision.teleporting": "Teleportavimas į {x}, {z}", + "iris.desktop.vision.mode.biome": "Biomas", + "iris.desktop.vision.mode.biome_land": "Biomasės žemė", + "iris.desktop.vision.mode.biome_sea": "Biominė jūra", + "iris.desktop.vision.mode.region": "Regionas", + "iris.desktop.vision.mode.cave_land": "Kavos žemė", + "iris.desktop.vision.mode.height": "Aukštis", + "iris.desktop.vision.mode.object_load": "Objekto apkrova", + "iris.desktop.vision.mode.decorator_load": "Decorator apkrova", + "iris.desktop.vision.mode.continent": "Continental", + "iris.desktop.vision.mode.layer_load": "Sluoksnio apkrova", + "iris.desktop.noise.title": "Triukšmo Explorer", + "iris.desktop.noise.title_generator": "Triukšmo naršyklė: {generator}", + "iris.desktop.noise.search": "Ieškoti...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} 124; didinimas: {zoom} SmithKline 124; Vertė: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Pasirinkta", + "iris.desktop.noise.category.pack_generators": "Pakuočių generatoriai", + "iris.desktop.noise.category.simplex": "Seplex", + "iris.desktop.noise.category.perlin": "Perlinas", + "iris.desktop.noise.category.cellular": "Akytasis", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Dobilas", + "iris.desktop.noise.category.hexagon": "Heksagonas", + "iris.desktop.noise.category.vascular": "Kraujagyslių sutrikimai", + "iris.desktop.noise.category.globe": "\"Globe\"", + "iris.desktop.noise.category.cubic": "Kubinis", + "iris.desktop.noise.category.fractal": "Fraktalas", + "iris.desktop.noise.category.static": "Statinis", + "iris.desktop.noise.category.nowhere": "Niekur", + "iris.desktop.noise.category.sierpinski": "Sierpinskis", + "iris.desktop.noise.category.utility": "Naudingumas", + "iris.desktop.noise.category.other": "Kita", + "iris.desktop.pregen.initializing": "Inicijuojama...", + "iris.desktop.pregen.title": "Comment", + "iris.desktop.pregen.method_pending": "Laukiama", + "iris.desktop.pregen.paused": "pristabdyta", + "iris.desktop.pregen.resume_hint": "Paspauskite P norėdami atnaujinti", + "iris.desktop.pregen.pause_hint": "Paspauskite P pristabdyti", + "iris.desktop.pregen.progress_paused": "pristabdyta {generated} iš {total} ({percent} užbaigti)", + "iris.desktop.pregen.progress_saving": "Taupoma... {generated} iš {total} ({percent} užbaigti)", + "iris.desktop.pregen.progress_generating": "Generuojama {generated} iš {total} ({percent} užbaigti)", + "iris.desktop.pregen.speed": "Greitis: {chunksPerSecond} chunkai/s, {regionsPerMinute} regionai / m, {chunksPerMinute} chunkai / m", + "iris.desktop.pregen.speed_cached": "Greitis: cached {chunksPerSecond} chunkai/s, {regionsPerMinute} regionai / m, {chunksPerMinute} chunkai / m", + "iris.desktop.pregen.time": "{remaining} likę ({elapsed} praėjo)", + "iris.desktop.pregen.method": "Gamybos būdas: {method}", + "iris.desktop.pregen.memory": "Atmintis: {used} ({usage}) Slėgis: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/nl_NL.json b/core/src/main/resources/languages/nl_NL.json new file mode 100644 index 000000000..8d4466573 --- /dev/null +++ b/core/src/main/resources/languages/nl_NL.json @@ -0,0 +1,1435 @@ +{ + "locale": "nl_NL", + "messages": { + "director.help.navigation.parent.hover": "Terug naar de bovenliggende opdrachtgroep", + "director.help.navigation.back": "Terug", + "director.help.no_subcommands": "Geen subopdrachten op deze pagina.", + "director.help.no_description": "Geen beschrijving opgegeven", + "director.help.aliases": "Aliassen", + "director.help.command_group": "Opdrachtgroep. Klik om te openen.", + "director.help.no_parameters": "Geen parameters. Klik om de opdracht vooraf in te vullen.", + "director.help.parameters": "Parameters", + "director.help.parameter.required": "verplicht", + "director.help.parameter.optional": "optioneel", + "director.help.parameter.default": "standaard", + "director.help.navigation.previous.hover": "Vorige pagina", + "director.help.navigation.next.hover": "Volgende pagina", + "director.help.navigation.page": "Pagina", + "director.runtime.error.invalid_origin": "Deze opdracht kan niet vanuit deze bron worden uitgevoerd.", + "director.runtime.error.unknown_parameter": "Onbekende parametersleutel: {key}", + "director.runtime.error.unexpected_argument": "Onverwacht argument \"{argument}\". Optionele parameters moeten met een sleutel worden opgegeven, bijv. seed=123", + "director.runtime.error.conversion_failed": "Kan \"{value}\" voor {parameter} niet naar {type} converteren", + "director.runtime.error.default_parse_failed": "Kan de standaardwaarde voor parameter {parameter} niet verwerken", + "director.runtime.error.missing_argument": "Ontbrekend argument \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Opdracht {command} kon niet worden uitgevoerd: {reason}", + "director.runtime.usage": "Gebruik: {usage}", + "iris.command.permission_denied": "Je hebt niet de vereiste permissie '{permission}'", + "iris.command.unknown": "Onbekende Iris-opdracht", + "iris.command.player_only": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.command.iris_world_required": "Deze dimensie is niet door Iris gegenereerd.", + "iris.command.reload.success": "De instellingen en taal {locale} zijn opnieuw geladen.", + "iris.command.reload.failed": "De instellingen zijn opnieuw geladen, maar taal {locale} is geweigerd; {activeLocale} blijft actief.", + "iris.modded.help.unknown_section": "Onbekend Iris help sectie: {section}", + "iris.modded.help.back_hover": "Terug naar {parent}.", + "iris.modded.help.command_parameter": "Opdrachtparameter", + "iris.modded.help.parameter_required": "Deze parameter is vereist.", + "iris.modded.help.parameter_optional": "Deze parameter is optioneel.", + "iris.modded.help.brigadier_text": "Deze parameter wordt gelezen als tekst door Brigadier.", + "iris.modded.help.operator_notice": "Iris commando's hebben toestemming van de exploitant nodig (niveau 2).", + "iris.modded.help.operator_instruction": "Start {command} vanaf de console (of schakel bedrog in singleplayer in); tot dan zullen deze commando's niet draaien of tab-compleet zijn.", + "iris.modded.command.properties.none": "Eigenschappen: (geen)", + "iris.modded.command.properties.list": "Eigenschappen: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Beginnen met datapacken...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aGeconfigureerde datapack import: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aGeïnstalleerde datapacks: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eVoeg toe Modrinth URLs naar een dimensie 'datapackImports' lijst, dan uitvoeren /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash gestart: {value} chunks...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash mislukt bij chunk {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash globaal=§6{value}§a chunks={value2} solide={solidBlocks} in {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Niet in een Iris Wereld!", + "iris.bukkit.commandfind.unknown_structure": "§cOnbekende structuur: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Doe dit in het spel om te teleporteren naar een structuur.", + "iris.bukkit.commandfind.locating": "§7Localiseren {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Doe dit in het spel om te teleporteren naar een structuur.", + "iris.bukkit.commandfind.locating_2": "§7Localiseren {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeleporteren naar {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aWereldmap succesvol verwijderd", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aWereldmap succesvol verwijderd", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cVerwijderen van wereldmap is mislukt", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cEr zijn geen pakketten met objecten gevonden op deze server.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cGeen objecten te plaatsen in het geselecteerde pakket(s).", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aObjectstudio openen voor {scope} ({totalObjects} objecten)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cOpenen van objectstudio mislukt: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cU moet een pakketnaam opgeven.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cVerpakking{pack}' niet gevonden onder packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... en {value} Meer.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aControleren van structuren in §f{value}§a van {value2},{value3} binnen {searchRadius} chunks...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImporteren vanilla-inhoud in §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla voltooid: §f{imported}§a objects/structures schriftelijk, §f{failed}§a mislukt.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Bomen/objecten onder objects/vanilla/...; referentie van biome object plaatsingen.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cGeen open studio projecten.", + "iris.bukkit.commandstudio.closing_studio": "§eStudio sluiten...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStudio sluiten mislukt: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStudio sluiten mislukt: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio gesloten. Resterende wereld-familie opruiming werd in de wachtrij voor startup terugval.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio gesloten.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cJe moet in een Studio wereld zijn om het debug scorebord te schakelen.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio debug scorebord {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cKon het Studio debug scorebord nu niet bijwerken.", + "iris.bukkit.commandstudio.opened_inventory": "§aOpen inventaris!", + "iris.bukkit.commandstudio.generating_data": "§7Gegevens aanmaken...", + "iris.bukkit.commandstudio.done": "§aKlaar!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Je hebt geen toestemming.{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Status", + "iris.bukkit.irisenginestatus.service": "§5- Dienst: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5Metrics: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Onderhoudsperiode: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Werknemersparallelisme: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Actieve wereldtaken: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tektonische platen:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Configureerde bewaring: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heftig gebruik: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Inwoner: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- Wachtwoord: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Gemiddelde stationaire duur: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Max. Inschakelduur: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Min Idle Duur: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Cache:", + "iris.bukkit.irisenginestatus.resource": "§5- Hulpbron: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 2D-stroom: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 3D-stroom: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- andere: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5andere:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Werelden: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Geladen Chunks: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cDe wereld is nul.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cDoel Iris wereld voor het lezen van een Mantle dump.", + "iris.bukkit.commanddeveloper.upgrading": "§aOpwaardering naar {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aKlaar met upgraden! U kunt nu uw server versie updaten naar {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cStraal moet 0 of groter.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cDit is geen Iris wereld.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cDe toegang tot de motor voor deze wereld is nul.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aVerwijderen gestart: §6{chunks}§a chunk(s) rond §6{centerX},{centerZ}§a. Blokken in de lucht.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cStraal moet 0 of groter.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cJe moet in een Iris Wereld om Regen te gebruiken.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cDe toegang tot de motor voor deze wereld is nul. Genereer eerst chunks in de buurt.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen begon: §6{chunks}§a chunk(s) rond §6{centerX},{centerZ}§a. Verwijderen en regenereren op zijn plaats.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cStraal moet 0 of groter.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cDoel moet een Iris wereld.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cDe toegang tot de motor voor deze wereld is nul.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash begon: §6{chunks}§a chunk(s) rond §6{centerX},{centerZ}§a in buffers (onaangeroerde wereld).", + "iris.bukkit.commandedit.players_only": "§cAlleen spelers!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cGeen enkele studiowereld is open!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cJe moet in een studio wereld zijn!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cKan bestanden niet openen in hoofdloze omgevingen!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cDesktop wordt niet ondersteund door deze omgeving!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Kan het bestand niet vinden; Misschien is het niet direct vanuit een bestand geladen?", + "iris.bukkit.commandedit.opening_vscode": "§aOpenen {value} {value2} de VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cCant vind het dossier. Of registrant bestaat niet", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Kan het bestand niet vinden; Misschien is het niet direct vanuit een bestand geladen?", + "iris.bukkit.commandedit.opening_vscode_2": "§aOpenen {value} {value2} de VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cCant vind het dossier. Of registrant bestaat niet", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Kan het bestand niet vinden; Misschien is het niet direct vanuit een bestand geladen?", + "iris.bukkit.commandedit.opening_vscode_3": "§aOpenen {value} {value2} de VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cCant vind het dossier. Of registrant bestaat niet", + "iris.bukkit.commandfind.not_iris_world_5": "§6Niet in een Iris Wereld!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Niet in een Iris Wereld!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Niet in een Iris Wereld!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Niet in een Iris Wereld!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: teleporteren naar {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} is niet geconfigureerd in een regio/biome object plaatsingen.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cJe kunt de wereldnaam \"iris\" niet gebruiken, omdat Iris deze map voor Studio-werelden gebruikt.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cMogen we de naam voorstellen \"IrisWorldIn plaats daarvan?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cJe kunt de wereldnaam \"benchmark\" niet gebruiken, omdat Iris deze map voor benchmarkpakketten gebruikt.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cMogen we de naam voorstellen \"IrisWorldIn plaats daarvan?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cDie map bestaat al!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cKon dimensie niet vinden of downloaden \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eProbeer een van: overwereld, vanilla, plat, einde", + "iris.bukkit.commandiris.download_manually_iris_download": "§eOf handmatig downloaden: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aVoorbereiding van de wereld voltooid. Herstart de server om \"{worldName}\" te genereren/laden.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cUitzondering bij de schepping. Zie de console voor meer details.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aSuccesvol jullie wereld gecreëerd!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aUw wereld wordt automatisch ingesteld als de belangrijkste wereld wanneer de server herstart.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eRuntime wereld creatie is uitgeschakeld op Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eVoorbereiden van wereldbestanden en bukkit.yml voor volgende opstart...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cKon wereldbestanden voor dimensie niet stagen \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aBijgewerkt server.properties niveau-naam aan \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cWereld werd opgevoerd, maar kon niet bijwerken server.properties De belangrijkste wereld.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris-wereld \"{name}\" voorbereid met generator Iris:{value} en seed {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aDeze wereld is nu geconfigureerd als hoofd voor volgende herstart.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cBijwerken is mislukt bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cDe opgegeven speler bestaat niet.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris /{value} door Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} tot {value2}", + "iris.bukkit.commandiris.total_height": "§aTotale hoogte: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris Worlds. ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit-werelden: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cDit is geen Iris wereld. Iris werelden: {value}", + "iris.bukkit.commandiris.removing_world": "§aWereld verwijderen: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cOntruimen van de wereld is mislukt: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cUitladen van wereld is mislukt: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aMet succes verwijderd {value} van bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eHet lijkt erop dat de wereld al verwijderd was van bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cOpslaan is mislukt bukkit.yml vanwege {value}", + "iris.bukkit.commandiris.set_debug": "§aDebug instellen op: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aDownloadpakket: {pack} (beta vrijgeven){value}", + "iris.bukkit.commandiris.downloading_pack": "§aDownloadpakket: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cJe moet in een Iris wereld", + "iris.bukkit.commandiris.sending_metrics": "§aVerzenden van statistieken...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cDit is geen Iris wereld. Iris werelden: {value}", + "iris.bukkit.commandiris.unloading_world": "§aWereld ontladen: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aWereld met succes gelost.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cKon de wereld niet lossen.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cUitladen van de wereld is mislukt: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Bestaat niet op de server.", + "iris.bukkit.commandiris.generator": "§9Generator {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} is geen iris wereld.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cKon niet bepalen Iris dimensie voor {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aLaadwereld: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia kan geen nieuwe werelden laden op runtime. Herstart de server om \" te laden{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} geladen.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cDit is geen Iris wereld. Iris werelden: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvacuatiewereld{value}", + "iris.bukkit.commandobject.object_size": "Objectgrootte: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Gebruikte blokken: {value}", + "iris.bukkit.commandobject.blocks_object": "== Blokken in object ==", + "iris.bukkit.commandobject.other_block_types": " + {value} andere bloktypen", + "iris.bukkit.commandobject.current_object_size": "Huidige objectgrootte: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Nieuw objectgrootte: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Opslaan van object is mislukt {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cGeen objecten gevonden: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibiliseer [reach={reach}{value}] wachtrij {value2} object(s)", + "iris.bukkit.commandobject.hold_your_wand": "Hou je staf vast.", + "iris.bukkit.commandobject.no_area_selected": "Geen gebied geselecteerd.", + "iris.bukkit.commandobject.ready_your_wand": "Maak je toverstok klaar.", + "iris.bukkit.commandobject.ready_your_wand_2": "Maak je toverstok klaar.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eDe aangegeven schaal is hoger dan het maximum. Gedownschaald tot maximaal: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Bijgewerkte toverstok voor objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Gegeven nieuwe toverstok voor objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Bijgewerkte toverstok voor objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aGeplaatst {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eJe moet je staf vasthouden!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cBestand bestaat al. Zet overwrite=true om het te overschrijven.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cOpslaan van object is mislukt vanwege een IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aSuccesvol bezwaar tegen opslaan: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Hou je staf vast.", + "iris.bukkit.commandobject.no_area_selected_2": "Geen gebied geselecteerd.", + "iris.bukkit.commandobject.reverted_pastes": "§9{actualReverts}§9 plakbewerkingen ongedaan gemaakt!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cJe krijgt geen WorldEdit selectie zonder WorldEditJe weet wel.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cJe hebt geen WorldEdit selectie in deze wereld.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aEen verse toverstok met je stroom WorldEdit selectie erop!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPoef! Succes met bouwen.", + "iris.bukkit.commandobject.hold_your_wand_3": "§eHou je staf vast.", + "iris.bukkit.commandobject.no_area_selected_3": "Geen gebied geselecteerd.", + "iris.bukkit.commandobject.auto_select_complete": "§aAutomatisch selecteren voltooid!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eHou je staf vast.", + "iris.bukkit.commandobject.no_area_selected_4": "Geen gebied geselecteerd.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAutomatisch selecteren voltooid!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen radius moet groter zijn dan nul blokken.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cStrikt seriële pregeneratie vereist Paper of een Paper-compatibele server.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cDe toegang tot de motor voor deze wereld is nul!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cZorg ervoor dat de wereld geladen is & de motor is geïnitialiseerd. Genereer bijvoorbeeld een nieuwe chunk.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cHet starten van de pregeneratie is mislukt. Zie console voor details.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eGeen actieve pregeneratietaken om te stoppen", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aDe pauzestand van de pregeneratietaak is omgeschakeld. Huidige stand: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eGeen actieve pregeneratietaken om te pauzeren/ontspannen.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eGeen actieve pregeneratie taak.", + "iris.bukkit.commandpregen.pregen": "§aVoorbereiding §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aSnelheid: §6{value}/s§a ETA: §6{value2}§a Vervallen: §6{value3}§a Methode: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aSchreef structuurindex: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aAlle vanilla importeren & datapack structuren in §f{value}§a (overschrijven)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImporteren voltooid: §f{imported}§a structures/objects schriftelijk, §f{failed}§a mislukt.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Refereer ze vanuit een lijst met biome/regio's/dimensiestructuren, of voer ze uit /iris structure list {value} om de index te vernieuwen. Regenereer chunks voor veranderingen die van kracht worden.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Gevangen {value} structuren. Plaats ze van een 'structuren' lijst en regenereer chunks. Verwijderen structures/*.json om het te heroveren.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cNiet geladen Iris wereld gevonden voor {value}. Sluit je aan of creëer er een eerste (de zoektocht loopt tegen een levende wereld).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cDe geselecteerde Iris De wereld heeft geen actieve generatormotor.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cGeen irisstructuur '{structure}' in deze verpakking", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cStructuur{structure}' gemonteerd 0 stuks (controleren startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStructuur{structure}': §f{value}§a stukken, voetafdruk §f{value2}x{value3}§a blokken (monsterzaad 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cGeen irisstructuur '{structure}' in deze verpakking", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cStructuur{structure}' gemonteerd 0 stuks", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aGeplaatst '{structure}' ({value} stukken) op uw locatie.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aopenen studio voor de \"{value}\" verpakking (zaad: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cGeef een maatpakket: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cKon het pakket voor dimensie niet oplossen {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aOpenen VSCode voor de \"{value}\" verpakking", + "iris.bukkit.commandstudio.pack_has_version": "§aDe \"{value}\" pack heeft versie: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aOpenen van Noise Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cKan items niet toevoegen aan virtuele inventaris vanwege: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aOpen de inventaris nu!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cWerkt alleen in een Iris wereld!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cU moet in of specificeren een Iris-Gegenereerde wereld!", + "iris.bukkit.commandstudio.opening_map": "§aOpen kaart!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Berekenen van prestatiemetrics voor geluidsgeneratoren", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Berekenen van de timing van Interpolator...", + "iris.bukkit.commandstudio.processing_generator_scores": "Verwerking Generator Scores: ", + "iris.bukkit.commandstudio.score": "Scoor: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aKlaar! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cJe moet in een Iris-wereld zijn om entiteiten correct te spawnen. Er wordt geprobeerd ze zo goed mogelijk te spawnen.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cGeen enkele studiowereld is open!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cJe bent al in een studio wereld!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aIk stuur je naar de studiowereld.", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Bijwerken Code Werkblad voor {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aBijgewerkte code werkblad voor {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cOngeldig project: {value}. Probeer het code-werkruimte bestand te verwijderen en probeer opnieuw.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cJe moet in een Iris wereld", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Je moet in een iriswereld zijn.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Vangen IGenData van {value} In de buurt.", + "iris.bukkit.commandstudio.reported": "Gerapporteerd aan: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cU moet de server gestart hebben GUIs ingeschakeld in de instellingen!", + "iris.bukkit.commandstudio.players_only": "§cAlleen spelers!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cGeen enkele studiowereld is open!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cJe moet in een studio wereld zijn!", + "iris.bukkit.commandwhat.material": "Materiaal: §a{value}", + "iris.bukkit.commandwhat.full": "Volledig: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Een blok/item vasthouden", + "iris.bukkit.commandwhat.material_2": "Materiaal: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Een blok/item vasthouden", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "NietIris Biome {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Gegevenspakket Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aAlleen Iris werelden.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Kijk naar elk blok, niet naar de lucht.", + "iris.bukkit.commandwhat.material_3": "Materiaal: §a{value}", + "iris.bukkit.commandwhat.full_2": "Volledig: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Opslagblok (Loot Capable)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Lit Block (Licht)", + "iris.bukkit.commandwhat.foliage_block": "§eFoliage Block", + "iris.bukkit.commandwhat.decorant_block": "§e* Decorant blok", + "iris.bukkit.commandwhat.fluid_block": "§e* Fluidblock", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Plantbaar Foliage Block", + "iris.bukkit.commandwhat.solid_block": "§e* Solide Block", + "iris.bukkit.commandwhat.found_nearby_markers": "Gevonden {value} Markers in de buurt ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aAlleen Iris werelden.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Console moet een biome noemen: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Opzoeken van biome mislukt: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Onbekend biome: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Console moet een regio noemen: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Opzoeken van regio mislukt: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Onbekend gebied: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Kan hier geen bestanden openen: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Kan het bestand niet vinden; is het misschien niet direct vanuit een bestand geladen?", + "iris.modded.irismoddedcommands.could_not_open": "Kon niet openen {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Openen {value} {value2} in uw redacteur.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Console moet een speler een naam geven: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} wordt niet gegenereerd door Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleporteren mislukt: dimensie {dimensionId} is niet geladen.", + "iris.modded.irismoddedcommands.teleporting": "Teleporteren {value} tot {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} wordt niet gegenereerd door Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Kan de primaire wereld niet evacueren; er is geen plek om spelers te sturen.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Ontruimd {count} speler(s) van {value} tot {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Debug instellen op: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Hotload instellingen", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Dit commando kan alleen gebruikt worden door spelers (het controleert uw vastgehouden item).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Je hoofdhand is leeg.", + "iris.modded.irismoddedcommands.hand_x": "Hand. {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} wordt niet gegenereerd door Iris; zie /iris info voor geladen Iris afmetingen.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "De huidige dimensie ({value}) wordt niet gegenereerd door Iris. Noem er expliciet één: /iris pregen start {radius} ; zie /iris info voor geladen Iris afmetingen.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Een pregeneratie taak loopt al. Stop het eerst met /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen begon in {value} van {value2} door {value3} blokken van {centerX},{centerZ}.{modeNote} Voortgangslogboeken naar console; zie /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Stoppen met pregeneratie; afronden van de huidige regio...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Geen actieve pregeneratietaak om te stoppen.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Geen actieve pregeneratietaak om te pauzeren/hervatten.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Pregeneratie is nu {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Geen actieve pregeneratie taak.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} door Volmit Software op {value2} (Minecraft {value3}), {engines} Iris dimensie(s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Geladen afmetingen: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.biome": "Biome {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Opzoeken van biome mislukt: {value}", + "iris.modded.irismoddedcommands.region": "Regio: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Opzoeken van regio mislukt: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Grot biome: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Cave biome opzoeken mislukt: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Oppervlakteblok: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Positie: {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Dit commando kan alleen gebruikt worden door spelers (het controleert het blok waar je naar kijkt).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Kijk naar een blok, niet de lucht.", + "iris.modded.irismoddedcommands.block_y": "Blok: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Dit commando kan alleen gebruikt worden door spelers (merkers renderen als deeltjes om je heen).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Scannen naar '{marker}' markers om je heen...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Markeringsscan mislukt: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Gevonden {value} nabijgelegen marker(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Onbekend biome: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.unknown_region_2": "Onbekend gebied: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} is niet gedefinieerd in de dimensie!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} is niet geconfigureerd in een regio/bioome object plaatsingen ({value} objectsleutels geladen).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Dit commando kan alleen gebruikt worden door spelers. (object key '{key}' opgelost tegen {value} geladen objectsleutels)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Naam en Iris of inheemse structuur te lokaliseren.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Onbekende structuur '{key}'. Tabbladaanvulling gebruiken om een Iris plaatsing of een geregistreerde native/datapack structuur.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Zoeken naar eigen structuur {value} binnen {NATIVESTRUCTURELOCATERADIUS} chunks...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Zoeken naar Iris- Geplaatste structuur {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Kon niet lokaliseren Iris- Geplaatste structuur {key}: de limiet voor het zoeken naar dichtheid werd bereikt vóór de volledige 1024- Er is gezocht.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Kon niet vinden Iris- Geplaatste structuur {key} binnen 1024 Brokken.", + "iris.modded.irismoddedcommands.search_failed": "Zoeken mislukt: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Kon oorspronkelijke structuur niet vinden {value} binnen {NATIVESTRUCTURELOCATERADIUS} Brokken.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Zoeken naar eigen structuur {value} mislukt: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "De speler heeft de verbinding verbroken voordat het structuuronderzoek voltooid is.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Je hebt de afmetingen veranderd voordat het structuurzoekopdracht voltooid is; voer het commando opnieuw uit.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Gevonden {label} op {targetX} {clampedY} {targetZ}, maar teleportatie mislukte.", + "iris.modded.irismoddedcommands.teleported_at": "Teleporteren naar {label} op {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Bereikbaarheid structuur: {available} in aanmerking komende inheemse generatie, {irisPlaced} Iris- geplaatst, {disabled} native handicap, {suppressed} native vervangen door Iris plaatsingen; {unreachableBiomes} Native uitgesloten door deze verpakking biomes, en {unsupported} geregistreerde inheemse structuren niet ondersteund in deze dimensie. Gebruik /iris structure verify voor één structuur.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Structuur {key} er Iris-verplaatsbaar met /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Onbekende structuur '{key}'. Het is geen van beide. Iris-plaatst noch geregistreerd door vanilla of een datapack.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Structuur {value} wordt uitdrukkelijk vervangen door een Iris plaatsing en plaatsbaar met /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Inheemse structuur {value} is ingeschakeld, ondersteund door de generatortoestand van deze dimensie en te vinden met /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Dit commando kan alleen gebruikt worden door spelers. (POI type \"{type}' aanvaard)", + "iris.modded.irismoddedcommands.searching": "Zoeken naar {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "De motor voor deze wereld is gesloten; terug naar de dimensie en probeer het opnieuw.", + "iris.modded.irismoddedcommands.search_failed_2": "Zoeken mislukt: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Kon niet vinden {label} binnen de zoektijd.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teleporteren naar {label} op {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "De motor veranderde tijdens het lokaliseren {label}Probeer het nog eens.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.world_seed": "Wereldzaad: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Motorzaad: {value} (gemengd: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Downloaden IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Verpakking{pack}' geïnstalleerd. De exacte dimensie types en aangepaste biomes voegen zich bij de gedwongen Iris datapack op de volgende server herstart voordat u werelden van dit pakket aanmaakt.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Downloaden van pakket is mislukt voor {pack} ({downloadSource}; zie console).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Aangemaakt: {value} chunk(s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Onbekend Iris help sectie: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}Type={typeKey} actief={activeMin}..{activeMax} logisch={value} (verpakking ={value2}, motor niet gestart; verpakkingshoogte onbekend)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}Type={typeKey} actief={activeMin}..{activeMax} logisch={value} Pak '{value2}' {packMin}..{packMax} logisch={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: het type actieve dimensie komt niet overeen met de verpakking. Iris zal weigeren om deze wereld motor te starten in plaats van knipperen terrein. Uitvoeren /iris world enable voor nieuwe werelden, of /iris datapack install voor reeds geladen Iris afmetingen, dan herstart.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Nee Iris De afmetingen zijn geladen.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Alles {irisLevels} Iris dimensie(s) komen overeen met hun pakkethoogtebereik.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: motor nog niet gestart; kan zijn afmetingen nog niet afleiden.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: generatie van het dimensietype mislukt: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Schrijven is mislukt {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Nee Iris afmetingen met lopende motoren gevonden; er is niets geïnstalleerd.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Schrijven is mislukt {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Schreef {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "World datapack '{WORLDPACKNAME}' dimensietype overrides geïnstalleerd. Herstart de server voor het toepassen van dimensietypes.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Geconfigureerde datapack import: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth Inname is Bukkit-alleen; installeer deze handmatig in world/datapacks indien nodig.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Geïnstalleerde werelddatapacks: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Een testuitzondering is naar de Iris-foutrapportage verzonden (Sentry indien ingeschakeld).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Netwerkscan mislukt: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Een Goldenhash scan loopt al.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Dit commando kan alleen gebruikt worden door spelers. (de toverstok is een fysiek voorwerp)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Je inventaris is vol.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Poef! Succes met bouwen. (linker klik = hoek 1, rechter muisknop = hoek 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Dit commando kan alleen gebruikt worden door spelers. (het stof is een fysiek voorwerp)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Je inventaris is vol.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Klik met de rechtermuisknop op een blok om het object te onthullen.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Dit commando kan alleen gebruikt worden door spelers. (opslaan van uw toverstok selectie)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Deze dimensie wordt niet gegenereerd door Iris; objecten opslaan in het pakket van de dimensie.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Wacht even. Iris Toverstok. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Geen gebied geselecteerd. Links/rechts klik blokken met de toverstok eerst.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Ongeldige objectnaam: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Selectie te groot: {volume} blokken (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Bestand bestaat al. Gebruik /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Opslaan van object is mislukt: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Opgeslagen {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} blok(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Onbekend of leeg object: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Console moet coördinaten specificeren: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "U kijkt niet naar een blok binnen {value} blokken.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Plakken mislukt: {value} (gedeeltelijke wijzigingen vastgelegd om ongedaan te maken)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Geplaatst {key} op {value} {value2} {value3} rot ={rotation} ({value4} schrijven(s), {value5} niet-lucht{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Wacht even. Iris Toverstok. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Geen gebied geselecteerd.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Maak je staf klaar. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Je kijkt niet naar een blok.", + "iris.modded.moddedobjectcommands.position_set": "Positie {value} ingesteld op {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Hou je staf vast.", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Geen gebied geselecteerd.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Selectie te groot voor automatisch selecteren: {volume} blokken (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Automatisch selecteren voltooid: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Onbekend object: {key}", + "iris.modded.moddedobjectcommands.object_size": "Objectgrootte: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Gebruikte blokken: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Blokken in object ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} andere blokstatus(s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Onbekend object: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Huidige objectgrootte: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Nieuw objectgrootte: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Object heeft geen laadbestand; kan de krimp niet aanhouden.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Opslaan van object is mislukt {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Ongeldig bereik: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Geen objecten gevonden: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibiliseer [reach={reach}{value}] wachtrij {value2} object(s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Niets om ongedaan te maken.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "{reverted} plakbewerking(en) ongedaan gemaakt.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Pakketmap niet gevonden: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Geen pakketten om te valideren onder {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Verpakking{pack}' niet gevonden onder {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Valideren {value} verpakking(s)...", + "iris.modded.moddedpackcommands.validation_failed": "Validatie van{value}' mislukt: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validatie voltooid. Gebroken verpakkingen: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Verpakking{pack}' niet gevonden onder {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Verpakking{pack}' niet gevonden onder {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Geen validatieresultaten geregistreerd. Uitvoeren /iris pack validate Eerst.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blokkering={value2}, waarschuwingen={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Geen validatie resultaat voor '{pack}'. Uitvoeren /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Verpakking{value}' is laadbaar. (waarschuwingen={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Verpakking{value}' beschadigd:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... en {value} meer waarschuwing(s).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Geen cleanup kandidaten gevonden voor pakket '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Schoonmaakvoorbeeld voor verpakking '{pack}': {value} kandidaat(s). Er werden geen bestanden gewijzigd.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Uitvoeren /iris pack cleanup {pack} apply naar quarantaine na een nieuwe scan.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Geen cleanup kandidaten gevonden voor pakket '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Quarantaine {value} cleanup candidate(s) onder {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Niets te herstellen voor de verpakking '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Voorbeeld herstellen voor {value}: {value2} bestand(s). Er werden geen bestanden gewijzigd.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Herstel wordt geblokkeerd door {value} bestaande bestemming(s).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Uitvoeren /iris pack restore {pack} apply te herstellen na een nieuwe conflict controle.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Herstel geweigerd omdat {value} destination(s) bestaat al.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Niets te herstellen voor de verpakking '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Hersteld {value} bestand(s) van {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... en {value} Meer.", + "iris.modded.moddedregen.regen_is_already_running": "Er loopt al een regen.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Deze dimensie wordt niet gegenereerd door Iris. Voer dit uit vanaf een Iris dimensie zodat de verpakking kan worden opgelost.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Schreef structuurindex: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Geen irisstructuur '{key}' in deze verpakking", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Structuur{key}' gemonteerd 0 stuks (controleren startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Structuur{key}': {value} stukken, voetafdruk {value2}x{value3} blokken (monsterzaad 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Dit commando kan alleen worden gebruikt door spelers (de structuur is gemonteerd op uw positie).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Geen irisstructuur '{key}' in deze verpakking", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Structuur{key}' gemonteerd 0 stuks", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Plaats mislukt: {value} (gedeeltelijke wijzigingen geregistreerd voor ongedaan maken)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Geplaatst '{key}' ({value} stukken, {value2} schrijven(s){tileNote}) op uw locatie. /iris object undo om terug te keren.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Geef een maatpakket: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Het openen van de Noise Explorer op het serverscherm.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Deze dimensie wordt niet gegenereerd door Iris; rennen /iris studio noise van een Iris dimensie om generatoren op te lossen, of de naam van de generator weg te laten.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Onbekende generator '{generatorKey}' in verpakking {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "openen van de Noise Explorer voor generator '{value}\" (zaad {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Deze dimensie wordt niet gegenereerd door Iris; staan in een Iris (of studio) dimensie en uitvoering /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "De Vision-kaart openen voor {value} op het serverscherm.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Schrijven van werkblad voor mislukt {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Herhaling van de werkplek: {value} met JSON schema's voor automatisch invullen.", + "iris.modded.moddedstudiocommands.could_not_open": "Kon niet openen {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Openen {value} in uw redacteur.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Deze dimensie wordt niet gegenereerd door Iris; geef een verpakkingsnaam expliciet op.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Verpakking{name}' niet gevonden onder {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Geef een maatpakket: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "openen studio voor '{pack}\" (zaad {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Verpakking{pack}' ontbreekt; downloaden IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Verpakking{pack}' kon niet worden gedownload; controleer de naam en probeer /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Verpakking{pack}' heeft geen dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Studio openen mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Studio-injectie mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Console studio geopend: {dimensionId} nu loopt '{pack}' zaad {seed} (voorbijgaande; niet geschreven aan iris-dimensions.json en goedgekeurd bij herstart).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Voer het in met: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Pregen het met: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Verwijderen met: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Studio-injectie mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio geopend: {dimensionId} nu loopt '{pack}' zaad {seed}. Gebruik /iris studio close Wanneer klaar.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Je hebt geen open studio. Gebruik /iris studio open Eerst.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Studio sluiten mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio gesloten: {dimensionId} werd geëvacueerd, gelost en de regionale gegevens verwijderd.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Momenteel zijn er geen studio-afmetingen geopend.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Actieve studiodimensie(s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: verpakking \"{value2}' zaad {value3} eigenaar {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Deze opdracht kan alleen door spelers worden gebruikt.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Je hebt geen open studio. Gebruik /iris studio open Eerst.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Je studio-dimensie is niet meer geladen. Gebruik /iris studio open Alweer.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Geteleporteerd naar uw studio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Verpakking{value}' heeft geen dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "De \"{value}\" pack heeft versie: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Ongeldige projectnaam '{nameRaw}\" (toegestaan: a-z, 0-9, en -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Verpakking{name}' bestaat reeds op {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Project aanmaken '{name}\"uit template \"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Sjabloon '{template}' is niet geïnstalleerd; downloaden IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Sjabloon '{template}' kon niet worden gedownload; installeer een pakket met dimensions/{template2}.json Eerst.", + "iris.modded.moddedstudiocommands.created_project_at": "Project aangemaakt '{name}\" op {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Bewerken dimensions/{name}.json En de rest van de roedel. A VSCode werkruimte met JSON schema automatisch aanvullen werd gegenereerd; open het of rerun /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Aanmaken van project mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Verpakkingsdimensie '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Pakket samengesteld: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Verpakking mislukt: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Dit commando kan alleen gebruikt worden door spelers (sampling is gecentreerd op uw positie).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Deze dimensie is niet door Iris gegenereerd.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Verdeling van de steekproefgebieden in {value}x{value2} chunks om je heen...", + "iris.modded.moddedstudiocommands.rarity": "{key}: zeldzaamheid={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Regionale bemonstering mislukt: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Verpakking{pack}' is niet geïnstalleerd; downloaden IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Verpakking{pack}' kon niet worden gedownload; controleer de naam of installeer deze met /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Spuiten mislukt Iris wereld{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Aangemaakt Iris wereld {dimensionId} uit verpakking{pack}' dimensie'{packDimension}\" (zaad {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Het is nu live en opnieuw bij elke opstart. Teleporteren met /iris world status of een portaal; geen herstart vereist.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Spuiten mislukt Iris primaire wereld: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris primaire wereld ingesteld op {dimensionId} (verpakking \"{pack}' dimensie'{packDimension}' zaad {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "De vanilla-overworldgenerator kan niet tijdens runtime worden vervangen; hierdoor wordt de bestaande overworld dus NIET opnieuw gegenereerd.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "In plaats daarvan, {dimensionId} is nu de geconfigureerde primaire wereld: spelers in de vanilla-overwereld worden daarheen geleid op join, en het opnieuw objecteert bij elke startup.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris De belangrijkste wereld override is vrijgegeven. De overworld houdt zijn huidige generator; bewerken server.properties niveau-type en herstart om het terug te veranderen.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Ongeldig zaad '{seedRaw}'. Gebruik een getal of 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Verpakking{pack}' is niet geïnstalleerd; downloaden IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Verpakking{pack}' kon niet worden gedownload; controleer de naam of installeer deze met /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Verpakking{pack}' is nog niet klaar (nog laden of valideren). Probeer het commando zo weer.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Schrijven is mislukt server.properties; controleer bestandsrechten en stel het niveau-type handmatig in.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris belangrijkste wereld ingesteld op '{pack}\" (vooruitgezet {preset}, zaad {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties niveau-type is nu {preset}. Op de volgende herstart de overwereld, onderher en eind regenereren als dit Iris wereld.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Spelergegevens (inventarissen, vooruitgangen, statistieken) worden bewaard; bestaand terrein in die dimensies wordt vervangen. Dit geldt eenmaal.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart is ingeschakeld - stoppen van de server nu, zodat uw herstart wrapper brengt het terug op de nieuwe hoofdwereld.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Herstart de server nu om het te genereren. (Set: mainWorldAutoRestart= waar in modded.json om te hebben Iris stop de server voor u.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Weigeren wereld te creëren '{dimensionId}' met pack'{pack}' omdat de vereiste validatie mislukt:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Repareer de verpakking en ren /iris pack validate {pack} om te hervalideren.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Verpakking{pack}' niet gevonden onder {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Verpakking{pack}' bevat niet dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Ongeldige verpakking{pack}{value}'. Gebruik verpakking:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Ongeldig zaad '{seedRaw}'. Gebruik een getal of 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Verwijderen mislukt Iris wereld{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris wereld{dimensionId}' niet geladen was; zijn persistente registervermelding gewist en de opgeslagen chunk/Mantle-gegevens gewist.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris wereld{dimensionId}\" niet geladen was; de permanente registratie is goedgekeurd. Wereldgegevens op schijf worden bewaard.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Verwijderd Iris wereld{dimensionId}\": geëvacueerd, gelost, chunk/Mantle-gegevens gewist en uit het opstartregister geschrapt.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Uitgeschakeld Iris wereld{dimensionId}\": geëvacueerd, gelost en uit het opstartregister geschrapt.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "wereldgegevens op schijf wordt bewaard; opnieuw inschakelen met /iris world enable {dimensionId} of verwijderen met /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Geladen Iris niveau: {value} -> verpakking{value2}' dimensie'{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Primaire wereld: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Nee Iris De afmetingen zijn momenteel geladen. Een maken met /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Geladen Iris afmetingen: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Gebruik /iris world create om er één te injecteren zonder opnieuw te starten.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Downloaden & de invoer van externe datapacks beheren (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Download/update elk datapack dat in een pakketdimensie is opgenomen 'datapackImports' en installeren in de wereld, zodat zijn structuren registreren als vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Herstart de server wanneer er nieuwe datapacks zijn geïnstalleerd (nodig voor het registreren en genereren van nieuwe structuren)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Lijst geconfigureerde datapack imports en hun geïnstalleerde versies", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Verwijder een geïnstalleerde datapack door id (ook verwijderen van de URL van datapackImports om het weg te houden)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Het datapack id (mapnaam) getoond door /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Wereldmanager", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Laden TectonicPlates Aantal", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Stuur een test uitzondering naar de wachtdienst", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Hash gegenereerde blokuitgang van een vaste zone voor determinisme/identiteitstest", + "iris.director.commanddeveloper.param.world_hash": "De wereld te hash", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Straal in stukjes rond het centrum", + "iris.director.commanddeveloper.param.center_chunk_x": "Middendeel X", + "iris.director.commanddeveloper.param.center_chunk_z": "Middenstuk Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "De verpakking van een wereld bijwerken (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "De wereld om bij te werken", + "iris.director.commanddeveloper.param.pack_install_into_world": "Het pakket te installeren in de wereld", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Zorg ervoor dat u een back-up maakt & Lees eerst de waarschuwingen!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Moet Iris download het pakket opnieuw voor u", + "iris.director.commanddeveloper.director.test": "Testen", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Dump de hele tektonische plaat in plaats van een enkele sectie", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Het dumpbestand id onder plugins/Iris/dump (pp..*)", + "iris.director.commanddeveloper.director.test_2": "Testen", + "iris.director.commanddeveloper.param.pack_bench": "De pack naar bank", + "iris.director.commanddeveloper.param.radius_regions": "Straal in de regio's", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Geopend GUI terwijl benchmarking", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Upgrade naar een andere Minecraft versie", + "iris.director.commanddeveloper.param.version_upgrade": "De versie om naar te upgraden", + "iris.director.commanddeveloper.director.test_3": "test;", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "De wereldmap om te scannen naar .mca-regiobestanden", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Verwijder nabijgelegen blokblokken voor regen testen", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Straal in stukjes rond je huidige chunk", + "iris.director.commanddeveloper.director.test_4": "Testen", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Verwijderen en regenereren nabijgelegen chunks in plaats met behulp van Iris generatie", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "De straal van nabijgelegen chunks", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Genereer chunks in buffers (geen wereld schrijft) en hash blokken + biomes; vangt een gouden bestand of controleert tegen een bestaande. Reset Mantle in het gescande gebied - gebruik op wegwerp testwerelden.", + "iris.director.commanddeveloper.param.world_scan": "De wereld om te scannen", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Straal in stukjes rond het centrum", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Middendeel X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Middenstuk Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Verwijder Mantle-gegevens in het scangebied eerst voor volledige regeneratie vanaf nul", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "gelijktijdige chunkgeneraties; 1 = strikt serieel voor orderafhankelijkheidstests", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Ook dump volledige per-chunk non-air blockstates voor offline diffing", + "iris.director.commandedit.director.edit_something": "Iets bewerken", + "iris.director.commandedit.director.edit_biome_you_specified": "Bewerk het door u opgegeven biome", + "iris.director.commandedit.param.biome_edit": "Het te bewerken biome", + "iris.director.commandedit.director.edit_region_you_specified": "Bewerk het door u opgegeven gebied", + "iris.director.commandedit.param.region_edit": "Het te bewerken gebied", + "iris.director.commandedit.director.edit_dimension_you_specified": "Bewerk de door u opgegeven dimensie", + "iris.director.commandedit.param.dimension_edit": "De te bewerken dimensie", + "iris.director.commandfind.director.iris_find_commands": "Iris Opdrachten zoeken", + "iris.director.commandfind.director.find_biome": "Zoek een biome", + "iris.director.commandfind.param.biome_look": "De biome om naar te zoeken", + "iris.director.commandfind.param.should_you_be_teleported": "Mocht u geteleporteerd worden", + "iris.director.commandfind.director.find_region": "Zoek een regio", + "iris.director.commandfind.param.region_look": "De te zoeken regio", + "iris.director.commandfind.param.should_you_be_teleported_2": "Mocht u geteleporteerd worden", + "iris.director.commandfind.director.find_point_interest": "Zoek een punt van belang.", + "iris.director.commandfind.param.type_poi_look": "Het type PoI om te zoeken.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Mocht u geteleporteerd worden", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Zoek een structuur (een vanilla sleutel zoals minecraft:village_plains of minecraft:stronghold, of een geïmporteerde iris structuursleutel)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "De te zoeken structuur (e.g. minecraft:village_plains, minecraft:stronghold, minecraft ancient city)", + "iris.director.commandfind.director.find_object": "Zoek een object", + "iris.director.commandfind.param.object_look": "Het te zoeken object", + "iris.director.commandfind.param.should_you_be_teleported_4": "Mocht u geteleporteerd worden", + "iris.director.commandiris.director.basic_command": "Basisopdracht", + "iris.director.commandiris.director.create_new_world": "Een nieuwe wereld creëren", + "iris.director.commandiris.param.name_world_create": "De naam van de wereld te creëren", + "iris.director.commandiris.param.dimension_pack_create_world_with": "De dimensie/pack om de wereld te creëren met", + "iris.director.commandiris.param.seed_generate_world_with": "Het zaad om de wereld te genereren met", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Of deze wereld automatisch gebruikt moet worden als de belangrijkste wereld", + "iris.director.commandiris.director.teleport_another_world": "Teleporteren naar een andere wereld", + "iris.director.commandiris.param.world_teleport": "Wereld te teleporteren naar", + "iris.director.commandiris.param.player_teleport": "Speler naar teleporteren", + "iris.director.commandiris.director.print_version_information": "Versie-informatie afdrukken", + "iris.director.commandiris.director.benchmark_pack": "Benchmark een pakket", + "iris.director.commandiris.param.dimension_benchmark": "Dimensie voor benchmark", + "iris.director.commandiris.director.print_world_height_information": "Wereldhoogte-informatie afdrukken", + "iris.director.commandiris.director.check_access_all_worlds": "Controleer de toegang van alle werelden.", + "iris.director.commandiris.director.remove_iris_world": "Verwijder een Iris wereld", + "iris.director.commandiris.param.world_remove": "De wereld te verwijderen", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Of de map ook verwijderd moet worden (als deze op false staat, laadt alleen de wereld niet)", + "iris.director.commandiris.director.toggle_debug": "Debug aan/uit", + "iris.director.commandiris.director.download_project": "Download een project.", + "iris.director.commandiris.param.pack_download": "Het te downloaden pakket", + "iris.director.commandiris.param.branch_download_from": "De te downloaden tak van", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Of het pakket met de gedownloade moet worden overschreven", + "iris.director.commandiris.director.get_metrics_your_world": "Krijg statistieken voor je wereld", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Herlaad configuratiebestand (dit wordt ook automatisch gedaan)", + "iris.director.commandiris.director.unload_iris_world": "Uitladen en Iris Wereld", + "iris.director.commandiris.param.world_unload": "De wereld om uit te laden", + "iris.director.commandiris.director.load_iris_world": "Laden en Iris Wereld", + "iris.director.commandiris.param.name_world_load": "De naam van de wereld te laden", + "iris.director.commandiris.director.evacuate_iris_world": "Evacueer een iris wereld", + "iris.director.commandiris.param.evacuate_world": "Evacueer de wereld", + "iris.director.commandobject.director.iris_object_manipulation": "Iris objectmanipulatie", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Open een object studio wereld (raster van elk object; dimensie optioneel, standaardinstellingen voor alle pakketten)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Facultatief formaat waarvan de objectverpakking moet worden opgesteld; weglaten aan samengevoegde voorwerpen uit elke verpakking", + "iris.director.commandobject.param.seed_generate_studio_with": "Het zaad om de studio te genereren met", + "iris.director.commandobject.director.check_composition_object": "Controleer de samenstelling van een object", + "iris.director.commandobject.param.object_analyze": "Het te analyseren object", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Een object verkleinen tot zijn minimale grootte", + "iris.director.commandobject.param.object_shrink": "Het object om te krimpen", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Groei organische takken door het bladerdak zodat elk blad overleeft vanilla verval", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Objectsleutel, voorvoegsel (bomen/), of bestandssysteempad", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true analyseert alleen, schrijft niets", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "bereik=N max tak lengte in blokken van bestaand hout; verder blad clusters zijn gepind persistent plaats. bereik=0 groeit onbeperkt", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Converteer .schem bestanden in de map 'convert' naar .iob-bestanden.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Krijg een poeder dat objecten onthult", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Contracteer een selectie op basis van uw zoekrichting", + "iris.director.commandobject.param.amount_inset_by": "Het bedrag dat door", + "iris.director.commandobject.director.set_point_1_look": "Punt instellen 1 om te kijken", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Of u uw huidige positie moet gebruiken of waar u kijkt", + "iris.director.commandobject.director.set_point_2_look": "Punt instellen 2 om te kijken", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Of u uw huidige positie moet gebruiken of waar u kijkt", + "iris.director.commandobject.director.paste_object": "Een object plakken", + "iris.director.commandobject.param.object_paste": "Het te plakken object", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Of het object al dan niet bewerkt moet worden (wilt toverstok vasthouden)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "De hoeveelheid graden om door te draaien", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "De factor waarmee het object geplaatst moet worden", + "iris.director.commandobject.param.scale_interpolator_use": "De te gebruiken schaalinterpolator", + "iris.director.commandobject.director.save_object": "Object opslaan", + "iris.director.commandobject.param.dimension_store_object": "De dimensie om het object in op te slaan", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Het bestand om het in op te slaan, kan / gebruiken voor submappen", + "iris.director.commandobject.param.overwrite_existing_object_files": "Bestaande objectbestanden overschrijven", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Gebruik legacy TileState serialisatie indien mogelijk", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Verschuif een selectie in uw zoekrichting", + "iris.director.commandobject.param.amount_shift_by": "Het bedrag om door te schuiven", + "iris.director.commandobject.director.undo_number_pastes": "Meerdere plakbewerkingen ongedaan maken", + "iris.director.commandobject.param.amount_pastes_undo": "Het aantal plakbewerkingen dat ongedaan moet worden gemaakt", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Krijgt een objectstok en pakt de huidige WorldEdit selectie.", + "iris.director.commandobject.director.get_object_wand": "Een objectstok halen", + "iris.director.commandobject.director.autoselect_up_down_out": "Autoselecteer omhoog, omlaag & uit", + "iris.director.commandobject.director.autoselect_up_out": "Automatisch selecteren & uit", + "iris.director.commandpack.director.pack_validation_maintenance": "Validatie en onderhoud van verpakkingen", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Valideer een verpakking (of alle verpakkingen) en herpublish resultaten", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "De naam van de pakketmap om te valideren (leeg laten voor alles)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Voorbeeld of toepassing van niet-gebruikte bron opruiming", + "iris.director.commandpack.param.pack_folder_name_clean": "De naam van de verpakkingsmap om schoon te maken", + "iris.director.commandpack.param.preview_apply": "voorbeeld of toepassing", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Voorbeeld of toepassing van de meest recente quarantaine", + "iris.director.commandpack.param.pack_folder_name_restore": "De naam van de pakketmap om te herstellen", + "iris.director.commandpack.param.preview_apply_2": "voorbeeld of toepassing", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Gecachede validatiestatus voor een pakket tonen", + "iris.director.commandpack.param.pack_folder_name": "De naam van de verpakkingsmap", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Pregenereer uw Iris Werelden!", + "iris.director.commandpregen.director.pregenerate_world": "Pregeneer een wereld", + "iris.director.commandpregen.param.radius_pregen_blocks": "De straal van de pregen in blokken", + "iris.director.commandpregen.param.world_pregen": "De wereld om te pregen", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "De centrale locatie van de pregen. Gebruik \"ik\" voor uw huidige locatie", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Open de Iris pregengui", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Genereer slechts één stuk tegelijk", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Stop de actieve pregeneratietaak", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pauze / voortzetting van de actieve pregeneratie taak", + "iris.director.commandpregen.director.show_active_pregeneration_status": "De status van actieve pregeneratie tonen", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris structuurgereedschappen (index, import, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Regeneren structure-index.json lijst met alle vanilla, datapack & irisstructuren", + "iris.director.commandstructure.param.dimension_whose_pack_index": "De afmeting van de verpakking naar index", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importeren elke structuur - vanilla en ingenomen datapacks - in deze verpakking als bewerkbaar Iris middelen, altijd overschrijven. Herbouwt legpuzzel structuren (dorpen, buitenposten, datapack puzzels) als bewerkbare pool/stuk grafieken, importeert elke structuur template NBT als object, en monteert de multi-template structuren (scheepswrakken, geruïneerde portalen, oceaan ruïnes, onderste fossielen). Ren na inname van een datapack en herstart. Regenereer chunks of gebruik een verse wereld om de geïmporteerde kopieën te plaatsen.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "De dimensie waarvan de verpakking moet worden ingevoerd", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Leg code-gegenereerde structuren vast die geen NBT template (swamp hutten, igloos, enz.) in bewerkbaar Iris objecten door het genereren van elk een in een wegwerp kras wereld en lezen terug zijn blokken. Skipt structuren die al importeren als een structuur, structuren breder / vertaler dan de vangst cap (strongholds, herenhuizen, monumenten blijven vanilla), en alles wat niet zal genereren in een vlakke overwereld. Elke gevangen structuur wordt één stuk Iris structuur kunt u plaatsen vanuit een biome/regio/dimensie 'structuren' lijst. Runt automatisch als de laatste pas van /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "De dimensie waarvan de verpakking te vangen in", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Controleer of de inheemse structuur in aanmerking komt en lokaliseer Iris-plaatste structuren zonder het blokkeren van inheemse zoekopdrachten.", + "iris.director.commandstructure.param.dimension_verify": "De te verifiëren dimensie", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Zoekradius in stukjes rond de oorsprong (groter is veel langzamer)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Los de legpuzzel van een irisstructuur op en rapporteer het aantal stukjes & grenzen", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "De afmeting waarvan het pakket de structuur vasthoudt", + "iris.director.commandstructure.param.iris_structure_key_inspect": "De iris structuur sleutel om te inspecteren", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Verzamel en plaats een iris structuur op uw locatie (studio testen)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "De afmeting waarvan het pakket de structuur vasthoudt", + "iris.director.commandstructure.param.iris_structure_key_place": "De iris structuur sleutel om te plaatsen", + "iris.director.commandstudio.director.studio_commands": "Studio-opdrachten", + "iris.director.commandstudio.director.open_new_studio_world": "Open een nieuwe studio wereld", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Het dimensiepakket om een studio te openen voor", + "iris.director.commandstudio.param.seed_generate_studio_with": "Het zaad om de studio te genereren met", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Vanillabomen importeren, paddestoelen & objecten (en structures/jigsaw) van de server naar een pakket objects/vanilla map", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Het dimensiepakket om vanilla-inhoud in te importeren", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Hoeveel varianten te vangen per boom/object functie", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Importeer ook vanilla & gegevenspakket structures/jigsaw in de verpakking", + "iris.director.commandstudio.director.open_vscode_dimension": "Geopend VSCode voor een dimensie", + "iris.director.commandstudio.param.dimension_open_vscode": "De te openen dimensie VSCode voor", + "iris.director.commandstudio.director.close_open_studio_project": "Sluit een open studioproject", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Uw Studio-debugscorebord aan/uit", + "iris.director.commandstudio.director.create_new_studio_project": "Een nieuw studioproject aanmaken", + "iris.director.commandstudio.param.name_this_new_iris_project": "De naam van deze nieuwe Iris - Project.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Kopieer de inhoud van een bestaand project in uw pakketmap en gebruik het als sjabloon in dit nieuwe project.", + "iris.director.commandstudio.director.get_version_pack": "Haal de versie van een pakket", + "iris.director.commandstudio.param.dimension_get_version": "De dimensie krijgt de versie van", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Open de noise explorer (externe GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Optionele pakketgenerator om te bekijken", + "iris.director.commandstudio.param.seed_preview_generator_with": "Het zaad om de generator te bekijken met", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Laat buit zien als hier een kist staat.", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Snelle invoeging van items in virtuele inventaris (kan leiden tot prestatiedaling)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Of de huidige inventaris al dan niet moet worden toegevoegd (indien onjuist, cleart geopende inventaris)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Bereken de kans voor elke regio om te genereren", + "iris.director.commandstudio.param.radius_chunks": "De radius in stukjes", + "iris.director.commandstudio.director.render_world_map_external_gui": "Een wereldkaart renderen (extern GUI)", + "iris.director.commandstudio.param.world_open_generator": "De wereld om de generator te openen voor", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Pak een dimensie in gecomprimeerd formaat", + "iris.director.commandstudio.param.dimension_pack_compress": "Het maatpakket om te comprimeren", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Of de verpakking al dan niet verduisterd moet worden", + "iris.director.commandstudio.param.whether_not_minify_pack": "Of de verpakking al dan niet moet worden verminkt", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profielen de prestaties van een dimensie", + "iris.director.commandstudio.param.dimension_profile": "De afmeting van het profiel", + "iris.director.commandstudio.director.spawn_iris_entity": "Een Iris-entiteit spawnen", + "iris.director.commandstudio.param.entity_spawn": "De entiteit die moet spawnen", + "iris.director.commandstudio.param.location_spawn_entity_at": "De locatie waar de entiteit moet spawnen", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teleport naar de actieve studiowereld", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Uw dimensieprojecten bijwerken VSCode werkblad", + "iris.director.commandstudio.param.dimension_update_workspace": "De dimensie om de werkruimte van", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Vang een IGenData chunk rapport voor nabijgelegen stukken", + "iris.director.commandwhat.director.iris_what": "Iris Wat?", + "iris.director.commandwhat.director.what_is_my_hand": "Wat heb ik in mijn hand?", + "iris.director.commandwhat.director.what_biome_am_i": "In welke biome zit ik?", + "iris.director.commandwhat.director.what_region_am_i": "In welke regio ben ik?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Naar welk blok kijk ik?", + "iris.director.commandwhat.director.show_markers_chunk": "Markeerders tonen in chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Markeringsnaam zoals grotvloer of grot plafond", + "iris.modded.help.entry.command.version": "Versie-informatie afdrukken", + "iris.modded.help.entry.command.info": "Lijst geladen Iris afmetingen en verpakking details", + "iris.modded.help.entry.command.what": "Controleer de Iris biome, regio, grotbiome, oppervlakte en chunk op uw positie, het blok waar u naar kijkt, uw gehouden item of nabijgelegen markers", + "iris.modded.help.entry.group.find": "Zoek en teleporteer naar Iris biomes, regio's, objecten; Iris structuren, inheemse structuren en bezienswaardigheden", + "iris.modded.help.entry.command.tp": "Teleporteer jezelf of een genoemde speler naar een geladen Iris dimensie", + "iris.modded.help.entry.command.evacuate": "Teleporteer alle spelers uit een Iris-dimensie naar de spawn van de primaire wereld", + "iris.modded.help.entry.command.seed": "Wereld- en engine-seedinformatie tonen", + "iris.modded.help.entry.command.debug": "Schakelen Iris debug loggen en opslaan settings.json", + "iris.modded.help.entry.command.reload": "Herladen settings.json (ook automatisch gehotload elke 3s)", + "iris.modded.help.entry.command.download": "Een pakketproject downloaden", + "iris.modded.help.entry.command.metrics": "Generatiegegevens afdrukken voor uw huidige Iris dimensie", + "iris.modded.help.entry.command.regen": "Verwijderen en regenereren nabijgelegen chunks in plaats", + "iris.modded.help.entry.group.pregen": "Pregeneer een Iris dimensie", + "iris.modded.help.entry.command.wand": "Haal een Iris objectwand", + "iris.modded.help.entry.group.object": "Gereedschap voor de objectstaf, opslaan, plakken, analyseren en ongedaan maken", + "iris.modded.help.entry.group.edit": "Open biome-, regio- en dimensie-JSON-bestanden van het pakket in je desktopeditor", + "iris.modded.help.entry.command.create": "Creëer en injecteer een persistent Iris dimensie; offertepakket:dimensionKey om een specifieke verpakkingsdimensie te kiezen", + "iris.modded.help.entry.group.studio": "Aanmaak, verpakking en rapporten van pakketprojecten", + "iris.modded.help.entry.group.pack": "Validatie en onderhoud van verpakkingen", + "iris.modded.help.entry.group.world": "Starttijd Iris dimensie creatie, verwijdering en status", + "iris.modded.help.entry.group.datapack": "World Datapack installatie en status helpers", + "iris.modded.help.entry.group.structure": "Iris structuurindex, info- en plaatsingsinstrumenten", + "iris.modded.help.entry.command.goldenhash": "Genereer deterministische blokhashes voor pariteitstests", + "iris.modded.help.entry.group.developer": "Ontwikkelaardiagnostiek: Sentry test, netwerk interfaces, regio-bestand scan", + "iris.modded.help.entry.command.biome": "Zoek een Iris biom", + "iris.modded.help.entry.command.region": "Zoek een Iris regio", + "iris.modded.help.entry.command.object": "Een objectplaatsing zoeken", + "iris.modded.help.entry.command.structure": "Zoek een Iris- Geplaatste of native/datapack structuur", + "iris.modded.help.entry.command.poi": "Vind een ondersteund punt van belang", + "iris.modded.help.entry.command.biome_2": "Open een biome json in uw desktop editor; geen sleutel opent het biome op uw positie", + "iris.modded.help.entry.command.region_2": "Open een regio json in uw desktop-editor; geen sleutel opent het gebied op uw positie", + "iris.modded.help.entry.command.dimension": "Open de dimensie-JSON van het huidige pack in je desktopeditor", + "iris.modded.help.entry.command.start": "Start pregeneratie; radius in blokken, resumpable checkpoint cache op standaard, centrum via 'at ', vlaggen componeren in elke volgorde", + "iris.modded.help.entry.command.stop": "Stop de actieve pregeneratietaak", + "iris.modded.help.entry.command.pause": "Voorgeneratie pauzeren of hervatten", + "iris.modded.help.entry.command.status": "Voorgeneratiestatus tonen", + "iris.modded.help.entry.command.wand_3": "Haal een Iris objectwand", + "iris.modded.help.entry.command.dust": "Krijg stof dat object plaatsingen onthult", + "iris.modded.help.entry.command.save": "Het geselecteerde toverstokvolume opslaan als object", + "iris.modded.help.entry.command.paste": "Plak een object op jouw positie of een opgegeven positie, eventueel gedraaid", + "iris.modded.help.entry.command.expand": "De toverstokselectie uitbreiden in uw zoekrichting", + "iris.modded.help.entry.command.contract": "Sluit de toverstokselectie in uw zoekrichting", + "iris.modded.help.entry.command.shift": "Verschuif de toverstokselectie in uw kijkrichting", + "iris.modded.help.entry.command.position1": "Selectiepunt instellen 1", + "iris.modded.help.entry.command.position2": "Selectiepunt instellen 2", + "iris.modded.help.entry.command.x_y": "Autoselecteren op en uit", + "iris.modded.help.entry.command.x_y_2": "Autoselecteer op, neer en uit", + "iris.modded.help.entry.command.analyze": "Objectsamenstelling tonen", + "iris.modded.help.entry.command.shrink": "Een object verkleinen tot zijn minimale grootte", + "iris.modded.help.entry.command.plausibilize": "Groei takken zodat boom bladeren overleven vanilla verval", + "iris.modded.help.entry.command.undo": "Geplakte objecten ongedaan maken", + "iris.modded.help.entry.command.create_2": "Een nieuw pakketproject aanmaken", + "iris.modded.help.entry.command.package": "Pak een dimensie in gecomprimeerd formaat", + "iris.modded.help.entry.command.version_2": "Een pakketversie afdrukken", + "iris.modded.help.entry.command.regions": "Bereken regiodistributie in de buurt", + "iris.modded.help.entry.command.open": "Open een tijdelijke studio dimensie voor een pack", + "iris.modded.help.entry.command.close": "Sluit de open studio dimensie en gooi zijn wereld weg", + "iris.modded.help.entry.command.tpstudio": "Teleporteer naar de open studio dimensie", + "iris.modded.help.entry.command.status_studio": "Toon de open studio dimensie en zijn pakket", + "iris.modded.help.entry.command.noise": "Open de Noise Explorer GUI op het serverscherm", + "iris.modded.help.entry.command.map": "Open de Vision-kaart GUI op het serverscherm", + "iris.modded.help.entry.command.vscode": "De .code-werkruimte voor een pakket regenereren en openen in uw desktopeditor", + "iris.modded.help.entry.command.update": "De .code-werkruimte voor een pakket regenereren", + "iris.modded.help.entry.command.importvanilla": "Leg vanilla import workflow uit", + "iris.modded.help.entry.command.validate": "Valideer een verpakking of elke verpakking", + "iris.modded.help.entry.command.cleanup": "Preview of quarantaine kandidaten voor niet-gebruikte bronnen", + "iris.modded.help.entry.command.restore": "De nieuwste quarantaine bekijken of herstellen", + "iris.modded.help.entry.command.status_validation": "Gecachede validatiestatus tonen", + "iris.modded.help.entry.command.enable": "Creëer en injecteer een persistent Iris dimensie op runtime; downloadt het pakket indien ontbreken, offertepakket:dimensionKey om een specifieke verpakkingsdimensie te kiezen", + "iris.modded.help.entry.command.replace_overworld": "Injecteer een Iris primaire wereld en route spelers er in plaats van de vanilla bovenwereld", + "iris.modded.help.entry.command.disable": "Evacueer en ontlaad een Iris dimensie; wereldgegevens op schijf worden bewaard voor her-enabling", + "iris.modded.help.entry.command.delete": "Schakel een Iris dimensie en wis zijn chunk en Mantle data van schijf", + "iris.modded.help.entry.command.list": "Lijst geladen Iris afmetingen", + "iris.modded.help.entry.command.status_world": "geladen tonen Iris dimensies en de geconfigureerde primaire wereld", + "iris.modded.help.entry.command.status_datapack": "Ingeladen controleren Iris dimensietype overrides", + "iris.modded.help.entry.command.install": "Dimensietype overschrijven voor geladen Iris afmetingen", + "iris.modded.help.entry.command.list_datapacks": "Lijst geconfigureerde en geïnstalleerde datapacks", + "iris.modded.help.entry.command.ingest": "Leg uit Bukkit datapack opgenomen workflow", + "iris.modded.help.entry.command.remove": "Leg uit datpack verwijdering workflow", + "iris.modded.help.entry.command.list_structures": "Regeneren structure-index.json", + "iris.modded.help.entry.command.info_2": "Los een Iris structuurgrafiek en rapportagegrenzen", + "iris.modded.help.entry.command.place": "Verzamel en plaats een Iris structuur op uw locatie", + "iris.modded.help.entry.command.import": "Leg uit Bukkit structuur import workflow", + "iris.modded.help.entry.command.capture": "Leg uit Bukkit structuur capture workflow", + "iris.modded.help.entry.command.verify": "Native en Iris Bereikbaarheid van de structuur in de huidige dimensie", + "iris.modded.help.entry.command.sentry": "Stuur een testuitzondering naar de Iris foutverslaggever", + "iris.modded.help.entry.command.network": "Lijst van netwerkinterfaces en hun adressen", + "iris.runtime.progress.finding_regions": "Regio's vinden", + "iris.runtime.progress.converting": "Converteren", + "iris.runtime.status.running": "Uitvoeren", + "iris.runtime.status.stopped": "Gestopt", + "iris.runtime.status.paused": "Gepauzeerd", + "iris.runtime.status.paused_lower": "gepauzeerd", + "iris.runtime.status.running_lower": "draait", + "iris.runtime.status.enabled": "ingeschakeld.", + "iris.runtime.status.disabled": "uitgeschakeld.", + "iris.runtime.status.unregistered": "niet geregistreerd", + "iris.runtime.status.none": "geen", + "iris.runtime.status.random": "willekeurig", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "waar", + "iris.runtime.status.false": "onwaar", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " overschrijven", + "iris.runtime.datapack.override_suffix": " (World Datapack Override geïnstalleerd)", + "iris.runtime.primary_world.players_routed_suffix": " (speelsters gerouteerd daar)", + "iris.runtime.primary_world.routing_disabled_suffix": " (gehandicapt)", + "iris.runtime.modded.no_dimension_match": "Nee Iris dimensie komt overeen met '{filter}'.", + "iris.runtime.teleport.world": "U bent geteleporteerd naar {world}.", + "iris.runtime.engine.hotloaded": "Warm geladen motor", + "iris.runtime.job.completed": "Voltooid {job} de {duration}", + "iris.runtime.job.scanning_selection": "Selectie scannen", + "iris.runtime.job.loading_chunks": "Chunks laden", + "iris.runtime.job.searched_chunks": "Zoeken {chunks} Knobbels", + "iris.runtime.job.compile": "Compileer", + "iris.runtime.job.saving_object": "Object opslaan", + "iris.runtime.job.downloading": "Downloaden", + "iris.runtime.job.extracting": "Uitpakken", + "iris.runtime.job.installing": "Installatie", + "iris.runtime.compile.iob_empty": "- IOB {file} heeft 0 blokken!", + "iris.runtime.compile.iob_empty_hover": "Fout:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} is niet 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Fout:\n{path}\nDe breedte, hoogte of diepte is nul (slecht formaat)", + "iris.runtime.compile.json_error": "- JSON Fout {file}", + "iris.runtime.compile.json_error_hover": "Fout:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Kan geen lader vinden voor {path}", + "iris.runtime.datapack.name": "Iris Wereldgeneratie", + "iris.runtime.pack.already_exists": "Pack bestaat al!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "overslaan {object}: laden is mislukt", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} hout ({branches} takken), {converted} Bladeren->hout, ~{distances} afstanden", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} hout ({branches} takken), {converted} Bladeren->hout, ~{distances} afstanden,!{pinned} gepind", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "falen {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Klaar: {processed} verwerkt, {changed} gewijzigd, {skipped} overgeslagen, {failed} mislukt", + "iris.runtime.tree_plausibilize.done_dry": "Klaar: {processed} verwerkt, {changed} gewijzigd, {skipped} overgeslagen, {failed} mislukt (droge uitvoeren, niets geschreven)", + "iris.runtime.tree_plausibilize.totals": "Totaal: +{wood} hout ({branches} takken), {converted} Bladeren->hout, ~{distances} afstanden,!{pinned} gepind, onbereikbaar {before} -> {after}", + "iris.runtime.item.wand.name": "Ton van Iris", + "iris.runtime.item.wand.lore.first": "Klik links op een blok om de eerste hoek in te stellen", + "iris.runtime.item.wand.lore.second": "Klik met de rechtermuisknop op een blok om de tweede hoek in te stellen", + "iris.runtime.item.dust.name": "Stof van het onthullen", + "iris.runtime.item.dust.lore": "Klik met de rechtermuisknop op een blok om zijn plaatsingsstructuur te onthullen!", + "iris.runtime.wand.position_set": "Positie {position} ingesteld op {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Deze dimensie is niet door Iris gegenereerd.", + "iris.runtime.dust.found_object": "Object gevonden {object}", + "iris.runtime.dust.revealed": "Onthuld {count} blok(s) van {object}", + "iris.runtime.dust.revealed_capped": "Onthuld {count} blok(s) van {object} (geklapt)", + "iris.runtime.dust.header": "--- Iris Stof {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Blok: {block}", + "iris.runtime.dust.position.above": "Positie: +{offset} boven oppervlakte (oppervlakte Y={surfaceY})", + "iris.runtime.dust.position.below": "Positie: {offset} onder het oppervlak (oppervlakte Y={surfaceY})", + "iris.runtime.dust.position.at": "Positie: aan het oppervlak (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Object-@blok: {object}", + "iris.runtime.dust.none": "geen", + "iris.runtime.dust.placed_by.object_above": "Geplaatst door: object/stilt '{object}\" (boven)", + "iris.runtime.dust.placed_by.decoration_above": "Geplaatst door: decoratie/object/stilt (bovenzijde)", + "iris.runtime.dust.placed_by.buried_object": "Geplaatst door: begraven voorwerp '{object}'", + "iris.runtime.dust.placed_by.terrain": "Geplaatst door: terreinlaag (diepte {depth} onder de oppervlakte)", + "iris.runtime.dust.column_object": "Kolom object: {object} -> dit blok is waarschijnlijk de schuif van het object", + "iris.runtime.dust.column_object_none": "Kolom object: {detail}", + "iris.runtime.dust.column_none": "geen binnen 64 (decorator of terrein, niet een object stelt)", + "iris.runtime.dust.column.above": "{object} @Y={y} (boven)", + "iris.runtime.dust.column.below": "{object} @Y={y} (onder)", + "iris.runtime.dust.surface_biome": "Oppervlaktebioom: {biome}", + "iris.runtime.dust.surface_biome_detail": "Oppervlaktebioom: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome-@Y: {biome}", + "iris.runtime.dust.cave_biome": "Grot /Mantle biome {biome}", + "iris.runtime.dust.server_biome": "Serverbiome: {biome} (ID: {id})", + "iris.runtime.dust.region": "Regio: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objecten in blok: {objects}", + "iris.runtime.dust.copy_button": "[Klik om deze statistieken te kopiëren]", + "iris.runtime.dust.copy_hover": "Blokstatistieken naar klembord kopiëren", + "iris.runtime.pregen.starting": "Iris Beginnen...", + "iris.runtime.pregen.header": "Iris Voorbereiding", + "iris.runtime.pregen.bossbar.paused": "Iris Voorbereiding {generated}/{total} {percent}% gepauzeerd", + "iris.runtime.pregen.bossbar.running": "Iris Voorbereiding {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " mislukt {failed}", + "iris.runtime.pregen.status.context": "Dimensie {dimension} · Methode {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Knobbels {generated}/{total} · Snelheid {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Knobbels {generated}/{total} · Snelheid {speed}/s · mislukt {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Vervallen {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Vervallen {elapsed} · gepauzeerd", + "iris.runtime.pregen.button.pause": "Pauze/hervatten", + "iris.runtime.pregen.button.pause.hover": "Voorgeneratiepauze-status aan/uitschakelen", + "iris.runtime.pregen.button.stop": "Stoppen", + "iris.runtime.pregen.button.stop.hover": "Voltooi de huidige regio en stop pregeneratie", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cpakketten/map niet gevonden.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eGeen pakketten om te valideren.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidatie voltooid. Gebroken verpakkingen: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cVerpakking{pack}' niet gevonden onder packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aGeen cleanup kandidaten gevonden voor pakket '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aQuarantaine {size} cleanup candidate(s) onder {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cDe opruimmodus moet een voorbeeld zijn of toegepast worden.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aGeen cleanup kandidaten gevonden voor pakket '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eSchoonmaakvoorbeeld voor verpakking '{pack}': {size} kandidaat(s). Er werden geen bestanden gewijzigd.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Uitvoeren /iris pack cleanup {pack} mode=apply om deze kandidaten in quarantaine te houden na een nieuwe scan.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cHerstel geweigerd omdat {size} destination(s) bestaat al.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNiets te herstellen voor de verpakking '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aHersteld {size} bestand(s) van {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cDe herstelmodus moet een voorbeeld zijn of toegepast worden.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNiets te herstellen voor de verpakking '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eVoorbeeld herstellen voor {dumpPath}: {size} bestand(s). Er werden geen bestanden gewijzigd.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cHerstel wordt geblokkeerd door {size} bestaande bestemming(s).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Uitvoeren /iris pack restore {pack} mode=apply te herstellen na een nieuwe conflict controle.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eGeen validatieresultaten geregistreerd. Uitvoeren /iris pack validate Eerst.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK.§r {pack}§7 (blokkering={blocking}, waarschuwingen={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBOKEN§r {pack}§7 (blokkering={blocking}, waarschuwingen={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cOpruimen mislukt: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cHerstellen mislukt: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "nog steeds in quarantaine", + "iris.bukkit.runtime.commandpack.path.quarantined": "in quarantaine", + "iris.bukkit.runtime.commandpack.path.candidate": "kandidaat", + "iris.bukkit.runtime.commandpack.path.conflict": "conflicten", + "iris.bukkit.runtime.commandpack.path.restored": "hersteld", + "iris.bukkit.runtime.commandpack.path.file": "bestand", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eGeen validatie resultaat voor '{pack}'. Uitvoeren /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cValidatie van{name}' mislukt: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aVerpakking{packName}' is laadbaar.§7 (waarschuwingen={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cVerpakking{packName}' beschadigd:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... en {count} meer waarschuwingen.", + "one": "§7 ... en {count} Meer waarschuwing." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cMaak altijd een back-up voordat je dit gebruikt", + "§eMogelijke problemen zijn onder andere:", + "§e - Gechunken chunks (afgesneden randen) tussen oude en nieuwe chunks (voor & na de update)", + "§e - Opnieuw gegenereerde chunks die niet aansluiten op de oude chunks", + "§e - Structuren die bij regeneratie niet opnieuw spawnen", + "§e - Grotten die niet op elkaar aansluiten", + "§e - Terreinlagen die niet op elkaar aansluiten", + "§cWanneer je de risico's begrijpt en een back-up hebt gemaakt:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImporteren §f{total}§a vanilla & datapack structuren (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[fout] {keyString}: ongeldige sleutel", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[overgeslagen] {keyString}: geen enkel template NBT - vanilla bouwt dit in code of uit afzonderlijke stuk templates (geïmporteerd via de sjablonen pas); niets te importeren als één structuur.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[fout] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aBulkinvoer voltooid: §f{imported}§a ingevoerd, §f{skipped}§a overgeslagen, §f{failed}§a mislukt (§f{total}§a Totaal).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aBouwen van enkelwandige structuren uit geïmporteerde stukken (één variant geplaatst per generatie)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} varianten)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[overgeslagen] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[fout] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aéénplaatconstructies: §f{imported}§a gebouwd, §f{skipped}§a overgeslagen, §f{failed}§a mislukt.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cOpsomming van structuursjablonen via de server mislukt ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eEr werden geen structuursjablonen gevonden onder het 'structure' resource pad.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImporteren §f{total}§a structuursjablonen (modus={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[fout] {keyString}: ongeldige sleutel", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[fout] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} ingevoerd, {skipped} overgeslagen, {failed} faalde)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aSjabloon importeren voltooid: §f{imported}§a ingevoerd, §f{skipped}§a overgeslagen, §f{failed}§a mislukt (§f{total}§a Totaal).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eEr zijn geen datapack (niet-mijnbouw) structuren geregistreerd. Installeer eerst een datapack en start dit opnieuw op.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImporteren §f{total}§a datapack structuren (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[fout] {keyString}: ongeldige sleutel", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[fout] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImporteren §f{size}§a templates voor gegevenspackstructuur...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[fout] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[fout] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eKon datapack sjablonen niet opnoemen via de server ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aDatapack structuur import voltooid: §f{imported}§a ingevoerd, §f{skipped}§a overgeslagen, §f{failed}§a mislukt.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eStructuur capture wordt niet ondersteund door de actieve NMS binding; de vangstpas overslaan.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Geen code-gegenereerde structuren meer te vangen (alles is al als structuur geïmporteerd).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aVangen §f{total}§a code-gegenereerde structuren (geen NBT sjabloon) in een kraswereld (een breder/vertaler overslaan dan {MAXSPAN} blokken)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[overgeslagen] {key}: heeft hier geen captureerbare structuur geplaatst (te groot, verkeerde dimensie of geen geldige plaatsing in een platte wereld). Blijft vanilla gegenereerd.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[fout] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[fout] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} gevangen, {skipped} overgeslagen, {failed} faalde)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aStructuuropvang voltooid: §f{imported}§a gevangen, §f{skipped}§a overgeslagen, §f{failed}§a mislukt (§f{total}§a Totaal).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eGeen vanillaboom/object eigenschappen worden blootgesteld door de actieve NMS binding (alleen invoerstructuren).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImporteren §f{total}§a vanillaboom/objectkenmerken (§f{wantVariants}§a varianten elk) in een kraswereld...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[overgeslagen] {key}: functie geplaatst niets na retrieves.", + "iris.bukkit.runtime.featureimporter.fail": "§c[fout] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} ingevoerd, {skipped} overgeslagen, {failed} faalde)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aFunctie import voltooid: §f{imported}§a geschreven kenmerken; §f{skipped}§a overgeslagen, §f{failed}§a mislukt (§f{total}§a Totaal).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cKon de kraswereld voor feature import niet aanmaken ({error}); de boom/object pas overslaan.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Geen schematische bestanden om te converteren gevonden in {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aOmgezet {name} -> {value} de {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aOmgezet {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cOpslaan mislukt: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cConverteren mislukt: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Omgezet: {get} de {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cSommige schema's konden niet worden omgezet. Controleer de console voor details.", + "iris.bukkit.runtime.studiosvc.installing_package": "Pakket installeren: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Op zoek naar pakket: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Gevonden {type}Iris in {WORKSPACENAME} map", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Gevonden {type} dimensie in {WORKSPACENAME} map. Herverpakking", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Kan de {name} in de afmetingen map van dit pakket! Mislukt!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Kan de dimensie niet laden! Mislukt!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} type geïnstalleerd. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Verpakking{key}' werd niet gevonden in de verpakking lijst.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Gebruik /iris download branch= handmatig downloaden.", + "iris.bukkit.runtime.studiosvc.failed_download": "Downloaden mislukt{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Downloaden van de IrisDimensions/overworld bèta release.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Downloaden mislukt{repo}\" (tak {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Openen van studiowereld mislukt: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Kan studio niet openen '{dimm}' - Pack heeft blokkerende fouten:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Repareer de verpakking en ren /iris pack validate {dimm} om te hervalideren.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Het bestaande studioproject kon niet worden afgesloten: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Het bestaande studioproject kon niet worden afgesloten: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Openen van studiowereld mislukt: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Kon het pakket niet vinden om een nieuwe dimensie van te maken.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Ontbrekend geïmporteerd dimensiebestand", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importeren {downloadable} in nieuw project {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio: geen cel onder klik (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObjectstudio: opslaan §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: geen wijzigingen voor {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: lege cel {pack}/{key} (niets te schrijven).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: geen doelbestand voor {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObjectstudio: opgeslagen §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObjectstudio: opslaan mislukt voor {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Kon dimensie niet laden \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Kon dimensielader niet verkrijgen", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStudio openen mislukt: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStudio openen mislukt.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio klaar §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Seriëlen van objecten", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Schreef er nog een. {g} Objecten", + "iris.bukkit.runtime.irisproject.package_compiled": "Pakket samengesteld!", + "iris.bukkit.runtime.irisproject.failed": "Mislukt!", + "iris.bukkit.runtime.irisengine.total": "Totaal: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Motor §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Bijzonderheden: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} is niet gedefinieerd in de dimensie!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cKon niet vinden {message} binnen zoekbereik.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeleporteren naar {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} bij: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Jullie zijn geëvacueerd uit deze wereld.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Jullie zijn geëvacueerd uit deze wereld. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Er zijn wat Iris Packs met aangepaste biomes erin", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "U moet uw server opnieuw opstarten om deze pakketten te gebruiken.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Onvoldoende machtigingen", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Er zijn geen sub-commando's of je hebt geen toestemming om ze te gebruiken.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parameters genegeerd: {m}", + "iris.runtime.studio.opening": "§6Studio §bOPENEN", + "iris.runtime.studio.opening_progress": "§6Studio §bOPENEN§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cMISLUKT§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aGEREED§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cMISLUKT§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio gereed§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Initialiseren", + "iris.runtime.studio.stage.queued": "In wachtrij", + "iris.runtime.studio.stage.resolve_dimension": "Dimensie bepalen", + "iris.runtime.studio.stage.prepare_world_pack": "Wereldpack voorbereiden", + "iris.runtime.studio.stage.install_datapacks": "Datapacks installeren", + "iris.runtime.studio.stage.create_world": "Wereld maken", + "iris.runtime.studio.stage.apply_world_rules": "Wereldregels toepassen", + "iris.runtime.studio.stage.prepare_generator": "Generator voorbereiden", + "iris.runtime.studio.stage.request_entry_chunk": "Ingangschunk laden", + "iris.runtime.studio.stage.resolve_safe_entry": "Veilige spawn zoeken", + "iris.runtime.studio.stage.teleport_player": "Teleporteren", + "iris.runtime.studio.stage.finalize_open": "Afronden", + "iris.runtime.studio.stage.cleanup": "Opruimen", + "iris.runtime.world_create.teleport_failed": "§eDe wereld werd gecreëerd, maar de automatische teleportatie mislukte. Probeer /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunks", + "iris.runtime.world_create.console": "§6Genereren §e{percent}%§7 {generated}/{required} chunks§8 ({remaining} links)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregeneren", + "iris.runtime.world_create.pregen.console": "§6Pregeneren §e{percent}%", + "iris.runtime.chunk_job.title.regen": "RegenName", + "iris.runtime.chunk_job.title.delete": "Verwijderen", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Voorbereiding", + "iris.runtime.chunk_job.stage.clearing": "Verruiming", + "iris.runtime.chunk_job.stage.resetting_mantle": "Herstellende Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Regenererend", + "iris.runtime.chunk_job.stage.generating": "Genereren", + "iris.runtime.chunk_job.stage.comparing": "Vergelijking", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnose", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bWERKZAAMHEDEN", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks in {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks in {elapsed} ({failures} faalde)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aKLAAR§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cNIET VERMIST§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aKlaar§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cMislukt§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} compleet: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} voltooid met fouten: {summary}", + "iris.runtime.golden.no_capture": "Geen gouden vangst op {path}; eerst vangen.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash afgechunken: {failed} Brokken konden niet worden aangemaakt. Geen gouden dossier geschreven.", + "one": "GoldenHash afgechunken: {failed} Brok kon niet aanmaken. Geen gouden dossier geschreven." + }, + "iris.runtime.golden.failed": "GoldenHash mislukt: {error}", + "iris.runtime.golden.mantle_reset": "Mantle resetten ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle reset mislukt ({type}); voortzetting van de bestaande Mantletoestand.", + "iris.runtime.golden.captured": "Goud gevangen: {chunks} chunks gecombineerd={hash}", + "iris.runtime.golden.wrong_world": "Gouden bestand is voor dim={goldenDimension} zaad={goldenSeed} maar deze wereld is zwak={dimension} zaad={seed}. Afbreken.", + "iris.runtime.golden.version_warning": "Goud werd gevangen op mc={goldenVersion}, draaiend mc={version}. Diffs kunnen versie-geïnduceerd zijn.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunks, gecombineerd={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} Brokken verschillen.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (ontbrekend in goud)", + "iris.runtime.golden.mismatch_more": " ... en {count} meer", + "iris.runtime.golden.current_written": "Huidige hashes geschreven naar {file}", + "iris.runtime.golden.diag.stable": "Herhalingsgen STABLE, Mantle-reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Herhalingsgen UNSTABLE ({diffs}+ blok diffs), Mantle-reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (Mantle herbouw reproduceert scan output)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ diffs - Mantle opbouw is status/orde afhankelijk)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnose mislukt: {error}", + "iris.runtime.golden.started": "GoldenHash gestart: {chunks} chunks rond 0,0 in buffers (onaangeroerde wereld), draden={threads} modus={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] chunk {x},{z} gehashed", + "iris.runtime.golden.chunk_failed": "Chunk. {x},{z} mislukt: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Ongeldige verpakkingsnaam '{pack}\" (toegestaan: a-z, 0-9, en -)", + "iris.runtime.pack_download.invalid_branch_name": "Ongeldige branchnaam '{branch}\" (toegestaan: letters, cijfers, . en -)", + "iris.runtime.pack_download.failed": "Downloaden van pakket is mislukt: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Downloaden {url}", + "iris.runtime.pack_download.failed_to_find": "Kon pakket niet vinden op {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Zorg ervoor dat u de juiste repo en branch heeft opgegeven!", + "iris.runtime.pack_download.example_command": "Bijvoorbeeld: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Uitpakken {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Uitpakken. Controleer/doe het volgende:", + "1. Heeft u een werkende internetverbinding?", + "2. Is de download beschadigd?", + "3. Probeer de */plugins/iris/packs map en herdownload.", + "4. Download het pakket van de GitHub repo https://github.com/IrisDimensions/overworld", + "5. Contact ondersteuning (als alle andere opties niet helpen)" + ], + "iris.runtime.pack_download.no_extracted_files": "Er werden geen bestanden uit het zip-bestand gehaald.", + "iris.runtime.pack_download.home_directory_error": "Fout bij het vinden van de thuismap. Zijn er niet-tekst tekens in de bestandsnaam?", + "iris.runtime.pack_download.invalid_archive_format": "Ongeldig formaat. Ontbrekende rootmap of te veel mappen!", + "iris.runtime.pack_download.no_dimension_file": "Geen dimensiebestand gevonden in het uitgepakte zip-bestand.", + "iris.runtime.pack_download.check_github": "Controleer of het aanwezig is op GitHub En meld dit aan het personeel!", + "iris.runtime.pack_download.one_dimension_required": "De map afmetingen moet precies één bestand bevatten.", + "iris.runtime.pack_download.invalid_dimension": "Ongeldige dimensiemap onder dimensions/.", + "iris.runtime.pack_download.importing": "Importeren {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Een andere dimensie in de packs-map gebruikt al de sleutel {key}. Importeren mislukt!", + "iris.runtime.pack_download.pack_key_conflict": "Een ander pakje gebruikt de sleutel {key}. Importeren mislukt!", + "iris.runtime.pack_download.acquired": "Succesvol verworven {name}.", + "iris.runtime.pack_download.validation_failed": "Verpakking{pack}' mislukte validatie; wereld en Studio creatie zal worden geweigerd. Motivering:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Verpakking{pack}' gevalideerd met {count} waarschuwingen.", + "one": "Verpakking{pack}' gevalideerd met {count} waarschuwing." + }, + "iris.runtime.pack_download.validated": "Verpakking{pack}' gevalideerd.", + "iris.client.vision.title": "Iris Gezicht", + "iris.client.vision.connecting": "Verbinden met Iris server...", + "iris.client.vision.not_connected": "niet verbonden", + "iris.client.vision.not_iris_world": "Geen Iris wereld", + "iris.client.vision.no_dimension_data": "geen dimensiegegevens", + "iris.client.vision.header_detail": "{status} zoomen {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Sleep naar pan scrollen om Esc te sluiten", + "iris.client.vision.dimension_pack": "{dimension} verpakking {pack}", + "iris.client.toast.studio_hotload": "Studio HotloadName", + "iris.client.toast.changed_files": { + "other": "{count} bestanden", + "one": "{count} bestand" + }, + "iris.client.toast.reload_failed": "herladen mislukt", + "iris.client.toast.reloaded": "herladen", + "iris.client.toast.pack_failed": "{pack} mislukt", + "iris.client.what.title": "Iris Wat?", + "iris.client.what.querying": "Opvragen {x}, {z}...", + "iris.client.what.biome": "Biome {biome}", + "iris.client.what.region": "Regio: {region}", + "iris.client.what.cave": "Grot: {cave}", + "iris.client.what.height": "Hoogte: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "gepauzeerd", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris.", + "iris.bukkit.scoreboard.speed": "§aSnelheid§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bKaas§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantel§7: {count}", + "iris.bukkit.scoreboard.carving": "§dsnijden§7: {state}", + "iris.bukkit.scoreboard.region": "§bGebieden§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiomeName§7: {biome}", + "iris.bukkit.scoreboard.height": "§bHoogte§7: {height}", + "iris.bukkit.scoreboard.slope": "§bHelling§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD./s§7: {updates}", + "iris.desktop.vision.title": "Iris Gezicht", + "iris.desktop.vision.view": "Beeld:", + "iris.desktop.vision.grid": "Raster", + "iris.desktop.vision.follow": "Volgen", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Verversen", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Reset zoomen", + "iris.desktop.vision.grid_enabled": "Raster ingeschakeld", + "iris.desktop.vision.grid_disabled": "Raster uitgeschakeld", + "iris.desktop.vision.following": "Volgt {player}", + "iris.desktop.vision.no_player": "Geen speler in de wereld", + "iris.desktop.vision.follow_disabled": "Volgen uitgeschakeld", + "iris.desktop.vision.low_quality": "Van lage kwaliteit", + "iris.desktop.vision.high_quality": "Hoge kwaliteit", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} blokken", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Positie: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Gezondheid: {health} / {maximum}", + "iris.desktop.vision.block_position": "Blok {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk. {x}, {z}", + "iris.desktop.vision.region_position": "Gebieden {x}, {z}", + "iris.desktop.vision.biome_key": "Sleutel: {key}", + "iris.desktop.vision.biome_file": "Bestand: {file}", + "iris.desktop.vision.velocity": "Snelheid: {velocity}", + "iris.desktop.vision.tiles": "Tegels: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Werknemers: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Midden: {x}, {z}", + "iris.desktop.vision.help.toggle": "Hulp aan/uit", + "iris.desktop.vision.help.refresh": "Tegels verversen", + "iris.desktop.vision.help.follow": "Speler volgen", + "iris.desktop.vision.help.zoom": "In/uitzoomen", + "iris.desktop.vision.help.reset_zoom": "Zoom resetten", + "iris.desktop.vision.help.cycle_mode": "Cyclusweergavemodus", + "iris.desktop.vision.help.quality": "Tegelkwaliteit aan/uit", + "iris.desktop.vision.help.fps": "Schakelen 30/60 FPS", + "iris.desktop.vision.help.grid": "Raster aan/uit", + "iris.desktop.vision.help.biome": "Gedetailleerde biome info", + "iris.desktop.vision.help.teleport": "Teleporteren naar cursor", + "iris.desktop.vision.help.editor": "Biome openen in editor", + "iris.desktop.vision.opened": "Geopend {target}", + "iris.desktop.vision.teleporting": "Teleporteren naar {x}, {z}", + "iris.desktop.vision.mode.biome": "BiomeName", + "iris.desktop.vision.mode.biome_land": "Biome-grond", + "iris.desktop.vision.mode.biome_sea": "Biome zee", + "iris.desktop.vision.mode.region": "Gebieden", + "iris.desktop.vision.mode.cave_land": "Grotland", + "iris.desktop.vision.mode.height": "Hoogte", + "iris.desktop.vision.mode.object_load": "Objectbelasting", + "iris.desktop.vision.mode.decorator_load": "Decoratorbelasting", + "iris.desktop.vision.mode.continent": "Werelddeel", + "iris.desktop.vision.mode.layer_load": "Laagbelasting", + "iris.desktop.noise.title": "Geluidsverkenner", + "iris.desktop.noise.title_generator": "Geluidsverkenner: {generator}", + "iris.desktop.noise.search": "Zoeken...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} Zoom: {zoom} Waarde: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Aangepast", + "iris.desktop.noise.category.pack_generators": "Packgenerators", + "iris.desktop.noise.category.simplex": "SimplexName", + "iris.desktop.noise.category.perlin": "Perline", + "iris.desktop.noise.category.cellular": "Cellulair", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Klaver", + "iris.desktop.noise.category.hexagon": "Zeshoek", + "iris.desktop.noise.category.vascular": "Bloedvataandoeningen", + "iris.desktop.noise.category.globe": "Wereldbol", + "iris.desktop.noise.category.cubic": "Kubisch", + "iris.desktop.noise.category.fractal": "Fractaal", + "iris.desktop.noise.category.static": "Statisch", + "iris.desktop.noise.category.nowhere": "Nergens", + "iris.desktop.noise.category.sierpinski": "Sierpinskiworld.kgm", + "iris.desktop.noise.category.utility": "Hulpmiddel", + "iris.desktop.noise.category.other": "Andere", + "iris.desktop.pregen.initializing": "Initialiseren...", + "iris.desktop.pregen.title": "Beeld instellen", + "iris.desktop.pregen.method_pending": "In afwachting", + "iris.desktop.pregen.paused": "gepauzeerd", + "iris.desktop.pregen.resume_hint": "Druk op P om te hervatten", + "iris.desktop.pregen.pause_hint": "Druk op P om te pauzeren", + "iris.desktop.pregen.progress_paused": "gepauzeerd {generated} van {total} ({percent} volledig)", + "iris.desktop.pregen.progress_saving": "Opslaan... {generated} van {total} ({percent} volledig)", + "iris.desktop.pregen.progress_generating": "Genereren {generated} van {total} ({percent} volledig)", + "iris.desktop.pregen.speed": "Snelheid: {chunksPerSecond} chunks/s, {regionsPerMinute} regio's/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.speed_cached": "Snelheid: gecached {chunksPerSecond} chunks/s, {regionsPerMinute} regio's/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.time": "{remaining} resterende ({elapsed} verlopen)", + "iris.desktop.pregen.method": "Generatiemethode: {method}", + "iris.desktop.pregen.memory": "Geheugen: {used} ({usage}) Druk {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/pl_PL.json b/core/src/main/resources/languages/pl_PL.json new file mode 100644 index 000000000..8340479ec --- /dev/null +++ b/core/src/main/resources/languages/pl_PL.json @@ -0,0 +1,1435 @@ +{ + "locale": "pl_PL", + "messages": { + "director.help.navigation.parent.hover": "Wróć do nadrzędnej grupy poleceń", + "director.help.navigation.back": "Wstecz", + "director.help.no_subcommands": "Na tej stronie nie ma podpoleceń.", + "director.help.no_description": "Nie podano opisu", + "director.help.aliases": "Aliasy", + "director.help.command_group": "Grupa poleceń. Kliknij, aby otworzyć.", + "director.help.no_parameters": "Brak parametrów. Kliknij, aby wstępnie uzupełnić polecenie.", + "director.help.parameters": "Parametry", + "director.help.parameter.required": "wymagany", + "director.help.parameter.optional": "opcjonalny", + "director.help.parameter.default": "domyślny", + "director.help.navigation.previous.hover": "Poprzednia strona", + "director.help.navigation.next.hover": "Następna strona", + "director.help.navigation.page": "Strona", + "director.runtime.error.invalid_origin": "Tego polecenia nie można wykonać z tego źródła.", + "director.runtime.error.unknown_parameter": "Nieznany klucz parametru: {key}", + "director.runtime.error.unexpected_argument": "Nieoczekiwany argument \"{argument}\". Parametry opcjonalne muszą mieć klucz, np. seed=123", + "director.runtime.error.conversion_failed": "Nie można przekonwertować \"{value}\" na {type} dla {parameter}", + "director.runtime.error.default_parse_failed": "Nie można odczytać wartości domyślnej parametru {parameter}", + "director.runtime.error.missing_argument": "Brak argumentu \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Nie udało się wykonać polecenia {command}: {reason}", + "director.runtime.usage": "Użycie: {usage}", + "iris.command.permission_denied": "Nie masz uprawnienia '{permission}'", + "iris.command.unknown": "Nieznane polecenie Iris", + "iris.command.player_only": "Tego polecenia mogą używać tylko gracze.", + "iris.command.iris_world_required": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.command.reload.success": "Ustawienia i język {locale} zostały ponownie wczytane.", + "iris.command.reload.failed": "Ustawienia zostały ponownie wczytane, ale język {locale} został odrzucony; nadal używany jest {activeLocale}.", + "iris.modded.help.unknown_section": "Nieznany Iris sekcja pomocnicza: {section}", + "iris.modded.help.back_hover": "Powrót do {parent}.", + "iris.modded.help.command_parameter": "Parametr poleceń", + "iris.modded.help.parameter_required": "Ten parametr jest wymagany.", + "iris.modded.help.parameter_optional": "Ten parametr jest opcjonalny.", + "iris.modded.help.brigadier_text": "Ten parametr jest odczytywany jako tekst przez Brigadier.", + "iris.modded.help.operator_notice": "Iris polecenia wymagają zezwolenia operatora (poziom 2).", + "iris.modded.help.operator_instruction": "Biegnij {command} z konsoli (lub włączyć cheats w singleplayer); do tego czasu te polecenia nie będą uruchamiane lub table- complete.", + "iris.modded.command.properties.none": "Właściwości: (brak)", + "iris.modded.command.properties.list": "Właściwości: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Uruchomienie datapack połknięcie...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aSkonfigurowany import danych: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aZainstalowane pakiety danych: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eDodaj Modrinth URLs do wymiaru \"datapackImports'lista, a następnie uruchomić /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash uruchomiono: {value} chunków...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash nie powiódł się w chunku {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash globalny=§6{value}§a chunki={value2} stałe={solidBlocks} w {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Nie w Iris Świat!", + "iris.bukkit.commandfind.unknown_structure": "§cNieznana struktura: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Uruchom tę in- game, aby teleportować się do struktury.", + "iris.bukkit.commandfind.locating": "§7Lokalizacja {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Uruchom tę in- game, aby teleportować się do struktury.", + "iris.bukkit.commandfind.locating_2": "§7Lokalizacja {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeleportowane do {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aUdane usunięcie folderu światowego", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aUdane usunięcie folderu światowego", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cNie udało się usunąć folderu świata", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cNa tym serwerze nie znaleziono żadnych paczek z obiektami.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cBrak obiektów do umieszczenia w wybranym opakowaniu (-ach).", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aOtwieranie studia obiektów {scope} ({totalObjects} obiekty)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cNie udało się otworzyć studia obiektu: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cMusisz podać nazwę opakowania.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPaczka \"{pack}\"nie znaleziono pod packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... oraz {value} więcej.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aStruktury weryfikujące w §f{value}§a od {value2},{value3} wewnątrz {searchRadius} chunki...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImportowanie zawartości vanilla do §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportanyl ukończono: §f{imported}§a objects/structures na piśmie, §f{failed}§a Nie udało się.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Drzewa / obiekty są pod objects/vanilla/...; odnosić się do nich z biomów obiektów.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cŻadnych otwartych projektów studyjnych.", + "iris.bukkit.commandstudio.closing_studio": "§eStudia zamykania...", + "iris.bukkit.commandstudio.studio_close_failed": "§cZamknięcie studia nie powiodło się: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cZamknięcie studia nie powiodło się: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio zamknięte. Pozostający na całym świecie sprzątanie rodziny było w kolejce do startu.", + "iris.bukkit.commandstudio.studio_closed": "§aStudio zamknięte.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cMusisz być w świecie studia, żeby przełączyć tablicę wyników.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Tabela wyników debugowania studia {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cNie można teraz zaktualizować tablicy wyników debugowania Studio.", + "iris.bukkit.commandstudio.opened_inventory": "§aOtworzył inwentarz!", + "iris.bukkit.commandstudio.generating_data": "§7Generowanie danych...", + "iris.bukkit.commandstudio.done": "§aGotowe!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Nie masz pozwolenia.{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Stan:", + "iris.bukkit.irisenginestatus.service": "§5- Serwis: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metryka: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Okres konserwacji: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Paralelizm robotników: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Aktywne zadania świata: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Płyty tektoniczne:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Skonfigurowane zatrzymanie: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Hap Usage: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Rezydent: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- W kolejce: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Średni czas bezczynności: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Max Idle Czas trwania: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Min Idle Czas trwania: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Puszki:", + "iris.bukkit.irisenginestatus.resource": "§5- Zasoby: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Strumień 2D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Strumień 3D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Inne: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Pozostałe:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Światy: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Załadowane chunki: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cŚwiat jest nieobecny.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cCel Iris Świat przed czytaniem Mantle.", + "iris.bukkit.commanddeveloper.upgrading": "§aAktualizacja do {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aKoniec modernizacji! Możesz teraz zaktualizować wersję serwera do {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cPromień musi być 0 lub większe.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cTo nie jest... Iris Świat.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cDostęp do silnika dla tego świata jest zerowy.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aUsuń uruchomiony: §6{chunks}§a część (-y) wokół §6{centerX},{centerZ}§a. Bloki do powietrza.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cPromień musi być 0 lub większe.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cMusisz być w Iris Świat do użycia Regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cDostęp do silnika dla tego świata jest zerowy. Najpierw generuj pobliskie chunki.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen rozpoczął: §6{chunks}§a część (-y) wokół §6{centerX},{centerZ}§a. Usuwanie i regeneracja na miejscu.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cPromień musi być 0 lub większe.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cCel musi być Iris Świat.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cDostęp do silnika dla tego świata jest zerowy.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash rozpoczął: §6{chunks}§a część (-y) wokół §6{centerX},{centerZ}§a w zderzakach (świat nietknięty).", + "iris.bukkit.commandedit.players_only": "§cTylko gracze!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cŻadne studio nie jest otwarte!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cMusisz być w świecie studia!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cNie można otwierać plików w środowisku bez głowy!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cDesktop nie jest obsługiwany przez to środowisko!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Nie można znaleźć pliku; Może nie został on załadowany bezpośrednio z pliku?", + "iris.bukkit.commandedit.opening_vscode": "§aOtwarcie {value} {value2} w VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cZnajdź plik. Lub rejestrujący nie istnieje", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Nie można znaleźć pliku; Może nie został on załadowany bezpośrednio z pliku?", + "iris.bukkit.commandedit.opening_vscode_2": "§aOtwarcie {value} {value2} w VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cZnajdź plik. Lub rejestrujący nie istnieje", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Nie można znaleźć pliku; Może nie został on załadowany bezpośrednio z pliku?", + "iris.bukkit.commandedit.opening_vscode_3": "§aOtwarcie {value} {value2} w VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cZnajdź plik. Lub rejestrujący nie istnieje", + "iris.bukkit.commandfind.not_iris_world_5": "§6Nie w Iris Świat!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Nie w Iris Świat!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Nie w Iris Świat!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Nie w Iris Świat!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aStudio obiektu: teleportacja do {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} nie jest skonfigurowany w żadnym regionie / biom obiektów.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cNie możesz użyć nazwy świata \"iris\", ponieważ Iris używa tego katalogu dla światów Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cCzy możemy zasugerować nazwę \"IrisWorld\"zamiast?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cNie możesz użyć nazwy świata \"benchmark\", ponieważ Iris używa tego katalogu dla pakietów testów wydajności.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cCzy możemy zasugerować nazwę \"IrisWorld\"zamiast?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cTen folder już istnieje!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cNie można znaleźć lub pobrać wymiar \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eSpróbuj jeden z: zaświaty, vanilla, płaski, koniec", + "iris.bukkit.commandiris.download_manually_iris_download": "§eLub pobrać ręcznie: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPrzygotowanie świata ukończone. Uruchom serwer ponownie, aby wygenerować/wczytać „{worldName}”.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cWyjątek podniesiony podczas tworzenia. Więcej szczegółów znajdziesz w konsoli.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aZ powodzeniem stworzyłeś swój świat!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aTwój świat zostanie automatycznie ustawiony jako główny świat po ponownym uruchomieniu serwera.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eRuntime world creation jest wyłączone na Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§ePrzygotowanie światowych plików i bukkit.yml dla następnego startup...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cNie udało się sscenizować plików świata dla wymiaru \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aAktualizacja server.properties level- name do \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cŚwiat został wystawiony, ale nie udało się zaktualizować server.properties Główny świat.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aPrzygotowano świat Iris „{name}” z generatorem Iris:{value} i ziarnem {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aTen świat jest teraz skonfigurowany jako główny dla następnego restartu.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cNie udało się zaktualizować bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cOkreślony gracz nie istnieje.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v.{value} przez Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} do {value2}", + "iris.bukkit.commandiris.total_height": "§aWysokość całkowita: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9/ Iris Worlds: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Świat Bukkit: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cTo nie jest... Iris Świat. Iris światy: {value}", + "iris.bukkit.commandiris.removing_world": "§aUsuwanie świata: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cNie udało się ewakuować świata: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cNie udało się rozładować świata: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aUdane usunięcie {value} od bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eWygląda na to, że świat został już usunięty z bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cNie udało się zapisać bukkit.yml z powodu {value}", + "iris.bukkit.commandiris.set_debug": "§aUstaw debugowanie na: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aPobieranie opakowania: {pack} (uwalnianie beta){value}", + "iris.bukkit.commandiris.downloading_pack": "§aPobieranie opakowania: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cMusisz być w Iris świat", + "iris.bukkit.commandiris.sending_metrics": "§aWysyłanie wskaźników...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cTo nie jest... Iris Świat. Iris światy: {value}", + "iris.bukkit.commandiris.unloading_world": "§aRozładowywanie świata: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aŚwiat rozładowany pomyślnie.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cNie udało się rozładować świata.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cNie udało się rozładować świata: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Nie istnieje na serwerze.", + "iris.bukkit.commandiris.generator": "§9Generator {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} nie jest światem tęczówki.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cNie można określić Iris wymiar {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aWczytywanie świata: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia nie może ładować nowych światów. Przywróć serwer do wczytania \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} załadowany pomyślnie.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cTo nie jest... Iris Świat. Iris światy: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEwakuacja świata{value}", + "iris.bukkit.commandobject.object_size": "Rozmiar obiektu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Używane bloki: {value}", + "iris.bukkit.commandobject.blocks_object": "= = Bloki w obiekcie = =", + "iris.bukkit.commandobject.other_block_types": " + {value} inne rodzaje bloków", + "iris.bukkit.commandobject.current_object_size": "Aktualny rozmiar obiektu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Nowy rozmiar obiektu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Nie udało się zapisać obiektu {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cBrak dopasowanych obiektów: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPopusibilize [reach={reach}{value}] w kolejce {value2} obiekt (y)", + "iris.bukkit.commandobject.hold_your_wand": "Trzymaj różdżkę.", + "iris.bukkit.commandobject.no_area_selected": "Nie wybrano obszaru.", + "iris.bukkit.commandobject.ready_your_wand": "Przygotuj swoją różdżkę.", + "iris.bukkit.commandobject.ready_your_wand_2": "Przygotuj swoją różdżkę.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eWskazana skala przekracza maksimum. Maksymalna skala: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Aktualizacja różdżki objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "W przypadku nowej różdżki objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Aktualizacja różdżki objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aUmieszczone {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eMusisz trzymać różdżkę!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cPlik już istnieje. Ustaw nadpisanie = true, aby nadpisać.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cNie udało się zapisać obiektu z powodu IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aUdany obiekt do zapisu: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Trzymaj różdżkę.", + "iris.bukkit.commandobject.no_area_selected_2": "Nie wybrano obszaru.", + "iris.bukkit.commandobject.reverted_pastes": "§9Cofnięto {actualReverts}§9 wklejeń!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cNie dostaniesz WorldEdit wybór bez WorldEditNo wiesz.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cNie masz WorldEdit wybór na tym świecie.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aŚwieża różdżka z prądem WorldEdit Wybór!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPuf! Powodzenia w budowaniu!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eTrzymaj różdżkę!", + "iris.bukkit.commandobject.no_area_selected_3": "Nie wybrano obszaru.", + "iris.bukkit.commandobject.auto_select_complete": "§aAuto- select zakończone!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eTrzymaj różdżkę!", + "iris.bukkit.commandobject.no_area_selected_4": "Nie wybrano obszaru.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aAuto- select zakończone!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPromień pregen musi być większy niż zero bloków.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cŚciśle szeregowa pregeneracja wymaga Paper lub serwera zgodnego z Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cSilnik dostępu dla tego świata jest zerowy!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cUpewnij się, że świat jest załadowany. & silnik jest inicjalizowany. Na przykład wygenerować nowy kawałek.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cNie udało się rozpocząć pregeneracji. Szczegóły znajdują się w konsoli.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eBrak aktywnych zadań pregeneracyjnych do zatrzymania", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aPrzełączono stan wstrzymania zadania pregeneracji. Obecny stan: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eBrak aktywnych zadań pregeneracyjnych do zatrzymania / wyłączenia.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eBrak aktywnego zadania pregeneracji.", + "iris.bukkit.commandpregen.pregen": "§aPregon §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aPrędkość: §6{value}/s§a ETA: §6{value2}§a Upłynęło: §6{value3}§a Metoda: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aIndeks struktury napisanej: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportowanie całej vanilla & struktury datapack do §f{value}§a (nadpisać)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImport zakończony: §f{imported}§a structures/objects na piśmie, §f{failed}§a Nie udało się.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Odniesienie do nich z listy \"struktur\" / regionu / wymiaru, lub uruchomić /iris structure list {value} aby odświeżyć indeks. Regeneruj chunki, aby zmiany zaczęły obowiązywać.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Uchwycony {value} struktury. Umieścić je z listy \"struktur\" i regenerować chunki. Usuń structures/*.json by go ponownie uchwycić.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cNie załadowano Iris świat znaleziony dla {value}. Dołącz lub utwórz jeden pierwszy (poszukiwanie prowadzi przeciwko żywemu światu).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cWybrane Iris Świat nie ma aktywnego silnika generatora.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cBrak struktury tęczówki \"{structure}'w tym opakowaniu", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cStruktura \"{structure}\"zmontowane 0 części (kontrola startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aStruktura \"{structure}': §f{value}§a części, odcisk stopy §f{value2}x{value3}§a bloki (materiał siewny próbki 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cBrak struktury tęczówki \"{structure}'w tym opakowaniu", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cStruktura \"{structure}\"zmontowane 0 kawałki", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aUmieszczone \"{structure}' ({value} sztuk) w miejscu.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aStudio otwarcia dla \"{value}\"opakowanie (nasiona: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cNależy podać zestaw wymiarów: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cNie można rozwiązać pakietu dla wymiaru {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aOtwarcie VSCode dla \"{value}\"opakowanie", + "iris.bukkit.commandstudio.pack_has_version": "§a\"{value}\"Pack ma wersję: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aOtwarcie Noise Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cNie można dodać elementów do wirtualnego inwentarza z powodu: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aOtwieram inwentaryzację!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cTylko działa w Iris Świat!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cMusisz być w lub określić Iris- Stworzony świat!", + "iris.bukkit.commandstudio.opening_map": "§aMapa otwarcia!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Obliczanie wskaźników wydajności dla generatorów hałasu", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Obliczanie terminów interpolatora...", + "iris.bukkit.commandstudio.processing_generator_scores": "Wyniki generatora przetwarzania: ", + "iris.bukkit.commandstudio.score": "Wynik: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aGotowe! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cMusisz znajdować się w świecie Iris, aby poprawnie spawnować encje. Zostaną zespawnowane najlepiej, jak to możliwe.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cŻadne studio nie jest otwarte!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cJesteś już w świecie studia!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aWysyłam cię do studia!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Aktualizacja kodu Workspace dla {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aAktualizacja kodu Workspace dla {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cNieprawidłowy projekt: {value}. Spróbuj usunąć plik code- workspace i spróbuj ponownie.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cMusisz być w Iris świat", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Musisz być w świecie tęczówki.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Chwytanie IGenData od {value} Pobliskie chunki.", + "iris.bukkit.commandstudio.reported": "Zgłoszone do: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cMusisz mieć serwer uruchomiony GUIs włączone w ustawieniach!", + "iris.bukkit.commandstudio.players_only": "§cTylko gracze!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cŻadne studio nie jest otwarte!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cMusisz być w świecie studia!", + "iris.bukkit.commandwhat.material": "Materiał: §a{value}", + "iris.bukkit.commandwhat.full": "Pełna: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Proszę przytrzymać blok / element", + "iris.bukkit.commandwhat.material_2": "Materiał: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Proszę przytrzymać blok / element", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Nie...Iris Biom: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Biome Pack Data: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aTylko Iris.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Proszę spojrzeć na każdy blok, nie na niebo", + "iris.bukkit.commandwhat.material_3": "Materiał: §a{value}", + "iris.bukkit.commandwhat.full_2": "Pełna: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Storage Block (Loot Catable)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Lit Block (Light Cable)", + "iris.bukkit.commandwhat.foliage_block": "§e* Block Foliage", + "iris.bukkit.commandwhat.decorant_block": "§e* Blok dekoracyjny", + "iris.bukkit.commandwhat.fluid_block": "§e* Blok płynów", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Plantable Block Foliage", + "iris.bukkit.commandwhat.solid_block": "§e* Solidny blok", + "iris.bukkit.commandwhat.found_nearby_markers": "Znaleziono {value} Niedaleko Markery ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aTylko Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Konsola musi zawierać nazwę biomu: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Sprawdzanie biomu nie powiodło się: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Nieznany biom: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Konsola musi zawierać nazwę regionu: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Przeszukanie regionu nie powiodło się: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Nieznany region: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Nie można tutaj otworzyć plików: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Nie można znaleźć pliku; może nie został załadowany bezpośrednio z pliku?", + "iris.modded.irismoddedcommands.could_not_open": "Nie można otworzyć {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Otwarcie {value} {value2} w twoim wydawcy.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Konsola musi nazwać gracza: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} nie jest generowany przez Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleport nie powiódł się: wymiar {dimensionId} nie jest załadowany.", + "iris.modded.irismoddedcommands.teleporting": "Teleportowanie {value} do {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} nie jest generowany przez Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Nie można ewakuować głównego świata; nie ma gdzie wysłać graczy.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Ewakuowane {count} odtwarzacz (-i) z {value} do {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Ustaw debugowanie na: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Naświetlone ustawienia", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Polecenie to może być używane tylko przez graczy (kontroluje element trzymany).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Twoja główna ręka jest pusta.", + "iris.modded.irismoddedcommands.hand_x": "Ręka: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} nie jest generowany przez Iris; patrz /iris info do załadowania Iris wymiary.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Obecny wymiar ({value}) nie jest generowane przez Iris. Wymień jeden wyraźnie: /iris pregen start {radius} ; patrz /iris info do załadowania Iris wymiary.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Zadanie pregeneracji już trwa. Najpierw przestań. /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen {value} z {value2} przez {value3} bloki {centerX},{centerZ}.{modeNote} Logi postępu do konsoli; zobacz /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Zatrzymanie pregeneracji; zakończenie obecnego regionu...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Brak aktywnego zadania pregeneracji.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Brak aktywnego zadania pregeneracyjnego do zatrzymania / wznowienia.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Regeneracja {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Brak aktywnego zadania pregeneracji.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} przez Volmit Software on {value2} (Minecraft {value3}), {engines} Iris Wymiar (-y)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Wymiary załadunku: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.biome": "Biom: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Sprawdzanie biomu nie powiodło się: {value}", + "iris.modded.irismoddedcommands.region": "Region {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Przeszukanie regionu nie powiodło się: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Biom jaskini: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Nie powiodło się szukanie biomu w jaskini: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Blok powierzchni: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Pozycja: {value} {value2} {value3} (kawałek {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Polecenie to może być używane tylko przez graczy (sprawdza blok, na który patrzysz).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Spójrz na blok, nie niebo.", + "iris.modded.irismoddedcommands.block_y": "Blok: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Polecenie to może być używane tylko przez graczy (znaczniki renderują jako cząstki wokół ciebie).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Skanowanie dla '{marker}'markery wokół ciebie...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Skan znaczników nie powiódł się: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Znaleziono {value} w pobliżu znacznika (-ów) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Nieznany biom: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Nieznany region: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} nie jest zdefiniowany w wymiarze!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} nie jest skonfigurowany w żadnym regionie / biom obiektów ({value} załadowane klucze do obiektu).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Polecenie to może być używane tylko przez graczy. (klucz obiektu \"{key}\"rozwiązane przeciwko {value} załadowane klucze obiektu)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Nazwa Iris lub rodzimej struktury do zlokalizowania.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Nieznana struktura \"{key}'. Użyj zakończenia karty, aby wybrać Iris umieszczenie lub zarejestrowana struktura rodzimej / datapack.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Poszukiwanie rodzimej struktury {value} wewnątrz {NATIVESTRUCTURELOCATERADIUS} chunki...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Szukam Iris- umieszczona struktura {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Nie można zlokalizować Iris- umieszczona struktura {key}: limit bezpieczeństwa wyszukiwania gęstości został osiągnięty przed pełnym 1024- Przeszukano promień chunka.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Nie można znaleźć Iris- umieszczona struktura {key} wewnątrz 1024 Fragmenty.", + "iris.modded.irismoddedcommands.search_failed": "Wyszukiwanie nie powiodło się: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Nie można znaleźć natywnej struktury {value} wewnątrz {NATIVESTRUCTURELOCATERADIUS} Fragmenty.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Szukaj rodzimej struktury {value} nie powiodło się: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Gracz rozłączył się przed zakończeniem wyszukiwania struktury.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Zmieniłeś wymiary przed zakończeniem wyszukiwania struktury; uruchom polecenie ponownie.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Znaleziono {label} w {targetX} {clampedY} {targetZ}Ale teleportacja zawiodła.", + "iris.modded.irismoddedcommands.teleported_at": "Teleportowane do {label} w {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Przywracalność struktury: {available} rodzime pokolenie - kwalifikowane, {irisPlaced} Iris- umieszczone, {disabled} rodzime osoby niepełnosprawne, {suppressed} native zastąpiony przez Iris staże, {unreachableBiomes} rodzime wykluczone z biotypów tego opakowania, oraz {unsupported} zarejestrowane struktury rodzime niewspierane w tym wymiarze. Stosowanie /iris structure verify dla jednej struktury.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Struktura {key} en Iris-umieszczone i zlokalizowane z /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Nieznana struktura \"{key}'. To ani to, ani to. Iris-umieszczone ani zarejestrowane przez vanilla lub datapack.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Struktura {value} jest wyraźnie zastąpiony przez Iris umiejscowienie i lokalizacja z /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Struktura rodzima {value} jest włączona, wspierana przez stan generatora tego wymiaru i lokalna z /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Polecenie to może być używane tylko przez graczy. (POI typ \"{type}\"przyjęte)", + "iris.modded.irismoddedcommands.searching": "Szukam {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Silnik dla tego świata został zamknięty; powrócić do wymiaru i spróbować ponownie.", + "iris.modded.irismoddedcommands.search_failed_2": "Wyszukiwanie nie powiodło się: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Nie można znaleźć {label} w czasie wyszukiwania.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teleportowane do {label} w {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Silnik zmienił się podczas lokalizacji {label}Spróbuj jeszcze raz.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.world_seed": "Materiał siewny świata: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Nasiona silnika: {value} (mieszane: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Pobieranie IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Paczka \"{pack}'zainstalowany. Jego dokładne typy wymiarów i niestandardowe biomy dołączyć wymuszone Iris datapack na następnym serwerze restart przed utworzeniem światów z tego pakietu.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Pobieranie pakietu nie powiodło się dla {pack} ({downloadSource}; patrz konsola).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Generowane: {value} część (-y), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Nieznany Iris sekcja pomocnicza: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: type ={typeKey} aktywny ={activeMin}..{activeMax} logic ={value} (opakowanie ={value2}, silnik nie uruchomiony; wysokość opakowania nieznany)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: type ={typeKey} aktywny ={activeMin}..{activeMax} logic ={value} VII4; opakowanie \"{value2}'chce {packMin}..{packMax} logic ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: typ aktywnego wymiaru nie pasuje do opakowania. Iris odmówi uruchomienia tego światowego silnika zamiast obcinania terenu. Biegnij /iris world enable dla nowych światów, lub /iris datapack install dla już załadowanych Iris wymiary, a następnie ponownie uruchomić.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Nie. Iris wymiary są załadowane.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Wszystkie {irisLevels} Iris rozmiar (-y) pasuje do ich przedziałów wysokości opakowania.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: silnik nie został uruchomiony; nie może jeszcze uzyskać jego wymiaru.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: generowanie typu wymiarów nie powiodło się: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Nie udało się zapisać {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Nie. Iris wymiary z silnikami bieżącymi znaleziono; nic nie zostało zainstalowane.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Nie udało się zapisać {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Napisane {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "World datapack \"{WORLDPACKNAME}'typ wymiarów nadmiarowy zainstalowany. Przywróć serwer dla typów wymiarów do zastosowania.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Skonfigurowany import danych: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth jeśli Bukkit-tylko; zainstalować je ręcznie world/datapacks w razie potrzeby.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Zainstalowane world datapacks: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Wysłano wyjątek testowy do systemu raportowania błędów Iris (Sentry, jeśli jest włączony).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Skanowanie sieci nie powiodło się: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Skaner już działa.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Polecenie to może być używane tylko przez graczy. (różdżka jest elementem fizycznym)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Twój inwentarz jest pełny.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Puf! Powodzenia w budowaniu! (lewe kliknięcie = narożnik 1, prawy przycisk myszy = narożnik 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Polecenie to może być używane tylko przez graczy. (pył jest elementem fizycznym)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Twój inwentarz jest pełny.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Kliknij prawym przyciskiem myszy blok, aby ujawnić obiekt, do którego należy.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Polecenie to może być używane tylko przez graczy. (Zapisywanie rejestruje wybór różdżki)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Ten wymiar nie jest generowany przez Iris; obiekty zapisywane do pakietu wymiarowego.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Trzymaj się. Iris różdżka. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Nie wybrano obszaru. Najpierw lewy / prawy klik z różdżką.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Nieprawidłowa nazwa obiektu: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Wybór zbyt duży: {volume} bloki (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Plik już istnieje. Stosowanie /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Nie udało się zapisać obiektu: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Uratowana {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} blok (-y){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Nieznany lub pusty obiekt: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Konsola musi określać współrzędne: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Nie patrzysz na blok wewnątrz {value} bloki.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Wklejanie nie powiodło się: {value} (częściowe zmiany zapisano do cofnięcia)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Umieszczone {key} w {value} {value2} {value3} rot ={rotation} ({value4} zapis (y), {value5} non- air{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Trzymaj się. Iris różdżka. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Nie wybrano obszaru.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Przygotuj różdżkę. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Nie patrzysz na blok.", + "iris.modded.moddedobjectcommands.position_set": "Pozycja {value} ustawiony na {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Trzymaj różdżkę!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Nie wybrano obszaru.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Wybór zbyt duży dla auto- select: {volume} bloki (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Auto- select kompletny: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Nieznany obiekt: {key}", + "iris.modded.moddedobjectcommands.object_size": "Rozmiar obiektu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Używane bloki: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "= = Bloki w obiekcie = =", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} inne stany bloku (-ów)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Nieznany obiekt: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Aktualny rozmiar obiektu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Nowy rozmiar obiektu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Obiekt nie ma pliku obciążenia; nie może utrzymywać kursora.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Nie udało się zapisać obiektu {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Nieprawidłowy zasięg: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Brak dopasowanych obiektów: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Popusibilize [reach={reach}{value}] w kolejce {value2} obiekt (y)", + "iris.modded.moddedobjectcommands.nothing_undo": "Nic do cofnięcia.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Cofnięto {reverted} wklejeń.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Nie znaleziono folderu pakietów: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Brak opakowań do zatwierdzenia pod {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Paczka \"{pack}\"nie znaleziono pod {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Walidacja {value} opakowanie (opakowania)...", + "iris.modded.moddedpackcommands.validation_failed": "Walidacja \"{value}'nieudany: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Walidacja zakończona. Połamane opakowania: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Paczka \"{pack}\"nie znaleziono pod {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Paczka \"{pack}\"nie znaleziono pod {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Nie zarejestrowano wyników walidacji. Biegnij /iris pack validate Najpierw.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blokowanie ={value2}, ostrzeżenia ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Brak wyniku walidacji dla \"{pack}'. Biegnij /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Paczka \"{value}'jest ładowalne. (ostrzeżenia ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Paczka \"{value}'jest uszkodzony:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ...{value} więcej ostrzeżeń.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Nie znaleziono żadnych kandydatów do sprzątania.{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Czyszczenie podglądu dla pakietu \"{pack}': {value} kandydat (-y). Nie zmieniono akt.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Biegnij /iris pack cleanup {pack} apply do kwarantanny po świeżym skanowaniu.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Nie znaleziono żadnych kandydatów do sprzątania.{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Kwartan {value} kandydat (-i) do czyszczenia {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Nic do przywracania dla paczki \"{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Przywróć podgląd dla {value}: {value2} plik (-y). Nie zmieniono akt.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Przywracanie jest zablokowane przez {value} istniejące przeznaczenie (miejsca przeznaczenia).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Biegnij /iris pack restore {pack} apply przywrócić po nowym sprawdzeniu konfliktu.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Przywróć odmowę, ponieważ {value} cel (-y) już istnieje.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Nic do przywracania dla paczki \"{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Przywrócony {value} plik (-y) z {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... oraz {value} więcej.", + "iris.modded.moddedregen.regen_is_already_running": "Regen już działa.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Ten wymiar nie jest generowany przez Iris. Uruchom to z Iris wymiar, aby opakowanie można było rozwiązać.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Indeks struktury napisanej: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Brak struktury tęczówki \"{key}'w tym opakowaniu", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Struktura \"{key}\"zmontowane 0 części (kontrola startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Struktura \"{key}': {value} części, odcisk stopy {value2}x{value3} bloki (materiał siewny próbki 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Polecenie to może być używane tylko przez graczy (struktura jest montowana na Twojej pozycji).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Brak struktury tęczówki \"{key}'w tym opakowaniu", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Struktura \"{key}\"zmontowane 0 kawałki", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Miejsce nie powiodło się: {value} (częściowe zmiany zapisane dla cofnięcia)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Umieszczone \"{key}' ({value} części, {value2} zapis (y){tileNote}) w twoim miejscu. /iris object undo do powrotu.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Należy podać zestaw wymiarów: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Otwarcie Noise Explorer na wyświetlaczu serwera.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Ten wymiar nie jest generowany przez Iris; uruchomić /iris studio noise od Iris wymiar umożliwiający rozwiązanie generatorów lub pominięcie nazwy generatora.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Nieznany generator \"{generatorKey}\"w opakowaniu {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Otwarcie skanera hałasu dla generatora \"{value}\"(nasiona {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Ten wymiar nie jest generowany przez Iris; stać w Iris (lub studio) wymiar i bieg /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Otwarcie mapy Vision {value} na wyświetlaczu serwera.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Nie można zapisać miejsca pracy dla {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Regenerowane miejsce pracy: {value} z JSON schematy autokompletowania.", + "iris.modded.moddedstudiocommands.could_not_open": "Nie można otworzyć {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Otwarcie {value} w twoim wydawcy.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Ten wymiar nie jest generowany przez Iris; wyraźnie określić nazwę opakowania.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Paczka \"{name}\"nie znaleziono pod {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Należy podać zestaw wymiarów: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Studio otwarcia dla '{pack}\"(nasiona {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Paczka \"{pack}\"brak; pobieranie IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Paczka \"{pack}'nie można pobrać; sprawdź nazwę i spróbuj /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Paczka \"{pack}\"nie ma dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Studio otwarte nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Wstrzyknięcie w studio nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Studio konsoli otwarte: {dimensionId} Teraz biegnie.{pack}\"nasiona {seed} (przemijające; nie pisane na iris-dimensions.json i oczyszczone przy ponownym uruchomieniu).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Wprowadź go z: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Dodać: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Usunąć za pomocą: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Wstrzyknięcie w studio nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Studio otwarte: {dimensionId} Teraz biegnie.{pack}\"nasiona {seed}. Stosowanie /iris studio close Kiedy będzie po wszystkim.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Nie masz otwartego studia. Stosowanie /iris studio open Najpierw.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Zamknięcie studia nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Studio zamknięte: {dimensionId} został ewakuowany, rozładowany, a jego dane regionalne zostały usunięte.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Wymiary studia nie są obecnie otwarte.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Aktywny wymiar (-y) studia: {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: opakowanie \"{value2}\"nasiona {value3} właściciel {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Tego polecenia mogą używać tylko gracze.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Nie masz otwartego studia. Stosowanie /iris studio open Najpierw.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Twój wymiar studia nie jest już naładowany. Stosowanie /iris studio open Znowu.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Teleportowane do studia ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Paczka \"{value}\"nie ma dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"{value}\"Pack ma wersję: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Nieprawidłowa nazwa projektu \"{nameRaw}\"(dozwolone: a- z, 0-9, _ i -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Paczka \"{name}\"już istnieje w {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Tworzenie projektu \"{name}\"od wzoru\"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Szablon \"{template}\"nie jest zainstalowany; pobieranie IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Szablon \"{template}'nie można pobrać; zainstalować opakowanie z dimensions/{template2}.json Najpierw.", + "iris.modded.moddedstudiocommands.created_project_at": "Utworzono projekt '{name}' w {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Edycja dimensions/{name}.json i resztę stada. A VSCode przestrzeń robocza z JSON wygenerowano schemat autocomplete; otwórz go lub uruchom ponownie /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Tworzenie projektu nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Wymiar opakowania \"{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Pakiet skompilowany: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Opakowanie nie powiodło się: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Polecenie to może być używane tylko przez graczy (pobieranie próbek jest skoncentrowane na Twojej pozycji).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Dystrybucja w regionie pobierania próbek {value}x{value2} chunki wokół ciebie...", + "iris.modded.moddedstudiocommands.rarity": "{key}: rzadkość ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Pobieranie próbek w regionie nie powiodło się: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Paczka \"{pack}\"nie jest zainstalowany; pobieranie IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Paczka \"{pack}'nie można pobrać; sprawdź nazwę lub zainstalować go /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Nie można wykonać wstrzyknięcia Iris Świat \"{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Stworzony Iris świat {dimensionId} od opakowania \"{pack}\"wymiar\"{packDimension}\"(nasiona {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "To jest teraz na żywo i ponownie wstrzyknięte na każdym startup. Teleport /iris world status lub portalu; nie jest wymagane ponowne uruchomienie.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Nie można wykonać wstrzyknięcia Iris świat pierwotny: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris podstawowy świat ustawiony na {dimensionId} (opakowanie \"{pack}\"wymiar\"{packDimension}\"nasiona {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Generator vanillago Nadświata nie może zostać podmieniony podczas działania, więc ta operacja NIE regeneruje istniejącego Nadświata.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Zamiast tego, {dimensionId} jest teraz skonfigurowanym światem podstawowym: gracze w zaświatach vanilla są tam kierowane na joint, i to ponownych injects na każdym startup.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris Główna kontrola świata czysta. Overworld utrzymuje obecny generator; edytuj server.properties typu poziomego i ponownie zacząć zmieniać go z powrotem.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Nieprawidłowy materiał siewny \"{seedRaw}'. Użyj liczby lub \"losowe\".", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Paczka \"{pack}\"nie jest zainstalowany; pobieranie IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Paczka \"{pack}'nie można pobrać; sprawdź nazwę lub zainstalować go /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Paczka \"{pack}\"nie jest jeszcze gotowy (nadal załadunek lub walidacja). Spróbuj jeszcze raz.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Nie udało się zapisać server.properties; sprawdzić uprawnienia plików i ręcznie ustawić typ level- type.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris główny świat ustawiony na \"{pack}\"(wstępnie {preset}, nasiona {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties Typ poziomu jest teraz {preset}. Na następnym ponownym uruchomieniu zaświatów, Nether, i koniec regenerować jak to Iris Świat.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Zachowuje się dane gracza (inwentaryzacja, postęp, statystyki); w tych wymiarach zamienia się istniejący teren. Dotyczy to raz.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart jest włączona - zatrzymanie serwera teraz tak, aby opakowanie restart przyniósł go z powrotem na nowy świat główny.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Uruchom serwer, aby go wygenerować. (Zestaw mainWorldAutoRestart= true w modded.json mieć Iris zatrzymać serwer dla Ciebie.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Odmowa stworzenia świata \"{dimensionId}\"z użyciem opakowania\"{pack}\"ponieważ wymagana walidacja nie powiodła się:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Napraw opakowanie i uciekaj /iris pack validate {pack} do ponownego zatwierdzenia.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Paczka \"{pack}'nie znaleziono pod {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Paczka \"{pack}\"nie zawiera dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Nieprawidłowe odniesienie do opakowania \"{pack}{value}'. Należy stosować opakowanie lub opakowanie:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Nieprawidłowy materiał siewny \"{seedRaw}'. Użyj liczby lub \"losowe\".", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Nie udało się usunąć Iris Świat \"{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris Świat \"{dimensionId}\"nie został załadowany; wyczyścił jego stały wpis do rejestru i wymazał przechowywane dane dotyczące chunka / Mantle.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris Świat \"{dimensionId}\"nie został załadowany; wyczyścił jego stały wpis do rejestru. Światowe dane na dysku są przechowywane.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Usunięty Iris Świat \"{dimensionId}\": ewakuowane, rozładowane, wyczyszczone dane z chunka / Mantle i wyrzucone z rejestru startowego.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Wyłączone Iris Świat \"{dimensionId}\": ewakuowany, rozładowany i zrzucony z rejestru startowego.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Przechowywane są światowe dane na dysku; ponownie włączyć /iris world enable {dimensionId} lub usunąć /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Załadowane Iris poziom: {value} -> opakowanie \"{value2}\"wymiar\"{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Świat pierwotny: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Nie. Iris wymiary są obecnie załadowane. Utwórz jeden z /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Załadowane Iris wymiary: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Stosowanie /iris world create wykonać wstrzyknięcie bez ponownego uruchamiania.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Pobierz & zarządzanie importem zewnętrznych danych (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Pobierz / uaktualnij każdy datapack wymieniony w formacie pakietu \"datapackImports'i zainstalować go na świecie, więc jego struktury rejestrują się jak vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Przywróć serwer po zainstalowaniu nowych pakietów danych (wymagane do rejestracji i generowania nowych struktur)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Lista skonfigurowanych importu danych i ich zainstalowanych wersji", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Usuń zainstalowany datapack przez id (również usunąć jego URL od datapackImports by go nie było)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Identyfikator datapack (nazwa folderu) pokazany przez /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Światowy menedżer", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Napełnij TectonicPlates Licz", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Wyślij wyjątek testowy do wartownika", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Wygenerowane przez Hasha wyjście blokowe stałego obszaru do celów badania determinizmu / tożsamości", + "iris.director.commanddeveloper.param.world_hash": "Świat, by się zahaczyć", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Promień w chunkach wokół centrum", + "iris.director.commanddeveloper.param.center_chunk_x": "Środek chunka X", + "iris.director.commanddeveloper.param.center_chunk_z": "Środek chunka Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Aktualizacja pakietu świata (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "Świat do aktualizacji", + "iris.director.commanddeveloper.param.pack_install_into_world": "Paczka do instalacji na świecie", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Upewnij się, aby zrobić kopię zapasową & najpierw przeczytaj ostrzeżenia!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Powinien Iris ponownie pobrać opakowanie dla Ciebie", + "iris.director.commanddeveloper.director.test": "Badanie", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Wyrzuć całą płytkę tektoniczną zamiast jednej sekcji", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Identyfikator pliku zrzutu pod plugins/Iris/dump (plv..*)", + "iris.director.commanddeveloper.director.test_2": "Badanie", + "iris.director.commanddeveloper.param.pack_bench": "Paczka do ławki", + "iris.director.commanddeveloper.param.radius_regions": "Promień w regionach", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Otwórz GUI podczas analizy porównawczej", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Aktualizacja do innego Minecraft wersja", + "iris.director.commanddeveloper.param.version_upgrade": "Wersja do aktualizacji", + "iris.director.commanddeveloper.director.test_3": "badanie", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Światowy folder do skanowania plików regionu .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Usuń pobliskie klocki do badań regenowych", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Promień w chunkach wokół obecnego chunka", + "iris.director.commanddeveloper.director.test_4": "Badanie", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Usuń i zregeneruj pobliskie chunki w miejscu za pomocą Iris generacja", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Promień pobliskich kawałków", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Generować kawałki do buforów (nie pisze świat) i hash bloki + biomy; rejestruje złoty plik lub weryfikuje przed istniejącym. Resetuje Mantle w zeskanowanym obszarze - używać na jednorazowych światach testowych.", + "iris.director.commanddeveloper.param.world_scan": "Świat do skanowania", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Promień w chunkach wokół centrum", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Środek chunka X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Środek chunka Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Usuń dane Mantle w obszarze skanowania najpierw dla pełnej regeneracji od podstaw", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Równoczesne pokolenia kawałków; 1 = ściśle szeregowy dla testów uzależnienia od zamówień", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Również wrzucić pełny per- chunk non-air blockstates do differing offline", + "iris.director.commandedit.director.edit_something": "Edytuj coś", + "iris.director.commandedit.director.edit_biome_you_specified": "Edytuj biom, który podałeś", + "iris.director.commandedit.param.biome_edit": "Biome do edycji", + "iris.director.commandedit.director.edit_region_you_specified": "Edytuj region, który podałeś", + "iris.director.commandedit.param.region_edit": "Region do edycji", + "iris.director.commandedit.director.edit_dimension_you_specified": "Edytuj podany wymiar", + "iris.director.commandedit.param.dimension_edit": "Wymiar do edycji", + "iris.director.commandfind.director.iris_find_commands": "Iris Znajdź polecenia", + "iris.director.commandfind.director.find_biome": "Znajdź biome", + "iris.director.commandfind.param.biome_look": "Biom szukać", + "iris.director.commandfind.param.should_you_be_teleported": "Czy powinieneś zostać teleportowany", + "iris.director.commandfind.director.find_region": "Znajdź region", + "iris.director.commandfind.param.region_look": "Region szukać", + "iris.director.commandfind.param.should_you_be_teleported_2": "Czy powinieneś zostać teleportowany", + "iris.director.commandfind.director.find_point_interest": "Znajdź punkt zainteresowania.", + "iris.director.commandfind.param.type_poi_look": "Rodzaj PoI Szukać.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Czy powinieneś zostać teleportowany", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Znajdź strukturę (klucz vanilla, np. minecraft:village_plains lub minecraft:stronghold, albo zaimportowany klucz struktury Iris)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Struktura, której należy szukać (e.g. minecraft:village_plains, minecraft:stronghold, mincraft _ ancient _ city)", + "iris.director.commandfind.director.find_object": "Znajdź obiekt", + "iris.director.commandfind.param.object_look": "Obiekt szukać", + "iris.director.commandfind.param.should_you_be_teleported_4": "Czy powinieneś zostać teleportowany", + "iris.director.commandiris.director.basic_command": "Polecenie podstawowe", + "iris.director.commandiris.director.create_new_world": "Stwórz nowy świat", + "iris.director.commandiris.param.name_world_create": "Nazwa świata do stworzenia", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Wymiar / pakiet do tworzenia świata z", + "iris.director.commandiris.param.seed_generate_world_with": "Nasienie do generowania świata z", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Czy automatycznie używać tego świata jako głównego świata", + "iris.director.commandiris.director.teleport_another_world": "Teleport do innego świata", + "iris.director.commandiris.param.world_teleport": "Świat teleportować do", + "iris.director.commandiris.param.player_teleport": "Gracz do teleportowania", + "iris.director.commandiris.director.print_version_information": "Drukuj informacje o wersji", + "iris.director.commandiris.director.benchmark_pack": "Zaliczka", + "iris.director.commandiris.param.dimension_benchmark": "Wymiar do wskaźnika referencyjnego", + "iris.director.commandiris.director.print_world_height_information": "Drukuj informacje o wysokości świata", + "iris.director.commandiris.director.check_access_all_worlds": "Sprawdź dostęp do wszystkich światów.", + "iris.director.commandiris.director.remove_iris_world": "Usuń Iris świat", + "iris.director.commandiris.param.world_remove": "Świat do usunięcia", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Czy usunąć również folder (jeśli ustawiony na false, po prostu nie wczytuje świata)", + "iris.director.commandiris.director.toggle_debug": "Włącza debugowanie", + "iris.director.commandiris.director.download_project": "Pobierz projekt.", + "iris.director.commandiris.param.pack_download": "Paczka do pobrania", + "iris.director.commandiris.param.branch_download_from": "Oddział do pobrania z", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Czy zastąpić opakowanie pobranym", + "iris.director.commandiris.director.get_metrics_your_world": "Get metrycs dla twojego świata", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Wczytaj ponownie plik konfiguracyjny (jest on również wykonywany automatycznie)", + "iris.director.commandiris.director.unload_iris_world": "Wyładuj Iris Świat", + "iris.director.commandiris.param.world_unload": "Świat by się rozładować", + "iris.director.commandiris.director.load_iris_world": "Wczytaj Iris Świat", + "iris.director.commandiris.param.name_world_load": "Nazwa świata do załadowania", + "iris.director.commandiris.director.evacuate_iris_world": "Ewakuować świat tęczówki", + "iris.director.commandiris.param.evacuate_world": "Ewakuować świat", + "iris.director.commandobject.director.iris_object_manipulation": "Iris manipulacja obiektami", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Otwórz świat studia obiektu (siatka każdego obiektu; opcjonalny wymiar, domyślnie wszystkie pakiety)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Wymiar fakultatywny, którego opakowanie obiektu do rozłożenia; pomiń do agregacji obiektów z każdego opakowania", + "iris.director.commandobject.param.seed_generate_studio_with": "Nasiona do wytworzenia studia z", + "iris.director.commandobject.director.check_composition_object": "Sprawdzić skład obiektu", + "iris.director.commandobject.param.object_analyze": "Obiekt do analizy", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Skrócić obiekt do jego minimalnego rozmiaru", + "iris.director.commandobject.param.object_shrink": "Obiekt do skurczenia", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Rosnąć organiczne gałęzie przez baldachim więc każdy liść przetrwa vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Klucz obiektu, przedrostek (drzewa /) lub ścieżka systemu plików", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun = tylko prawdziwe analizy, nic nie pisze", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "osiągnąć = N max długość gałęzi w blokach od istniejącego drewna; dalsze klastry liści są przypięte trwałe zamiast. zasięg =0 rośnie nieograniczony", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Konwertuj pliki .schem w folderze 'convert' do plików .job.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Pobierz proszek, który ujawnia obiekty", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Zamów wybór w zależności od kierunku patrzenia", + "iris.director.commandobject.param.amount_inset_by": "Kwota do inset przez", + "iris.director.commandobject.director.set_point_1_look": "Punkt odniesienia 1 patrzeć", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Czy używać bieżącej pozycji, czy gdzie szukać", + "iris.director.commandobject.director.set_point_2_look": "Punkt odniesienia 2 patrzeć", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Czy używać bieżącej pozycji, czy gdzie szukać", + "iris.director.commandobject.director.paste_object": "Wklej obiekt", + "iris.director.commandobject.param.object_paste": "Obiekt do wklejenia", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Czy edytować obiekt (trzeba trzymać różdżkę)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Ilość stopni do obracania o", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Czynnik, przez który można skalować umieszczenie obiektu", + "iris.director.commandobject.param.scale_interpolator_use": "Interpolator skali", + "iris.director.commandobject.director.save_object": "Zapisz obiekt", + "iris.director.commandobject.param.dimension_store_object": "Wymiar do przechowywania obiektu w", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Plik do przechowywania go, może używać / dla podfolderów", + "iris.director.commandobject.param.overwrite_existing_object_files": "Nadpisywanie istniejących plików obiektów", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Użyj spuścizny TileState serializacja, jeśli to możliwe", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Przesuń wybór w kierunku patrzenia", + "iris.director.commandobject.param.amount_shift_by": "Kwota do przesunięcia o", + "iris.director.commandobject.director.undo_number_pastes": "Cofnij kilka wklejeń", + "iris.director.commandobject.param.amount_pastes_undo": "Liczba wklejeń do cofnięcia", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Zbiera różdżkę obiektu i chwyta prąd WorldEdit wybór.", + "iris.director.commandobject.director.get_object_wand": "Pobierz różdżkę obiektu", + "iris.director.commandobject.director.autoselect_up_down_out": "Automatyczne wybieranie w górę, w dół & poza", + "iris.director.commandobject.director.autoselect_up_out": "Automatyczne wybieranie & poza", + "iris.director.commandpack.director.pack_validation_maintenance": "Walidacja i konserwacja opakowania", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Sprawdzić opakowanie (lub wszystkie opakowania) i ponownie opublikować wyniki", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Nazwa folderu do walidacji (zostaw puste dla wszystkich)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Podgląd lub zastosowanie unused- resource cleanup", + "iris.director.commandpack.param.pack_folder_name_clean": "Nazwa folderu do czyszczenia", + "iris.director.commandpack.param.preview_apply": "podgląd lub zastosowanie", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Podgląd lub zastosowanie przywrócenia ostatniej kwarantanny", + "iris.director.commandpack.param.pack_folder_name_restore": "Nazwa folderu do przywrócenia", + "iris.director.commandpack.param.preview_apply_2": "podgląd lub zastosowanie", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Pokaż status walidacji dla pakietu", + "iris.director.commandpack.param.pack_folder_name": "Nazwa folderu opakowania", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Należy Iris światy!", + "iris.director.commandpregen.director.pregenerate_world": "Pregenerować świat", + "iris.director.commandpregen.param.radius_pregen_blocks": "Promień pregenu w blokach", + "iris.director.commandpregen.param.world_pregen": "Świat do pregen", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Centralna lokalizacja pregenu. Użyj \"mnie\" dla swojej obecnej lokalizacji", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Otwórz Iris gui pregen", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Generuj tylko jeden kawałek na raz", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Przerwać aktywne zadanie pregeneracji", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Wstrzymaj / kontynuuj aktywne zadanie pregeneracji", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Pokaż stan aktywnej pregeneracji", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris narzędzia konstrukcyjne (indeks, import, info)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Regeneracja structure-index.json z listą wszystkich vanilla, datapack & struktury tęczówki", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Wymiar, którego opakowanie do indeksu", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importuj każda struktura - vanilla i połknięte pakiety danych - w tym opakowaniu jako edytowalne Iris zasoby, zawsze nadpisywanie. Odbudowa struktur układanki (wiosek, placówek, pilarek datapack) jako edytowalnych wykresów basen / kawałek, importuje każdy szablon struktury NBT jako obiekt, i gromadzi wieloszablonowe struktury (wraki statków, zniszczone portale, ruiny oceanu, skamieniałości). Uruchom po przyjęciu datapack i ponownie uruchomić. Regeneruj kawałki lub użyj świeżego świata dla importowanych kopii, aby umieścić.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Wymiar, którego opakowanie do przywozu", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Konstrukcje generowane kodem, które nie mają NBT szablon (chaty bagienne, igloos itp.) do edycji Iris obiekty generując każdy z nich w świecie zadrapania i czytając jego bloki. Pomija struktury, które już importują jako strukturę, struktury szersze / wyższe niż pułapki (twierdze, rezydencje, zabytki pozostają vanilla) i wszystko, co nie będzie generować w płaskim zaświacie. Każda uchwycona struktura staje się jednym kawałkiem Iris struktury można umieścić z biomu / regionu / wymiaru \"struktur\" listy. Działa automatycznie jako ostatnie podanie /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Wymiar, do którego paczki się łapią", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Weryfikacja kwalifikowalności do struktury rodzimej i lokalizacja Iris- rozmieszczone struktury bez blokowania wyszukiwania rodzimych.", + "iris.director.commandstructure.param.dimension_verify": "Wymiar weryfikacji", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Promień wyszukiwania w chunkach wokół pochodzenia (większy jest znacznie wolniejszy)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Rozwiąż wykres układanki struktury tęczówki i raport liczby sztuk & granice", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Wymiar, którego opakowanie posiada strukturę", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Klucz do kontroli struktury tęczówki", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Zmontuj i umieść strukturę tęczówki w swojej lokalizacji (badanie studyjne)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Wymiar, którego opakowanie posiada strukturę", + "iris.director.commandstructure.param.iris_structure_key_place": "Klucz struktury tęczówki do umieszczenia", + "iris.director.commandstudio.director.studio_commands": "Polecenia studia", + "iris.director.commandstudio.director.open_new_studio_world": "Otwórz nowy świat studia", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Pakiet wymiar otworzyć studio dla", + "iris.director.commandstudio.param.seed_generate_studio_with": "Nasiona do wytworzenia studia z", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Import drzew vanilla, grzybów & obiekty (oraz structures/jigsaw) z serwera do opakowania objects/vanilla katalog", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Pakiet wymiarowy do importu zawartości vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Ile wariantów do uchwycenia na drzewo / obiekt funkcji", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Również import vanilla & datapackName structures/jigsaw do opakowania", + "iris.director.commandstudio.director.open_vscode_dimension": "Otwórz VSCode dla wymiaru", + "iris.director.commandstudio.param.dimension_open_vscode": "Wymiar do otwarcia VSCode zamiast", + "iris.director.commandstudio.director.close_open_studio_project": "Zamknięcie projektu otwartego studia", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Włączenie / wyłączenie tablicy wyników debug Studio", + "iris.director.commandstudio.director.create_new_studio_project": "Utwórz nowy projekt studia", + "iris.director.commandstudio.param.name_this_new_iris_project": "Nazwa tego nowego Iris Projekt.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Kopiuj zawartość istniejącego projektu w folderze pakietów i używaj go jako szablonu w tym nowym projekcie.", + "iris.director.commandstudio.director.get_version_pack": "Pobierz wersję opakowania", + "iris.director.commandstudio.param.dimension_get_version": "Wymiar uzyskać wersję", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Otwórz odkrywacz hałasu (zewnętrzne GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Opcjonalny generator pakietów do podglądu", + "iris.director.commandstudio.param.seed_preview_generator_with": "Nasiona do podglądu generatora z", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Pokaż łup gdyby klatka piersiowa była tutaj", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Szybkie umieszczanie elementów w wirtualnym spisie (może spowodować spadek wydajności)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Czy dołączyć do aktualnie otwartego inwentarza (jeżeli jest nieprawdziwy, oczyszcza otwarty inwentarz)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Oblicz szansę dla każdego regionu na wygenerowanie", + "iris.director.commandstudio.param.radius_chunks": "Promień w chunkach", + "iris.director.commandstudio.director.render_world_map_external_gui": "Render a world map (Zewnętrzny GUI)", + "iris.director.commandstudio.param.world_open_generator": "Świat, by otworzyć generator", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Pakiet wymiar do skompresowanego formatu", + "iris.director.commandstudio.param.dimension_pack_compress": "Pakiet wymiarów do kompresji", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Czy usunąć opakowanie z opakowania", + "iris.director.commandstudio.param.whether_not_minify_pack": "Czy minializować opakowanie", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiles wydajność wymiaru", + "iris.director.commandstudio.param.dimension_profile": "Wymiar do profilu", + "iris.director.commandstudio.director.spawn_iris_entity": "Zespawnuj encję Iris", + "iris.director.commandstudio.param.entity_spawn": "Encja do zespawnowania", + "iris.director.commandstudio.param.location_spawn_entity_at": "Miejsce zespawnowania encji", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teleport do aktywnego świata studio", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Aktualizuj swoje projekty wymiarowe VSCode przestrzeń robocza", + "iris.director.commandstudio.param.dimension_update_workspace": "Wymiar aktualizacji przestrzeni roboczej", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Uchwycić IGenData raport o chunkach dla pobliskich kawałków", + "iris.director.commandwhat.director.iris_what": "Iris Co?", + "iris.director.commandwhat.director.what_is_my_hand": "Co mam w ręce?", + "iris.director.commandwhat.director.what_biome_am_i": "W jakiej jestem biomie?", + "iris.director.commandwhat.director.what_region_am_i": "W jakim jestem regionie?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Na który blok patrzę?", + "iris.director.commandwhat.director.show_markers_chunk": "Pokaż znaczniki w chunku", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Nazwa znacznika, taka jak jaskiniowa _ podłoga lub jaskinia _ sufit", + "iris.modded.help.entry.command.version": "Drukuj informacje o wersji", + "iris.modded.help.entry.command.info": "Lista załadowana Iris wymiary i szczegóły opakowania", + "iris.modded.help.entry.command.what": "Sprawdzić Iris biome, region, biom jaskini, powierzchnia i kawałek na swojej pozycji, blok, który widzisz, trzymany przedmiot lub pobliskie markery", + "iris.modded.help.entry.group.find": "Znajdź i teleportuj się Iris biomy, regiony, obiekty, Iris struktury, rodzime struktury i punkty zainteresowania", + "iris.modded.help.entry.command.tp": "Teleport samodzielnie lub nazwany gracz do załadowanego Iris wymiar", + "iris.modded.help.entry.command.evacuate": "Teleportuj wszystkich graczy z wymiaru Iris do spawnu głównego świata", + "iris.modded.help.entry.command.seed": "Wyświetl informacje o seedzie świata i silnika", + "iris.modded.help.entry.command.debug": "Włączenie / wyłączenie Iris debugowanie logowania i zapisywanie settings.json", + "iris.modded.help.entry.command.reload": "Wczytaj ponownie settings.json (także automatycznie naświetlane co 3)", + "iris.modded.help.entry.command.download": "Pobierz projekt pakietu", + "iris.modded.help.entry.command.metrics": "Wydrukuj wskaźniki generacji dla bieżącego Iris wymiar", + "iris.modded.help.entry.command.regen": "Usuń i zregeneruj pobliskie chunki w miejscu", + "iris.modded.help.entry.group.pregen": "Przed Iris wymiar", + "iris.modded.help.entry.command.wand": "Pobierz Iris różdżka obiektu", + "iris.modded.help.entry.group.object": "Narzędzia różdżki obiektów, zapisywania, wklejania, analizowania i cofania", + "iris.modded.help.entry.group.edit": "Otwórz pakiet biome, region i wymiar plików json w edytorze pulpitu", + "iris.modded.help.entry.command.create": "Utwórz i wstrzyknij trwałe Iris wymiar; cudzysłów:dimensionKey wybrać określony wymiar opakowania", + "iris.modded.help.entry.group.studio": "Tworzenie, pakowanie i raporty projektów", + "iris.modded.help.entry.group.pack": "Walidacja i konserwacja opakowania", + "iris.modded.help.entry.group.world": "Czas działania Iris tworzenie, usuwanie i status wymiaru", + "iris.modded.help.entry.group.datapack": "Narzędzia instalacji i stanu datapacków świata", + "iris.modded.help.entry.group.structure": "Iris indeks struktury, narzędzia informacyjne i umieszczania", + "iris.modded.help.entry.command.goldenhash": "Generowanie hash bloku deterministycznego do badania parytetu", + "iris.modded.help.entry.group.developer": "Diagnostyka deweloperska: test Sentry, interfejsy sieciowe, skan plików regionów", + "iris.modded.help.entry.command.biome": "Znajdź Iris biom", + "iris.modded.help.entry.command.region": "Znajdź Iris regiony", + "iris.modded.help.entry.command.object": "Znajdź lokalizację obiektu", + "iris.modded.help.entry.command.structure": "Znajdź Iris-located lub rodzimej / struktury datapack", + "iris.modded.help.entry.command.poi": "Znajdź obsługiwany punkt zainteresowania", + "iris.modded.help.entry.command.biome_2": "Otwórz biom json w edytorze pulpitu; żaden klucz nie otwiera biomu na Twojej pozycji", + "iris.modded.help.entry.command.region_2": "Otwórz json regionu w edytorze pulpitu; żaden klucz nie otwiera obszaru na Twojej pozycji", + "iris.modded.help.entry.command.dimension": "Otwórz JSON wymiaru bieżącego pakietu w edytorze na komputerze", + "iris.modded.help.entry.command.start": "Uruchom pregenerację; promień w blokach, ponownie odtwarzalne cache punkt kontrolny domyślnie na, centrum przez 'at ', flagi komponują się w dowolnej kolejności", + "iris.modded.help.entry.command.stop": "Przerwać aktywne zadanie pregeneracji", + "iris.modded.help.entry.command.pause": "Przerwanie lub wznowienie pregeneracji", + "iris.modded.help.entry.command.status": "Pokaż status pregeneracji", + "iris.modded.help.entry.command.wand_3": "Pobierz Iris różdżka obiektu", + "iris.modded.help.entry.command.dust": "Pobierz kurz, który ujawnia miejsca obiektów", + "iris.modded.help.entry.command.save": "Zapisz wybraną różdżkę jako obiekt", + "iris.modded.help.entry.command.paste": "Wklej obiekt w swojej lub podanej pozycji, opcjonalnie obrócony", + "iris.modded.help.entry.command.expand": "Rozszerz wybór różdżki w kierunku patrzenia", + "iris.modded.help.entry.command.contract": "Zamów wybór różdżki w kierunku patrząc", + "iris.modded.help.entry.command.shift": "Przesuń wybór różdżki w kierunku patrzenia", + "iris.modded.help.entry.command.position1": "Ustaw punkt wyboru 1", + "iris.modded.help.entry.command.position2": "Ustaw punkt wyboru 2", + "iris.modded.help.entry.command.x_y": "Automatyczne wybieranie i wyłączanie", + "iris.modded.help.entry.command.x_y_2": "Automatyczne wybieranie w górę, w dół i na zewnątrz", + "iris.modded.help.entry.command.analyze": "Pokaż skład obiektu", + "iris.modded.help.entry.command.shrink": "Skrócić obiekt do jego minimalnego rozmiaru", + "iris.modded.help.entry.command.plausibilize": "Rosną gałęzie, więc liście drzew przetrwają rozpad vanilla", + "iris.modded.help.entry.command.undo": "Cofnij wklejone obiekty", + "iris.modded.help.entry.command.create_2": "Utwórz nowy projekt pakietu", + "iris.modded.help.entry.command.package": "Pakiet wymiar do skompresowanego formatu", + "iris.modded.help.entry.command.version_2": "Wydrukuj wersję pakietu", + "iris.modded.help.entry.command.regions": "Oblicz dystrybucję w pobliżu", + "iris.modded.help.entry.command.open": "Otwórz tymczasowy wymiar studia dla opakowania", + "iris.modded.help.entry.command.close": "Zamknij otwarty wymiar studia i odrzuć jego świat", + "iris.modded.help.entry.command.tpstudio": "Teleport do otwartego wymiaru studia", + "iris.modded.help.entry.command.status_studio": "Pokaż otwarty wymiar studia i jego opakowanie", + "iris.modded.help.entry.command.noise": "Otwórz skaner hałasu GUI na wyświetlaczu serwera", + "iris.modded.help.entry.command.map": "Otwórz mapę Vision GUI na wyświetlaczu serwera", + "iris.modded.help.entry.command.vscode": "Zregeneruj przestrzeń roboczą .code- workspack i otwórz ją w edytorze pulpitu", + "iris.modded.help.entry.command.update": "Regeneracja powierzchni roboczej .code- workspack", + "iris.modded.help.entry.command.importvanilla": "Wyjaśnienie przepływu importu vanilla", + "iris.modded.help.entry.command.validate": "Sprawdzić opakowanie lub każde opakowanie", + "iris.modded.help.entry.command.cleanup": "Podgląd lub kwarantanna nieużytkowanych kandydatów zasobów", + "iris.modded.help.entry.command.restore": "Podgląd lub przywrócenie najnowszej kwarantanny", + "iris.modded.help.entry.command.status_validation": "Pokaż status walidacji w pamięci masowej", + "iris.modded.help.entry.command.enable": "Utwórz i wstrzyknij trwałe Iris wymiar w runtime; pobiera opakowanie jeśli brakuje, cudzysłów:dimensionKey wybrać określony wymiar opakowania", + "iris.modded.help.entry.command.replace_overworld": "Wstrzyknąć Iris podstawowy świat i trasa zawodników tam zamiast vanilla roverworld", + "iris.modded.help.entry.command.disable": "Ewakuować i rozładować Iris wymiar; światowe dane na dysku są przechowywane do ponownego włączenia", + "iris.modded.help.entry.command.delete": "Wyłącz Iris wymiar i wytrzeć jego chunki i Mantle dane z dysku", + "iris.modded.help.entry.command.list": "Lista załadowana Iris wymiary", + "iris.modded.help.entry.command.status_world": "Pokaż wczytane Iris wymiary i skonfigurowany świat podstawowy", + "iris.modded.help.entry.command.status_datapack": "Sprawdź załadowany Iris Przekroczenia typu wymiarów", + "iris.modded.help.entry.command.install": "Zainstaluj nawiasy typu wymiarów dla wczytanych Iris wymiary", + "iris.modded.help.entry.command.list_datapacks": "Lista skonfigurowanych i zainstalowanych pakietów danych", + "iris.modded.help.entry.command.ingest": "Wyjaśnij Bukkit datapack połknięcie przepływu pracy", + "iris.modded.help.entry.command.remove": "Wyjaśnij proces usuwania datapack", + "iris.modded.help.entry.command.list_structures": "Regeneracja structure-index.json", + "iris.modded.help.entry.command.info_2": "Rozwiąż Iris wykres struktury i granice raportowania", + "iris.modded.help.entry.command.place": "Zmontuj i umieść Iris struktura w Twojej lokalizacji", + "iris.modded.help.entry.command.import": "Wyjaśnij Bukkit struktura importu pracy", + "iris.modded.help.entry.command.capture": "Wyjaśnij Bukkit structure catch workflow", + "iris.modded.help.entry.command.verify": "Zgłoś rodzime i Iris stabilność struktury w obecnym wymiarze", + "iris.modded.help.entry.command.sentry": "Wyślij wyjątek testowy do Iris zgłaszający błędy", + "iris.modded.help.entry.command.network": "Lista interfejsów sieciowych i ich adresów", + "iris.runtime.progress.finding_regions": "Znalezienie regionów", + "iris.runtime.progress.converting": "Konwersja", + "iris.runtime.status.running": "Uruchomienie", + "iris.runtime.status.stopped": "Zatrzymany", + "iris.runtime.status.paused": "Pauza", + "iris.runtime.status.paused_lower": "pauza", + "iris.runtime.status.running_lower": "uruchomiony", + "iris.runtime.status.enabled": "włączone.", + "iris.runtime.status.disabled": "niepełnosprawny.", + "iris.runtime.status.unregistered": "niezarejestrowany", + "iris.runtime.status.none": "brak", + "iris.runtime.status.random": "losowe", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "prawda", + "iris.runtime.status.false": "Fałszywy", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " nadpisanie", + "iris.runtime.datapack.override_suffix": " (zainstalowany światowy menedżer danych)", + "iris.runtime.primary_world.players_routed_suffix": " (grający tam)", + "iris.runtime.primary_world.routing_disabled_suffix": " (routing wyłączony)", + "iris.runtime.modded.no_dimension_match": "Nie. Iris pasujące wymiary \"{filter}'.", + "iris.runtime.teleport.world": "Zostałeś teleportowany do {world}.", + "iris.runtime.engine.hotloaded": "Hotloaded silnika", + "iris.runtime.job.completed": "Zakończono {job} w {duration}", + "iris.runtime.job.scanning_selection": "Skanowanie wyboru", + "iris.runtime.job.loading_chunks": "Ładowanie fragmentów", + "iris.runtime.job.searched_chunks": "Przeszukane {chunks} Kawałki", + "iris.runtime.job.compile": "Kompil", + "iris.runtime.job.saving_object": "Zapisywanie obiektu", + "iris.runtime.job.downloading": "Pobieranie", + "iris.runtime.job.extracting": "Wyciąganie", + "iris.runtime.job.installing": "Instalacja", + "iris.runtime.compile.iob_empty": "- IOB {file} ma 0 Bloki!", + "iris.runtime.compile.iob_empty_hover": "Błąd:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} to nie 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Błąd:\n{path}\nSzerokość, wysokość lub głębokość to zero (zły format)", + "iris.runtime.compile.json_error": "- JSON Błąd {file}", + "iris.runtime.compile.json_error_hover": "Błąd:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Nie mogę znaleźć ładowarki {path}", + "iris.runtime.datapack.name": "Iris Światowe pokolenie", + "iris.runtime.pack.already_exists": "Paczka już istnieje!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "Pomiń {object}: nie udało się wczytać", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} drewno ({branches} ), {converted} liści->drewno, ~{distances} odległości", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} drewno ({branches} ), {converted} liści->drewno, ~{distances} odległości!{pinned} przygnieciony", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "niepowodzenie {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Sporządzono: {processed} przetworzone, {changed} zmienione, {skipped} pominięte, {failed} nieudany", + "iris.runtime.tree_plausibilize.done_dry": "Sporządzono: {processed} przetworzone, {changed} zmienione, {skipped} pominięte, {failed} nieudany (suchy bieg, nic nie napisane)", + "iris.runtime.tree_plausibilize.totals": "Suma: +{wood} drewno ({branches} ), {converted} liści->drewno, ~{distances} odległości!{pinned} przygnieciony, nieosiągalny {before} -> {after}", + "iris.runtime.item.wand.name": "Różdżka Iris", + "iris.runtime.item.wand.lore.first": "Kliknij lewym przyciskiem myszy blok, aby ustawić pierwszy róg", + "iris.runtime.item.wand.lore.second": "Kliknij prawym przyciskiem myszy blok, aby ustawić drugi róg", + "iris.runtime.item.dust.name": "Odkurzanie", + "iris.runtime.item.dust.lore": "Kliknij prawym przyciskiem myszy blok, aby ujawnić jego strukturę rozmieszczenia!", + "iris.runtime.wand.position_set": "Pozycja {position} ustawiony na {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Ten wymiar nie został wygenerowany przez Iris.", + "iris.runtime.dust.found_object": "Znaleziono obiekt {object}", + "iris.runtime.dust.revealed": "Ujawnione {count} blok (-y) {object}", + "iris.runtime.dust.revealed_capped": "Ujawnione {count} blok (-y) {object} (ograniczona)", + "iris.runtime.dust.header": "--- Iris Pył @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Blok: {block}", + "iris.runtime.dust.position.above": "Pozycja: +{offset} powyżej powierzchnia (powierzchnia Y ={surfaceY})", + "iris.runtime.dust.position.below": "Pozycja: {offset} poniżej powierzchni (powierzchnia Y ={surfaceY})", + "iris.runtime.dust.position.at": "Położenie: na powierzchni (Y ={surfaceY})", + "iris.runtime.dust.object_at_block": "Obiekt @ block: {object}", + "iris.runtime.dust.none": "brak", + "iris.runtime.dust.placed_by.object_above": "Umieszczone przez: obiekt / stilt '{object}\"(nad powierzchnią)", + "iris.runtime.dust.placed_by.decoration_above": "Umieszczone przez: dekoracje / obiekt / stilt (nad powierzchnią)", + "iris.runtime.dust.placed_by.buried_object": "Umieszczone przez: zakopany obiekt \"{object}'", + "iris.runtime.dust.placed_by.terrain": "Umieszczone przez: warstwa terenu (głębokość {depth} poniżej powierzchni)", + "iris.runtime.dust.column_object": "Obiekt kolumny: {object} -> Ten blok jest prawdopodobny.", + "iris.runtime.dust.column_object_none": "Obiekt kolumny: {detail}", + "iris.runtime.dust.column_none": "brak 64 (dekorator lub teren, nie )", + "iris.runtime.dust.column.above": "{object} @Y={y} (powyżej)", + "iris.runtime.dust.column.below": "{object} @Y={y} (poniżej)", + "iris.runtime.dust.surface_biome": "Biom powierzchniowy: {biome}", + "iris.runtime.dust.surface_biome_detail": "Biom powierzchniowy: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @ Y: {biome}", + "iris.runtime.dust.cave_biome": "Jaskinia /Mantle biom: {biome}", + "iris.runtime.dust.server_biome": "Biom serwera: {biome} (ID: {id})", + "iris.runtime.dust.region": "Region {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Obiekty w chunku: {objects}", + "iris.runtime.dust.copy_button": "[Kliknij, aby skopiować te statystyki]", + "iris.runtime.dust.copy_hover": "Kopiuj statystyki bloku do schowka", + "iris.runtime.pregen.starting": "Iris Rozpoczęcie leczenia...", + "iris.runtime.pregen.header": "Iris Pregon", + "iris.runtime.pregen.bossbar.paused": "Iris Pregon {generated}/{total} {percent}% wstrzymano", + "iris.runtime.pregen.bossbar.running": "Iris Pregon {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " nieudany {failed}", + "iris.runtime.pregen.status.context": "Wymiar {dimension} · Metoda {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Kawałki {generated}/{total} · Prędkość {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Kawałki {generated}/{total} · Prędkość {speed}/s · Nieudany {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Upłynął {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Upłynął {elapsed} · wstrzymano", + "iris.runtime.pregen.button.pause": "Pauza / Wznowienie", + "iris.runtime.pregen.button.pause.hover": "Włączenie / wyłączenie stanu pauzy przed generacją", + "iris.runtime.pregen.button.stop": "Przestań", + "iris.runtime.pregen.button.stop.hover": "Zakończ bieżący region i zatrzymaj pregenerację", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cnie znaleziono opakowań / folderu.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eŻadnych paczek do zatwierdzenia.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aWalidacja zakończona. Połamane opakowania: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPaczka \"{pack}\"nie znaleziono pod packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aNie znaleziono żadnych kandydatów do sprzątania.{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aKwartan {size} kandydat (-i) do czyszczenia {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cTryb czyszczenia musi być podglądem lub aplikacją.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aNie znaleziono żadnych kandydatów do sprzątania.{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eCzyszczenie podglądu dla pakietu \"{pack}': {size} kandydat (-y). Nie zmieniono akt.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Biegnij /iris pack cleanup {pack} mode=apply do kwarantanny tych kandydatów po świeżym skanowaniu.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cPrzywróć odmowę, ponieważ {size} cel (-y) już istnieje.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNic do przywracania dla paczki \"{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aPrzywrócony {size} plik (-y) z {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cTryb przywracania musi być podglądem lub aplikacją.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNic do przywracania dla paczki \"{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§ePrzywróć podgląd dla {dumpPath}: {size} plik (-y). Nie zmieniono akt.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cPrzywracanie jest zablokowane przez {size} istniejące przeznaczenie (miejsca przeznaczenia).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Biegnij /iris pack restore {pack} mode=apply przywrócić po nowym sprawdzeniu konfliktu.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eNie zarejestrowano wyników walidacji. Biegnij /iris pack validate Najpierw.", + "iris.bukkit.runtime.commandpack.status.ok": "§aOK.§r {pack}§7 (blokowanie ={blocking}, ostrzeżenia ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBRAK§r {pack}§7 (blokowanie ={blocking}, ostrzeżenia ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cCzyszczenie nie powiodło się: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cPrzywracanie nie powiodło się: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "nadal podlega kwarantannie", + "iris.bukkit.runtime.commandpack.path.quarantined": "poddane kwarantannie", + "iris.bukkit.runtime.commandpack.path.candidate": "kandydat", + "iris.bukkit.runtime.commandpack.path.conflict": "konflikt", + "iris.bukkit.runtime.commandpack.path.restored": "przywrócone", + "iris.bukkit.runtime.commandpack.path.file": "plik", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eBrak wyniku walidacji dla \"{pack}'. Biegnij /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cWalidacja \"{name}'nieudany: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPaczka \"{packName}'jest ładowalne.§7 (ostrzeżenia ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPaczka \"{packName}'jest uszkodzony:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... oraz {count} więcej ostrzeżeń.", + "one": "§7 ... oraz {count} Więcej ostrzeżeń." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cPrzed użyciem tej funkcji zawsze wykonaj kopię zapasową", + "§eMożliwe problemy obejmują między innymi:", + "§e - Uszkodzone chunki (ucięte krawędzie) pomiędzy starymi i nowymi chunkami (przed aktualizacją & po niej)", + "§e - Ponownie wygenerowane chunki, które nie pasują do starych chunków", + "§e - Struktury, które nie pojawiają się ponownie podczas regeneracji", + "§e - Niedopasowane jaskinie", + "§e - Niedopasowane warstwy terenu", + "§cGdy rozumiesz ryzyko i masz wykonaną kopię zapasową:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aPrzywóz §f{total}§a vanilla & struktury datapack (tryb ={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[błąd] {keyString}: nieprawidłowy klucz", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[pominiędo] {keyString}: brak pojedynczego szablonu NBT - vanilla buduje do w kodzie lub z osobnych szablonów (importowanych za pomocą przejścia szablonu); nic do importu jako jedna struktura.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[błąd] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aImport luzem zakończony: §f{imported}§a przywożone, §f{skipped}§a pominięte, §f{failed}§a nieudany (§f{total}§a ogółem).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aBudownictwo jedno- szablonów konstrukcji z importowanych sztuk (jeden wariant umieszczony na pokolenie)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} warianty)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[pominięto] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[błąd] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aStruktura pojedynczego szablonu: §f{imported}§a zbudowany, §f{skipped}§a pominięte, §f{failed}§a Nie udało się.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cNie udało się zapisać szablonów struktury za pośrednictwem serwera ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eNie znaleziono żadnych szablonów struktury w ścieżce zasobów \"struktura\".", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aPrzywóz §f{total}§a szablony struktury (tryb ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[błąd] {keyString}: nieprawidłowy klucz", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[błąd] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} przywożone, {skipped} pominięte, {failed} nieudany)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aImport szablonu zakończony: §f{imported}§a przywożone, §f{skipped}§a pominięte, §f{failed}§a nieudany (§f{total}§a ogółem).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eNie rejestruje się żadnych struktur datapack (nieminecraft). Zainwestuj datapack i uruchom ponownie, a następnie uruchom to jeszcze raz.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aPrzywóz §f{total}§a struktury datapack (tryb ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[błąd] {keyString}: nieprawidłowy klucz", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[błąd] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aPrzywóz §f{size}§a szablony struktury datapack...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[błąd] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[błąd] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eNie można zapisać szablonów datapack za pośrednictwem serwera ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aZaimportowanie struktury Datapack zakończone: §f{imported}§a przywożone, §f{skipped}§a pominięte, §f{failed}§a Nie udało się.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eUchwyt struktury nie jest obsługiwany przez aktywny NMS ominąć przepustkę.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Nie ma struktur generowanych przez kod do wychwytywania (wszystko jest już importowane jako struktura).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aChwytanie §f{total}§a Konstrukcje generowane kodowo (nie NBT szablon) do świata zarysowań (pomijając szersze / wyższe niż {MAXSPAN} bloki)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[pominięto] {key}: nie umieścił tutaj struktury uchwytnej (zbyt duży, zły wymiar lub brak poprawnego umieszczenia w płaskim świecie). Stays vanilla-generowane.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[błąd] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[błąd] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} schwytany, {skipped} pominięte, {failed} nieudany)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aUchwyt struktury zakończony: §f{imported}§a schwytany, §f{skipped}§a pominięte, §f{failed}§a nieudany (§f{total}§a ogółem).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eŻadne drzewo vanilla / obiekt nie są narażone przez aktywny NMS wiążące (tylko struktury przywozu).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aPrzywóz §f{total}§a funkcje drzewa vanillago / obiektu (§f{wantVariants}§a warianty każdy) w świat zadrapania...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[pominięto] {key}: funkcja nie umieszczona po powtórkach.", + "iris.bukkit.runtime.featureimporter.fail": "§c[błąd] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} przywożone, {skipped} pominięte, {failed} nieudany)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aImport funkcji zakończony: §f{imported}§a funkcje napisane, §f{skipped}§a pominięte, §f{failed}§a nieudany (§f{total}§a ogółem).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cNie można utworzyć świata zarysowań dla importu funkcji ({error}); pominięcie przejścia drzewa / obiektu.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Brak schematycznych plików do konwersji znalezionych w {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aKonwersja {name} -> {value} w {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aKonwersja {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cNie udało się zapisać: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cNie można przekonwertować: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Przekonwertowany: {get} w {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cNiektóre schematy nie mogły się zmienić. Sprawdź w konsoli szczegóły.", + "iris.bukkit.runtime.studiosvc.installing_package": "Instalacja pakietu: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Szukam pakietu: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Znaleziono {type}.iris w {WORKSPACENAME} katalog", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Znaleziono {type} wymiar {WORKSPACENAME} teczka. Przepakowywanie", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Nie mogę znaleźć {name} w folderze wymiarów tego opakowania! Nie udało się!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Nie można załadować wymiaru! Nie udało się!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} typ zainstalowany. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Paczka \"{key}'nie znaleziono go na liście.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Stosowanie /iris download branch= aby pobrać ręcznie.", + "iris.bukkit.runtime.studiosvc.failed_download": "Nie można pobrać '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Nie udało się pobrać IrisDimensions/ Overworld beta wydania.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Nie można pobrać '{repo}'(oddział {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Nie udało się otworzyć studio świata: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Nie można otworzyć studia \"{dimm}\"- opakowanie ma błędy blokujące:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Napraw opakowanie i uciekaj /iris pack validate {dimm} do ponownego zatwierdzenia.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Nie udało się zamknąć istniejącego projektu studio: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Nie udało się zamknąć istniejącego projektu studio: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Nie udało się otworzyć studio świata: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Nie mogłem znaleźć stada do stworzenia nowego wymiaru.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Brakujący plik importowanego wymiaru", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Przywóz {downloadable} w nowy projekt {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Studio obiektu: nie ma komórki pod kliknięciem (x ={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bStudio obiektów: zapisywanie §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Studio obiektów: brak zmian dla {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Studio obiektu: pusta komórka {pack}/{key} (nic do pisania).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cStudio obiektu: brak pliku docelowego dla {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aStudio obiektów: zapisane §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cStudio obiektów: nie udało się zapisać dla {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Nie można załadować wymiar \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Nie można uzyskać ładowarki wymiarów", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStudio otwarte nie powiodło się: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStudio otwarte nie powiodło się.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStudio gotowe §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serializacja obiektów", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Napisał inny {g} Obiekty", + "iris.bukkit.runtime.irisproject.package_compiled": "Paczka zebrana!", + "iris.bukkit.runtime.irisproject.failed": "Nie udało się!", + "iris.bukkit.runtime.irisengine.total": "Ogółem: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Silnik §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Szczegóły: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} nie jest zdefiniowany w wymiarze!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cNie można znaleźć {message} w zasięgu poszukiwań.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeleportacja do {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} w: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Zostałeś ewakuowany z tego świata.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Zostałeś ewakuowany z tego świata. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Są pewne Iris Opakowania, które zawierają niestandardowe biomy", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Aby korzystać z tych pakietów, musisz ponownie uruchomić serwer.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Niewystarczające uprawnienia", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Nie ma podkomend lub nie masz pozwolenia na ich użycie.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parametry Ignorowane: {m}", + "iris.runtime.studio.opening": "§6Studio §bOTWIERANIE", + "iris.runtime.studio.opening_progress": "§6Studio §bOTWIERANIE§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cNIEPOWODZENIE§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aGOTOWE§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cNIEPOWODZENIE§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio gotowe§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Inicjalizacja", + "iris.runtime.studio.stage.queued": "W kolejce", + "iris.runtime.studio.stage.resolve_dimension": "Ustalanie wymiaru", + "iris.runtime.studio.stage.prepare_world_pack": "Przygotowywanie pakietu świata", + "iris.runtime.studio.stage.install_datapacks": "Instalowanie datapacków", + "iris.runtime.studio.stage.create_world": "Tworzenie świata", + "iris.runtime.studio.stage.apply_world_rules": "Stosowanie zasad świata", + "iris.runtime.studio.stage.prepare_generator": "Przygotowywanie generatora", + "iris.runtime.studio.stage.request_entry_chunk": "Ładowanie chunku wejściowego", + "iris.runtime.studio.stage.resolve_safe_entry": "Szukanie bezpiecznego spawnu", + "iris.runtime.studio.stage.teleport_player": "Teleportowanie", + "iris.runtime.studio.stage.finalize_open": "Finalizowanie", + "iris.runtime.studio.stage.cleanup": "Czyszczenie", + "iris.runtime.world_create.teleport_failed": "§eŚwiat został stworzony, ale automatyczny teleport zawiódł. Spróbuj /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunki", + "iris.runtime.world_create.console": "§6Generowanie §e{percent}%§7 {generated}/{required} chunki§8 ({remaining} lewa)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregeneracja", + "iris.runtime.world_create.pregen.console": "§6Pregeneracja §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Regen.", + "iris.runtime.chunk_job.title.delete": "Usuń", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Przygotowanie", + "iris.runtime.chunk_job.stage.clearing": "Oczyszczanie", + "iris.runtime.chunk_job.stage.resetting_mantle": "Wznowienie Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Regeneracja", + "iris.runtime.chunk_job.stage.generating": "Generowanie", + "iris.runtime.chunk_job.stage.comparing": "Porównanie", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnozowanie", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bPRACA", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunki w {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunki w {elapsed} ({failures} nieudany)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aDON§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cZANIECHANE§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aGotowe§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cNieudany§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} kompletne: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} zakończony błędami: {summary}", + "iris.runtime.golden.no_capture": "Nie ma złotego schwytania {path}- Najpierw go złap.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash przerwane: {failed} Nie udało się wygenerować fragmentów. Żadnych złotych akt.", + "one": "GoldenHash przerwane: {failed} Nie udało się wygenerować chunka. Żadnych złotych akt." + }, + "iris.runtime.golden.failed": "GoldenHash nie powiodło się: {error}", + "iris.runtime.golden.mantle_reset": "Mantle zresetuj ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle nie udało się zresetować ({type}); kontynuowanie istniejącego stanu Mantle.", + "iris.runtime.golden.captured": "Złoty schwytany: {chunks} chunki razem ={hash}", + "iris.runtime.golden.wrong_world": "Złoty plik jest dla dim ={goldenDimension} nasiona ={goldenSeed} Ale ten świat jest przyćmiony{dimension} nasiona ={seed}. Abortując.", + "iris.runtime.golden.version_warning": "Golden został schwytany na Mc ={goldenVersion}, running mc ={version}. Zróżnicowanie może być wywołane wersją.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunki, połączone ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} Fragmenty się różnią.", + "iris.runtime.golden.mismatch_chunk": " cząstka {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (brakuje w złocie)", + "iris.runtime.golden.mismatch_more": " ... oraz {count} więcej", + "iris.runtime.golden.current_written": "Obecne hashy napisane do {file}", + "iris.runtime.golden.diag.stable": "Uchylenie STABLE, mantle- reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Uchylenie UNSTABLE ({diffs}+ różnice bloku), reset mantle- {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (Odbudowa Mantle odtwarza wynik skanowania)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ diffs - budowa Mantle zależy od stanu / zamówienia)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Diagnoza nie powiodła się: {error}", + "iris.runtime.golden.started": "GoldenHash rozpoczęte: {chunks} części wokół 0,0 w zderzakach (świat nietknięty), wątki ={threads} tryb ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] cząstka {x},{z} łuszczone", + "iris.runtime.golden.chunk_failed": "Chunk Przewodniczący {x},{z} niepowodzenie: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Nieprawidłowa nazwa opakowania \"{pack}\"(dozwolone: a- z, 0-9, _ i -)", + "iris.runtime.pack_download.invalid_branch_name": "Nieprawidłowa nazwa gałęzi \"{branch}\"(dozwolone: litery, cyfry,. _ i -)", + "iris.runtime.pack_download.failed": "Pobieranie pakietu nie powiodło się: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Pobieranie {url}", + "iris.runtime.pack_download.failed_to_find": "Nie udało się znaleźć pakietu w {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Upewnij się, że podałeś poprawny repo i gałąź!", + "iris.runtime.pack_download.example_command": "Na przykład: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Rozpakowanie {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Wydanie podczas rozpakowywania. Proszę sprawdzić / wykonać następujące czynności:", + "1. Masz sprawne połączenie internetowe?", + "2. Czy pobieranie jest zepsute?", + "3. Spróbuj usunąć */plugins/iris/packs folder i pobierz ponownie.", + "4. Pobierz opakowanie z GitHub / https://github.com/IrisDimensions/overworld", + "5. Obsługa kontaktowa (jeżeli wszystkie inne opcje nie pomogą)" + ], + "iris.runtime.pack_download.no_extracted_files": "Nie pobrano żadnych plików z pliku zip.", + "iris.runtime.pack_download.home_directory_error": "Błąd podczas wyszukiwania katalogu domowego. Czy są jakieś znaki nietekstowe w nazwie pliku?", + "iris.runtime.pack_download.invalid_archive_format": "Niepoprawny format. Brak katalogu głównego lub zbyt wiele folderów!", + "iris.runtime.pack_download.no_dimension_file": "W pliku zip nie znaleziono żadnego wymiaru.", + "iris.runtime.pack_download.check_github": "Sprawdź, czy jest obecny na GitHub i zgłosić do do personelu!", + "iris.runtime.pack_download.one_dimension_required": "Folder wymiarów musi zawierać dokładnie jeden plik.", + "iris.runtime.pack_download.invalid_dimension": "Nieprawidłowy folder wymiarów pod dimensions/.", + "iris.runtime.pack_download.importing": "Przywóz {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Inny wymiar w folderze pakietów już używa klucza {key}. Import nie powiódł się!", + "iris.runtime.pack_download.pack_key_conflict": "Inny pakiet używa klucza {key}. Import nie powiódł się!", + "iris.runtime.pack_download.acquired": "Udane nabycie {name}.", + "iris.runtime.pack_download.validation_failed": "Paczka \"{pack}\"nieudaną walidację; świat i tworzenie studia zostaną odrzucone. Uzasadnienie:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Paczka \"{pack}\"zatwierdzone {count} Ostrzeżenia.", + "one": "Paczka \"{pack}\"zatwierdzone {count} Ostrzeżenie." + }, + "iris.runtime.pack_download.validated": "Paczka \"{pack}\"zatwierdzone.", + "iris.client.vision.title": "Iris Wizja", + "iris.client.vision.connecting": "Łączenie Iris serwer...", + "iris.client.vision.not_connected": "niepodłączony", + "iris.client.vision.not_iris_world": "Nie Iris świat", + "iris.client.vision.no_dimension_data": "brak danych dotyczących wymiarów", + "iris.client.vision.header_detail": "{status} powiększenie {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Przeciągnij do paska Przewiń, aby powiększyć Esc zamknąć", + "iris.client.vision.dimension_pack": "{dimension} opakowanie {pack}", + "iris.client.toast.studio_hotload": "Hotload Studio", + "iris.client.toast.changed_files": { + "other": "{count} pliki", + "one": "{count} plik" + }, + "iris.client.toast.reload_failed": "Przeładowanie nie powiodło się", + "iris.client.toast.reloaded": "ponownie załadowany", + "iris.client.toast.pack_failed": "{pack} nieudany", + "iris.client.what.title": "Iris Co?", + "iris.client.what.querying": "Zapytanie {x}, {z}...", + "iris.client.what.biome": "Biom: {biome}", + "iris.client.what.region": "Region {region}", + "iris.client.what.cave": "Jaskinia: {cave}", + "iris.client.what.height": "Wysokość: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "wstrzymano", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris.", + "iris.bukkit.scoreboard.speed": "§aPrędkość§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bPoduszka§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bPłaszcz§7: {count}", + "iris.bukkit.scoreboard.carving": "§dRzeźba§7: {state}", + "iris.bukkit.scoreboard.region": "§bObszar§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBioma§7: {biome}", + "iris.bukkit.scoreboard.height": "§bWysokość§7: {height}", + "iris.bukkit.scoreboard.slope": "§bNachylenie§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bPOD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Wizja", + "iris.desktop.vision.view": "Widok:", + "iris.desktop.vision.grid": "Sieć", + "iris.desktop.vision.follow": "Śledź", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Odświeżające", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Zmień powiększenie", + "iris.desktop.vision.grid_enabled": "Siatka włączona", + "iris.desktop.vision.grid_disabled": "Sieć wyłączona", + "iris.desktop.vision.following": "Śledzenie gracza {player}", + "iris.desktop.vision.no_player": "Brak gracza na świecie", + "iris.desktop.vision.follow_disabled": "Śledź wyłączone", + "iris.desktop.vision.low_quality": "Niska jakość", + "iris.desktop.vision.high_quality": "Wysoka jakość", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} bloki", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Pozycja: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Zdrowie: {health} / {maximum}", + "iris.desktop.vision.block_position": "Blok {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk Przewodniczący {x}, {z}", + "iris.desktop.vision.region_position": "Obszar {x}, {z}", + "iris.desktop.vision.biome_key": "Klucz: {key}", + "iris.desktop.vision.biome_file": "Plik: {file}", + "iris.desktop.vision.velocity": "Prędkość: {velocity}", + "iris.desktop.vision.tiles": "Płytki: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Pracownicy: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centrum: {x}, {z}", + "iris.desktop.vision.help.toggle": "Włączanie pomocy", + "iris.desktop.vision.help.refresh": "Płytki odświeżające", + "iris.desktop.vision.help.follow": "Śledź gracza", + "iris.desktop.vision.help.zoom": "Powiększenie", + "iris.desktop.vision.help.reset_zoom": "Zmień powiększenie", + "iris.desktop.vision.help.cycle_mode": "Tryb renderowania cyklu", + "iris.desktop.vision.help.quality": "Włączenie / wyłączenie jakości płytek", + "iris.desktop.vision.help.fps": "Włączenie / wyłączenie 30/60 FPS", + "iris.desktop.vision.help.grid": "Przełączanie sieci", + "iris.desktop.vision.help.biome": "Szczegółowe informacje o biomie", + "iris.desktop.vision.help.teleport": "Teleport do kursora", + "iris.desktop.vision.help.editor": "Otwórz biom w edytorze", + "iris.desktop.vision.opened": "Otwarty {target}", + "iris.desktop.vision.teleporting": "Teleportacja do {x}, {z}", + "iris.desktop.vision.mode.biome": "Bioma", + "iris.desktop.vision.mode.biome_land": "Grunty biowe", + "iris.desktop.vision.mode.biome_sea": "Morze Biome", + "iris.desktop.vision.mode.region": "Obszar", + "iris.desktop.vision.mode.cave_land": "Kraina jaskiń", + "iris.desktop.vision.mode.height": "Wysokość", + "iris.desktop.vision.mode.object_load": "Ładunek obiektu", + "iris.desktop.vision.mode.decorator_load": "Obciążenie dekoratora", + "iris.desktop.vision.mode.continent": "Kontynent", + "iris.desktop.vision.mode.layer_load": "Obciążenie warstwy", + "iris.desktop.noise.title": "Odkrywca hałasu", + "iris.desktop.noise.title_generator": "Odkrywca hałasu: {generator}", + "iris.desktop.noise.search": "Szukaj...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} | Zoom: {zoom} | Wartość: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Własny", + "iris.desktop.noise.category.pack_generators": "Generatory pakietów", + "iris.desktop.noise.category.simplex": "Sumplex", + "iris.desktop.noise.category.perlin": "Perlin Przewodniczący", + "iris.desktop.noise.category.cellular": "Komórki", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "koniczyna", + "iris.desktop.noise.category.hexagon": "Sześciokąt", + "iris.desktop.noise.category.vascular": "naczyniowe", + "iris.desktop.noise.category.globe": "Globe Przewodniczący", + "iris.desktop.noise.category.cubic": "Kuba", + "iris.desktop.noise.category.fractal": "Fraktal", + "iris.desktop.noise.category.static": "Statyczny", + "iris.desktop.noise.category.nowhere": "Nigdzie", + "iris.desktop.noise.category.sierpinski": "Sierpinski Przewodniczący", + "iris.desktop.noise.category.utility": "Wykorzystanie", + "iris.desktop.noise.category.other": "Inne", + "iris.desktop.pregen.initializing": "Inicjowanie...", + "iris.desktop.pregen.title": "Widok z góry", + "iris.desktop.pregen.method_pending": "Oczekiwanie", + "iris.desktop.pregen.paused": "wstrzymano", + "iris.desktop.pregen.resume_hint": "Naciśnij P, aby wznowić", + "iris.desktop.pregen.pause_hint": "Naciśnij P, aby zatrzymać", + "iris.desktop.pregen.progress_paused": "wstrzymano {generated} z {total} ({percent} całkowita)", + "iris.desktop.pregen.progress_saving": "Zapisywanie... {generated} z {total} ({percent} całkowita)", + "iris.desktop.pregen.progress_generating": "Generowanie {generated} z {total} ({percent} całkowita)", + "iris.desktop.pregen.speed": "Prędkość: {chunksPerSecond} chunki/s, {regionsPerMinute} regiony / m, {chunksPerMinute} części / m", + "iris.desktop.pregen.speed_cached": "Prędkość: buforowana {chunksPerSecond} chunki/s, {regionsPerMinute} regiony / m, {chunksPerMinute} części / m", + "iris.desktop.pregen.time": "{remaining} pozostałe ({elapsed} elapsed)", + "iris.desktop.pregen.method": "Metoda wytwarzania: {method}", + "iris.desktop.pregen.memory": "Pamięć: {used} ({usage}) Ciśnienie: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/pt_PT.json b/core/src/main/resources/languages/pt_PT.json new file mode 100644 index 000000000..26455ba94 --- /dev/null +++ b/core/src/main/resources/languages/pt_PT.json @@ -0,0 +1,1435 @@ +{ + "locale": "pt_PT", + "messages": { + "director.help.navigation.parent.hover": "Voltar ao grupo de comandos principal", + "director.help.navigation.back": "Voltar", + "director.help.no_subcommands": "Não existem subcomandos nesta página.", + "director.help.no_description": "Nenhuma descrição fornecida", + "director.help.aliases": "Aliases", + "director.help.command_group": "Grupo de comandos. Clique para abrir.", + "director.help.no_parameters": "Sem parâmetros. Clique para preencher previamente o comando.", + "director.help.parameters": "Parâmetros", + "director.help.parameter.required": "obrigatório", + "director.help.parameter.optional": "opcional", + "director.help.parameter.default": "predefinido", + "director.help.navigation.previous.hover": "Página anterior", + "director.help.navigation.next.hover": "Página seguinte", + "director.help.navigation.page": "Página", + "director.runtime.error.invalid_origin": "Este comando não pode ser executado a partir desta origem.", + "director.runtime.error.unknown_parameter": "Chave de parâmetro desconhecida: {key}", + "director.runtime.error.unexpected_argument": "Argumento inesperado \"{argument}\". Os parâmetros opcionais devem ser indicados por chave, por ex. seed=123", + "director.runtime.error.conversion_failed": "Não foi possível converter \"{value}\" em {type} para {parameter}", + "director.runtime.error.default_parse_failed": "Não foi possível interpretar o valor predefinido do parâmetro {parameter}", + "director.runtime.error.missing_argument": "Falta o argumento \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Falha ao executar o comando {command}: {reason}", + "director.runtime.usage": "Utilização: {usage}", + "iris.command.permission_denied": "Não tem a permissão '{permission}'", + "iris.command.unknown": "Comando Iris desconhecido", + "iris.command.player_only": "Este comando só pode ser utilizado por jogadores.", + "iris.command.iris_world_required": "Esta dimensão não foi gerada pelo Iris.", + "iris.command.reload.success": "As definições e o idioma {locale} foram recarregados.", + "iris.command.reload.failed": "As definições foram recarregadas, mas o idioma {locale} foi rejeitado; será mantido {activeLocale}.", + "iris.modded.help.unknown_section": "Desconhecido Iris secção de ajuda: {section}", + "iris.modded.help.back_hover": "Voltar para {parent}.", + "iris.modded.help.command_parameter": "Parâmetro de comando", + "iris.modded.help.parameter_required": "Este parâmetro é necessário.", + "iris.modded.help.parameter_optional": "Este parâmetro é opcional.", + "iris.modded.help.brigadier_text": "Este parâmetro é lido como texto por Brigadier.", + "iris.modded.help.operator_notice": "Iris comandos precisam de permissão do operador (nível 2).", + "iris.modded.help.operator_instruction": "Executar {command} a partir do console (ou habilitar fraudes em um jogador); até então estes comandos não serão executados ou tab-completos.", + "iris.modded.command.properties.none": "Propriedades: (nenhum)", + "iris.modded.command.properties.list": "Propriedades: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Início do pacote de dados ingerir...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aImportações de pacotes de dados configurados: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aPacotes de dados instalados: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eAdicionar Modrinth URLs a uma dimensão 'datapackImports' lista, em seguida, executar /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash iniciado: {value} chunks...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash falhou no chunk {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash global=§6{value}§a chunks={value2} sólidos={solidBlocks} em {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Não em Iris Mundo!", + "iris.bukkit.commandfind.unknown_structure": "§cEstrutura desconhecida: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Execute isto no jogo para se teletransportar para uma estrutura.", + "iris.bukkit.commandfind.locating": "§7Localização {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Execute isto no jogo para se teletransportar para uma estrutura.", + "iris.bukkit.commandfind.locating_2": "§7Localização {structure}...", + "iris.bukkit.commandfind.teleported": "§aTeletransportado para {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aPasta mundial removida com sucesso", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aPasta mundial removida com sucesso", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cFalha ao remover a pasta mundial", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cNão foram encontrados pacotes com objetos neste servidor.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cNenhum objeto para colocar no( s) pacote( s) selecionado( s).", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aAbrir o Estúdio de Objectos para {scope} ({totalObjects} objetos)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cFalha ao abrir o estúdio do objeto: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cVocê deve especificar um nome de pacote.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cEmbalar '{pack}' não encontrado sob packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... e {value} Mais.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aVerificação de estruturas em §f{value}§a de {value2},{value3} dentro {searchRadius} chunks...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aImportando conteúdo de vanilla para §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla completa: §f{imported}§a objects/structures escrita, §f{failed}§a falhou.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Árvores/objectos estão abaixo objects/vanilla/...; referencia-os a partir de posicionamentos de objetos de bioma.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cNada de estúdios abertos.", + "iris.bukkit.commandstudio.closing_studio": "§eEstúdio de encerramento...", + "iris.bukkit.commandstudio.studio_close_failed": "§cFalha ao fechar o estúdio: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cFalha ao fechar o estúdio: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eEstúdio fechado. A limpeza restante da família mundial foi em fila de espera para a inicialização.", + "iris.bukkit.commandstudio.studio_closed": "§aEstúdio fechado.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cVocê deve estar em um mundo Studio para alternar o placar de depuração.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Painel de pontuação de depuração do estúdio {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cNão foi possível atualizar o placar de depuração do Studio neste momento.", + "iris.bukkit.commandstudio.opened_inventory": "§aInventário aberto!", + "iris.bukkit.commandstudio.generating_data": "§7Gerando dados...", + "iris.bukkit.commandstudio.done": "§aFeito!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Falta-lhe a permissão '{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Estado:", + "iris.bukkit.irisenginestatus.service": "§5- Serviço: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Métricas: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Período de manutenção: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Paralelismo dos Trabalhadores: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Tarefas Ativas do Mundo: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Placas tectónicas:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Retenção Configurada: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Uso do Heap: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Residente: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- Em fila. §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Duração média do vazio: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Duração máxima de inactividade: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Duração mínima do trabalho: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Cache:", + "iris.bukkit.irisenginestatus.resource": "§5- Recurso: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Fluxo 2D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Fluxo 3D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Outros: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Outros:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Mundos: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Chunks carregados. §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cO mundo é nulo.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cAlvo Iris mundo antes de ler um depósito de Mantle.", + "iris.bukkit.commanddeveloper.upgrading": "§aAtualizando para {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aAcabou a actualização! Agora você pode atualizar sua versão do servidor para {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cRaio deve ser 0 ou maior.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cIsto não é um Iris mundo.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cO acesso do motor para este mundo é nulo.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aApagar o início: §6{chunks}§a bloco( s) ao redor §6{centerX},{centerZ}§a. A limpar os blocos para o ar.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cRaio deve ser 0 ou maior.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cVocê deve estar em um Iris mundo para usar regen.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cO acesso do motor para este mundo é nulo. Gere primeiro chunks próximos.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aO Regen começou: §6{chunks}§a chunk( s) ao redor §6{centerX},{centerZ}§a. Apagar e regenerar no lugar.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cRaio deve ser 0 ou maior.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cO alvo deve ser um Iris mundo.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cO acesso do motor para este mundo é nulo.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash iniciado: §6{chunks}§a chunk( s) ao redor §6{centerX},{centerZ}§a em tampão (mundo intocado).", + "iris.bukkit.commandedit.players_only": "§cSó jogadores!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cNenhum mundo de estúdio está aberto!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cDeves estar num mundo de estúdio!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cNão é possível abrir arquivos em ambientes sem cabeça!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cO ambiente de trabalho não é suportado por este ambiente!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Não foi possível encontrar o ficheiro; Talvez não tenha sido carregado directamente de um ficheiro?", + "iris.bukkit.commandedit.opening_vscode": "§aAbertura {value} {value2} em VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cNão foi possível encontrar o ficheiro. Ou o registante não existe", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Não foi possível encontrar o ficheiro; Talvez não tenha sido carregado directamente de um ficheiro?", + "iris.bukkit.commandedit.opening_vscode_2": "§aAbertura {value} {value2} em VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cNão foi possível encontrar o ficheiro. Ou o registante não existe", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Não foi possível encontrar o ficheiro; Talvez não tenha sido carregado directamente de um ficheiro?", + "iris.bukkit.commandedit.opening_vscode_3": "§aAbertura {value} {value2} em VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cNão foi possível encontrar o ficheiro. Ou o registante não existe", + "iris.bukkit.commandfind.not_iris_world_5": "§6Não em Iris Mundo!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Não em Iris Mundo!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Não em Iris Mundo!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Não em Iris Mundo!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aEstúdio de objetos: teletransportando para {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} não está configurado em nenhuma região/posição de objetos do bioma.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cNão pode usar o nome de mundo \"iris\", porque o Iris utiliza este diretório para mundos do Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cPodemos sugerir o nome \"IrisWorld\" em vez disso?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cNão pode usar o nome de mundo \"benchmark\", porque o Iris utiliza este diretório para pacotes de benchmark.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cPodemos sugerir o nome \"IrisWorld\" em vez disso?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cEssa pasta já existe!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cNão foi possível encontrar ou baixar a dimensão \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eExperimente um de: overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eOu baixar manualmente: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aPreparação do mundo concluída. Reinicie o servidor para gerar/carregar \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cExceção levantada durante a criação. Veja o console para mais detalhes.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aCriou com sucesso o seu mundo!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aSeu mundo será automaticamente definido como o mundo principal quando o servidor reiniciar.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eA criação do mundo em execução está desactivada Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§ePreparando arquivos mundiais e bukkit.yml para a próxima inicialização...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cFalha ao encenar arquivos mundiais para a dimensão \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aAtualizado server.properties nível-nome para \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cO mundo foi encenado, mas falhou em atualizar server.properties mundo principal.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aMundo Iris \"{name}\" preparado com o gerador Iris:{value} e a seed {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aEste mundo está agora configurado como principal para o próximo reinício.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cFalha ao atualizar bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cO jogador especificado não existe.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aÍris v{value} por Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} para {value2}", + "iris.bukkit.commandiris.total_height": "§aAltura total: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Mundos Iris: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Mundos Bukkit: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cIsto não é um Iris mundo. Iris mundos: {value}", + "iris.bukkit.commandiris.removing_world": "§aRemovendo o mundo: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cNão foi possível evacuar o mundo. {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cNão foi possível descarregar o mundo: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aRemovido com sucesso {value} de bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eParece que o mundo já foi removido de bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cFalha ao salvar bukkit.yml devido a {value}", + "iris.bukkit.commandiris.set_debug": "§aDefinir depuração como: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aBaixando pacote: {pack} (versão beta){value}", + "iris.bukkit.commandiris.downloading_pack": "§aBaixando pacote: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cVocê deve estar em um Iris mundo", + "iris.bukkit.commandiris.sending_metrics": "§aEnviando métricas...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cIsto não é um Iris mundo. Iris mundos: {value}", + "iris.bukkit.commandiris.unloading_world": "§aMundo descarregado: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aMundo descarregado com sucesso.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cNão conseguiu descarregar o mundo.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cNão conseguiu descarregar o mundo: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Não existe no servidor.", + "iris.bukkit.commandiris.generator": "§9Gerador: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} Não é um mundo íris.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cNão foi possível determinar Iris dimensão para {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aMundo de carregamento: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia não pode carregar novos mundos em tempo de execução. Reiniciar o servidor para carregar \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} carregado com sucesso.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cIsto não é um Iris mundo. Iris mundos: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvacuar o mundo{value}", + "iris.bukkit.commandobject.object_size": "Tamanho do objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Blocos Usados: {value}", + "iris.bukkit.commandobject.blocks_object": "== Blocos no objeto ==", + "iris.bukkit.commandobject.other_block_types": " + {value} outros tipos de blocos", + "iris.bukkit.commandobject.current_object_size": "Tamanho atual do objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Novo tamanho do objeto: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Falha ao salvar o objeto {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cNenhum objeto correspondeu: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlausibiliza [reach={reach}{value}] em fila {value2} objeto( s)", + "iris.bukkit.commandobject.hold_your_wand": "Segura a varinha.", + "iris.bukkit.commandobject.no_area_selected": "Nenhuma área selecionada.", + "iris.bukkit.commandobject.ready_your_wand": "Prepara a tua varinha.", + "iris.bukkit.commandobject.ready_your_wand_2": "Prepara a tua varinha.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eA escala indicada excede o máximo. Diminuição até ao máximo: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Varinha actualizada para objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Dada a nova varinha para objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Varinha actualizada para objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aColocado {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eTens de segurar a varinha!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cO ficheiro já existe. Definir sobrescrever=verdadeiro para sobrescrevê-lo.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cFalha ao salvar o objeto por causa de uma IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aObjeção com sucesso para salvar: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Segura a varinha.", + "iris.bukkit.commandobject.no_area_selected_2": "Nenhuma área selecionada.", + "iris.bukkit.commandobject.reverted_pastes": "§9Foram revertidas {actualReverts}§9 colagens!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cVocê não pode obter um WorldEdit seleção sem WorldEditTu sabes.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cNão tens... WorldEdit seleção neste mundo.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aUma varinha fresca com a sua corrente WorldEdit Selecção!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPuf! Boa sorte a construir!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eSegura a varinha!", + "iris.bukkit.commandobject.no_area_selected_3": "Nenhuma área selecionada.", + "iris.bukkit.commandobject.auto_select_complete": "§aSelecção automática completa!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eSegura a varinha!", + "iris.bukkit.commandobject.no_area_selected_4": "Nenhuma área selecionada.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aSelecção automática completa!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cO raio de Pregen deve ser superior a zero blocos.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cA pré-geração estritamente sequencial requer Paper ou um servidor compatível com Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cO acesso do motor para este mundo é nulo!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cPor favor, certifique-se que o mundo está carregado & O motor está inicializado. Gerar um novo chunk, por exemplo.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cFalha ao iniciar a pré-geração. Consulte o console para obter detalhes.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eNenhuma tarefa ativa de pré- geração para parar", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aO estado de pausa da tarefa de pré-geração foi alternado. Estado atual: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eNenhuma tarefa ativa de pré-geração para pausar/despachar.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eNenhuma tarefa ativa de pré-geração.", + "iris.bukkit.commandpregen.pregen": "§aPregenName §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aVelocidade: §6{value}/s§a ETA: §6{value2}§a Eclodido: §6{value3}§a Método: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aÍndice de estrutura escrito: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aImportando toda a vanilla & estruturas do pacote de dados para §f{value}§a (sobrescrever)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aImportação concluída: §f{imported}§a structures/objects escrita, §f{failed}§a falhou.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Referência de uma lista «estruturas» de bioma/região/dimensão ou execução /iris structure list {value} para atualizar o índice. Regenerar chunks para que as alterações façam efeito.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Capturado {value} estruturas. Coloque-os a partir de uma lista de estruturas e regenerar chunks. Apagar a structures/*.json Para o recapturar.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cSem carga Iris mundo encontrado para {value}. Junte-se ou crie um primeiro (a busca corre contra um mundo vivo).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cO selecionado Iris mundo não tem motor gerador ativo.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cSem estrutura íris '{structure}' nesta pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cEstrutura{structure}' montados 0 peças (verificar startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aEstrutura{structure}': §f{value}§a peças, pegada §f{value2}x{value3}§a blocos (sementes da amostra 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cSem estrutura íris '{structure}' nesta pack", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cEstrutura{structure}' montados 0 peças", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aColocado '{structure}' ({value} peças) na sua localização.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aEstúdio de abertura para o \"{value}\" pack (sementes: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cFornecer um pacote de dimensões: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cNão foi possível resolver o pacote para a dimensão {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aAbertura VSCode pelo \"{value}\" pacote", + "iris.bukkit.commandstudio.pack_has_version": "§aO \"{value}\" pack tem versão: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aAbrir o Explorador de Ruído!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cNão é possível adicionar itens ao inventário virtual devido a: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aAbrindo inventário agora!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cApenas funciona numa Iris Mundo!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cVocê precisa estar dentro ou especificar um Iris- Mundo gerado!", + "iris.bukkit.commandstudio.opening_map": "§aAbrir mapa!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Medições de desempenho para geradores de ruído", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Calculando o calendário do Interpolator...", + "iris.bukkit.commandstudio.processing_generator_scores": "Resultados do Gerador de Processamento: ", + "iris.bukkit.commandstudio.score": "Pontuação: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aFeito! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cTem de estar num mundo Iris para gerar entidades corretamente. Será feita a melhor tentativa possível.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cNenhum mundo de estúdio está aberto!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cJá estás num mundo de estúdio!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aMandar-te para o mundo do estúdio!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Atualizando espaço de trabalho do código para {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aÁrea de trabalho de código atualizada para {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cProjeto inválido: {value}. Tente apagar o arquivo de espaço de trabalho de código e tente novamente.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cVocê deve estar em um Iris mundo", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Deves estar num mundo íris.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Captura IGenData de {value} Pedaços próximos.", + "iris.bukkit.commandstudio.reported": "Comunicado em: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cVocê deve ter lançado o servidor GUIs habilitado nas configurações!", + "iris.bukkit.commandstudio.players_only": "§cSó jogadores!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cNenhum mundo de estúdio está aberto!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cDeves estar num mundo de estúdio!", + "iris.bukkit.commandwhat.material": "Materiais: §a{value}", + "iris.bukkit.commandwhat.full": "Completo: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Por favor, aguarde um bloco/item", + "iris.bukkit.commandwhat.material_2": "Materiais: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Por favor, aguarde um bloco/item", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Não...Iris Bioma: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Biome do pacote de dados: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aApenas os mundos da Iris.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Por favor, olhe para qualquer bloco, não para o céu.", + "iris.bukkit.commandwhat.material_3": "Materiais: §a{value}", + "iris.bukkit.commandwhat.full_2": "Completo: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Bloco de armazenamento (Loot Capable)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Bloco de Lit (Light Capable)", + "iris.bukkit.commandwhat.foliage_block": "§eBloco de Folhagem", + "iris.bukkit.commandwhat.decorant_block": "§e* Bloco Decorante", + "iris.bukkit.commandwhat.fluid_block": "§e* Bloco de fluidos", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Bloco de folhagem plantar", + "iris.bukkit.commandwhat.solid_block": "§eBloco Sólido", + "iris.bukkit.commandwhat.found_nearby_markers": "Encontrado {value} Marcadores próximos ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aApenas os mundos da Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Consola deve nomear um bioma: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Falha na pesquisa do biome: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Bioma desconhecido: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "O console deve nomear uma região: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Falha na pesquisa da região: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Região desconhecida: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Não é possível abrir os ficheiros aqui: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Não foi possível encontrar o ficheiro; talvez não tenha sido carregado directamente de um ficheiro?", + "iris.modded.irismoddedcommands.could_not_open": "Não foi possível abrir {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Abertura {value} {value2} no seu editor.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "A consola deve nomear um jogador: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} não é gerado por Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Falha no teletransporte: dimensão {dimensionId} não está carregada.", + "iris.modded.irismoddedcommands.teleporting": "Teletransportando {value} para {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} não é gerado por Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Não é possível evacuar o mundo primário; não há nenhum lugar para enviar jogadores.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Evacuado {count} jogador( s) de {value} para {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Definir depuração como: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Configuração a quente", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Este comando só pode ser usado pelos jogadores (inspeciona o seu item detido).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "A tua mão principal está vazia.", + "iris.modded.irismoddedcommands.hand_x": "Mão: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} não é gerado por Iris; ver /iris info para carregado Iris dimensões.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "A dimensão actual ({value}) não é gerado por Iris. Nome um explicitamente: /iris pregen start {radius} ; ver /iris info para carregado Iris dimensões.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Uma tarefa de pré-geração já está em execução. Pare primeiro com /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen iniciado em {value} de {value2} por {value3} blocos de {centerX},{centerZ}.{modeNote} Registros de progresso para console; veja /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Parando a pré-geração; terminando a região atual...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Nenhuma tarefa ativa de pré- geração para parar.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Nenhuma tarefa de pré- geração ativa para pausar/continuar.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "A pré-geração está agora {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Nenhuma tarefa ativa de pré-geração.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} por Volmit Software on {value2} (Minecraft {value3}), {engines} Iris dimensão(s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Dimensões carregadas: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.biome": "Bioma: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Falha na pesquisa do biome: {value}", + "iris.modded.irismoddedcommands.region": "Região: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Falha na pesquisa da região: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Bioma das cavernas: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Falha na pesquisa do bioma da caverna: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Bloco de superfície: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Posição: {value} {value2} {value3} (peixe {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Este comando só pode ser usado por jogadores (inspeciona o bloco que você está olhando).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Olha para um bloco, não para o céu.", + "iris.modded.irismoddedcommands.block_y": "Bloco: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Este comando só pode ser usado pelos jogadores (os marcadores renderizam como partículas à sua volta).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Procurando por '{marker}Marcas à tua volta...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Falha na verificação do marcador: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Encontrado {value} nearby marker(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Bioma desconhecido: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Região desconhecida: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} não está definido na dimensão!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} não está configurado em nenhuma região/posição de objetos de bioma ({value} teclas de objeto carregadas).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Este comando só pode ser usado pelos jogadores. (chave do objeto '{key}' resolvido contra {value} teclas carregadas)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Nome e Iris ou estrutura nativa para localizar.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Estrutura desconhecida '{key}'. Usar a completação da aba para escolher um Iris colocação ou uma estrutura nativa/datapack registada.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Procurando por estrutura nativa {value} dentro {NATIVESTRUCTURELOCATERADIUS} chunks...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Procurando Iris- estrutura posicionada {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Não foi possível localizar Iris- estrutura posicionada {key}: o limite de segurança da procura por densidade foi atingido antes do 1024- O raio de Chunk foi revistado.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Não foi possível encontrar Iris- estrutura posicionada {key} dentro 1024 Pedaços.", + "iris.modded.irismoddedcommands.search_failed": "A pesquisa falhou: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Não foi possível encontrar a estrutura nativa {value} dentro {NATIVESTRUCTURELOCATERADIUS} Pedaços.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Procurar pela estrutura nativa {value} falhou: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "O jogador desconectou antes da pesquisa de estrutura concluída.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Você mudou de dimensão antes da pesquisa na estrutura terminar; execute o comando novamente.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Encontrado {label} em {targetX} {clampedY} {targetZ}, mas o teletransporte falhou.", + "iris.modded.irismoddedcommands.teleported_at": "Teletransportado para {label} em {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Alcance da estrutura: {available} geração nativa elegível, {irisPlaced} Iris- colocado, {disabled} deficiente nativo, {suppressed} nativo substituído por Iris colocações, {unreachableBiomes} nativo excluído pelos biomas desta pack, e {unsupported} estruturas nativas registradas não suportadas nesta dimensão. Utilização /iris structure verify para uma estrutura.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Estrutura {key} é Iris- colocado e localizável com /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Estrutura desconhecida '{key}'. Não é nenhum Iris- colocado nem registado por vanilla ou um pacote de dados.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Estrutura {value} é explicitamente substituído por um Iris colocação e localizável com /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Estrutura nativa {value} é habilitado, suportado pelo estado gerador desta dimensão, e /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Este comando só pode ser usado pelos jogadores. (POI tipo '{type}' aceite)", + "iris.modded.irismoddedcommands.searching": "Procurando {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "O motor para este mundo foi fechado; voltar à dimensão e tentar novamente.", + "iris.modded.irismoddedcommands.search_failed_2": "A pesquisa falhou: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Não foi possível encontrar {label} dentro do intervalo de busca.", + "iris.modded.irismoddedcommands.teleported_at_2": "Teletransportado para {label} em {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "O motor mudou ao localizar {label}; tente novamente.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.world_seed": "Sementes do mundo: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Semente do motor: {value} (mistura: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Baixando IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Embalar '{pack}' instalado. Seus tipos de dimensão exata e biomas personalizados juntam-se ao forçado Iris datapack no próximo servidor reiniciar; reinicie antes de criar mundos a partir deste pacote.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "A transferência do pacote falhou {pack} ({downloadSource}; ver console).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Gerado: {value} chunk( s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Desconhecido Iris secção de ajuda: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: tipo={typeKey} ativo={activeMin}..{activeMax} lógico={value} (pack={value2}, motor não ligado; alturas de pack desconhecidas)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: tipo={typeKey} ativo={activeMin}..{activeMax} lógico={value} Embalar{value2}' quer {packMin}..{packMax} lógico={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: o tipo de dimensão ativa não corresponde ao pacote. Iris recusar-se-á a ligar este motor mundial em vez de cortar terreno. Executar /iris world enable para novos mundos, ou /iris datapack install para já carregado Iris dimensões, em seguida, reiniciar.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Não Iris As dimensões estão carregadas.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Tudo {irisLevels} Iris dimensão(s) correspondem aos intervalos de altura da pack.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: motor não iniciado; não pode derivar seu tipo de dimensão ainda.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: geração de tipo de dimensão falhou: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Falha ao escrever {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Não Iris dimensões com motores em execução encontrados; nada foi instalado.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Falha ao escrever {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Escrito {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Pacote de dados mundial »{WORLDPACKNAME}O tipo de dimensão substitui-se instalado. Reinicie o servidor para os tipos de dimensão a aplicar.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Importações de pacotes de dados configurados: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth ingerir é Bukkit- somente; instale estes manualmente em world/datapacks se necessário.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Pacotes de dados mundiais instalados: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Foi enviada uma exceção de teste para o sistema de relatórios de erros do Iris (Sentry, se estiver ativado).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Falha na verificação da rede: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Já está a ser feito um exame ao Goldenhash.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Este comando só pode ser usado pelos jogadores. (a varinha é um item físico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "O teu inventário está completo.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Puf! Boa sorte a construir! (clique esquerdo = canto 1, clique direito = canto 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Este comando só pode ser usado pelos jogadores. (o pó é um item físico)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "O teu inventário está completo.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Clique com o botão direito de um bloco para revelar o objeto a que pertence.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Este comando só pode ser usado pelos jogadores. (Salvar captura sua seleção da varinha)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Esta dimensão não é gerada por Iris; objetos salvar no pacote da dimensão.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Segura-te. Iris Varinha. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Nenhuma área selecionada. Primeiro clique em blocos esquerdo/direita com a varinha.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Nome do objeto inválido: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Seleção muito grande: {volume} blocos (máx. {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "O ficheiro já existe. Utilização /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Falha ao salvar o objeto: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Gravado {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} bloco( s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Objeto desconhecido ou vazio: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "O console deve especificar as coordenadas: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Você não está olhando para um bloco dentro {value} Blocos.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Falha ao colar: {value} (alterações parciais registadas para desfazer)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Colocado {key} em {value} {value2} {value3} rot ={rotation} ({value4} escrever( s) {value5} não-ar{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Segura-te. Iris Varinha. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Nenhuma área selecionada.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Prepara a varinha. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Não estás a olhar para um bloco.", + "iris.modded.moddedobjectcommands.position_set": "Posição {value} definir para {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Segura a varinha!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Nenhuma área selecionada.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Seleção muito grande para seleção automática: {volume} blocos (máx. {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Selecção automática completa: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Objeto desconhecido: {key}", + "iris.modded.moddedobjectcommands.object_size": "Tamanho do objeto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Blocos Usados: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Blocos no objeto ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} outro estado(s) de bloco", + "iris.modded.moddedobjectcommands.unknown_object_2": "Objeto desconhecido: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Tamanho atual do objeto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Novo tamanho do objeto: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "O objeto não tem nenhum arquivo de carga; não pode persistir no encolher.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Falha ao salvar o objeto {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Alcance inválido: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Nenhum objeto correspondeu: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plausibiliza [reach={reach}{value}] em fila {value2} objeto( s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Nada a desfazer.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Foram revertidas {reverted} colagens.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Pasta de pacotes não encontrada: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Sem pacotes para validar em {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Embalar '{pack}' não encontrado sob {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Validando {value} pack( s)...", + "iris.modded.moddedpackcommands.validation_failed": "Validação de '{value}' falhou: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Validação completa. Embalagens partidas: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Embalar '{pack}' não encontrado sob {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Embalar '{pack}' não encontrado sob {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Não foram registados resultados de validação. Executar /iris pack validate Primeiro.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (bloqueamento={value2}, advertências={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Nenhum resultado de validação para '{pack}'. Executar /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Embalar '{value}' é carregável. (advertências={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Embalar '{value}' é danificado:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... e {value} mais aviso(s).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Nenhum candidato de limpeza encontrado para o pacote '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Visualização da limpeza do pacote '{pack}': {value} candidato(s). Nenhum ficheiro foi alterado.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Executar /iris pack cleanup {pack} apply para quarentena após um novo exame.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Nenhum candidato de limpeza encontrado para o pacote '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Quarentenado {value} Candidato(s) de limpeza ao abrigo {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Nada para restaurar para o pacote '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Restaurar a antevisão para {value}: {value2} ficheiro( s). Nenhum ficheiro foi alterado.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "A restauração é bloqueada pelo(s) destino(s) {value} existente(s).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Executar /iris pack restore {pack} apply para restaurar após uma nova verificação de conflitos.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Restaurar recusado porque {value} destination(s) already exist.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Nada para restaurar para o pacote '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Restaurado {value} ficheiro( s) de {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... e {value} Mais.", + "iris.modded.moddedregen.regen_is_already_running": "Um Regen já está a correr.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Esta dimensão não é gerada por Iris. Execute isto de um Iris dimensão para que o pacote possa ser resolvido.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Índice de estrutura escrito: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Sem estrutura íris '{key}' nesta pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Estrutura{key}' montados 0 peças (verificar startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Estrutura{key}': {value} peças, pegada {value2}x{value3} blocos (sementes da amostra 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Este comando só pode ser usado pelos jogadores (a estrutura é montada na sua posição).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Sem estrutura íris '{key}' nesta pack", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Estrutura{key}' montados 0 peças", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "O local falhou: {value} (alterações parciais registadas para desfazer)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Colocado '{key}' ({value} peças, {value2} escrever( s){tileNote}) na sua localização. /iris object undo Reverter.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Fornecer um pacote de dimensões: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Abrindo o Explorador de Ruído na tela do servidor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Esta dimensão não é gerada por Iris; executar /iris studio noise de uma Iris dimensão para resolver geradores, ou omitir o nome do gerador.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Gerador desconhecido '{generatorKey}« na pack {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Abrindo o Explorador de Ruído para gerador '{value}« (sementes {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Esta dimensão não é gerada por Iris; Iris (ou estúdio) dimensão e execução /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Abrir o mapa de visão para {value} na tela do servidor.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Falha ao gravar o espaço de trabalho para {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Espaço de trabalho regenerado: {value} com JSON esquemas para completar automaticamente.", + "iris.modded.moddedstudiocommands.could_not_open": "Não foi possível abrir {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Abertura {value} no seu editor.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Esta dimensão não é gerada por Iris; especificar um nome de pacote explicitamente.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Embalar '{name}' não encontrado sob {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Fornecer um pacote de dimensões: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Estúdio de abertura para '{pack}« (sementes {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Embalar '{pack}' faltando; baixando IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Embalar '{pack}' não foi possível baixar; verifique o nome e tente /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Embalar '{pack}' não tem dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "A abertura do estúdio falhou: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Falha na injecção do estúdio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Estúdio de console aberto: {dimensionId} agora corre '{pack}« sementes {seed} (transitório; não escrito para iris-dimensions.json e limpo ao reiniciar).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Digite com: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Pregá-lo com: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Remova-o com: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Falha na injecção do estúdio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Estúdio aberto: {dimensionId} agora corre '{pack}« sementes {seed}. Utilização /iris studio close Quando acabar.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Não tens um estúdio aberto. Utilização /iris studio open Primeiro.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Falha ao fechar o estúdio: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Estúdio fechado: {dimensionId} foi evacuado, descarregado e os seus dados regionais apagados.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Nenhuma dimensão do estúdio está atualmente aberta.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Dimensão(s) ativa(s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: pack{value2}« sementes {value3} proprietário {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Este comando só pode ser utilizado por jogadores.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Não tens um estúdio aberto. Utilização /iris studio open Primeiro.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "A tua dimensão do estúdio já não está carregada. Utilização /iris studio open Outra vez.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Teletransportado para o seu estúdio ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Embalar '{value}' não tem dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "O \"{value}\" pack tem versão: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Nome do projeto inválido '{nameRaw}« (permitido: a-z, 0-9, e -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Embalar '{name}' já existe em {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Criando projeto '{name}« a partir do modelo »{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Modelo '{template}' não está instalado; download IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Modelo '{template}' não foi possível transferir; instale um pacote com dimensions/{template2}.json Primeiro.", + "iris.modded.moddedstudiocommands.created_project_at": "Projecto criado '{name}' em {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Editar dimensions/{name}.json e o resto da alcateia. A VSCode espaço de trabalho com JSON schema autocomplete foi gerado; abra- o ou reexecute /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "A criação do projecto falhou: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Dimensão da embalagem »{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Pacote compilado: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "A embalagem falhou: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Este comando só pode ser usado por jogadores (a amostragem está centrada na sua posição).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Esta dimensão não foi gerada pelo Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Distribuição da região de amostragem em {value}x{value2} chunks à tua volta...", + "iris.modded.moddedstudiocommands.rarity": "{key}: raridade={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "A amostragem da região falhou: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Embalar '{pack}' não está instalado; download IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Embalar '{pack}' não foi possível transferir; verifique o nome ou instale- o com /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Não foi possível injectar Iris mundo'{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Criado Iris mundo {dimensionId} da pack{pack}« dimensão »{packDimension}« (sementes {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "É ao vivo agora e reinjectado em cada startup. Teletransporte com /iris world status ou um portal; não é necessário reiniciar.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Não foi possível injectar Iris mundo primário: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris mundo primário definido para {dimensionId} (pack '{pack}« dimensão »{packDimension}« sementes {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "O gerador do mundo superior vanilla não pode ser substituído em tempo de execução, por isso esta operação NÃO regenera o mundo superior existente.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Em vez disso, {dimensionId} é agora o mundo primário configurado: os jogadores no overworld vanilla são encaminhados para lá na junção, e ele reinjeta em cada startup.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris A sobreposição do mundo principal está limpa. O overworld mantém seu gerador atual; edite server.properties nível-tipo e reiniciar para mudá-lo de volta.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Sementes inválidas '{seedRaw}'. Use um número ou 'random'.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Embalar '{pack}' não está instalado; download IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Embalar '{pack}' não foi possível transferir; verifique o nome ou instale- o com /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Embalar '{pack}' ainda não está pronto (carregamento ou validação). Tente o comando novamente em um momento.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Falha ao escrever server.properties; verificar permissões de arquivos e definir o tipo de nível manualmente.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris mundo principal definido para '{pack}« (predefinição {preset}, sementes {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties tipo de nível é agora {preset}. No próximo reinicio o mundo, e fim regenerar como este Iris mundo.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Dados do jogador (inventários, avanços, estatísticas) é mantido; terreno existente nessas dimensões é substituído. Isto aplica-se uma vez.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart está habilitado - parando o servidor agora assim que seu wrapper reinicial traz de volta no novo mundo principal.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Reinicie o servidor agora para gerá-lo. (Definir mainWorldAutoRestart= true em modded.json ter Iris parar o servidor para você.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Recusa de criar mundo{dimensionId}« utilizando a pack »{pack}' porque a validação necessária falhou:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Conserte o pacote e corra /iris pack validate {pack} Revalidar.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Embalar '{pack}' não foi encontrado sob {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Embalar '{pack}« não contém dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Referência da pack inválida '{pack}{value}'. Utilizar pack ou pack:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Sementes inválidas '{seedRaw}'. Use um número ou 'random'.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Falha ao remover Iris mundo'{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris mundo'{dimensionId}' não foi carregado; limpou sua entrada de registro persistente e apagou seus dados de chunk/Mantle armazenados.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris mundo'{dimensionId}' não foi carregado; limpou sua entrada de registro persistente. Os dados mundiais no disco são mantidos.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Removido Iris mundo'{dimensionId}': evacuado, descarregado, dados chunks/Mantle apagados, e caiu do registro de inicialização.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Desactivado Iris mundo'{dimensionId}': evacuado, descarregado e abandonado do registro de inicialização.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Dados do mundo no disco é mantido; re- habilitável com /iris world enable {dimensionId} ou deletá- lo com /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Carregado Iris nível: {value} -> Embalagem '{value2}« dimensão »{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Mundo primário: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Não Iris as dimensões estão atualmente carregadas. Criar um com /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Carregado Iris dimensões: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Utilização /iris world create injectar um sem reiniciar.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Baixar & gerir as importações de pacotes de dados externos (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Transferir/actualizar todos os pacotes de dados listados na dimensão 'datapackImports' e instalá-lo no mundo para que suas estruturas se registrem como vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Reinicie o servidor quando novos datapacks são instalados (necessário para novas estruturas para registrar e gerar)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Lista as importações configuradas do datapack e suas versões instaladas", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Remover um pacote de dados instalado por id (também apagar o seu URL de datapackImports para mantê-lo desaparecido)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "O ID do pacote de dados (nome da pasta) mostrado por /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Gestor Mundial", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Obter Carregado TectonicPlates Contagem", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Enviar uma exceção de teste para o sentinela", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Saída de bloco gerada por hash de uma área fixa para testes de determinismo/identidade", + "iris.director.commanddeveloper.param.world_hash": "O mundo para hash", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Raio em chunks ao redor do centro", + "iris.director.commanddeveloper.param.center_chunk_x": "Centralizar o chunk X", + "iris.director.commanddeveloper.param.center_chunk_z": "Centralizar o chunk Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Actualizar a pack de um mundo (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "O mundo a actualizar", + "iris.director.commanddeveloper.param.pack_install_into_world": "O pacote para instalar no mundo", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Certifique-se de fazer um backup & Leia primeiro os avisos!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Deve Iris baixar o pacote novamente para você", + "iris.director.commanddeveloper.director.test": "Ensaio", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Descarte toda a placa tectônica em vez de uma única seção", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "O ID do arquivo de descarga sob plugins/Iris/dump (vp..*)", + "iris.director.commanddeveloper.director.test_2": "Ensaio", + "iris.director.commanddeveloper.param.pack_bench": "A pack para o banco", + "iris.director.commanddeveloper.param.radius_regions": "Raio nas regiões", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Abrir GUI enquanto benchmarking", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Atualizar para outro Minecraft versão", + "iris.director.commanddeveloper.param.version_upgrade": "A versão a atualizar para", + "iris.director.commanddeveloper.director.test_3": "teste", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "A pasta do mundo para procurar arquivos de região .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Excluir blocos próximos para testes de regen", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Raio em chunks ao redor do seu chunk atual", + "iris.director.commanddeveloper.director.test_4": "Ensaio", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Apagar e regenerar chunks próximos no local usando Iris geração", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "O raio dos chunks próximos", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Gerar blocos em buffers (sem mundo escreve) e hash blocks+biomes; captura um arquivo dourado ou verifica contra um existente. Restaura o Mantle na área digitalizada - uso em mundos de teste descartáveis.", + "iris.director.commanddeveloper.param.world_scan": "O mundo para escanear", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Raio em chunks ao redor do centro", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Centralizar o chunk X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Centralizar o chunk Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Excluir os dados do Mantle na área de varredura primeiro para regeneração completa do zero", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Gerações de chunks simultâneos; 1 = estritamente serial para testes de dependência da ordem", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Também descarte chunks completos por-chunk não-air para off-line diffing", + "iris.director.commandedit.director.edit_something": "Editar algo", + "iris.director.commandedit.director.edit_biome_you_specified": "Editar o bioma que indicou", + "iris.director.commandedit.param.biome_edit": "O bioma a editar", + "iris.director.commandedit.director.edit_region_you_specified": "Editar a região que indicou", + "iris.director.commandedit.param.region_edit": "A região a editar", + "iris.director.commandedit.director.edit_dimension_you_specified": "Editar a dimensão que indicou", + "iris.director.commandedit.param.dimension_edit": "A dimensão a editar", + "iris.director.commandfind.director.iris_find_commands": "Iris Procurar comandos", + "iris.director.commandfind.director.find_biome": "Encontrar um bioma", + "iris.director.commandfind.param.biome_look": "O bioma para procurar", + "iris.director.commandfind.param.should_you_be_teleported": "Deve ser teletransportado", + "iris.director.commandfind.director.find_region": "Encontrar uma região", + "iris.director.commandfind.param.region_look": "A região a procurar", + "iris.director.commandfind.param.should_you_be_teleported_2": "Deve ser teletransportado", + "iris.director.commandfind.director.find_point_interest": "Encontra um ponto de interesse.", + "iris.director.commandfind.param.type_poi_look": "O tipo de PoI Para procurar.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Deve ser teletransportado", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Encontrar uma estrutura (uma chave de vanilla como minecraft:village_plains ou minecraft:stronghold, ou uma chave de estrutura da íris importada)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "A estrutura a procurar (e.g. minecraft:village_plains, minecraft:stronghold, minecraft ancient city)", + "iris.director.commandfind.director.find_object": "Procurar um objeto", + "iris.director.commandfind.param.object_look": "O objeto a procurar", + "iris.director.commandfind.param.should_you_be_teleported_4": "Deve ser teletransportado", + "iris.director.commandiris.director.basic_command": "Comando básico", + "iris.director.commandiris.director.create_new_world": "Criar um novo mundo", + "iris.director.commandiris.param.name_world_create": "O nome do mundo para criar", + "iris.director.commandiris.param.dimension_pack_create_world_with": "A dimensão/pack para criar o mundo com", + "iris.director.commandiris.param.seed_generate_world_with": "A semente para gerar o mundo com", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Se deve ou não usar automaticamente este mundo como o mundo principal", + "iris.director.commandiris.director.teleport_another_world": "Teletransporte para outro mundo", + "iris.director.commandiris.param.world_teleport": "Mundo para teletransportar", + "iris.director.commandiris.param.player_teleport": "Jogador para teletransportar", + "iris.director.commandiris.director.print_version_information": "Imprimir a informação da versão", + "iris.director.commandiris.director.benchmark_pack": "Marcar uma pack", + "iris.director.commandiris.param.dimension_benchmark": "Dimensão a referência", + "iris.director.commandiris.director.print_world_height_information": "Imprimir informações de altura mundial", + "iris.director.commandiris.director.check_access_all_worlds": "Verifique o acesso de todos os mundos.", + "iris.director.commandiris.director.remove_iris_world": "Remover um Iris mundo", + "iris.director.commandiris.param.world_remove": "O mundo a remover", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Se também deve remover a pasta (se está definida como false, simplesmente não carrega o mundo)", + "iris.director.commandiris.director.toggle_debug": "Alternar a depuração", + "iris.director.commandiris.director.download_project": "Baixe um projeto.", + "iris.director.commandiris.param.pack_download": "O pacote para download", + "iris.director.commandiris.param.branch_download_from": "O ramo a transferir de", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Sobrescrever ou não o pacote com o transferido", + "iris.director.commandiris.director.get_metrics_your_world": "Obtenha métricas para o seu mundo", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Recarregar o ficheiro de configuração (isto também é feito automaticamente)", + "iris.director.commandiris.director.unload_iris_world": "Descarregar uma Iris Mundo", + "iris.director.commandiris.param.world_unload": "O mundo para descarregar", + "iris.director.commandiris.director.load_iris_world": "Carregar um Iris Mundo", + "iris.director.commandiris.param.name_world_load": "O nome do mundo para carregar", + "iris.director.commandiris.director.evacuate_iris_world": "Evacuar um mundo íris", + "iris.director.commandiris.param.evacuate_world": "Evacuar o mundo", + "iris.director.commandobject.director.iris_object_manipulation": "Iris manipulação de objetos", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Abra um mundo de estúdio de objetos (corda de cada objeto; dimensão opcional, padrão para todos os pacotes)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Dimensão opcional cujo pacote de objetos para estabelecer; omitir objetos agregados de cada pacote", + "iris.director.commandobject.param.seed_generate_studio_with": "A semente para gerar o estúdio com", + "iris.director.commandobject.director.check_composition_object": "Verificar a composição de um objeto", + "iris.director.commandobject.param.object_analyze": "O objeto a analisar", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Encolher um objeto ao seu tamanho mínimo", + "iris.director.commandobject.param.object_shrink": "O objeto a encolher", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Cultivar ramos orgânicos através do dossel para que cada folha sobrevive à decadência da vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Chave do objeto, prefixo (árvores/), ou caminho do sistema de arquivos", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=verdadeiro analisa apenas, não escreve nada", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "alcance=N comprimento máximo do ramo em blocos da madeira existente; mais aglomerados de folhas são fixados persistentemente. alcance=0 cresce ilimitado", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Converta arquivos .schem na pasta 'convert' para arquivos !iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Obter um pó que revela objetos", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Contrate uma seleção com base em sua direção de olhar", + "iris.director.commandobject.param.amount_inset_by": "O montante a colocar por", + "iris.director.commandobject.director.set_point_1_look": "Define ponto 1 para olhar", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Se deve usar a sua posição actual ou onde procura", + "iris.director.commandobject.director.set_point_2_look": "Define ponto 2 para olhar", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Se deve usar a sua posição actual ou onde procura", + "iris.director.commandobject.director.paste_object": "Colar um objeto", + "iris.director.commandobject.param.object_paste": "O objeto a colar", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Se editar ou não o objeto (precisa segurar a varinha)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "A quantidade de graus a rodar por", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "O fator pelo qual escalar a colocação do objeto", + "iris.director.commandobject.param.scale_interpolator_use": "O interpolador de escala a usar", + "iris.director.commandobject.director.save_object": "Gravar um objecto", + "iris.director.commandobject.param.dimension_store_object": "A dimensão para armazenar o objeto em", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "O arquivo para armazená-lo, pode usar / para subpastas", + "iris.director.commandobject.param.overwrite_existing_object_files": "Sobrescrever arquivos de objetos existentes", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Usar legado TileState serialização, se possível", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Mudar uma seleção na sua direção de olhar", + "iris.director.commandobject.param.amount_shift_by": "O montante a transferir para", + "iris.director.commandobject.director.undo_number_pastes": "Desfazer várias colagens", + "iris.director.commandobject.param.amount_pastes_undo": "Número de colagens a desfazer", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Obtém uma varinha de objectos e agarra a corrente WorldEdit selecção.", + "iris.director.commandobject.director.get_object_wand": "Obter uma varinha de objeto", + "iris.director.commandobject.director.autoselect_up_down_out": "Selecionar automaticamente para cima, para baixo & fora", + "iris.director.commandobject.director.autoselect_up_out": "Selecionar automaticamente & fora", + "iris.director.commandpack.director.pack_validation_maintenance": "Validação e manutenção da pack", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Validar um pacote (ou todos os pacotes) e republicar resultados", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "O nome da pasta de pacotes a validar (deixar em branco para todos)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Visualização ou aplicação de limpeza de recursos não utilizados", + "iris.director.commandpack.param.pack_folder_name_clean": "O nome da pasta de pacotes a limpar", + "iris.director.commandpack.param.preview_apply": "visualizar ou aplicar", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Antevisão ou aplicação do restabelecimento da última quarentena", + "iris.director.commandpack.param.pack_folder_name_restore": "O nome da pasta de pacotes a restaurar", + "iris.director.commandpack.param.preview_apply_2": "visualizar ou aplicar", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Mostrar o estado de validação em cache para um pacote", + "iris.director.commandpack.param.pack_folder_name": "O nome da pasta do pacote", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Pré-gerar a sua Iris Mundos!", + "iris.director.commandpregen.director.pregenerate_world": "Pré-gerar um mundo", + "iris.director.commandpregen.param.radius_pregen_blocks": "O raio da pregen em blocos", + "iris.director.commandpregen.param.world_pregen": "O mundo para pregen", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "A localização central da pregen. Use \"eu\" para sua localização atual", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Abrir o Iris pregen gui.", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Gerar apenas um chunk de cada vez", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Parar a tarefa de pré- geração ativa", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pausa / continuar a tarefa de pré- geração ativa", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Mostrar o estado ativo da pré- geração", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris ferramentas de estrutura (índice, importação, informação)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Regenerar structure-index.json listando todas as vanilla, datapack & Estruturas da íris", + "iris.director.commandstructure.param.dimension_whose_pack_index": "A dimensão cujo pacote indexar", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Importar cada estrutura - vanilla e pacotes de dados ingeridos - neste pacote como editável Iris recursos, sempre sobrescrever. Reconstrui estruturas de quebra-cabeças (aldeias, postos avançados, datapack jigsaws) como gráficos editáveis de conjunto/peças, importa cada modelo de estrutura NBT como objeto, e monta as estruturas multi-templadas (naufrágios, portais arruinados, ruínas oceânicas, fósseis inferiores). Executar depois de ingerir um pacote de dados e reiniciar. Regenerar pedaços ou usar um mundo fresco para as cópias importadas para colocar.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "A dimensão da pack a importar para", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Capturar estruturas geradas por código que não tenham NBT template (huts swamp, iglus, etc.) em editável Iris objetos gerando cada um em um mundo de risco descartável e lendo de volta seus blocos. Salta estruturas que já importam como uma estrutura, estruturas mais largas/mais altas do que a tampa de captura (fortes, mansões, monumentos permanecem vanilla), e qualquer coisa que não irá gerar em um plano sobre o mundo. Cada estrutura capturada torna-se uma única peça Iris estrutura que você pode colocar a partir de uma lista de bioma/região/dimensão 'estruturas'. Executa automaticamente como a última passagem de /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "A dimensão cuja pack para capturar em", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Verificar a elegibilidade da estrutura nativa e localizar Iris- estruturas colocadas sem correr bloqueando pesquisas nativas.", + "iris.director.commandstructure.param.dimension_verify": "A dimensão a verificar", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Raio de busca em chunks ao redor da origem (maior é muito mais lento)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Resolver o gráfico e a contagem de peças da estrutura da íris & limites", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "A dimensão cujo pacote mantém a estrutura", + "iris.director.commandstructure.param.iris_structure_key_inspect": "A chave de estrutura da íris para inspecionar", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Reúna e coloque uma estrutura de íris na sua localização (testes de estúdio)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "A dimensão cujo pacote mantém a estrutura", + "iris.director.commandstructure.param.iris_structure_key_place": "A chave de estrutura da íris para colocar", + "iris.director.commandstudio.director.studio_commands": "Comandos de Estúdio", + "iris.director.commandstudio.director.open_new_studio_world": "Abrir um novo mundo de estúdio", + "iris.director.commandstudio.param.dimension_pack_open_studio": "O pacote de dimensões para abrir um estúdio para", + "iris.director.commandstudio.param.seed_generate_studio_with": "A semente para gerar o estúdio com", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Importação de vanilla, cogumelos & objetos (e structures/jigsaw) do servidor para um pacote objects/vanilla pasta", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "O pacote de dimensão para importar conteúdo de vanilla", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Quantas variantes para capturar por árvore/objeto", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Importar também vanilla & pacote de dados structures/jigsaw na pack", + "iris.director.commandstudio.director.open_vscode_dimension": "Abrir VSCode para uma dimensão", + "iris.director.commandstudio.param.dimension_open_vscode": "A dimensão a abrir VSCode em vez", + "iris.director.commandstudio.director.close_open_studio_project": "Fechar um projeto de estúdio aberto", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Alterna o seu painel de depuração do Studio", + "iris.director.commandstudio.director.create_new_studio_project": "Criar um novo projeto de estúdio", + "iris.director.commandstudio.param.name_this_new_iris_project": "O nome deste novo Iris Projecto.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Copie o conteúdo de um projeto existente em sua pasta de pacotes e use-o como modelo neste novo projeto.", + "iris.director.commandstudio.director.get_version_pack": "Obter a versão de um pacote", + "iris.director.commandstudio.param.dimension_get_version": "A dimensão obter a versão de", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Abra o explorador de ruídos (externa GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Gerador de pacotes opcional para visualização", + "iris.director.commandstudio.param.seed_preview_generator_with": "A semente para visualizar o gerador com", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Mostrar o saque se um baú estivesse aqui.", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Inserção rápida de itens em inventário virtual (pode causar queda no desempenho)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Se adicionar ou não ao inventário actualmente aberto (se for falso, limpa o inventário aberto)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Calcular a possibilidade de cada região gerar", + "iris.director.commandstudio.param.radius_chunks": "O raio em chunks", + "iris.director.commandstudio.director.render_world_map_external_gui": "Renderizar um mapa do mundo (externa GUI)", + "iris.director.commandstudio.param.world_open_generator": "O mundo para abrir o gerador", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Empacotar uma dimensão em um formato comprimido", + "iris.director.commandstudio.param.dimension_pack_compress": "O pacote de dimensão para comprimir", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Se deve ofuscar ou não a pack", + "iris.director.commandstudio.param.whether_not_minify_pack": "Se deve ou não minimizar a pack", + "iris.director.commandstudio.director.profiles_performance_dimension": "Perfis de desempenho de uma dimensão", + "iris.director.commandstudio.param.dimension_profile": "A dimensão do perfil", + "iris.director.commandstudio.director.spawn_iris_entity": "Gerar uma entidade Iris", + "iris.director.commandstudio.param.entity_spawn": "A entidade a gerar", + "iris.director.commandstudio.param.location_spawn_entity_at": "O local onde gerar a entidade", + "iris.director.commandstudio.director.teleport_active_studio_world": "Teletransporte para o mundo de estúdio ativo", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Atualizar seus projetos de dimensão VSCode espaço de trabalho", + "iris.director.commandstudio.param.dimension_update_workspace": "A dimensão para atualizar o espaço de trabalho", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Capturar um IGenData relatório de chunks para os chunks próximos", + "iris.director.commandwhat.director.iris_what": "Iris O quê?", + "iris.director.commandwhat.director.what_is_my_hand": "O que está na minha mão?", + "iris.director.commandwhat.director.what_biome_am_i": "Em que bioma estou?", + "iris.director.commandwhat.director.what_region_am_i": "Em que região estou?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Para que bloco estou a olhar?", + "iris.director.commandwhat.director.show_markers_chunk": "Mostrar marcadores em chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Nome do marcador, como cave floor ou cave teceling", + "iris.modded.help.entry.command.version": "Imprimir a informação da versão", + "iris.modded.help.entry.command.info": "Lista carregada Iris dimensões e detalhes da pack", + "iris.modded.help.entry.command.what": "Inspeccionar a Iris bioma, região, bioma de caverna, superfície e pedaço em sua posição, o bloco que você olha, seu item mantido, ou marcadores próximos", + "iris.modded.help.entry.group.find": "Encontrar e teletransportar para Iris biomas, regiões, objectos, Iris estruturas nativas e pontos de interesse", + "iris.modded.help.entry.command.tp": "Teletransportar- se a si próprio ou a um jogador com o nome num ficheiro carregado Iris dimensão", + "iris.modded.help.entry.command.evacuate": "Teletransportar todos os jogadores de uma dimensão Iris para o spawn do mundo principal", + "iris.modded.help.entry.command.seed": "Mostrar informações da seed do mundo e do motor", + "iris.modded.help.entry.command.debug": "Alternar Iris debug registrar e salvar settings.json", + "iris.modded.help.entry.command.reload": "Recarregar settings.json (também carregado automaticamente a cada 3s)", + "iris.modded.help.entry.command.download": "Baixar um projeto de pacote", + "iris.modded.help.entry.command.metrics": "Imprimir métricas de geração para o seu atual Iris dimensão", + "iris.modded.help.entry.command.regen": "Apagar e regenerar chunks próximos no lugar", + "iris.modded.help.entry.group.pregen": "Pré- Gerar uma Iris dimensão", + "iris.modded.help.entry.command.wand": "Obter um Iris varinha de objeto", + "iris.modded.help.entry.group.object": "Ferramentas de varinha de objetos, guardar, colar, analisar e desfazer", + "iris.modded.help.entry.group.edit": "Abrir arquivos json de bioma, região e dimensão do pacote aberto em seu editor de desktop", + "iris.modded.help.entry.command.create": "Criar e injetar um persistente Iris dimensão; pacote de citações:dimensionKey para escolher uma dimensão específica do pacote", + "iris.modded.help.entry.group.studio": "Empacotar a criação, pack e relatórios do projeto", + "iris.modded.help.entry.group.pack": "Validação e manutenção da pack", + "iris.modded.help.entry.group.world": "Tempo de execução Iris criação, remoção e estatuto da dimensão", + "iris.modded.help.entry.group.datapack": "Mundial datapack install e status helpers", + "iris.modded.help.entry.group.structure": "Iris índice de estrutura, informações e ferramentas de colocação", + "iris.modded.help.entry.command.goldenhash": "Gerar hashes de blocos determinísticos para testes de paridade", + "iris.modded.help.entry.group.developer": "Diagnóstico de programador: teste do Sentry, interfaces de rede e análise de ficheiros de região", + "iris.modded.help.entry.command.biome": "Procurar um Iris bioma", + "iris.modded.help.entry.command.region": "Procurar um Iris região", + "iris.modded.help.entry.command.object": "Encontrar uma colocação de objeto", + "iris.modded.help.entry.command.structure": "Procurar um Iris- estrutura posicionada ou nativa/datapack", + "iris.modded.help.entry.command.poi": "Encontrar um ponto de interesse suportado", + "iris.modded.help.entry.command.biome_2": "Abra um json de bioma no seu editor de área de trabalho; nenhuma chave abre o biome na sua posição", + "iris.modded.help.entry.command.region_2": "Abrir uma região json no seu editor de área de trabalho; nenhuma chave abre a região na sua posição", + "iris.modded.help.entry.command.dimension": "Abrir o JSON da dimensão do pack atual no editor do ambiente de trabalho", + "iris.modded.help.entry.command.start": "Iniciar a pré- geração; raio em blocos, cache de verificação reutilizável por padrão, centralizar via 'at' ', bandeiras compõem em qualquer ordem", + "iris.modded.help.entry.command.stop": "Parar a tarefa de pré- geração ativa", + "iris.modded.help.entry.command.pause": "Pausar ou retomar a pré-geração", + "iris.modded.help.entry.command.status": "Mostrar o estado da pré- geração", + "iris.modded.help.entry.command.wand_3": "Obter um Iris varinha de objeto", + "iris.modded.help.entry.command.dust": "Obter poeira que revela posicionamentos de objetos", + "iris.modded.help.entry.command.save": "Gravar o volume da varinha seleccionada como um objecto", + "iris.modded.help.entry.command.paste": "Colar um objeto na sua posição ou numa posição indicada, opcionalmente rodado", + "iris.modded.help.entry.command.expand": "Expanda a seleção da varinha em sua direção", + "iris.modded.help.entry.command.contract": "Contrate a seleção da varinha em sua direção", + "iris.modded.help.entry.command.shift": "Mudar a selecção da varinha na sua direcção de olhar", + "iris.modded.help.entry.command.position1": "Definir ponto de seleção 1", + "iris.modded.help.entry.command.position2": "Definir ponto de seleção 2", + "iris.modded.help.entry.command.x_y": "Seleciona automaticamente para cima e para fora", + "iris.modded.help.entry.command.x_y_2": "Selecionar automaticamente para cima, para baixo e para fora", + "iris.modded.help.entry.command.analyze": "Mostrar a composição do objecto", + "iris.modded.help.entry.command.shrink": "Encolher um objeto ao seu tamanho mínimo", + "iris.modded.help.entry.command.plausibilize": "Cultive ramos assim que as folhas das árvores sobrevivem ao decaimento da vanilla", + "iris.modded.help.entry.command.undo": "Desfazer objetos colados", + "iris.modded.help.entry.command.create_2": "Criar um novo projeto de pacote", + "iris.modded.help.entry.command.package": "Empacotar uma dimensão em um formato comprimido", + "iris.modded.help.entry.command.version_2": "Imprimir uma versão do pacote", + "iris.modded.help.entry.command.regions": "Calcular a distribuição da região próxima", + "iris.modded.help.entry.command.open": "Abra uma dimensão de estúdio temporária para um pacote", + "iris.modded.help.entry.command.close": "Feche a dimensão do estúdio aberto e descarte seu mundo", + "iris.modded.help.entry.command.tpstudio": "Teletransportar para a dimensão do estúdio aberto", + "iris.modded.help.entry.command.status_studio": "Mostrar a dimensão do estúdio aberto e seu pacote", + "iris.modded.help.entry.command.noise": "Abrir o Explorador de Ruídos GUI na tela do servidor", + "iris.modded.help.entry.command.map": "Abra o mapa de visão GUI na tela do servidor", + "iris.modded.help.entry.command.vscode": "Regenere o espaço de trabalho .code para um pacote e abra-o em seu editor desktop", + "iris.modded.help.entry.command.update": "Regenerar o espaço de trabalho .code para um pacote", + "iris.modded.help.entry.command.importvanilla": "Explicar o fluxo de trabalho de importação de vanilla", + "iris.modded.help.entry.command.validate": "Validar uma pack ou cada pack", + "iris.modded.help.entry.command.cleanup": "Previsão ou quarentena de candidatos a recursos não utilizados", + "iris.modded.help.entry.command.restore": "Visualizar ou restaurar a quarentena mais recente", + "iris.modded.help.entry.command.status_validation": "Mostrar o estado de validação em 'cache'", + "iris.modded.help.entry.command.enable": "Criar e injetar um persistente Iris dimensão em tempo de execução; baixa o pacote se faltar, cotação do pacote:dimensionKey para escolher uma dimensão específica do pacote", + "iris.modded.help.entry.command.replace_overworld": "Injectar Iris mundo primário e roteia jogadores lá em vez do overworld vanilla", + "iris.modded.help.entry.command.disable": "Evacuar e descarregar um Iris dimensional; os dados do mundo no disco são mantidos para voltar a activar", + "iris.modded.help.entry.command.delete": "Desabilitar um Iris dimensão e limpar seus dados de chunk e Mantle do disco", + "iris.modded.help.entry.command.list": "Lista carregada Iris dimensões", + "iris.modded.help.entry.command.status_world": "Mostrar carregado Iris dimensões e o mundo primário configurado", + "iris.modded.help.entry.command.status_datapack": "Verificar carregado Iris o tipo de dimensão substitui", + "iris.modded.help.entry.command.install": "Instalar sobreposições de tipo de dimensão para carregar Iris dimensões", + "iris.modded.help.entry.command.list_datapacks": "Lista de pacotes de dados configurados e instalados", + "iris.modded.help.entry.command.ingest": "Explicar Bukkit datapack ingere fluxo de trabalho", + "iris.modded.help.entry.command.remove": "Explique o fluxo de trabalho de remoção do datapack", + "iris.modded.help.entry.command.list_structures": "Regenerar structure-index.json", + "iris.modded.help.entry.command.info_2": "Resolver uma Iris gráfico de estrutura e limites do relatório", + "iris.modded.help.entry.command.place": "Montar e colocar um Iris estrutura na sua localização", + "iris.modded.help.entry.command.import": "Explicar Bukkit workflow de importação da estrutura", + "iris.modded.help.entry.command.capture": "Explicar Bukkit workflow de captura da estrutura", + "iris.modded.help.entry.command.verify": "Relatório nativo e Iris capacidade de alcance da estrutura na dimensão atual", + "iris.modded.help.entry.command.sentry": "Enviar uma excepção de teste para o Iris repórter de erro", + "iris.modded.help.entry.command.network": "Listar as interfaces de rede e os seus endereços", + "iris.runtime.progress.finding_regions": "Regiões de pesquisa", + "iris.runtime.progress.converting": "Conversão", + "iris.runtime.status.running": "Em execução", + "iris.runtime.status.stopped": "Parado", + "iris.runtime.status.paused": "Pausa", + "iris.runtime.status.paused_lower": "pausado", + "iris.runtime.status.running_lower": "em execução", + "iris.runtime.status.enabled": "habilitado.", + "iris.runtime.status.disabled": "Deficiente.", + "iris.runtime.status.unregistered": "não registado", + "iris.runtime.status.none": "nenhum", + "iris.runtime.status.random": "aleatório", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "verdadeiro", + "iris.runtime.status.false": "falso", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " Sobreposição", + "iris.runtime.datapack.override_suffix": " (mundial datapack sobreposição instalado)", + "iris.runtime.primary_world.players_routed_suffix": " (jogadores encaminhados para lá)", + "iris.runtime.primary_world.routing_disabled_suffix": " (Roteamento desactivado)", + "iris.runtime.modded.no_dimension_match": "Não Iris dimensão corresponde '{filter}'.", + "iris.runtime.teleport.world": "Foi teletransportado para {world}.", + "iris.runtime.engine.hotloaded": "Motor a quente", + "iris.runtime.job.completed": "Concluído {job} em {duration}", + "iris.runtime.job.scanning_selection": "Selecção de Procura", + "iris.runtime.job.loading_chunks": "Carregando Chunks", + "iris.runtime.job.searched_chunks": "Procurado {chunks} Pedaços", + "iris.runtime.job.compile": "Compilar", + "iris.runtime.job.saving_object": "Salvando objeto", + "iris.runtime.job.downloading": "Baixando", + "iris.runtime.job.extracting": "Extração", + "iris.runtime.job.installing": "Instalar", + "iris.runtime.compile.iob_empty": "- IOB {file} tem 0 Blocos!", + "iris.runtime.compile.iob_empty_hover": "Erro:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} Não é 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Erro:\n{path}\nA largura, altura ou profundidade é zero (formato ruim)", + "iris.runtime.compile.json_error": "- JSON Erro {file}", + "iris.runtime.compile.json_error_hover": "Erro:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Não foi possível encontrar o carregador para {path}", + "iris.runtime.datapack.name": "Iris Geração Mundial", + "iris.runtime.pack.already_exists": "O pacote já existe!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "saltar {object}Não foi possível carregar", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} Madeira ({branches} ramos), {converted} folhas->madeira,{distances} distâncias", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} Madeira ({branches} ramos), {converted} folhas->madeira,{distances} distâncias, !{pinned} preso", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "falha {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Feito: {processed} transformadas, {changed} alterado, {skipped} Saltou, {failed} falhou", + "iris.runtime.tree_plausibilize.done_dry": "Feito: {processed} transformadas, {changed} alterado, {skipped} Saltou, {failed} falhou (execução seca, nada escrito)", + "iris.runtime.tree_plausibilize.totals": "Total: +{wood} Madeira ({branches} ramos), {converted} folhas->madeira,{distances} distâncias, !{pinned} preso, inacessível {before} -> {after}", + "iris.runtime.item.wand.name": "Varinha de Iris", + "iris.runtime.item.wand.lore.first": "Clique com o botão esquerdo em um bloco para definir o primeiro canto", + "iris.runtime.item.wand.lore.second": "Clique com o botão direito de um bloco para definir o segundo canto", + "iris.runtime.item.dust.name": "Pó da revelação", + "iris.runtime.item.dust.lore": "Clique com o botão direito de um bloco para revelar sua estrutura de colocação!", + "iris.runtime.wand.position_set": "Posição {position} definir para {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Esta dimensão não foi gerada pelo Iris.", + "iris.runtime.dust.found_object": "Objeto encontrado {object}", + "iris.runtime.dust.revealed": "Revogado {count} bloco( s) de {object}", + "iris.runtime.dust.revealed_capped": "Revogado {count} bloco( s) de {object} (capped )", + "iris.runtime.dust.header": "--- Iris Poeira @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Bloco: {block}", + "iris.runtime.dust.position.above": "Posição: +{offset} acima superfície (superfície Y={surfaceY})", + "iris.runtime.dust.position.below": "Posição: {offset} abaixo da superfície (superfície Y={surfaceY})", + "iris.runtime.dust.position.at": "Posição: à superfície (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Objecto @ block: {object}", + "iris.runtime.dust.none": "nenhum", + "iris.runtime.dust.placed_by.object_above": "Colocado por: objeto/tilt '{object}« (superfície superior)", + "iris.runtime.dust.placed_by.decoration_above": "Colocado por: decoração/objeto/tilt (superfície superior)", + "iris.runtime.dust.placed_by.buried_object": "Colocado por: objeto enterrado '{object}'", + "iris.runtime.dust.placed_by.terrain": "Colocado por: camada de terreno (profundidade {depth} abaixo da superfície)", + "iris.runtime.dust.column_object": "Objeto da coluna: {object} -> este bloco é provável que o objeto", + "iris.runtime.dust.column_object_none": "Objeto da coluna: {detail}", + "iris.runtime.dust.column_none": "nenhum dentro 64 (decorador ou terreno, não uma pala de objeto)", + "iris.runtime.dust.column.above": "{object} @Y={y} (acima)", + "iris.runtime.dust.column.below": "{object} @Y={y} (abaixo)", + "iris.runtime.dust.surface_biome": "Bioma de superfície: {biome}", + "iris.runtime.dust.surface_biome_detail": "Bioma de superfície: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @ Y: {biome}", + "iris.runtime.dust.cave_biome": "Caverna/Mantle bioma: {biome}", + "iris.runtime.dust.server_biome": "Bioma do servidor: {biome} (ID: {id})", + "iris.runtime.dust.region": "Região: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Objetos em chunk: {objects}", + "iris.runtime.dust.copy_button": "[Clique para copiar estas estatísticas]", + "iris.runtime.dust.copy_hover": "Copiar as estatísticas do bloco para a área de transferência", + "iris.runtime.pregen.starting": "Iris Início do Pregen...", + "iris.runtime.pregen.header": "Iris PregenName", + "iris.runtime.pregen.bossbar.paused": "Iris PregenName {generated}/{total} {percent}% pausado", + "iris.runtime.pregen.bossbar.running": "Iris PregenName {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " falhou {failed}", + "iris.runtime.pregen.status.context": "Dimensão {dimension} · Método {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Pedaços {generated}/{total} · Velocidade {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Pedaços {generated}/{total} · Velocidade {speed}/s · Falhou {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Sucedeu {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Sucedeu {elapsed} · pausado", + "iris.runtime.pregen.button.pause": "Pausa/Resumir", + "iris.runtime.pregen.button.pause.hover": "Alternar o estado de pausa da pré- geração", + "iris.runtime.pregen.button.stop": "Parar", + "iris.runtime.pregen.button.stop.hover": "Terminar a região atual e parar a pré-geração", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cos pacotes/ pasta não foram encontrados.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eNenhum pacote para validar.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aValidação completa. Embalagens partidas: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cEmbalar '{pack}' não encontrado sob packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aNenhum candidato de limpeza encontrado para o pacote '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aQuarentenado {size} Candidato(s) de limpeza ao abrigo {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cO modo de limpeza deve ser pré-visualizado ou aplicado.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aNenhum candidato de limpeza encontrado para o pacote '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eVisualização da limpeza do pacote '{pack}': {size} candidato(s). Nenhum ficheiro foi alterado.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Executar /iris pack cleanup {pack} mode=apply para colocar estes candidatos em quarentena após um novo exame.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cRestaurar recusado porque {size} destination(s) already exist.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eNada para restaurar para o pacote '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aRestaurado {size} ficheiro( s) de {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cModo de restauração deve ser pré-visualização ou aplicação.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eNada para restaurar para o pacote '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eRestaurar a antevisão para {dumpPath}: {size} ficheiro( s). Nenhum ficheiro foi alterado.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "O §cRestore é bloqueado pelo(s) destino(s) {size} existente(s).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Executar /iris pack restore {pack} mode=apply para restaurar após uma nova verificação de conflitos.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eNão foram registados resultados de validação. Executar /iris pack validate Primeiro.", + "iris.bukkit.runtime.commandpack.status.ok": "§aEstá bem.§r {pack}§7 (bloqueamento={blocking}, advertências={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cCHEIO§r {pack}§7 (bloqueamento={blocking}, advertências={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cA limpeza falhou: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cA restauração falhou: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "ainda em quarentena", + "iris.bukkit.runtime.commandpack.path.quarantined": "quarentena", + "iris.bukkit.runtime.commandpack.path.candidate": "candidato", + "iris.bukkit.runtime.commandpack.path.conflict": "conflito", + "iris.bukkit.runtime.commandpack.path.restored": "restaurado", + "iris.bukkit.runtime.commandpack.path.file": "arquivo", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eNenhum resultado de validação para '{pack}'. Executar /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cValidação de '{name}' falhou: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aEmbalar '{packName}' é carregável.§7 (advertências={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cEmbalar '{packName}' é danificado:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... e {count} mais avisos.", + "one": "§7 ... e {count} Mais aviso." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cFaça sempre uma cópia de segurança antes de usar esta função", + "§eOs possíveis problemas incluem, entre outros:", + "§e - Chunks partidos (cortes) entre chunks antigos e novos (antes da atualização & depois dela)", + "§e - Chunks regenerados que não encaixam nos chunks antigos", + "§e - Estruturas que não voltam a surgir durante a regeneração", + "§e - Cavernas que não ficam alinhadas", + "§e - Camadas de terreno que não ficam alinhadas", + "§cQuando compreender os riscos e tiver criado uma cópia de segurança:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aImportação §f{total}§a vanilla & estruturas do pacote de dados (modo={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[falha] {keyString}: chave inválida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[ignorado] {keyString}: não template único NBT - vanilla constrói isso em código ou a partir de modelos separados (importados através dos modelos passam); nada a importar como uma estrutura.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[falha] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aImportação em massa concluída: §f{imported}§a importadas, §f{skipped}§a Saltou, §f{failed}§a falhou (§f{total}§a total)", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aConstrução de estruturas monotempladas a partir de peças importadas (uma variante colocada por geração)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} variantes)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[ignorado] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[falha] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aEstruturas monotempladas: §f{imported}§a construído, §f{skipped}§a Saltou, §f{failed}§a falhou.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cFalha ao enumerar modelos de estrutura através do servidor ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eNão foram encontrados modelos de estrutura no caminho do recurso 'estrutura'.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aImportação §f{total}§a modelos de estrutura (modo={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[falha] {keyString}: chave inválida", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[falha] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importadas, {skipped} Saltou, {failed} falhou)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aImportação do modelo concluída: §f{imported}§a importadas, §f{skipped}§a Saltou, §f{failed}§a falhou (§f{total}§a total)", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eNão estão registadas estruturas de datapack (não-minecraft). Ingera um pacote de dados e reinicie primeiro, depois execute isto novamente.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aImportação §f{total}§a estruturas do pacote de dados (modo={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[falha] {keyString}: chave inválida", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[falha] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aImportação §f{size}§a modelos de estrutura do datapack...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[falha] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[falha] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eNão foi possível enumerar modelos de datapack através do servidor ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aImportação da estrutura do pacote de dados completa: §f{imported}§a importadas, §f{skipped}§a Saltou, §f{failed}§a falhou.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eA captura da estrutura não é suportada pelo ativo NMS ending; pulando o passe de captura.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Não restam estruturas geradas por código para capturar (tudo já é importado como uma estrutura).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aCaptura §f{total}§a estruturas geradas por código (não NBT template) em um mundo de arranhões (spipping qualquer maior / mais alto do que {MAXSPAN} blocos)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[ignorado] {key}: não colocou uma estrutura capturável aqui (dimensão demasiado grande, errada, ou nenhuma colocação válida em um mundo plano). Continua a gerar vanilla.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[falha] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[falha] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} capturados, {skipped} Saltou, {failed} falhou)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aCaptura de estrutura completa: §f{imported}§a capturados, §f{skipped}§a Saltou, §f{failed}§a falhou (§f{total}§a total)", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eNenhuma característica de vanilla/objeto é exposta pelo ativo NMS ligação (apenas estruturas de importação).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aImportação §f{total}§a características da árvore de vanilla/objecto (§f{wantVariants}§a variantes cada) em um mundo arranhado...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[ignorado] {key}: recurso não colocou nada após repetições.", + "iris.bukkit.runtime.featureimporter.fail": "§c[falha] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} importadas, {skipped} Saltou, {failed} falhou)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aImportação da funcionalidade terminada: §f{imported}§a características escritas, §f{skipped}§a Saltou, §f{failed}§a falhou (§f{total}§a total)", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cNão foi possível criar o mundo do arranhão para importação de funcionalidades ({error}); pulando o passe árvore/objeto.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Nenhum arquivo esquemático para converter encontrado {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aConvertido {name} -> {value} em {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aConvertido {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cFalha ao salvar: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cFalha ao converter: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Convertido: {get} em {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cAlguns esquemas não conseguiram converter. Verifique o console para obter detalhes.", + "iris.bukkit.runtime.studiosvc.installing_package": "Instalando o Pacote: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Procurando pelo pacote: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Encontrado {type}.iris em {WORKSPACENAME} pasta", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Encontrado {type} dimensão em {WORKSPACENAME} pasta. Reembalagem", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Não consigo encontrar o {name} na pasta de dimensões deste pacote! Falhou!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Não consigo carregar a dimensão! Falhou!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} Tipo instalado. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Embalar '{key}' não foi encontrado na lista de pacotes.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Utilização /iris download branch= para baixar manualmente.", + "iris.bukkit.runtime.studiosvc.failed_download": "Falha ao transferir '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Não foi possível transferir o IrisDimensions- Liberação beta.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Falha ao transferir '{repo}' (ramo {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Falha ao abrir o mundo do estúdio: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Não foi possível abrir o estúdio '{dimm}- a pack tem erros de bloqueio:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Conserte o pacote e corra /iris pack validate {dimm} Revalidar.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Falha ao fechar o projeto de estúdio existente: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Falha ao fechar o projeto de estúdio existente: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Falha ao abrir o mundo do estúdio: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Não encontrei o pacote para criar uma nova dimensão.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Falta o arquivo de dimensão importada", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Importação {downloadable} em novo Projeto {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Estúdio de objetos: nenhuma célula abaixo do clique (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bEstúdio de objetos: salvando §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Estúdio de objetos: sem alterações para {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Estúdio de objetos: célula vazia {pack}/{key} (nada para escrever).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cEstúdio de objetos: nenhum arquivo alvo para {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aEstúdio de objetos: salvo §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cEstúdio de objetos: o salvamento falhou para {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Não foi possível carregar a dimensão \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Não foi possível obter o carregador de dimensões", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cA abertura do estúdio falhou: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cA abertura do estúdio falhou.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aEstúdio pronto §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Serialização de Objectos", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Escreveu outro {g} Objectos", + "iris.bukkit.runtime.irisproject.package_compiled": "Pacote Compilado!", + "iris.bukkit.runtime.irisproject.failed": "Falhou!", + "iris.bukkit.runtime.irisengine.total": "Total §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Motor §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Detalhes: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} não está definido na dimensão!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cNão foi possível encontrar {message} dentro do alcance de busca.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aTeletransportar para {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} em: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Foram evacuados deste mundo.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Foram evacuados deste mundo. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Há alguns Iris Pacotes com biomas personalizados", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Você precisa reiniciar seu servidor para usar esses pacotes.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Permissões Insuficientes", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Ou não existem sub- comandos ou você não tem permissão para usá- los.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parâmetros Ignorados: {m}", + "iris.runtime.studio.opening": "§6Studio §bA ABRIR", + "iris.runtime.studio.opening_progress": "§6Studio §bA ABRIR§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cFALHOU§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aPRONTO§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cFALHOU§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aEstúdio pronto§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "A inicializar", + "iris.runtime.studio.stage.queued": "Em fila", + "iris.runtime.studio.stage.resolve_dimension": "A resolver a dimensão", + "iris.runtime.studio.stage.prepare_world_pack": "A preparar o pack do mundo", + "iris.runtime.studio.stage.install_datapacks": "A instalar datapacks", + "iris.runtime.studio.stage.create_world": "A criar o mundo", + "iris.runtime.studio.stage.apply_world_rules": "A aplicar regras do mundo", + "iris.runtime.studio.stage.prepare_generator": "A preparar o gerador", + "iris.runtime.studio.stage.request_entry_chunk": "A carregar o chunk de entrada", + "iris.runtime.studio.stage.resolve_safe_entry": "A procurar um spawn seguro", + "iris.runtime.studio.stage.teleport_player": "A teletransportar", + "iris.runtime.studio.stage.finalize_open": "A finalizar", + "iris.runtime.studio.stage.cleanup": "A limpar", + "iris.runtime.world_create.teleport_failed": "§eO mundo foi criado, mas o teletransporte automático falhou. Tenta. /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunks", + "iris.runtime.world_create.console": "§6Gerando §e{percent}%§7 {generated}/{required} chunks§8 ({remaining} esquerda)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregeneração", + "iris.runtime.world_create.pregen.console": "§6Pregeneração §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Regen.", + "iris.runtime.chunk_job.title.delete": "Apagar", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Preparação", + "iris.runtime.chunk_job.stage.clearing": "Compensação", + "iris.runtime.chunk_job.stage.resetting_mantle": "Repor o Mantle", + "iris.runtime.chunk_job.stage.regenerating": "Regeneração", + "iris.runtime.chunk_job.stage.generating": "Gerando", + "iris.runtime.chunk_job.stage.comparing": "Comparando", + "iris.runtime.chunk_job.stage.diagnosing": "Diagnóstico", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bTRABALHAR", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks para dentro {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks para dentro {elapsed} ({failures} falhou)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aFeito§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cFALHO§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aFeito§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cFalha§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} completo: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} terminou com erros: {summary}", + "iris.runtime.golden.no_capture": "Nenhuma captura dourada em {path}; executar uma captura primeiro.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash abortado: {failed} os chunks não foram gerados. Nenhum ficheiro dourado escrito.", + "one": "GoldenHash abortado: {failed} O chunk falhou ao gerar. Nenhum ficheiro dourado escrito." + }, + "iris.runtime.golden.failed": "GoldenHash falhou: {error}", + "iris.runtime.golden.mantle_reset": "Mantle reiniciar ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle a redefinição falhou ({type}); continuando com o estado de Mantle existente.", + "iris.runtime.golden.captured": "Golden capturado: {chunks} chunks combinados={hash}", + "iris.runtime.golden.wrong_world": "Arquivo dourado é para dim={goldenDimension} sementes={goldenSeed} Mas este mundo é sombrio.{dimension} sementes={seed}. Abortar.", + "iris.runtime.golden.version_warning": "Golden foi capturado em mc={goldenVersion}, correndo mc={version}. As diferenças podem ser induzidas pela versão.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunks, combinados={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} os chunks diferem.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (falta em ouro)", + "iris.runtime.golden.mismatch_more": " ... e {count} mais", + "iris.runtime.golden.current_written": "Hashes atuais para {file}", + "iris.runtime.golden.diag.stable": "Repetir a dose STABLE, revestimento de Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Repetir a dose UNSTABLE ({diffs}+ diferenças de bloco), reset do Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (reconstrução do Mantle reproduz a saída da varredura)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ diffs - build do Mantle depende do estado/ordem)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "O diagnóstico falhou: {error}", + "iris.runtime.golden.started": "GoldenHash iniciado: {chunks} chunks ao redor 0,0 em buffers (mundo intocado), threads={threads} modo={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] chunk {x},{z} hashid", + "iris.runtime.golden.chunk_failed": "Chunk. {x},{z} falhou: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Nome de pacote inválido '{pack}« (permitido: a-z, 0-9, e -)", + "iris.runtime.pack_download.invalid_branch_name": "Nome de branch inválido '{branch}« (permitido: letras, dígitos, . e -)", + "iris.runtime.pack_download.failed": "A transferência do pacote falhou: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Baixando {url}", + "iris.runtime.pack_download.failed_to_find": "Não foi possível encontrar o pacote em {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Certifique-se que você especificou o repo correto e branch!", + "iris.runtime.pack_download.example_command": "Por exemplo: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Desembalar {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Problema ao desfazer as malas. Verifique/faça o seguinte:", + "1. Você tem uma conexão de internet funcional?", + "2. O download corrompeu?", + "3. Tentar apagar o */plugins/iris/packs pasta e re-download.", + "4. Baixe o pacote do GitHub acordo: https://github.com/IrisDimensions/overworld", + "5. Suporte de contato (se todas as outras opções não ajudar)" + ], + "iris.runtime.pack_download.no_extracted_files": "Nenhum arquivo foi extraído do arquivo zip.", + "iris.runtime.pack_download.home_directory_error": "Erro ao encontrar a pasta pessoal. Existem caracteres não- texto no nome do ficheiro?", + "iris.runtime.pack_download.invalid_archive_format": "Formato inválido. Falta a pasta raiz ou muitas pastas!", + "iris.runtime.pack_download.no_dimension_file": "Nenhum arquivo de dimensão encontrado no arquivo zip extraído.", + "iris.runtime.pack_download.check_github": "Verifique se está presente em GitHub E reporta isto ao pessoal!", + "iris.runtime.pack_download.one_dimension_required": "A pasta de dimensões deve conter exatamente um arquivo.", + "iris.runtime.pack_download.invalid_dimension": "Pasta de dimensões inválida sob dimensions/.", + "iris.runtime.pack_download.importing": "Importação {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Outra dimensão na pasta pacotes já está usando a chave {key}. A importação falhou!", + "iris.runtime.pack_download.pack_key_conflict": "Outro pacote está usando a chave {key}. A importação falhou!", + "iris.runtime.pack_download.acquired": "Adquirido com sucesso {name}.", + "iris.runtime.pack_download.validation_failed": "Embalar '{pack}' validação falhada; a criação de mundo e estúdio será recusada. Motivos:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Embalar '{pack}' validado com {count} avisos.", + "one": "Embalar '{pack}' validado com {count} Aviso." + }, + "iris.runtime.pack_download.validated": "Embalar '{pack}' validado.", + "iris.client.vision.title": "Iris Visão", + "iris.client.vision.connecting": "Conectando a Iris servidor...", + "iris.client.vision.not_connected": "não conectado", + "iris.client.vision.not_iris_world": "Não é um Iris mundo", + "iris.client.vision.no_dimension_data": "sem dados de dimensão", + "iris.client.vision.header_detail": "{status} ampliação {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Arraste para a panela Role para ampliar Esc para fechar", + "iris.client.vision.dimension_pack": "{dimension} pack {pack}", + "iris.client.toast.studio_hotload": "Espaço de carga quente", + "iris.client.toast.changed_files": { + "other": "{count} ficheiros", + "one": "{count} arquivo" + }, + "iris.client.toast.reload_failed": "recarregar falhou", + "iris.client.toast.reloaded": "recarregado", + "iris.client.toast.pack_failed": "{pack} falhou", + "iris.client.what.title": "Iris O quê?", + "iris.client.what.querying": "Consulta {x}, {z}...", + "iris.client.what.biome": "Bioma: {biome}", + "iris.client.what.region": "Região: {region}", + "iris.client.what.cave": "Caverna: {cave}", + "iris.client.what.height": "Altura: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "pausado", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aÍris", + "iris.bukkit.scoreboard.speed": "§aVelocidade§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bCacheComment§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bManteiga§7: {count}", + "iris.bukkit.scoreboard.carving": "§dEsculpir§7: {state}", + "iris.bukkit.scoreboard.region": "§bRegião§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBioma§7: {biome}", + "iris.bukkit.scoreboard.height": "§bAltura§7: {height}", + "iris.bukkit.scoreboard.slope": "§bDeslize§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUD./s§7: {updates}", + "iris.desktop.vision.title": "Iris Visão", + "iris.desktop.vision.view": "Ver:", + "iris.desktop.vision.grid": "Grade", + "iris.desktop.vision.follow": "Seguir", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Atualizando", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Ampliação repor", + "iris.desktop.vision.grid_enabled": "Grade habilitada", + "iris.desktop.vision.grid_disabled": "Grade desabilitada", + "iris.desktop.vision.following": "A seguir {player}", + "iris.desktop.vision.no_player": "Nenhum jogador no mundo", + "iris.desktop.vision.follow_disabled": "Seguir desabilitado", + "iris.desktop.vision.low_quality": "Baixa qualidade", + "iris.desktop.vision.high_quality": "Alta qualidade", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} blocos", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Posição: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Saúde: {health} / {maximum}", + "iris.desktop.vision.block_position": "Bloco {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk. {x}, {z}", + "iris.desktop.vision.region_position": "Região {x}, {z}", + "iris.desktop.vision.biome_key": "Chave: {key}", + "iris.desktop.vision.biome_file": "Ficheiro: {file}", + "iris.desktop.vision.velocity": "Velocidade: {velocity}", + "iris.desktop.vision.tiles": "Peças: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Trabalhadores: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Centro: {x}, {z}", + "iris.desktop.vision.help.toggle": "Alternar a ajuda", + "iris.desktop.vision.help.refresh": "Actualizar as peças", + "iris.desktop.vision.help.follow": "Seguir o jogador", + "iris.desktop.vision.help.zoom": "Ampliar/desligar", + "iris.desktop.vision.help.reset_zoom": "Reiniciar zoom", + "iris.desktop.vision.help.cycle_mode": "Modo de renderização do ciclo", + "iris.desktop.vision.help.quality": "Alternar a qualidade da peça", + "iris.desktop.vision.help.fps": "Alternar 30/60 FPS", + "iris.desktop.vision.help.grid": "Alternar grade", + "iris.desktop.vision.help.biome": "Informações detalhadas sobre o bioma", + "iris.desktop.vision.help.teleport": "Teletransportar para o cursor", + "iris.desktop.vision.help.editor": "Abrir o bioma no editor", + "iris.desktop.vision.opened": "Aberto {target}", + "iris.desktop.vision.teleporting": "Teletransportar para {x}, {z}", + "iris.desktop.vision.mode.biome": "Bioma", + "iris.desktop.vision.mode.biome_land": "Terras de bioma", + "iris.desktop.vision.mode.biome_sea": "Mar de bioma", + "iris.desktop.vision.mode.region": "Região", + "iris.desktop.vision.mode.cave_land": "Terras das cavernas", + "iris.desktop.vision.mode.height": "Altura", + "iris.desktop.vision.mode.object_load": "Carregamento do objeto", + "iris.desktop.vision.mode.decorator_load": "Carga do decorador", + "iris.desktop.vision.mode.continent": "Continente", + "iris.desktop.vision.mode.layer_load": "Carga da camada", + "iris.desktop.noise.title": "Explorador de Ruído", + "iris.desktop.noise.title_generator": "Explorador de Ruído: {generator}", + "iris.desktop.noise.search": "Procurar...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} □ Zoom: {zoom} Valor: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Personalizado", + "iris.desktop.noise.category.pack_generators": "Geradores de Pacotes", + "iris.desktop.noise.category.simplex": "Simplesx", + "iris.desktop.noise.category.perlin": "Perlina", + "iris.desktop.noise.category.cellular": "Celular", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Clover.", + "iris.desktop.noise.category.hexagon": "Hexagono", + "iris.desktop.noise.category.vascular": "Vasculopatia", + "iris.desktop.noise.category.globe": "Globo", + "iris.desktop.noise.category.cubic": "Cúbico", + "iris.desktop.noise.category.fractal": "FractalName", + "iris.desktop.noise.category.static": "Estático", + "iris.desktop.noise.category.nowhere": "Em nenhum lugar", + "iris.desktop.noise.category.sierpinski": "Sierpinski.", + "iris.desktop.noise.category.utility": "Utilitário", + "iris.desktop.noise.category.other": "Outros", + "iris.desktop.pregen.initializing": "Inicializando...", + "iris.desktop.pregen.title": "Visão Pregen", + "iris.desktop.pregen.method_pending": "Pendente", + "iris.desktop.pregen.paused": "pausado", + "iris.desktop.pregen.resume_hint": "Pressione P para retomar", + "iris.desktop.pregen.pause_hint": "Pressione P para pausar", + "iris.desktop.pregen.progress_paused": "pausado {generated} de {total} ({percent} completo)", + "iris.desktop.pregen.progress_saving": "Salvando... {generated} de {total} ({percent} completo)", + "iris.desktop.pregen.progress_generating": "Gerando {generated} de {total} ({percent} completo)", + "iris.desktop.pregen.speed": "Velocidade: {chunksPerSecond} chunks/s, {regionsPerMinute} regiões/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.speed_cached": "Velocidade: em cache {chunksPerSecond} chunks/s, {regionsPerMinute} regiões/m, {chunksPerMinute} chunks/m", + "iris.desktop.pregen.time": "{remaining} restantes ({elapsed} transcorrido)", + "iris.desktop.pregen.method": "Método de geração: {method}", + "iris.desktop.pregen.memory": "Memória: {used} ({usage}) Pressão: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/ru_RU.json b/core/src/main/resources/languages/ru_RU.json new file mode 100644 index 000000000..3f7959c4d --- /dev/null +++ b/core/src/main/resources/languages/ru_RU.json @@ -0,0 +1,1435 @@ +{ + "locale": "ru_RU", + "messages": { + "director.help.navigation.parent.hover": "Вернуться к родительской группе команд", + "director.help.navigation.back": "Назад", + "director.help.no_subcommands": "На этой странице нет подкоманд.", + "director.help.no_description": "Описание не указано", + "director.help.aliases": "Псевдонимы", + "director.help.command_group": "Группа команд. Нажмите, чтобы открыть.", + "director.help.no_parameters": "Параметров нет. Нажмите, чтобы предварительно заполнить команду.", + "director.help.parameters": "Параметры", + "director.help.parameter.required": "обязательный", + "director.help.parameter.optional": "необязательный", + "director.help.parameter.default": "по умолчанию", + "director.help.navigation.previous.hover": "Предыдущая страница", + "director.help.navigation.next.hover": "Следующая страница", + "director.help.navigation.page": "Страница", + "director.runtime.error.invalid_origin": "Эту команду нельзя выполнить из данного источника.", + "director.runtime.error.unknown_parameter": "Неизвестный ключ параметра: {key}", + "director.runtime.error.unexpected_argument": "Неожиданный аргумент \"{argument}\". Необязательные параметры должны задаваться с ключом, например seed=123", + "director.runtime.error.conversion_failed": "Невозможно преобразовать \"{value}\" в {type} для {parameter}", + "director.runtime.error.default_parse_failed": "Невозможно разобрать значение по умолчанию параметра {parameter}", + "director.runtime.error.missing_argument": "Отсутствует аргумент \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Не удалось выполнить команду {command}: {reason}", + "director.runtime.usage": "Использование: {usage}", + "iris.command.permission_denied": "У вас нет разрешения '{permission}'", + "iris.command.unknown": "Неизвестная команда Iris", + "iris.command.player_only": "Эту команду могут использовать только игроки.", + "iris.command.iris_world_required": "Это измерение не было создано Iris.", + "iris.command.reload.success": "Настройки и язык {locale} были перезагружены.", + "iris.command.reload.failed": "Настройки были перезагружены, но язык {locale} был отклонён; продолжает использоваться {activeLocale}.", + "iris.modded.help.unknown_section": "неизвестный Iris Раздел помощи: {section}", + "iris.modded.help.back_hover": "Вернуться в {parent}.", + "iris.modded.help.command_parameter": "Командный параметр", + "iris.modded.help.parameter_required": "Этот параметр необходим.", + "iris.modded.help.parameter_optional": "Этот параметр является факультативным.", + "iris.modded.help.brigadier_text": "Этот параметр читается как текст Brigadier.", + "iris.modded.help.operator_notice": "Командам Iris требуется разрешение оператора (уровень 2).", + "iris.modded.help.operator_instruction": "Беги. {command} от консоли (или включить читы в одиночной игре); до тех пор эти команды не будут выполняться или закладываться.", + "iris.modded.command.properties.none": "Свойства: (нет)", + "iris.modded.command.properties.list": "Свойства: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Запуск пакета данных...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aНастроенный пакет данных импорт: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aУстановленные пакеты данных: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eДобавить Modrinth URLs Для измерения 'datapackImportsСписок, затем беги /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash запущен: {value} чанков...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cсбой genhash на чанке {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§aглобальный genhash=§6{value}§a чанки={value2} твёрдые={solidBlocks} за {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Не в одном Iris Мир!", + "iris.bukkit.commandfind.unknown_structure": "§cНеизвестная структура: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Запустите эту игру, чтобы телепортироваться в структуру.", + "iris.bukkit.commandfind.locating": "§7Поиск {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Запустите эту игру, чтобы телепортироваться в структуру.", + "iris.bukkit.commandfind.locating_2": "§7Поиск {structure}...", + "iris.bukkit.commandfind.teleported": "§aТелепортировано в {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aУспешно удалена мировая папка", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aУспешно удалена мировая папка", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cНе удалось удалить мировую папку", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cНа этом сервере не было найдено пакетов с объектами.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cНет объектов для размещения через выбранный пакет(ы).", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aОткрытие Object Studio для {scope} ({totalObjects} объектов)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cНе удалось открыть объект студии: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cВы должны указать название упаковки.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cПакуй.{pack}Не найденный под packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... и {value} больше.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aПроверка структур в §f{value}§a из {value2},{value3} внутри {searchRadius} чанки...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aИмпорт vanilla контента §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aИмпорт vanilla завершён: §f{imported}§a objects/structures записано, §f{failed}§a ошибок.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Деревья и объекты находятся под objects/vanilla/...; ссылаться на них из размещения объектов биома.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cНикаких открытых студийных проектов.", + "iris.bukkit.commandstudio.closing_studio": "§eЗакрытие студии...", + "iris.bukkit.commandstudio.studio_close_failed": "§cЗакрытие студии провалилось: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cЗакрытие студии провалилось: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eСтудия закрыта. Оставшаяся очистка мировой семьи была поставлена в очередь за резервным запуском.", + "iris.bukkit.commandstudio.studio_closed": "§aСтудия закрыта.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cВы должны быть в мире студии, чтобы переключать табло отладки.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Студия отлаживания табло {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cНе смог обновить табло отладки Studio прямо сейчас.", + "iris.bukkit.commandstudio.opened_inventory": "§aОткрытый инвентарь!", + "iris.bukkit.commandstudio.generating_data": "§7Генерация данных...", + "iris.bukkit.commandstudio.done": "§aГотово!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Вам не хватает разрешения.{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Статус:", + "iris.bukkit.irisenginestatus.service": "§5- Служба: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Метрики: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Период технического обслуживания: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5Параллелизм рабочего: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5Активные мировые задачи: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Тектонические плиты:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Настроенное удержание: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Использование кучи: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Резидент: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- Очередь: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5Средняя продолжительность простоя: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5Продолжительность макс. холостой:§d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Продолжительность холостого хода: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Кэш:", + "iris.bukkit.irisenginestatus.resource": "§5- Ресурс: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§52D поток: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§53D поток: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Прочие: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Другие:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Миры: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Загруженные чанки: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cМир ничтожен.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cЦель Iris Мир перед чтением мантийной свалки.", + "iris.bukkit.commanddeveloper.upgrading": "§aмодернизировать до {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aСделано обновление! Теперь вы можете обновить свою серверную версию {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cРадиус должен быть 0 Или больше.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cЭто не является Iris Мир.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cДоступ к двигателю для этого мира недействителен.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aИсключить начало: §6{chunks}§a кусочек(ы) вокруг §6{centerX},{centerZ}§a. Очистка блоков от воздуха.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cРадиус должен быть 0 Или больше.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cВы должны быть в Iris Мир использует реген.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cДоступ к двигателю для этого мира недействителен. Сначала сгенерируйте близлежащие чанки.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aРеген начал: §6{chunks}§a кусочек(ы) вокруг §6{centerX},{centerZ}§a. Удаление и регенерация на месте.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cРадиус должен быть 0 Или больше.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cЦель должна быть Iris Мир.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cДоступ к двигателю для этого мира недействителен.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash начал: §6{chunks}§a кусочек(ы) вокруг §6{centerX},{centerZ}§a В буферах (нетронутый мир).", + "iris.bukkit.commandedit.players_only": "§cТолько игроки!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cНи один студийный мир не открыт!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cВы должны быть в студии!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cНевозможно открыть файлы в безголовой среде!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cДесктоп не поддерживается этой средой!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Не можете найти файл; возможно, он не был загружен непосредственно из файла?", + "iris.bukkit.commandedit.opening_vscode": "§aОткрытие {value} {value2} в VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cНе могу найти файл. Или регистранта не существует", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Не можете найти файл; возможно, он не был загружен непосредственно из файла?", + "iris.bukkit.commandedit.opening_vscode_2": "§aОткрытие {value} {value2} в VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cНе могу найти файл. Или регистранта не существует", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Не можете найти файл; возможно, он не был загружен непосредственно из файла?", + "iris.bukkit.commandedit.opening_vscode_3": "§aОткрытие {value} {value2} в VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cНе могу найти файл. Или регистранта не существует", + "iris.bukkit.commandfind.not_iris_world_5": "§6Не в одном Iris Мир!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Не в одном Iris Мир!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Не в одном Iris Мир!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Не в одном Iris Мир!", + "iris.bukkit.commandfind.object_studio_teleporting": "Студия §aObject: телепортация в {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} не конфигурируется ни в одной области/биоме объектов размещения.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cНельзя использовать имя мира \"iris\", потому что Iris использует этот каталог для миров Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cМожно предложить название \"IrisWorldВместо этого?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cНельзя использовать имя мира \"benchmark\", потому что Iris использует этот каталог для пакетов тестирования.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cМожно предложить название \"IrisWorldВместо этого?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cЭта папка уже существует!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cНе удалось найти и загрузить размерность\".{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eПопробуйте один из вариантов: overworld, vanilla, flat, theend", + "iris.bukkit.commandiris.download_manually_iris_download": "§eИли скачать вручную: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aПодготовка мира завершена. Перезапустите сервер, чтобы сгенерировать/загрузить «{worldName}».", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cИсключение, возникшее при сотворении. Смотрите консоль для более подробной информации.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aУспешно создал свой мир!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aВаш мир будет автоматически установлен в качестве основного мира при перезагрузке сервера.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "Создание мира §eRuntime отключено на Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eПодготовка мировых файлов и bukkit.yml Для следующего стартапа...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cНе удалось создать мировые файлы для измерения\".{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aОбновлено server.properties имя уровня \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cМир был инсценирован, но не удалось обновить server.properties Главный мир.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aМир Iris «{name}» подготовлен с генератором Iris:{value} и сидом {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aЭтот мир теперь настроен как основной для следующего перезапуска.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cНе удалось обновить bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cУказанного игрока не существует.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aИрис v{value} Разработчик Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} то {value2}", + "iris.bukkit.commandiris.total_height": "§aОбщая высота: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Миры Айрис: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Буккитские миры: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cЭто не является Iris Мир. Iris Миры: {value}", + "iris.bukkit.commandiris.removing_world": "§aУдаление мира: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cНе удалось эвакуировать людей: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cНе удалось разгрузить мир: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aУспешно удаляется {value} из bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eПохоже, мир уже был удален из bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cНе удалось спасти bukkit.yml Потому что {value}", + "iris.bukkit.commandiris.set_debug": "§aУстановить отладку для: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aСкачать пакет: {pack} (бета-релиз){value}", + "iris.bukkit.commandiris.downloading_pack": "§aСкачать пакет: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cВы должны быть в Iris мир", + "iris.bukkit.commandiris.sending_metrics": "§aОтправка метрик...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cЭто не является Iris Мир. Iris Миры: {value}", + "iris.bukkit.commandiris.unloading_world": "§aРазгрузочный мир: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aМир успешно разгружается.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cНе удалось разгрузить мир.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cНе удалось разгрузить мир: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Не существует на сервере.", + "iris.bukkit.commandiris.generator": "§9Генератор: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} Это не мир ирисов.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cНе могу определить Iris размерность для {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aЗагрузочный мир: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia не может загружать новые миры во время выполнения. Перезагрузить сервер для загрузки\".{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} Заряжен успешно.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cЭто не является Iris Мир. Iris Миры: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aЭвакуация мира{value}", + "iris.bukkit.commandobject.object_size": "Размер объекта: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Используемые блоки: {value}", + "iris.bukkit.commandobject.blocks_object": "== Блоки в объекте ==", + "iris.bukkit.commandobject.other_block_types": " + {value} Другие типы блоков", + "iris.bukkit.commandobject.current_object_size": "Текущий размер объекта: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Новый размер объекта: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Не удалось спасти объект {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cНикаких объектов: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aоправдывать [reach={reach}{value}] в очереди {value2} объект(ы)", + "iris.bukkit.commandobject.hold_your_wand": "Держи свою палочку.", + "iris.bukkit.commandobject.no_area_selected": "Никакой области не выбрано.", + "iris.bukkit.commandobject.ready_your_wand": "Готовь свою палочку.", + "iris.bukkit.commandobject.ready_your_wand_2": "Готовь свою палочку.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eУказанный масштаб превышает максимальный. Снизить до максимума: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Обновленная палочка для objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Новая палочка для objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Обновленная палочка для objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aразмещенный {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eТы должен держать свою палочку!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cФайл уже существует. Настройте overwrite=true, чтобы переписать его.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cНе удалось спасти объект из-за IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aУспешно возражать против спасения: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Держи свою палочку.", + "iris.bukkit.commandobject.no_area_selected_2": "Никакой области не выбрано.", + "iris.bukkit.commandobject.reverted_pastes": "§9Отменено вставок: {actualReverts}§9!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cТы не можешь получить WorldEdit Выбор без выбора WorldEditТы знаешь.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cУ тебя нет WorldEdit Выбор в этом мире.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aСвежая палочка с вашим током WorldEdit Выбор на нем!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aПуф! Удачи в строительстве!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eДержи свою палочку!", + "iris.bukkit.commandobject.no_area_selected_3": "Никакой области не выбрано.", + "iris.bukkit.commandobject.auto_select_complete": "§aАвтовыбор завершен!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eДержи свою палочку!", + "iris.bukkit.commandobject.no_area_selected_4": "Никакой области не выбрано.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aАвтовыбор завершен!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cРадиус прегена должен быть больше нуля блоков.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cСтрого последовательная прегенерация требует Paper или Paper-совместимый сервер.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cДоступ к двигателю для этого мира недействителен!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cУбедитесь, что мир загружен & Двигатель инициализируется. Например, создать новый чанк.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cНе удалось начать прегенерацию. Консоль для деталей.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eНет активных задач прегенерации", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aСостояние паузы задачи прегенерации переключено. Текущее состояние: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eНет активных задач прегенерации для паузы / разрядки.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eНет активной задачи прегенерации.", + "iris.bukkit.commandpregen.pregen": "§aпреген §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aСкорость: §6{value}/s§a ETA: §6{value2}§a Прошли: §6{value3}§a Метод: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aНаписал индекс структуры: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aИмпорт vanilla & структуры пакета данных в §f{value}§a (перезапись)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aИмпорт полный: §f{imported}§a structures/objects письменно, §f{failed}§a провалился.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Ссылка на них из списка «структур» биома / региона / измерения или запуска /iris structure list {value} Обновить индекс. Регенерировать чанки, чтобы изменения вступили в силу.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7захваченный {value} структур. Поместите их из списка «структур» и восстановите чанки. Исключить a structures/*.json Чтобы вернуть его.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cНе загружается Iris Мир, найденный для {value}. Присоединяйтесь или создайте первый (поиск идет против живого мира).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cИзбранный Iris В мире нет активных генераторов.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cНет структуры радужной оболочки{structure}В этой пачке", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cStructure '{structure}' собрал 0 штук (проверьте startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aСтруктура{structure}': §f{value}§aкусочки, след§f{value2}х{value3}§aБлоки (семя образца 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cНет структуры радужной оболочки{structure}В этой пачке", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cСтруктура{structure}собранный 0 части", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aПомещение '{structure}' ({value} куски) в вашем месте.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aОткрытие студии для\"{value}\"пак (семя):{seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cПредоставьте размерный пакет: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cНе удалось решить пакет для измерения {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aОткрытие VSCode для \"{value}пак", + "iris.bukkit.commandstudio.pack_has_version": "§a\"{value}\"пак имеет версию: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aОткрытие Noise Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cНельзя добавлять предметы в виртуальный инвентарь из-за: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aОткрываем инвентарь!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cРаботает только в Iris Мир!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cВы должны быть в или указать IrisСозданный мир!", + "iris.bukkit.commandstudio.opening_map": "§aОткрытие карты!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Расчет производительности для генераторов шума", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Расчет времени интерполятора...", + "iris.bukkit.commandstudio.processing_generator_scores": "Производитель генератор обработки:", + "iris.bukkit.commandstudio.score": "Счет: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aГотово! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cДля правильного создания сущностей необходимо находиться в мире Iris. Будет предпринята наилучшая возможная попытка.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cНи один студийный мир не открыт!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cВы уже в студийном мире!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aОтправляем вас в мир студий!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Обновление рабочего пространства Code {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aОбновленный код рабочего пространства для {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cНедействительный проект: {value}. Попробуйте удалить файл Code-workspace и попробуйте снова.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cВы должны быть в Iris мир", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Вы должны быть в мире радужной оболочки.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "захватывать IGenData из {value} близлежащих кусков.", + "iris.bukkit.commandstudio.reported": "Сообщалось: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cВы должны запустить сервер GUIs Включено в настройках!", + "iris.bukkit.commandstudio.players_only": "§cТолько игроки!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cНи один студийный мир не открыт!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cВы должны быть в студии!", + "iris.bukkit.commandwhat.material": "Материал: §a{value}", + "iris.bukkit.commandwhat.full": "Полный: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Пожалуйста, держите блок / пункт", + "iris.bukkit.commandwhat.material_2": "Материал: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Пожалуйста, держите блок / пункт", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Не-Iris Биом: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Биом пакета данных: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aТолько Айрис.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Пожалуйста, смотрите на любой блок, а не на небо.", + "iris.bukkit.commandwhat.material_3": "Материал: §a{value}", + "iris.bukkit.commandwhat.full_2": "Полный: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* блок хранения (с возможностью загрузки)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e * световой блок, способный)", + "iris.bukkit.commandwhat.foliage_block": "§e* Блок фолиантов", + "iris.bukkit.commandwhat.decorant_block": "§e* Декоративный блок", + "iris.bukkit.commandwhat.fluid_block": "§e* Блок жидкости", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Посадочные блоки фолиевой фазы", + "iris.bukkit.commandwhat.solid_block": "§e* Твердый блок", + "iris.bukkit.commandwhat.found_nearby_markers": "{value} Ближайшие маркеры ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aТолько Айрис.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Консоль должна называть биом: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Искать Biome не удалось: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Неизвестный биом: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Консоль должна называть регион: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Поиск в регионе провалился: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Неизвестный регион: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Невозможно открыть файлы здесь: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Не можете найти файл; возможно, он не был загружен непосредственно из файла?", + "iris.modded.irismoddedcommands.could_not_open": "Не может открыться {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Открытие {value} {value2} В вашем редакторе.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Консоль должна называть игрока: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} не генерируется путем Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Телепорт провалился: измерение {dimensionId} не загружается.", + "iris.modded.irismoddedcommands.teleporting": "телепортация {value} то {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} не генерируется путем Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Нельзя эвакуировать основной мир, негде отправить игроков.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "эвакуированный {count} Игрок(ы) из {value} то {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Установить отладку для: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Горячие настройки", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Эта команда может использоваться только игроками (она проверяет ваш удерживаемый элемент).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Твоя главная рука пуста.", + "iris.modded.irismoddedcommands.hand_x": "Рука: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Эту команду могут использовать только игроки.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} не генерируется путем Irisсм. /iris info для загрузки Iris Размеры.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Нынешний размер ({value}) не генерируется Iris. Назовите одно явно: /iris pregen start {radius} см. /iris info для загрузки Iris Размеры.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Задача прегенерации уже запущена. Остановите это сначала /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Преген начинается в {value} из {value2} через {value3} из блоков {centerX},{centerZ}.{modeNote} Прогресс логов для консоли; см. /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Прекращение прегенерации; завершение текущего региона...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Нет активной задачи прегенерации, чтобы остановить.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Нет активной задачи прегенерации для приостановки / возобновления.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Сейчас прегенерация {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Нет активной задачи прегенерации.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} Разработчик Volmit Software on {value2} (Minecraft {value3}), {engines} Iris размерность(ы)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Размеры груза: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Эту команду могут использовать только игроки.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.biome": "Биом: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Искать Biome не удалось: {value}", + "iris.modded.irismoddedcommands.region": "Регион: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Поиск в регионе провалился: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Пещерный биом: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Поиск биома в пещере провалился: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Поверхностный блок: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Должность: {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Эта команда может использоваться только игроками (она проверяет блок, который вы просматриваете).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Посмотрите на блок, а не на небо.", + "iris.modded.irismoddedcommands.block_y": "Блок: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Эта команда может использоваться только игроками (маркеры отображаются как частицы вокруг вас).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Сканирование для '{marker}Маркеры вокруг тебя...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Сканирование маркера не удалось: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Найден{value}Близлежащий(ые) маркер(ы){marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Эту команду могут использовать только игроки.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Неизвестный биом: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Эту команду могут использовать только игроки.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.unknown_region_2": "Неизвестный регион: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} Это не определено в измерении!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} не настроен ни в одном размещении объектов region/biome (загружено ключей объектов: {value}).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Эту команду могут использовать только игроки. (объектный ключ '{key}решенный против {value} загруженные ключи от объекта)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Назовите имя Iris Родная структура, чтобы найти.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Эту команду могут использовать только игроки.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Неизвестная структура{key}'. Используйте завершение вкладки для выбора Iris размещение или зарегистрированная структура нативного / пакета данных.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Поиск родной структуры {value} внутри {NATIVESTRUCTURELOCATERADIUS} чанки...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Поиск в поисках Iris-размещенная структура {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Не удается найти Iris-размещенная структура {key}Предел безопасности поиска плотности был достигнут до полного 1024- Обыскали радиус куска.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Не мог найти Iris-размещенная структура {key} внутри 1024 чанки.", + "iris.modded.irismoddedcommands.search_failed": "Поиск не удался: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Не удалось найти родную структуру {value} внутри {NATIVESTRUCTURELOCATERADIUS} чанки.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Поиск родной структуры {value} Неудачный: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Игрок отключается до завершения поиска структуры.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Вы изменили размеры до завершения поиска структуры; снова запустите команду.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Найден {label} в {targetX} {clampedY} {targetZ}Но телепортация провалилась.", + "iris.modded.irismoddedcommands.teleported_at": "Телепортировано в {label} в {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Достижимость структуры: {available} родное поколение, имеющее право {irisPlaced} Iris- место, {disabled} родной инвалид, {suppressed} Родной заменяется Iris размещение, {unreachableBiomes} родной, исключённый биомами этой стаи, и {unsupported} зарегистрированные местные структуры, не поддерживаемые в этом измерении. Использовать /iris structure verify для одной структуры.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Структура {key} это Iris- размещены и расположены с /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Неизвестная структура{key}'. Оно не является ни Iris- размещены или зарегистрированы vanillaю или пакетом данных.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Структура {value} явно заменяется на Iris помещение и размещение с /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Коренная структура {value} включен, поддерживается состоянием генератора этого измерения и может /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Эту команду могут использовать только игроки. (POI тип{type}' accepted)", + "iris.modded.irismoddedcommands.searching": "Поиск в поисках {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Двигатель для этого мира был закрыт, вернитесь к измерению и попробуйте снова.", + "iris.modded.irismoddedcommands.search_failed_2": "Поиск не удался: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Не мог найти {label} Во время поискового тайм-аута.", + "iris.modded.irismoddedcommands.teleported_at_2": "Телепортировано в {label} в {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Двигатель изменился при поиске {label}Попробуйте еще раз.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.world_seed": "Мировое семя: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Семя двигателя: {value} (смешанный: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Скачать IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Пакуй.{pack}Установлено. Его точные типы размеров и пользовательские биомы присоединяются к вынужденным. Iris Datapack на следующем сервере перезагрузка; перезапуск перед созданием миров из этого пакета.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Загрузка пакета не удалась для {pack} ({downloadSource}; см. консоль).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Это измерение не было создано Iris.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Сгенерировано: {value} кусочек(ы), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "неизвестный Iris Раздел помощи: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: type={typeKey} active={activeMin}..{activeMax} logical={value} (pack={value2}, двигатель не запущен; высота упаковки неизвестна", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}Тип ={typeKey} Активный ={activeMin}..{activeMax} логический{value} Пакет{value2}Хочет {packMin}..{packMax} логический{packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " предупреждениеАктивный тип размерности не соответствует пакету. Iris Откажутся запускать этот мировой двигатель вместо обрезки местности. Беги. /iris world enable Для новых миров или /iris datapack install для уже загруженных Iris Размеры, затем перезапустить.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Нет. Iris Размеры загружены.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Все {irisLevels} Iris Размер(ы) соответствуют их диапазонам высоты упаковки.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}Двигатель еще не запущен, он пока не может получить свой размерный тип.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: генерация типа размерности не удалась: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Не удалось написать {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Нет. Iris Размеры с работающими двигателями найдены; ничего не установлено.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Не удалось написать {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Написано {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Мировой пакет данных{WORLDPACKNAME}Тип размерности установлен. Перезагрузите сервер для применения типов измерений.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Настроенный пакет данных импорт: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth глотать - это Bukkit-только; установить эти вручную в world/datapacks при необходимости.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Установка мировых пакетов данных: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Тестовое исключение отправлено в систему отчётов об ошибках Iris (Sentry, если включён).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Сканирование сети не удалось: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Сканирование Goldhash уже запущено.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Эту команду могут использовать только игроки. (Жезл — это физический предмет)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Ваш инвентарь полон.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Пуф! Удачи в строительстве! (левый клик = угловой 1Правый клик = угол 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Эту команду могут использовать только игроки. (Пыль является физическим объектом)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Ваш инвентарь полон.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Правильно нажмите блок, чтобы раскрыть объект, к которому он принадлежит.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Эту команду могут использовать только игроки. (Спасение захватывает выбор палочки)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Это измерение не генерируется Iris; объекты сохраняются в пакете измерения.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Держи. Iris палочка. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Никакой области не выбрано. Левый/правый клик блоки с палочкой первым.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Недействительное название объекта: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Слишком большой выбор: блоки {volume} (макс {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Файл уже существует. Использовать /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Не удалось спасти объект: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Спасенный {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} блок(ы){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Неизвестный или пустой объект: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Консоль должна указывать координаты: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Вы не смотрите на блок внутри {value} блоки.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Вставка не удалась: {value} (частичные изменения записаны для отмены)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "размещенный {key} в {value} {value2} {value3} ротация{rotation} ({value4} Пишите(а), {value5} невоздушный{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Эту команду могут использовать только игроки.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Держи. Iris палочка. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Никакой области не выбрано.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Эту команду могут использовать только игроки.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Готовь свою палочку. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Вы не смотрите на блок.", + "iris.modded.moddedobjectcommands.position_set": "Позиция {value} устанавливать {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Эту команду могут использовать только игроки.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Держи свою палочку!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Никакой области не выбрано.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Выбор слишком большой для автоматического выбора: блоки {volume} (макс {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Автовыбор завершен: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Неизвестный объект: {key}", + "iris.modded.moddedobjectcommands.object_size": "Размер объекта: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Используемые блоки: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== Блоки в объекте ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} Другие состояния блока(ы)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Неизвестный объект: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Текущий размер объекта: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Новый размер объекта: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Объект не имеет файла загрузки; не может сохранять сжатие.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Не удалось спасти объект {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Недействительный охват: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Никаких объектов: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "оправдывать [reach={reach}{value}] в очереди {value2} объект(ы)", + "iris.modded.moddedobjectcommands.nothing_undo": "Нечего менять.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Отменено вставок: {reverted}.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Пакет папки не найден: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Нет пакетов для проверки {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Пакуй.{pack}Не найденный под {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "проверка {value} пак(ы)...", + "iris.modded.moddedpackcommands.validation_failed": "Проверка \"{value}Не удалось: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Проверка завершена. Сломанные пакеты: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Пакуй.{pack}Не найденный под {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Пакуй.{pack}Не найденный под {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Результаты проверки не зафиксированы. Беги. /iris pack validate Сначала.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (блокировка ={value2}Предупреждения ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Нет результатов проверки на '{pack}'. Беги. /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Пакуй.{value}Заряжается. (предупреждения ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Пакуй.{value}это повреждён:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... и {value} Больше предупреждений (предупреждений).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Кандидатов на уборку не нашли.{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Очистить превью для пакета{pack}': {value} кандидат(ы). Файлы не менялись.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Беги. /iris pack cleanup {pack} apply Карантин после свежего сканирования.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Кандидатов на уборку не нашли.{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "карантин {value} кандидат(ы) на уборку {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Нечего восстанавливать для упаковки{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Восстановить превью для {value}: {value2} Файл(ы). Файлы не менялись.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Восстановление блокируется {value} Существующий пункт(ы).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Беги. /iris pack restore {pack} apply Восстановление после новой проверки конфликта.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Восстановление отказалось, потому что {value} Пункт (ы) назначения уже существует.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Нечего восстанавливать для упаковки{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "восстановленный {value} файл(ы) из {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... и {value} больше.", + "iris.modded.moddedregen.regen_is_already_running": "Реген уже работает.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Это измерение не генерируется Iris. Бегите от этого Iris Размер, чтобы пакет можно было разобрать.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Написал индекс структуры: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Нет структуры радужной оболочки{key}В этой пачке", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Структура «{key}» собрана 0 штук (проверить startPool «{value}»)", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Структура «{key}»: кусочки {value}, следы блоков {value2}X{value3} (образец семян 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Эта команда может использоваться только игроками (структура собрана на вашей позиции).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Нет структуры радужной оболочки{key}В этой пачке", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Структура{key}собранный 0 части", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Место провалилось: {value} (частичные изменения, зарегистрированные для отмены)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Помещение '{key}' ({value} кусочки, {value2} писать(ы){tileNote}) в вашем месте. /iris object undo Чтобы вернуться.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Предоставьте размерный пакет: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Откройте Инструмент исследования шума на дисплее сервера.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Это измерение не генерируется Irisбегать /iris studio noise из одного Iris Размер для разрешения генераторов, или опустить имя генератора.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Неизвестный генератор{generatorKey}в упаковке {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Открытие Инструмент исследования шума для генератора {value} (семена {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Это измерение не генерируется IrisСтоять в одном Iris (или студийный) размер и ход /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Открытие карты видения для {value} на серверном дисплее.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Не удалось создать рабочее пространство для {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Восстановлено рабочее пространство: {value} с JSON Схемы автозаполнения.", + "iris.modded.moddedstudiocommands.could_not_open": "Не может открыться {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Открытие {value} В вашем редакторе.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Это измерение не генерируется Iris; указать имя пакета явно.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Пакуй.{name}Не найденный под {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Предоставьте размерный пакет: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Открытие студии для '{pack}' (seed {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Пакуй.{pack}Пропал; скачать IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Пакуй.{pack}Невозможно скачать; проверьте имя и попробуйте /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Пакуй.{pack}\"Нет\" dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Открытая студия провалилась: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Студийная инъекция не удалась: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Консольная студия открыта: {dimensionId} теперь работает под управлением {pack} семени {seed} (переходный; не написанный iris-dimensions.json и очищенный при перезапуске).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Введите его с: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Преген с: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Удалите его с: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Студийная инъекция не удалась: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Студия открыта: {dimensionId} Теперь бежит{pack}семя {seed}. Использовать /iris studio close Когда закончите.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "У вас нет открытой студии. Использовать /iris studio open Сначала.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Закрытие студии провалилось: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Студия закрыта: {dimensionId} были эвакуированы, выгружены и удалены данные о регионе.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "В настоящее время студийные размеры не открыты.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Активное студийное измерение(ы): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}Упаковка.{value2}семя {value3} владелец {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Эту команду могут использовать только игроки.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "У вас нет открытой студии. Использовать /iris studio open Сначала.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Ваше студийное измерение больше не загружается. Использовать /iris studio open Опять.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Телепортирован в вашу студию ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Пакуй.{value}\"Нет\" dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"{value}\"пак имеет версию: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Недействительное название проекта «{nameRaw}» (допускается: a-z, 0-9, и -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Пакуй.{name}уже существует в {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Создание проекта '{name}\"Из шаблона\"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Шаблон{template}не установлен; скачивание IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Шаблон{template}Не может быть загружен; установить пакет с dimensions/{template2}.json Сначала.", + "iris.modded.moddedstudiocommands.created_project_at": "Созданный проект{name}в {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Редактировать dimensions/{name}.json и остальную часть упаковки. A VSCode рабочее пространство с JSON Схема автозаполнения была сгенерирована; откройте ее или повторите /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Создание проекта провалилось: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Размер упаковки{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Компиляция: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Упаковка не удалась: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Эта команда может использоваться только игроками (отбор проб сосредоточен на вашей позиции).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Это измерение не было создано Iris.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Распределение региона выборки в {value}x{value2} Куски вокруг тебя...", + "iris.modded.moddedstudiocommands.rarity": "{key}: редкость ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Выборка регионов не удалась: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Пакуй.{pack}не установлен; скачивание IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Пакуй.{pack}Не может быть загружен; проверить имя или установить его /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Не удалось ввести Iris мир{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "созданный Iris мир {dimensionId} из пакета{pack}Измерение{packDimension}' (seed {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Теперь он жив и повторно вводится в каждый стартап. Телепортируйте с /iris world status Портал; перезагрузка не требуется.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Не удалось ввести Iris Первичный мир: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris Первичный мир, созданный для {dimensionId} (pack '{pack}Измерение{packDimension}семя {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Генератор обычного Верхнего мира нельзя заменить во время работы, поэтому эта операция НЕ пересоздаёт существующий Верхний мир.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Вместо этого {dimensionId} Теперь это сконфигурированный основной мир: игроки в мире vanilla направляются туда по присоединению, и он повторно внедряется в каждый стартап.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris Главный мировой контроль расчищен. Overworld сохраняет свой текущий генератор server.properties Тип уровня и перезапустить, чтобы изменить его обратно.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Недействительное семя{seedRaw}'. Используйте число или «случай».", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Пакуй.{pack}не установлен; скачивание IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Пакуй.{pack}Не может быть загружен; проверить имя или установить его /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Пакуй.{pack}Не готов (по-прежнему загружается или проверяется). Попробуйте команду еще раз через минуту.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Не удалось написать server.properties; Проверьте разрешения файлов и установите тип уровня вручную.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris Основной мир настроен на{pack}' (preset {preset}Семя {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties Уровеньный тип теперь {preset}. На следующем перезапуске надмира, Nether и конец регенерировать как это Iris Мир.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Данные об игроках (запасы, достижения, статистика) сохраняются; существующий ландшафт в этих измерениях заменяется. Это применимо один раз.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart Включен - остановка сервера сейчас, так что ваша обертка перезапуска возвращает его в новый основной мир.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Перезагрузите сервер, чтобы создать его.(Сет)mainWorldAutoRestart=Истинно вmodded.jsonиметьIrisОстановите сервер для вас.", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Отказ от создания мира{dimensionId}Используя пакет{pack}Потому что требуемая проверка не удалась:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Исправьте пакет и бегите /iris pack validate {pack} чтобы подтвердить.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Пакуй.{pack}Не найдено под {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Пакуй.{pack}\"не содержит dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "Недействительная упаковка{pack}{value}'. Используйте пакет или упаковку:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Недействительное семя{seedRaw}'. Используйте число или «случай».", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Не удалось удалить Iris мир{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris мир{dimensionId}\"не был загружен; очистил его постоянную запись в реестре и стер сохраненные данные по кускам/Mantle\".", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris мир{dimensionId}Он не был загружен; очистил свою постоянную запись в реестре. Мировые данные на диске сохраняются.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Удаленный Iris мир{dimensionId}Эвакуированные, разгруженные, чанки / Mantle данные стираются и выпадают из реестра стартапов.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "инвалид Iris мир{dimensionId}эвакуировали, выгрузили и исключили из реестра стартапов.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Мировые данные на диске сохраняются; повторно /iris world enable {dimensionId} или удалить его с /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "загруженный Iris Уровень: {value} -> упаковывать{value2}Измерение{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Первичный мир: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Нет. Iris В настоящее время размеры загружены. Создайте единое с /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "загруженный Iris размеры: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Использовать /iris world create Вводить один без перезапуска.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "& управляет внешним импортом пакетов данных (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Скачать/обновить каждый пакет данных, перечисленный в размерности пакетаdatapackImports'и установить его в мире, чтобы его структуры регистрировались как vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Перезагрузите сервер при установке новых пакетов данных (требуется регистрация и генерация новых структур).", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Список сконфигурированных импортных пакетов данных и их установленные версии", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Удалите установленный пакет данных по идентификатору (также удалите его URL-адрес из datapackImports, чтобы его не было)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "ID пакета данных (название папки), показанный /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Мировой менеджер", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Заряжайся TectonicPlates граф", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Отправить тестовое исключение для часового", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Hash генерируется блок выход фиксированной области для детерминизма/идентификации тестирования", + "iris.director.commanddeveloper.param.world_hash": "Мир для хеширования", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Радиус в чанках вокруг центра", + "iris.director.commanddeveloper.param.center_chunk_x": "Центрный чанк X", + "iris.director.commanddeveloper.param.center_chunk_z": "Обсуждение Center Bunk Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Обновить пак мира (небезопасно!)", + "iris.director.commanddeveloper.param.world_update": "Мир для обновления", + "iris.director.commanddeveloper.param.pack_install_into_world": "Пакет для установки в мире", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Обязательно сделайте резервную копию & Сначала прочитайте предупреждения!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Должен быть Iris Скачать пакет снова для вас", + "iris.director.commanddeveloper.director.test": "Тест", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Сбросьте всю тектоническую плиту вместо одной секции", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Файл демпинга id под plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Тест", + "iris.director.commanddeveloper.param.pack_bench": "Пакет на скамейку", + "iris.director.commanddeveloper.param.radius_regions": "Радиусы в регионах", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Открыть GUI когда бенчмаркинг", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Обновление до другого Minecraft версия", + "iris.director.commanddeveloper.param.version_upgrade": "Версия для обновления до", + "iris.director.commanddeveloper.director.test_3": "испытание", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Мировая папка для сканирования файлов региона .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Удалить близлежащие блоки для тестирования регена", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Радиус в чанках вокруг вашей текущей чанки", + "iris.director.commanddeveloper.director.test_4": "Тест", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Удалить и регенерировать близлежащие чанки на месте с помощью Iris поколение", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Радиус близлежащих кусков", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Генерировать куски в буферы (не пишется мир) и хеш-блоки + биомы; захватывает золотой файл или проверяет против существующего. Сбрасывает мантию в сканируемую область — используют на одноразовых тестовых мирах.", + "iris.director.commanddeveloper.param.world_scan": "Мир для сканирования", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Радиус в чанках вокруг центра", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Центрный чанк X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Обсуждение Center Bunk Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Удалите данные Mantle в области сканирования сначала для полной регенерации с нуля", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "одновременные поколения кусков; 1 = строго серийные испытания на зависимость от заказа", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Также сбрасывайте полные невоздушные блок-состояния для автономного диффинга", + "iris.director.commandedit.director.edit_something": "Редактировать что-нибудь", + "iris.director.commandedit.director.edit_biome_you_specified": "Редактируйте биом, который вы указали", + "iris.director.commandedit.param.biome_edit": "Биом для редактирования", + "iris.director.commandedit.director.edit_region_you_specified": "Редактируйте регион, который вы указали", + "iris.director.commandedit.param.region_edit": "Регион для редактирования", + "iris.director.commandedit.director.edit_dimension_you_specified": "Отредактируйте размер, который вы указали", + "iris.director.commandedit.param.dimension_edit": "Размер для редактирования", + "iris.director.commandfind.director.iris_find_commands": "Iris Найти команды", + "iris.director.commandfind.director.find_biome": "Найти биом", + "iris.director.commandfind.param.biome_look": "Биом для поиска", + "iris.director.commandfind.param.should_you_be_teleported": "Если вы телепортированы", + "iris.director.commandfind.director.find_region": "Найдите регион", + "iris.director.commandfind.param.region_look": "Регион для поиска", + "iris.director.commandfind.param.should_you_be_teleported_2": "Если вы телепортированы", + "iris.director.commandfind.director.find_point_interest": "Найдите точку интереса.", + "iris.director.commandfind.param.type_poi_look": "Тип такого PoI искать.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Если вы телепортированы", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Найдите структуру (vanilla ключ, такой как minecraft:village_plains или minecraft:stronghold, или импортный ключ структуры iris)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Структура, которую следует искать (например,minecraft:village_plains, minecraft:stronghold, minecraft Древний город", + "iris.director.commandfind.director.find_object": "Найти объект", + "iris.director.commandfind.param.object_look": "Объект для поиска", + "iris.director.commandfind.param.should_you_be_teleported_4": "Если вы телепортированы", + "iris.director.commandiris.director.basic_command": "Основное командование", + "iris.director.commandiris.director.create_new_world": "Создать новый мир", + "iris.director.commandiris.param.name_world_create": "Название мира для создания", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Размер/пакет для создания мира", + "iris.director.commandiris.param.seed_generate_world_with": "Семя, чтобы создать мир с", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Использовать или не использовать этот мир как основной", + "iris.director.commandiris.director.teleport_another_world": "Телепорт в другой мир", + "iris.director.commandiris.param.world_teleport": "Телепортироваться в мир", + "iris.director.commandiris.param.player_teleport": "Игрок телепортируется", + "iris.director.commandiris.director.print_version_information": "Печатная версия Информация", + "iris.director.commandiris.director.benchmark_pack": "Отметить пак", + "iris.director.commandiris.param.dimension_benchmark": "Размерность для бенчмарка", + "iris.director.commandiris.director.print_world_height_information": "Печать информации о высоте в мире", + "iris.director.commandiris.director.check_access_all_worlds": "Проверьте доступ ко всем мирам.", + "iris.director.commandiris.director.remove_iris_world": "Удалить ан Iris мир", + "iris.director.commandiris.param.world_remove": "Мир, чтобы удалить", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Стоит ли также удалять папку (если установлена ложная, просто не загружается мир)", + "iris.director.commandiris.director.toggle_debug": "Отладка переключить", + "iris.director.commandiris.director.download_project": "Скачать проект.", + "iris.director.commandiris.param.pack_download": "Пакет скачать", + "iris.director.commandiris.param.branch_download_from": "Ветка для скачивания из", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Перезаписывать или нет пакет с загруженным", + "iris.director.commandiris.director.get_metrics_your_world": "Получите метрики для вашего мира", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Перезагрузка файла конфигурации (также выполняется автоматически)", + "iris.director.commandiris.director.unload_iris_world": "Разгрузить Iris Мир", + "iris.director.commandiris.param.world_unload": "Мир, чтобы разгрузить", + "iris.director.commandiris.director.load_iris_world": "Загрузить Iris Мир", + "iris.director.commandiris.param.name_world_load": "Название страны для загрузки", + "iris.director.commandiris.director.evacuate_iris_world": "Эвакуировать мир радужной оболочки", + "iris.director.commandiris.param.evacuate_world": "Эвакуировать весь мир", + "iris.director.commandobject.director.iris_object_manipulation": "Iris объектная манипуляция", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Откройте объектный студийный мир (решетка каждого объекта; измерение необязательно, по умолчанию для всех пакетов)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Факультативное измерение, чей объект упаковывается; опустить для агрегирования объектов из каждой упаковки", + "iris.director.commandobject.param.seed_generate_studio_with": "Семя для создания студии с", + "iris.director.commandobject.director.check_composition_object": "Проверьте состав объекта", + "iris.director.commandobject.param.object_analyze": "Объект для анализа", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Сократите объект до минимального размера", + "iris.director.commandobject.param.object_shrink": "Объект для сокращения", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Выращивайте органические ветви через навес, чтобы каждый лист пережил распад vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Ключ объекта, префикс (деревья/) или путь файловой системы", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "dryrun=true анализирует, ничего не пишет", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "Длина ветви n макс. в блоках от существующей древесины; более отдаленные листовые кластеры устойчивы вместо этого. Достичь0 Неограниченный рост", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Преобразуйте файлы .schem в папку «превратить» в файлы.iob.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Получите порошок, который раскрывает объекты", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Контракт на выбор, основанный на вашем направлении взгляда", + "iris.director.commandobject.param.amount_inset_by": "Сумма, вводимая", + "iris.director.commandobject.director.set_point_1_look": "точка 1 смотреть", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Используете ли вы свое текущее положение или куда вы смотрите", + "iris.director.commandobject.director.set_point_2_look": "точка 2 смотреть", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Используете ли вы свое текущее положение или куда вы смотрите", + "iris.director.commandobject.director.paste_object": "Вставить объект", + "iris.director.commandobject.param.object_paste": "Объект для вставки", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Редактировать или нет объект (необходимо держать палочку)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Количество градусов для вращения", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Фактор, с помощью которого можно масштабировать размещение объекта", + "iris.director.commandobject.param.scale_interpolator_use": "Шкала интерполятора для использования", + "iris.director.commandobject.director.save_object": "Сохранить объект", + "iris.director.commandobject.param.dimension_store_object": "Размерность для хранения объекта в", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Файл для его хранения, может использовать / для подпапок", + "iris.director.commandobject.param.overwrite_existing_object_files": "Перезаписывание существующих объектных файлов", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Используйте наследие TileState сериализация по возможности", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Сдвиньте выбор в вашем направлении взгляда", + "iris.director.commandobject.param.amount_shift_by": "Сумма, чтобы сместить", + "iris.director.commandobject.director.undo_number_pastes": "Отменить несколько вставок", + "iris.director.commandobject.param.amount_pastes_undo": "Количество вставок для отмены", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Получает объектную палочку и захватывает ток WorldEdit Выбор.", + "iris.director.commandobject.director.get_object_wand": "Получите объектную палочку", + "iris.director.commandobject.director.autoselect_up_down_out": "Автовыбрать вверх, вниз & выходить", + "iris.director.commandobject.director.autoselect_up_out": "Автовыбрать & выходить", + "iris.director.commandpack.director.pack_validation_maintenance": "Проверка упаковки и техническое обслуживание", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Проверить пакет (или все пакеты) и повторно опубликовать результаты", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Название папки пакета для проверки (оставьте пустой для всех)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Просмотр или применение неиспользованной очистки ресурсов", + "iris.director.commandpack.param.pack_folder_name_clean": "Название папки для очистки", + "iris.director.commandpack.param.preview_apply": "предварительный просмотр или применение", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Просмотреть или применить восстановление последнего карантина", + "iris.director.commandpack.param.pack_folder_name_restore": "Название папки для восстановления", + "iris.director.commandpack.param.preview_apply_2": "предварительный просмотр или применение", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Показать кэшированный статус проверки для пакета", + "iris.director.commandpack.param.pack_folder_name": "Имя папки пакета", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Прегенерируйте свой Iris Миры!", + "iris.director.commandpregen.director.pregenerate_world": "Создать мир", + "iris.director.commandpregen.param.radius_pregen_blocks": "Радиус прегена в блоках", + "iris.director.commandpregen.param.world_pregen": "Мир для прегена", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Расположение центра прегена. Используйте «я» для вашего текущего местоположения", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Открой. Iris преген гуй", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Создавайте только один чанк за раз", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Остановите активную задачу прегенерации", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Пауза/продолжение активной задачи прегенерации", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Показать активный статус прегенерации", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris Инструменты структуры (индекс, импорт, информация)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "восстанавливать structure-index.json Список vanilla, пакет данных & структуры радужной оболочки", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Размер, чей пакет индексировать", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "импорт каждый Структура - vanilla и Проглоченные пакеты данных - в этот пакет как редактируемый Iris Ресурсы, всегда перезапись. Восстановление пилообразных структур (деревни, аванпосты, головоломки пакета данных) в качестве редактируемых графиков пула / части, импортирует каждый шаблон структуры NBT как объект, так и собирает многошаблонные структуры (корабли-затонувшие, разрушенные порталы, руины океана, голые окаменелости). Бегите после приема пакета данных и перезапуска. Восстанавливайте куски или используйте свежий мир для импортных копий.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Размер, в который упаковка импортируется", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Захват кодовых структур, которые не имеют NBT шаблон (болотные хижины, иглу и т.д.) в редактируемом виде Iris объекты, генерируя каждый из них в выброшенном мире царапин и считывая его блоки. Пропуски структур, которые уже импортируются как структура, структуры шире / тише, чем захватная шапка (опорные пункты, особняки, памятники остаются vanillaными), и все, что не будет генерировать в плоском мире. Каждая захваченная структура становится единым целым Iris Структуру можно поместить из списка «структур» биома / региона / измерения. Проходит автоматически как последний проход /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Размер, чей пакет нужно захватить", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Проверить право на родную структуру и найти Iris- размещенные структуры без блокировки нативных поисков.", + "iris.director.commandstructure.param.dimension_verify": "Размер для проверки", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Радиус поиска в чанках вокруг источника (больше намного медленнее)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Разрешите граф головоломки структуры радужной оболочки и сообщите количество фигурок & границы", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Размер, упаковка которого содержит структуру", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Структура радужной оболочки ключ для проверки", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Сборка и размещение структуры радужной оболочки глаза в вашем месте (студия тестирования)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Размер, упаковка которого содержит структуру", + "iris.director.commandstructure.param.iris_structure_key_place": "Структура радужной оболочки ключ к месту", + "iris.director.commandstudio.director.studio_commands": "Студия команд", + "iris.director.commandstudio.director.open_new_studio_world": "Откройте новый студийный мир", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Размерный пакет, чтобы открыть студию для", + "iris.director.commandstudio.param.seed_generate_studio_with": "Семя для создания студии с", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Импорт vanilla деревьев, грибов & объекты (и structures/jigsaw) из сервера в пакет objects/vanilla папка", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Пакет измерений для импорта vanilla контента", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Сколько вариантов захвата на дерево/объект", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Импорт vanilla & пакет данных structures/jigsaw в пак", + "iris.director.commandstudio.director.open_vscode_dimension": "Открыть VSCode для измерения", + "iris.director.commandstudio.param.dimension_open_vscode": "Размерность, чтобы открыть VSCode для", + "iris.director.commandstudio.director.close_open_studio_project": "Закрыть открытый студийный проект", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Переключайте студию отладка табло", + "iris.director.commandstudio.director.create_new_studio_project": "Создание нового студийного проекта", + "iris.director.commandstudio.param.name_this_new_iris_project": "Название этого нового Iris Проект.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Скопируйте содержимое существующего проекта в папке пакетов и используйте его как шаблон в этом новом проекте.", + "iris.director.commandstudio.director.get_version_pack": "Получить версию пакета", + "iris.director.commandstudio.param.dimension_get_version": "Размер получает версию", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Открыть шумоискатель (External GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Дополнительный генератор пакетов для предварительного просмотра", + "iris.director.commandstudio.param.seed_preview_generator_with": "Семя для предварительного просмотра генератора с", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Показать добычу, если грудь была прямо здесь", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Быстрое включение элементов в виртуальный инвентарь (может привести к снижению производительности)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Добавлять или не добавлять к инвентаризации, которая в настоящее время открыта (если ложная, клиры открыли инвентаризацию)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Вычислите вероятность для каждого региона", + "iris.director.commandstudio.param.radius_chunks": "Радиус в чанках", + "iris.director.commandstudio.director.render_world_map_external_gui": "Внешняя карта мира (External GUI)", + "iris.director.commandstudio.param.world_open_generator": "Мир открывает генератор для", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Упаковать размер в сжатый формат", + "iris.director.commandstudio.param.dimension_pack_compress": "Пакет размеров для сжатия", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Запутать или не запутать пакет", + "iris.director.commandstudio.param.whether_not_minify_pack": "Уменьшать или не уменьшать размер упаковки", + "iris.director.commandstudio.director.profiles_performance_dimension": "Профиль производительности измерения", + "iris.director.commandstudio.param.dimension_profile": "Размерность для профиля", + "iris.director.commandstudio.director.spawn_iris_entity": "Создать сущность Iris", + "iris.director.commandstudio.param.entity_spawn": "Создаваемая сущность", + "iris.director.commandstudio.param.location_spawn_entity_at": "Место создания сущности", + "iris.director.commandstudio.director.teleport_active_studio_world": "Телепорт в активный студийный мир", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Обновите свои проекты измерений VSCode рабочее пространство", + "iris.director.commandstudio.param.dimension_update_workspace": "Измерение для обновления рабочего пространства", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Захватить IGenData Отчёт для ближайших кусков", + "iris.director.commandwhat.director.iris_what": "Iris Что?", + "iris.director.commandwhat.director.what_is_my_hand": "Что у меня в руке?", + "iris.director.commandwhat.director.what_biome_am_i": "В каком биоме я нахожусь?", + "iris.director.commandwhat.director.what_region_am_i": "В каком регионе я нахожусь?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "На какой блок я смотрю?", + "iris.director.commandwhat.director.show_markers_chunk": "Показать маркеры в куске", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Имя маркера, например cave_floor или cave_ceiling", + "iris.modded.help.entry.command.version": "Печатная версия Информация", + "iris.modded.help.entry.command.info": "Список загруженных Iris размеры и детали упаковки", + "iris.modded.help.entry.command.what": "Проверить Iris Биом, область, пещерный биом, поверхность и кусок в вашем положении, блок, на который вы смотрите, удерживаемый элемент или близлежащие маркеры", + "iris.modded.help.entry.group.find": "Найти и телепортировать Iris биомы, области, объекты, Iris Структуры, родные структуры и точки интереса", + "iris.modded.help.entry.command.tp": "Телепортируйте себя или названного игрока в загруженный Iris измерение", + "iris.modded.help.entry.command.evacuate": "Телепортировать всех игроков из измерения Iris на точку спавна основного мира", + "iris.modded.help.entry.command.seed": "Показать информацию о сиде мира и движка", + "iris.modded.help.entry.command.debug": "переключаться Iris Отладка и сохранение settings.json", + "iris.modded.help.entry.command.reload": "Перезагрузить settings.json (также автоматически загружается каждые 3 секунды)", + "iris.modded.help.entry.command.download": "Скачать пакетный проект", + "iris.modded.help.entry.command.metrics": "Метрики генерации печати для вашего текущего Iris измерение", + "iris.modded.help.entry.command.regen": "Удалить и регенерировать близлежащие чанки на месте", + "iris.modded.help.entry.group.pregen": "Прегенерировать Iris измерение", + "iris.modded.help.entry.command.wand": "Найди Iris объектная палочка", + "iris.modded.help.entry.group.object": "Инструменты палочки объектов, сохранения, вставки, анализа и отмены", + "iris.modded.help.entry.group.edit": "Откройте пакетные файлы область биомассы и dimension json в редакторе рабочего стола", + "iris.modded.help.entry.command.create": "Создавать и вводить постоянный Iris размерность; пакет цитат:dimensionKey Чтобы выбрать конкретный размер упаковки", + "iris.modded.help.entry.group.studio": "Создание пакетного проекта, упаковка и отчеты", + "iris.modded.help.entry.group.pack": "Проверка упаковки и техническое обслуживание", + "iris.modded.help.entry.group.world": "Время выполнения Iris Создание, удаление и статус измерения", + "iris.modded.help.entry.group.datapack": "Установка Мировой пакет данных и статус помощников", + "iris.modded.help.entry.group.structure": "Iris Индекс структуры, информация и инструменты размещения", + "iris.modded.help.entry.command.goldenhash": "Генерировать детерминированные хэши блоков для тестирования паритета", + "iris.modded.help.entry.group.developer": "Диагностика разработчиков: тест Sentry, сетевые интерфейсы, региональное сканирование файлов", + "iris.modded.help.entry.command.biome": "Найти Iris биом", + "iris.modded.help.entry.command.region": "Найти Iris регион", + "iris.modded.help.entry.command.object": "Найти объект размещения", + "iris.modded.help.entry.command.structure": "Найти Iris- размещенная или нативная/структура пакета данных", + "iris.modded.help.entry.command.poi": "Найдите поддерживаемую точку интереса", + "iris.modded.help.entry.command.biome_2": "Откройте биом-джон в редакторе рабочего стола; ни один ключ не открывает биом на вашем месте.", + "iris.modded.help.entry.command.region_2": "Откройте регион json в редакторе рабочего стола; ни один ключ не открывает область на вашем месте", + "iris.modded.help.entry.command.dimension": "Открыть JSON измерения текущего пака в настольном редакторе", + "iris.modded.help.entry.command.start": "Запуск прегенерации; радиус в блоках, кэш-память контрольной точки по умолчанию, центр через 'at Флаги составляют в любом порядке", + "iris.modded.help.entry.command.stop": "Остановите активную задачу прегенерации", + "iris.modded.help.entry.command.pause": "Пауза или возобновление прегенерации", + "iris.modded.help.entry.command.status": "Статус прегенерации", + "iris.modded.help.entry.command.wand_3": "Найди Iris объектная палочка", + "iris.modded.help.entry.command.dust": "Получите пыль, которая показывает размещение объектов", + "iris.modded.help.entry.command.save": "Сохранить выбранный объем палочки как объект", + "iris.modded.help.entry.command.paste": "Вставить объект в вашей или указанной позиции, при необходимости повернув", + "iris.modded.help.entry.command.expand": "Расширьте выбор палочки в вашем направлении взгляда", + "iris.modded.help.entry.command.contract": "Контракт с выбором палочки в вашем направлении взгляда", + "iris.modded.help.entry.command.shift": "Сдвиньте выбор палочки в вашем направлении взгляда", + "iris.modded.help.entry.command.position1": "Точка выбора 1", + "iris.modded.help.entry.command.position2": "Точка выбора 2", + "iris.modded.help.entry.command.x_y": "Автовыбор вверх и наружу", + "iris.modded.help.entry.command.x_y_2": "Автовыбор вверх, вниз и наружу", + "iris.modded.help.entry.command.analyze": "Показать объектную композицию", + "iris.modded.help.entry.command.shrink": "Сократите объект до минимального размера", + "iris.modded.help.entry.command.plausibilize": "Выращивайте ветви, чтобы листья деревьев пережили распад vanilla", + "iris.modded.help.entry.command.undo": "Отменить вставленные объекты", + "iris.modded.help.entry.command.create_2": "Создание нового пакетного проекта", + "iris.modded.help.entry.command.package": "Упаковать размер в сжатый формат", + "iris.modded.help.entry.command.version_2": "Печать пакетной версии", + "iris.modded.help.entry.command.regions": "Распределение близлежащих регионов", + "iris.modded.help.entry.command.open": "Откройте временное студийное измерение для пакета", + "iris.modded.help.entry.command.close": "Закройте открытое студийное измерение и отбросьте его мир", + "iris.modded.help.entry.command.tpstudio": "Телепорт в открытое студийное измерение", + "iris.modded.help.entry.command.status_studio": "Показать открытое студийное измерение и его пакет", + "iris.modded.help.entry.command.noise": "Откройте Инструмент исследования шума GUI на дисплее сервера", + "iris.modded.help.entry.command.map": "Откройте карту видения GUI на серверном дисплее", + "iris.modded.help.entry.command.vscode": "Восстановите пространство .code-work для пакета и откройте его в редакторе рабочего стола", + "iris.modded.help.entry.command.update": "Восстановление .code-workspace для пакета", + "iris.modded.help.entry.command.importvanilla": "Объясните рабочий процесс импорта vanilla", + "iris.modded.help.entry.command.validate": "Проверить пак или каждую упаковку", + "iris.modded.help.entry.command.cleanup": "Предварительный просмотр или карантин неиспользуемых ресурсов кандидатов", + "iris.modded.help.entry.command.restore": "Просмотр или восстановление последнего карантина", + "iris.modded.help.entry.command.status_validation": "Показать статус валидации", + "iris.modded.help.entry.command.enable": "Создавать и вводить постоянный Iris Размер во время выполнения; загружает пакет, если его нет, цитирую:dimensionKey Чтобы выбрать конкретный размер упаковки", + "iris.modded.help.entry.command.replace_overworld": "Введите Iris Основной мир и маршрутные игроки вместо vanilla мира", + "iris.modded.help.entry.command.disable": "эвакуировать и разгрузить Iris размерность; мировые данные на диске сохраняются для повторного включения", + "iris.modded.help.entry.command.delete": "инвалид Iris размерность и стереть данные о куске и Mantle с диска", + "iris.modded.help.entry.command.list": "Список загруженных Iris размеры", + "iris.modded.help.entry.command.status_world": "Шоу заряжено Iris Размеры и сконфигурированный первичный мир", + "iris.modded.help.entry.command.status_datapack": "Проверка загружена Iris Переопределение типа размерности", + "iris.modded.help.entry.command.install": "Установка оверрайдов типа размерности для загруженных Iris размеры", + "iris.modded.help.entry.command.list_datapacks": "Список настроенных и установленных пакетов данных", + "iris.modded.help.entry.command.ingest": "Объяснять Bukkit Datapack глотает рабочий процесс", + "iris.modded.help.entry.command.remove": "Объясните рабочий процесс удаления пакета данных", + "iris.modded.help.entry.command.list_structures": "восстанавливать structure-index.json", + "iris.modded.help.entry.command.info_2": "Разрешить один Iris График структуры и границы отчета", + "iris.modded.help.entry.command.place": "Собрать и разместить Iris Структура в вашем месте", + "iris.modded.help.entry.command.import": "Объяснять Bukkit Структура импортного рабочего процесса", + "iris.modded.help.entry.command.capture": "Объяснять Bukkit Структура захвата рабочего процесса", + "iris.modded.help.entry.command.verify": "Сообщение родного и Iris Достижимость структуры в текущем измерении", + "iris.modded.help.entry.command.sentry": "Отправить тестовое исключение из Iris репортер ошибок", + "iris.modded.help.entry.command.network": "Список сетевых интерфейсов и их адреса", + "iris.runtime.progress.finding_regions": "Поиск регионов", + "iris.runtime.progress.converting": "преобразовывать", + "iris.runtime.status.running": "бегать", + "iris.runtime.status.stopped": "остановлен", + "iris.runtime.status.paused": "Задержанный", + "iris.runtime.status.paused_lower": "останавливаться", + "iris.runtime.status.running_lower": "бегать", + "iris.runtime.status.enabled": "включено.", + "iris.runtime.status.disabled": "инвалид.", + "iris.runtime.status.unregistered": "незарегистрированный", + "iris.runtime.status.none": "ни одного", + "iris.runtime.status.random": "случайный", + "iris.runtime.status.match": "совпадение", + "iris.runtime.status.mismatch": "несоответствие", + "iris.runtime.status.true": "истинный", + "iris.runtime.status.false": "ложный", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " переписывать", + "iris.runtime.datapack.override_suffix": " (всемирный пакет данных установлен)", + "iris.runtime.primary_world.players_routed_suffix": " (Игроки направляются туда)", + "iris.runtime.primary_world.routing_disabled_suffix": " (маршрутизация отключена)", + "iris.runtime.modded.no_dimension_match": "Нет. Iris размерность соответствует{filter}'.", + "iris.runtime.teleport.world": "Вас телепортировали в {world}.", + "iris.runtime.engine.hotloaded": "Двигатель горячий", + "iris.runtime.job.completed": "завершенный {job} в {duration}", + "iris.runtime.job.scanning_selection": "Выбор сканирования", + "iris.runtime.job.loading_chunks": "Загрузка кусков", + "iris.runtime.job.searched_chunks": "В поисках {chunks} Куски", + "iris.runtime.job.compile": "компилировать", + "iris.runtime.job.saving_object": "Экономия объекта", + "iris.runtime.job.downloading": "Скачать", + "iris.runtime.job.extracting": "извлечение", + "iris.runtime.job.installing": "установка", + "iris.runtime.compile.iob_empty": "- IOB {file} иметь 0 Блоки!", + "iris.runtime.compile.iob_empty_hover": "Ошибка:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} Это не 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Ошибка:\n{path}\nШирина, высота или глубина равна нулю (плохой формат)", + "iris.runtime.compile.json_error": "- JSON ошибка {file}", + "iris.runtime.compile.json_error_hover": "Ошибка:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Не могу найти погрузчика для {path}", + "iris.runtime.datapack.name": "Iris Мировое поколение", + "iris.runtime.pack.already_exists": "Пакет уже существует!", + "iris.runtime.tree_plausibilize.dry_suffix": ", пробный", + "iris.runtime.tree_plausibilize.skip_load": "пропустить {object}Не удалось загрузить", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} древесина (отделения {branches}), {converted} листья->wood, ~{distances} расстояния", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} древесина (отделения {branches}), {converted} листья->wood, ~{distances} расстояния, !{pinned} приколоты", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "провал {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Сделано: {processed} обработанный, {changed} изменился, {skipped} пропущенный, {failed} неудачный", + "iris.runtime.tree_plausibilize.done_dry": "Сделано: {processed} обработанный, {changed} изменился, {skipped} пропущенный, {failed} Неудачный (сухой бег, ничего не написано)", + "iris.runtime.tree_plausibilize.totals": "Итоги: +{wood}древесина{branches}ветви,{converted}листья>Древесина.{distances}Расстояния!{pinned}недоступный, недостижимый{before} -> {after}", + "iris.runtime.item.wand.name": "Жезл Iris", + "iris.runtime.item.wand.lore.first": "Левый щелкните блок, чтобы установить первый угол", + "iris.runtime.item.wand.lore.second": "Правильно нажмите блок, чтобы установить второй угол", + "iris.runtime.item.dust.name": "Пыль раскрытия", + "iris.runtime.item.dust.lore": "Правильно нажмите блок, чтобы раскрыть его структуру размещения!", + "iris.runtime.wand.position_set": "Позиция {position} устанавливать {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Это измерение не было создано Iris.", + "iris.runtime.dust.found_object": "Найден объект {object}", + "iris.runtime.dust.revealed": "раскрытый {count} блок(ы) {object}", + "iris.runtime.dust.revealed_capped": "раскрытый {count} блок(ы) {object} (удар)", + "iris.runtime.dust.header": "--- Iris Пыль @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Блок: {block}", + "iris.runtime.dust.position.above": "Должность: +{offset} выше поверхность (поверхность Y ={surfaceY})", + "iris.runtime.dust.position.below": "Должность: {offset} ниже поверхности (поверхность Y ={surfaceY})", + "iris.runtime.dust.position.at": "Положение: на поверхности (Y ={surfaceY})", + "iris.runtime.dust.object_at_block": "Объект @block: {object}", + "iris.runtime.dust.none": "ни одного", + "iris.runtime.dust.placed_by.object_above": "Помещение: объект/наклон{object}(над поверхностью)", + "iris.runtime.dust.placed_by.decoration_above": "Размещено: отделка/объект/наклон (над поверхностью)", + "iris.runtime.dust.placed_by.buried_object": "Местонахождение: Захороненный объект{object}'", + "iris.runtime.dust.placed_by.terrain": "Расположено: слой местности (глубина {depth} ниже поверхности)", + "iris.runtime.dust.column_object": "Объект колонки: {object} -> Этот блок, вероятно, является сваями объекта", + "iris.runtime.dust.column_object_none": "Объект колонки: {detail}", + "iris.runtime.dust.column_none": "Нет в пределах 64 (декоратор или местность, а не свая объекта)", + "iris.runtime.dust.column.above": "{object} @Y={y} (выше)", + "iris.runtime.dust.column.below": "{object} @Y={y} (ниже)", + "iris.runtime.dust.surface_biome": "Поверхностный биом: {biome}", + "iris.runtime.dust.surface_biome_detail": "Поверхностный биом: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Биом @Y: {biome}", + "iris.runtime.dust.cave_biome": "Пещера/Mantle Биом: {biome}", + "iris.runtime.dust.server_biome": "Серверный биом: {biome} (ID: {id})", + "iris.runtime.dust.region": "Регион: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Объекты в куске: {objects}", + "iris.runtime.dust.copy_button": "[Нажмите, чтобы скопировать эту статистику]", + "iris.runtime.dust.copy_hover": "Копировать статистику блоков в буфер обмена", + "iris.runtime.pregen.starting": "Iris Преген начинается...", + "iris.runtime.pregen.header": "Iris преген", + "iris.runtime.pregen.bossbar.paused": "Iris преген {generated}/{total} {percent}% приостановлено", + "iris.runtime.pregen.bossbar.running": "Iris преген {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " неудачный {failed}", + "iris.runtime.pregen.status.context": "измерение {dimension} · Метод {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Куски {generated}/{total} · Скорость {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Куски {generated}/{total} · Скорость {speed}/s · Неудачный {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · истек {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · истек {elapsed} · приостановлено", + "iris.runtime.pregen.button.pause": "Пауза/резюме", + "iris.runtime.pregen.button.pause.hover": "Состояние прегенерации переключение прегенерации", + "iris.runtime.pregen.button.stop": "Стоп!", + "iris.runtime.pregen.button.stop.hover": "Завершите текущий регион и остановите прегенерацию", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cПакеты / папки не найдены.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eНикаких пакетов для проверки.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aПроверка завершена. Сломанные пакеты: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cПакуй.{pack}Не найденный под packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aКандидатов на уборку не нашли.{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aкарантин {size} кандидат(ы) на уборку {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cРежим очистки должен быть предварительным просмотром или применяться.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aКандидатов на уборку не нашли.{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eОчистить превью для пакета{pack}': {size} кандидат(ы). Файлы не менялись.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Беги. /iris pack cleanup {pack} mode=apply Карантин этих кандидатов после свежего сканирования.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cВосстановление отказалось, потому что {size} Пункт (ы) назначения уже существует.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eНечего восстанавливать для упаковки{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aвосстановленный {size} файл(ы) из {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cРежим восстановления должен быть предварительным просмотром или применяться.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eНечего восстанавливать для упаковки{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eВосстановить превью для {dumpPath}: {size} Файл(ы). Файлы не менялись.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cВосстановление блокируется {size} Существующий пункт(ы).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Беги. /iris pack restore {pack} mode=apply Восстановление после новой проверки конфликта.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eРезультаты проверки не зафиксированы. Беги. /iris pack validate Сначала.", + "iris.bukkit.runtime.commandpack.status.ok": "§aХорошо.§r {pack}§7 (блокировка ={blocking}Предупреждения ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cсломанный§r {pack}§7 (блокировка ={blocking}Предупреждения ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cУборка провалилась: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cВосстановление провалилось: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "все еще карантин", + "iris.bukkit.runtime.commandpack.path.quarantined": "карантин", + "iris.bukkit.runtime.commandpack.path.candidate": "кандидат", + "iris.bukkit.runtime.commandpack.path.conflict": "конфликт", + "iris.bukkit.runtime.commandpack.path.restored": "восстановленный", + "iris.bukkit.runtime.commandpack.path.file": "файл", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eНет результатов проверки на '{pack}'. Беги. /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cПроверка \"{name}Не удалось: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aПакуй.{packName}Заряжается.§7 (предупреждения ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cПакуй.{packName}это повреждён:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... и {count} Больше предупреждений.", + "one": "§7 ... и {count} Больше предупреждений." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cВсегда создавайте резервную копию перед использованием этой функции", + "§eВозможные проблемы включают, помимо прочего:", + "§e - Повреждённые чанки (обрезанные края) между старыми и новыми чанками (до обновления & после него)", + "§e - Перегенерированные чанки, которые не стыкуются со старыми чанками", + "§e - Структуры, которые не появляются повторно при регенерации", + "§e - Несовпадающие пещеры", + "§e - Несовпадающие слои рельефа", + "§cКогда вы понимаете риски и создали резервную копию:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aимпортировать §f{total}§a vanilla & структуры пакета данных (режим ={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[ошибка] {keyString}Недействительный ключ", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[пропуск] {keyString}Нет единого шаблона NBT Ваниль строит это в коде или из отдельных шаблонов (импортируется через проход шаблонов); ничего не импортировать как одну структуру.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[ошибка] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aПолный импорт: §f{imported}§a импортный, §f{skipped}§a пропущенный, §f{failed}§a не удалось (§f{total}§a Всего).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aСтроительство одношаблонных конструкций из импортных деталей (один вариант размещается на поколение)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[группа] {value} -> {value2} ({blocks} варианты)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[пропуск] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[ошибка] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aОдношаблонные структуры: §f{imported}§a построенный, §f{skipped}§a пропущенный, §f{failed}§a провалился.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cНе удалось перечислить шаблоны структуры через сервер ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eПод «структурным» ресурсным путем не было найдено шаблонов структуры.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aимпортировать §f{total}§a Структурные шаблоны (режим ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[ошибка] {keyString}Недействительный ключ", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[ошибка] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} импортный, {skipped} пропущенный, {failed} не удалось)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aПолный импорт шаблонов: §f{imported}§a импортный, §f{skipped}§a пропущенный, §f{failed}§a не удалось (§f{total}§a Всего).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eСтруктуры datapack (non-minecraft) не зарегистрированы. Сначала загрузите datapack и перезапустите сервер, затем выполните команду снова.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aимпортировать §f{total}§a структуры пакета данных (режим ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[ошибка] {keyString}Недействительный ключ", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[ошибка] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aимпортировать §f{size}§a шаблоны структуры пакета данных...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[ошибка] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[ошибка] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eНевозможно перечислить шаблоны пакетов данных через сервер ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aИмпорт структуры пакета данных завершен: §f{imported}§a импортный, §f{skipped}§a пропущенный, §f{failed}§a провалился.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eЗахват структуры не поддерживается активным NMS переплетение; пропуск прохода захвата.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Никаких кодовых структур не осталось для захвата (все уже импортировано как структура).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aзахватывать §f{total}§a кодовые структуры (не NBT Шаблон) в царапина мир (пропуск любой шире / тише, чем {MAXSPAN} блоки)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[пропуск] {key}Не помещал здесь захватываемую структуру (слишком большое, неправильное измерение или отсутствие правильного размещения в плоском мире). Остается vanillaным.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[ошибка] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[захват] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[ошибка] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} захваченный, {skipped} пропущенный, {failed} не удалось)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aСтруктура захвата полная: §f{imported}§a захваченный, §f{skipped}§a пропущенный, §f{failed}§a не удалось (§f{total}§a Всего).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eНи одно vanillaное дерево / объект не подвергается воздействию активного NMS Связывание (только импортные структуры).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aимпортировать §f{total}§a vanillaное дерево/объектные особенности (§f{wantVariants}§a Варианты каждый) в царапина мир...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[пропуск] {key}: функция ничего не помещает после повторных попыток.", + "iris.bukkit.runtime.featureimporter.fail": "§c[ошибка] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} импортный, {skipped} пропущенный, {failed} не удалось)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aОсобенность импорта полная: §f{imported}§a особенности написанного, §f{skipped}§a пропущенный, §f{failed}§a не удалось (§f{total}§a Всего).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cНе смог создать мир царапин для импорта функций ({error}); пропуская проход дерева/объекта.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Нет схематических файлов для преобразования, найденных в {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aпреобразованный {name} -> {value} в {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aпреобразованный {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cНе удалось спасти: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cНе удалось конвертировать: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Преобразовано: {get} в {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cНекоторые схемы не удалось конвертировать. Проверьте консоль для деталей.", + "iris.bukkit.runtime.studiosvc.installing_package": "Установка пакета: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "В поисках пакета: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Найден {type}.iris в {WORKSPACENAME} папка", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Найден {type} измерение {WORKSPACENAME} папка. Упаковка", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Не могу найти {name} В размерной папке этой паки! Провал!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Не могу загрузить размер! Провал!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} Тип установлен. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Пакуй.{key}Не было найдено в списке упаковки.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Использовать /iris download branch= Скачать вручную.", + "iris.bukkit.runtime.studiosvc.failed_download": "Не удалось скачать{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Не удалось скачать IrisDimensions/overworld бета-версия.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Не удалось скачать{repo}' (ветка {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Не удалось открыть студию: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Не может открыть студию{dimm}У пакета есть ошибки блокировки:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Исправьте пакет и бегите /iris pack validate {dimm} чтобы подтвердить.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Не удалось закрыть существующий студийный проект: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Не удалось закрыть существующий студийный проект: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Не удалось открыть студию: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Не смог найти пакет для создания нового измерения.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Пропавший файл импортного измерения", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "импортировать {downloadable} В новый проект {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7объектный редактор: нет ячейки под кликом (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: сохранение §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7объектный редактор: никаких изменений{pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Разработчик: пустая клетка{pack}/{key}(нечего писать).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: нет целевого файла для {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aРазработчик:Save §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cРазработчик: Спасти не удалось{pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Невозможно загрузить размер\".{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Не удалось установить размерный погрузчик", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cОткрытая студия провалилась: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cОткрытая студия провалилась.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aСтудия готова §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Сериализация объектов", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Написал еще один {g} Объекты", + "iris.bukkit.runtime.irisproject.package_compiled": "Составлен пакет!", + "iris.bukkit.runtime.irisproject.failed": "Провал!", + "iris.bukkit.runtime.irisengine.total": "Всего: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Двигатель §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Подробности: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} Это не определено в измерении!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cНе мог найти {message} в пределах диапазона поиска.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aТелепортировать в {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} в: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Вы были эвакуированы из этого мира.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Вы были эвакуированы из этого мира. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Есть некоторые Iris Пакеты, в которых есть собственные биомы", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Вам нужно перезагрузить сервер, чтобы использовать эти пакеты.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Недостаточные разрешения", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Там либо нет подкоманды или у вас нет разрешения на их использование.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Параметры игнорируются: {m}", + "iris.runtime.studio.opening": "§6Studio §bОТКРЫТИЕ", + "iris.runtime.studio.opening_progress": "§6Studio §bОТКРЫТИЕ§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cОШИБКА§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aГОТОВО§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cОШИБКА§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aСтудия готова§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Инициализация", + "iris.runtime.studio.stage.queued": "В очереди", + "iris.runtime.studio.stage.resolve_dimension": "Определение измерения", + "iris.runtime.studio.stage.prepare_world_pack": "Подготовка пака мира", + "iris.runtime.studio.stage.install_datapacks": "Установка датапаков", + "iris.runtime.studio.stage.create_world": "Создание мира", + "iris.runtime.studio.stage.apply_world_rules": "Применение правил мира", + "iris.runtime.studio.stage.prepare_generator": "Подготовка генератора", + "iris.runtime.studio.stage.request_entry_chunk": "Загрузка входного чанка", + "iris.runtime.studio.stage.resolve_safe_entry": "Поиск безопасной точки спавна", + "iris.runtime.studio.stage.teleport_player": "Телепортация", + "iris.runtime.studio.stage.finalize_open": "Завершение", + "iris.runtime.studio.stage.cleanup": "Очистка", + "iris.runtime.world_create.teleport_failed": "§eМир был создан, но автоматический телепорт провалился. Попробуйте /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} чанки", + "iris.runtime.world_create.console": "§6генерировать §e{percent}%§7 {generated}/{required} чанки§8 ({remaining} осталось)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fгенерирующий", + "iris.runtime.world_create.pregen.console": "§6генерирующий §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Реген", + "iris.runtime.chunk_job.title.delete": "Исключить", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Подготовка", + "iris.runtime.chunk_job.stage.clearing": "Очистка", + "iris.runtime.chunk_job.stage.resetting_mantle": "Сброс Mantle", + "iris.runtime.chunk_job.stage.regenerating": "регенерирующий", + "iris.runtime.chunk_job.stage.generating": "генерировать", + "iris.runtime.chunk_job.stage.comparing": "сравнивать", + "iris.runtime.chunk_job.stage.diagnosing": "диагностика", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bработа", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} чанки в {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} чанки в {elapsed} ({failures} не удалось)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aСделано§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cнесостоявшийся§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aСделано§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cнеудачник§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} Полное: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} Окончание ошибок: {summary}", + "iris.runtime.golden.no_capture": "Никакого золотого захвата {path}Сначала проведите захват.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash аборт: {failed} Куски не удалось создать. Золотого файла не написано.", + "one": "GoldenHash аборт: {failed} Кусок не удалось сгенерировать. Золотого файла не написано." + }, + "iris.runtime.golden.failed": "GoldenHash Неудачный: {error}", + "iris.runtime.golden.mantle_reset": "Mantle перезагрузка ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle Перезагрузка не удалась ({type}); продолжение существующего мантийного состояния.", + "iris.runtime.golden.captured": "Золотая пленка: {chunks} Комбинированные чанки ={hash}", + "iris.runtime.golden.wrong_world": "Золотой файл для dim={goldenDimension} семя ={goldenSeed} Но этот мир тусклый{dimension} семя ={seed}. Аборт.", + "iris.runtime.golden.version_warning": "Золото было захвачено на mc={goldenVersion}Бегущий mc={version}. Диффы могут быть вызваны версией.", + "iris.runtime.golden.match": "Голден Матч:{current}/{golden}чанки,combined={hash}", + "iris.runtime.golden.mismatch": "ЗОЛОТОЙ МИСМАТЧ:{mismatches}/{chunks}Куски отличаются.", + "iris.runtime.golden.mismatch_chunk": " чанк {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (пропал в золотом)", + "iris.runtime.golden.mismatch_more": " ... и {count} больше", + "iris.runtime.golden.current_written": "Современные хэши, написанные для {file}", + "iris.runtime.golden.diag.stable": "Повторный ген стабильноперезагрузка Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Повторный ген нестабильно ({diffs}+ блочные диффы), перезагрузка Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "стабильно (Перестройка Mantle воспроизводит результаты сканирования)", + "iris.runtime.golden.diag.mantle_diverged": "расхождение ({diffs}+ различий — сборка Mantle зависит от состояния/порядка)", + "iris.runtime.golden.diag.mantle_skipped": "пропущено ({type})", + "iris.runtime.golden.diag.failed": "Диагностика провалилась: {error}", + "iris.runtime.golden.started": "GoldenHash Начало: {chunks} чанки вокруг 0,0 в буферах (нетронутый мир), нити{threads} режим{mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] чанк {x},{z} хешированный", + "iris.runtime.golden.chunk_failed": "Кусок {x},{z} не удалось: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Недействительное название упаковки {pack} (допускается: a-z, 0-9, и -)", + "iris.runtime.pack_download.invalid_branch_name": "Недействительное название филиала {branch} (разрешено: буквы, цифры, ). и -", + "iris.runtime.pack_download.failed": "Пакет скачать не удалось: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Скачать {url}", + "iris.runtime.pack_download.failed_to_find": "Не удалось найти стаю {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Убедитесь, что вы указали правильное РЕПО и ответвление!", + "iris.runtime.pack_download.example_command": "Например: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "распаковка {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Проблемы при распаковке. Пожалуйста, проверьте / сделайте следующее:", + "1. У вас есть функционирующее интернет-соединение?", + "2. Загрузка была повреждена?", + "3. Попробуйте удалить */plugins/iris/packs папка и перезагрузка.", + "4.Скачать пакет из репо GitHub: https://github.com/IrisDimensions/overworld", + "5. Контактная поддержка (если все остальные варианты не помогают)" + ], + "iris.runtime.pack_download.no_extracted_files": "Файлы не были извлечены из ZIP-файла.", + "iris.runtime.pack_download.home_directory_error": "Ошибка при поиске домашнего каталога. Есть ли в имени файла нетекстовые символы?", + "iris.runtime.pack_download.invalid_archive_format": "Недействительный формат. Недостающая корневая папка или слишком много папок!", + "iris.runtime.pack_download.no_dimension_file": "Файл размерности не найден в извлеченном файле zip.", + "iris.runtime.pack_download.check_github": "Убедитесь, что он присутствует на GitHub Сообщите об этом сотрудникам!", + "iris.runtime.pack_download.one_dimension_required": "Папка размерностей должна содержать ровно один файл.", + "iris.runtime.pack_download.invalid_dimension": "Недействительная размерная папка под dimensions/.", + "iris.runtime.pack_download.importing": "импортировать {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Еще одно измерение в папке пакетов уже использует ключ {key}. Импорт провалился!", + "iris.runtime.pack_download.pack_key_conflict": "Другой пакет использует ключ. {key}. Импорт провалился!", + "iris.runtime.pack_download.acquired": "Успешно приобретенный {name}.", + "iris.runtime.pack_download.validation_failed": "Пакуй.{pack}Неудачная проверка; мир и создание студии будут отклонены. Причины:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Пакуй.{pack}подтвержденный {count} предупреждения.", + "one": "Пакуй.{pack}подтвержденный {count} предупреждение." + }, + "iris.runtime.pack_download.validated": "Пакуй.{pack}Подтверждено.", + "iris.client.vision.title": "Iris Видение", + "iris.client.vision.connecting": "Подключение к Iris сервер...", + "iris.client.vision.not_connected": "не подключенный", + "iris.client.vision.not_iris_world": "Ни один Iris мир", + "iris.client.vision.no_dimension_data": "Нет данных измерений", + "iris.client.vision.header_detail": "{status} увеличение {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "перетаскивать на свиток, чтобы увеличить бегство скачать", + "iris.client.vision.dimension_pack": "{dimension} пак {pack}", + "iris.client.toast.studio_hotload": "Студия Hotload", + "iris.client.toast.changed_files": { + "other": "{count} файлы", + "one": "{count} файл" + }, + "iris.client.toast.reload_failed": "перезарядка не удалась", + "iris.client.toast.reloaded": "перезаряжать", + "iris.client.toast.pack_failed": "{pack} неудачный", + "iris.client.what.title": "Iris Что?", + "iris.client.what.querying": "Запрос {x}, {z}...", + "iris.client.what.biome": "Биом: {biome}", + "iris.client.what.region": "Регион: {region}", + "iris.client.what.cave": "Пещера: {cave}", + "iris.client.what.height": "Высота: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "приостановлено", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aАйрис", + "iris.bukkit.scoreboard.speed": "§aСкорость§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bКэш§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bМантия§7: {count}", + "iris.bukkit.scoreboard.carving": "§dрезьба§7: {state}", + "iris.bukkit.scoreboard.region": "§bрегион§7: {region}", + "iris.bukkit.scoreboard.biome": "§bбиом§7: {biome}", + "iris.bukkit.scoreboard.height": "§bвысота§7: {height}", + "iris.bukkit.scoreboard.slope": "§bСклон§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bБУД/s§7: {updates}", + "iris.desktop.vision.title": "Iris Видение", + "iris.desktop.vision.view": "Посмотреть:", + "iris.desktop.vision.grid": "сетка", + "iris.desktop.vision.follow": "Следить", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "освежающий", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Сброс Zoom", + "iris.desktop.vision.grid_enabled": "Сетка включена", + "iris.desktop.vision.grid_disabled": "Сетка отключена", + "iris.desktop.vision.following": "Отслеживается {player}", + "iris.desktop.vision.no_player": "Нет игрока в мире", + "iris.desktop.vision.follow_disabled": "Следить за инвалидами", + "iris.desktop.vision.low_quality": "Низкое качество", + "iris.desktop.vision.high_quality": "Высокое качество", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp. {width} x {height} блок", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Должность: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Здоровье: {health} / {maximum}", + "iris.desktop.vision.block_position": "блокировать {x}, {z}", + "iris.desktop.vision.chunk_position": "Кусок {x}, {z}", + "iris.desktop.vision.region_position": "регион {x}, {z}", + "iris.desktop.vision.biome_key": "Ключ: {key}", + "iris.desktop.vision.biome_file": "Файл: {file}", + "iris.desktop.vision.velocity": "Скорость: {velocity}", + "iris.desktop.vision.tiles": "Плитка: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Рабочие: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Центр: {x}, {z}", + "iris.desktop.vision.help.toggle": "Помощь в переключении", + "iris.desktop.vision.help.refresh": "Обновить плитку", + "iris.desktop.vision.help.follow": "Следуйте за игроком", + "iris.desktop.vision.help.zoom": "Zoom в / наружу", + "iris.desktop.vision.help.reset_zoom": "Сбросить зум", + "iris.desktop.vision.help.cycle_mode": "Режим рендеринга цикла", + "iris.desktop.vision.help.quality": "Качество плитки переключить", + "iris.desktop.vision.help.fps": "переключаться 30/60 FPS", + "iris.desktop.vision.help.grid": "Сетка переключения", + "iris.desktop.vision.help.biome": "Подробная информация о Biome", + "iris.desktop.vision.help.teleport": "Телепортировать на курсор", + "iris.desktop.vision.help.editor": "Открытый биом в редакторе", + "iris.desktop.vision.opened": "Открыто {target}", + "iris.desktop.vision.teleporting": "Телепортировать в {x}, {z}", + "iris.desktop.vision.mode.biome": "биом", + "iris.desktop.vision.mode.biome_land": "Биологическая земля", + "iris.desktop.vision.mode.biome_sea": "Биологическое море", + "iris.desktop.vision.mode.region": "регион", + "iris.desktop.vision.mode.cave_land": "Пещерная земля", + "iris.desktop.vision.mode.height": "высота", + "iris.desktop.vision.mode.object_load": "Объектная нагрузка", + "iris.desktop.vision.mode.decorator_load": "Загрузка декоратора", + "iris.desktop.vision.mode.continent": "континент", + "iris.desktop.vision.mode.layer_load": "Слойная нагрузка", + "iris.desktop.noise.title": "Шумный проводник", + "iris.desktop.noise.title_generator": "Шумный проводник: {generator}", + "iris.desktop.noise.search": "Поиск...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} Зум: {zoom} Величина: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "обычай", + "iris.desktop.noise.category.pack_generators": "Упаковочные генераторы", + "iris.desktop.noise.category.simplex": "Симплекс", + "iris.desktop.noise.category.perlin": "Перлин", + "iris.desktop.noise.category.cellular": "клеточный", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Кловер", + "iris.desktop.noise.category.hexagon": "шестиугольник", + "iris.desktop.noise.category.vascular": "сосудистый", + "iris.desktop.noise.category.globe": "Глобус", + "iris.desktop.noise.category.cubic": "кубический", + "iris.desktop.noise.category.fractal": "фрактальный", + "iris.desktop.noise.category.static": "статический", + "iris.desktop.noise.category.nowhere": "Нигде", + "iris.desktop.noise.category.sierpinski": "Серпинский", + "iris.desktop.noise.category.utility": "полезность", + "iris.desktop.noise.category.other": "другой", + "iris.desktop.pregen.initializing": "инициировать...", + "iris.desktop.pregen.title": "Прегеновский взгляд", + "iris.desktop.pregen.method_pending": "В ожидании", + "iris.desktop.pregen.paused": "приостановлено", + "iris.desktop.pregen.resume_hint": "Нажмите P, чтобы возобновить", + "iris.desktop.pregen.pause_hint": "Нажмите P, чтобы остановиться", + "iris.desktop.pregen.progress_paused": "приостановлено {generated} из {total} ({percent} полный)", + "iris.desktop.pregen.progress_saving": "экономить... {generated} из {total} ({percent} полный)", + "iris.desktop.pregen.progress_generating": "генерировать {generated} из {total} ({percent} полный)", + "iris.desktop.pregen.speed": "Скорость: {chunksPerSecond} чанки/s, {regionsPerMinute} области/м, {chunksPerMinute} чанки/м", + "iris.desktop.pregen.speed_cached": "Скорость: кэшировано {chunksPerSecond} чанки/s, {regionsPerMinute} области/м, {chunksPerMinute} чанки/м", + "iris.desktop.pregen.time": "{remaining} оставшееся ({elapsed} истекший)", + "iris.desktop.pregen.method": "Метод генерации: {method}", + "iris.desktop.pregen.memory": "Память: {used} ({usage}) Давление: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/tr_TR.json b/core/src/main/resources/languages/tr_TR.json new file mode 100644 index 000000000..a3b8c09be --- /dev/null +++ b/core/src/main/resources/languages/tr_TR.json @@ -0,0 +1,1435 @@ +{ + "locale": "tr_TR", + "messages": { + "director.help.navigation.parent.hover": "Üst komut grubuna dön", + "director.help.navigation.back": "Geri", + "director.help.no_subcommands": "Bu sayfada alt komut yok.", + "director.help.no_description": "Açıklama sağlanmadı", + "director.help.aliases": "Takma adlar", + "director.help.command_group": "Komut grubu. Açmak için tıklayın.", + "director.help.no_parameters": "Parametre yok. Komutu önceden doldurmak için tıklayın.", + "director.help.parameters": "Parametreler", + "director.help.parameter.required": "gerekli", + "director.help.parameter.optional": "isteğe bağlı", + "director.help.parameter.default": "varsayılan", + "director.help.navigation.previous.hover": "Önceki sayfa", + "director.help.navigation.next.hover": "Sonraki sayfa", + "director.help.navigation.page": "Sayfa", + "director.runtime.error.invalid_origin": "Bu komut bu kaynaktan çalıştırılamaz.", + "director.runtime.error.unknown_parameter": "Bilinmeyen parametre anahtarı: {key}", + "director.runtime.error.unexpected_argument": "Beklenmeyen bağımsız değişken \"{argument}\". İsteğe bağlı parametreler anahtarla belirtilmelidir, ör. seed=123", + "director.runtime.error.conversion_failed": "\"{value}\", {parameter} için {type} türüne dönüştürülemiyor", + "director.runtime.error.default_parse_failed": "{parameter} parametresinin varsayılan değeri ayrıştırılamıyor", + "director.runtime.error.missing_argument": "Eksik bağımsız değişken \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "{command} komutu çalıştırılamadı: {reason}", + "director.runtime.usage": "Kullanım: {usage}", + "iris.command.permission_denied": "'{permission}' iznine sahip değilsiniz", + "iris.command.unknown": "Bilinmeyen Iris komutu", + "iris.command.player_only": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.command.iris_world_required": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.command.reload.success": "Ayarlar ve {locale} dili yeniden yüklendi.", + "iris.command.reload.failed": "Ayarlar yeniden yüklendi, ancak {locale} dili reddedildi; {activeLocale} kullanılmaya devam ediliyor.", + "iris.modded.help.unknown_section": "Bilinmeyen Iris Yardım bölümü: {section}", + "iris.modded.help.back_hover": "Geri dön {parent}.", + "iris.modded.help.command_parameter": "Komut parametresi", + "iris.modded.help.parameter_required": "Bu parametre gereklidir.", + "iris.modded.help.parameter_optional": "Bu parametre isteğe bağlı.", + "iris.modded.help.brigadier_text": "Bu parametre metin olarak okunur Brigadier.", + "iris.modded.help.operator_notice": "Iris komutların operatör iznine ihtiyacı vardır ( seviye düzeyindeki 2).", + "iris.modded.help.operator_instruction": "{command} komutunu konsoldan çalıştırın (veya tek oyunculu oyunda hileleri etkinleştirin); o zamana kadar bu komutlar çalışmaz veya sekmeyle tamamlanmaz.", + "iris.modded.command.properties.none": "Özellikler: (hiçbiri)", + "iris.modded.command.properties.list": "Özellikler: {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Datapack ingest...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§ayapılandırılmış datapack import: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aİndirilen veri paketleri: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eAdd AddAdd Add Modrinth URLs Bir boyuta ‘datapackImports\" listesi, sonra çalıştırın /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash başlatıldı: {value} chunk...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash {rx},{rz} chunk'ında başarısız oldu: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash genel=§6{value}§a chunk={value2} katı={solidBlocks}, süre={value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Birde değil Iris Dünya!", + "iris.bukkit.commandfind.unknown_structure": "§cBilinmeyen yapı: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Bunu bir yapıya telgraf etmek için oyunda çalıştırın.", + "iris.bukkit.commandfind.locating": "§7Locatinging {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Bunu bir yapıya telgraf etmek için oyunda çalıştırın.", + "iris.bukkit.commandfind.locating_2": "§7Locatinging {structure}...", + "iris.bukkit.commandfind.teleported": "§a{structure} konumuna ışınlandı @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aBaşarılı bir şekilde kaldırıldı dünya klasörü", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aBaşarılı bir şekilde kaldırıldı dünya klasörü", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cDünyayı kaldırmak için başarısız oldu", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cBu sunucuda nesnelerle paketler bulunamadı.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cSeçilen paket (s) arasında yer alan nesneler yok.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§a nesne editörü için {scope} ({totalObjects} nesneler)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cnesne stüdyosunu açmaya başarısız oldu: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cBir paket adı belirtmelisiniz.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cPack \"{pack}“Geçmiş altında bulunamadı packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... ve {value} Daha fazlası.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aDoğru yapılar §f{value}§a -den {value2},{value3} içeride {searchRadius} chunk...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§avanilla içeriği ithal etmek §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§aimportvanilla tamamlandı: §f{imported}§a objects/structures yazılı, §f{failed}§a başarısız oldu.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Ağaçlar/objects altında objects/vanilla/...Onlara biyome nesne yerleştirmelerinden atıfta bulun.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cAçık stüdyo projeleri yok.", + "iris.bukkit.commandstudio.closing_studio": "§eKapanış stüdyosu...", + "iris.bukkit.commandstudio.studio_close_failed": "§cStüdyo yakın başarısız oldu: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cStüdyo yakın başarısız oldu: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStüdyo kapalı. Kalan dünya-aile temizliği, başlangıç düşüşü için sıralandı.", + "iris.bukkit.commandstudio.studio_closed": "§aStüdyo kapalı.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cHata ayıklama puan tablosunu değiştirmek için bir Studio dünyasında olmalısınız.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio debug puanboard {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cStudio debug puanboard'ı şu anda güncelleyemezdi.", + "iris.bukkit.commandstudio.opened_inventory": "§aAçıklanmış envanter!", + "iris.bukkit.commandstudio.generating_data": "§7Veriler...", + "iris.bukkit.commandstudio.done": "§aTamamlandı!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "İzinden yoksunsunuz ‘{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Durum:", + "iris.bukkit.irisenginestatus.service": "§5Hizmet: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Metriks: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Bakım Dönemi: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Worker Paralelism: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5Aktif Dünya Görevleri: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Tectonic Plakları:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Retention: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Heap Use: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5– Resident: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5– Queued: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Ortalama Idle Süre: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Max Idle Süre: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Min Idle Süre: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Rehberler:", + "iris.bukkit.irisenginestatus.resource": "§5- Kaynak: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§52D Stream: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§53D Stream: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5Diğer: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Diğer:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Dünyalar: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Yüklenmiş Chunks: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cDünya null.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cHedef bir hedef Iris Bir mantle çöp okumadan önce dünya.", + "iris.bukkit.commanddeveloper.upgrading": "§aYükseltmek için {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§atamamlandı yükseltme! Artık sunucu versiyonunu güncelleyebilirsiniz {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cRadius olmalı 0 veya daha büyük.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cBu bir şey değil Iris Dünya.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cBu dünya için motor erişimi null.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§asilme başladı: §6{chunks}§a chunk(s) çevresinde §6{centerX},{centerZ}§a. Blokları havaya temizlemek.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cRadius olmalı 0 veya daha büyük.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cRegen kullanmak için bir Iris dünyasında olmalısınız.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cBu dünya için motor erişimi null. İlk önce yakındaki chunks.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aRegen başladı: §6{chunks}§a chunk(s) çevresinde §6{centerX},{centerZ}§a. Yerde tekrarlamak ve yenidenjenize etmek.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cRadius olmalı 0 veya daha büyük.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cHedef bir hedef olmalıdır Iris Dünya.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cBu dünya için motor erişimi null.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash başladı: §6{chunks}§a chunk(s) çevresinde §6{centerX},{centerZ}§a Buffers'te (dünyaya)", + "iris.bukkit.commandedit.players_only": "§cOyuncular sadece!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cStüdyo dünyası açık değil!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cBir stüdyo dünyasında olmalısın!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cBaşsız ortamlarda açık dosyaları açamaz!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cMasaüstü bu ortamda desteklenmez!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Dosyayı bulamaz; Belki de doğrudan bir dosyadan yüklenmedi?", + "iris.bukkit.commandedit.opening_vscode": "§a{value} {value2}, VSCode içinde açılıyor! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cDosyayı bulamaz. Ya da kayıt sahibi mevcut değildir", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Dosyayı bulamaz; Belki de doğrudan bir dosyadan yüklenmedi?", + "iris.bukkit.commandedit.opening_vscode_2": "§a{value} {value2}, VSCode içinde açılıyor! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cDosyayı bulamaz. Ya da kayıt sahibi mevcut değildir", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Dosyayı bulamaz; Belki de doğrudan bir dosyadan yüklenmedi?", + "iris.bukkit.commandedit.opening_vscode_3": "§a{value} {value2}, VSCode içinde açılıyor! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cDosyayı bulamaz. Ya da kayıt sahibi mevcut değildir", + "iris.bukkit.commandfind.not_iris_world_5": "§6Birde değil Iris Dünya!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Birde değil Iris Dünya!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Birde değil Iris Dünya!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Birde değil Iris Dünya!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aObject Studio: {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} Herhangi bir bölgede/biome nesne yerleştirmelerinde yapılandırılmıyor.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cIris bu dizini Studio dünyaları için kullandığından \"iris\" dünya adını kullanamazsınız.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cAdımı önerebiliriz \"IrisWorldBunun yerine?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cIris bu dizini kıyaslama paketleri için kullandığından \"benchmark\" dünya adını kullanamazsınız.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cAdımı önerebiliriz \"IrisWorldBunun yerine?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cBu klasör zaten var!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cBoyut bulamaz veya indirmek \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eBirini deneyin: Overworld, vanilla, düz, son", + "iris.bukkit.commandiris.download_manually_iris_download": "§eYa da manuel olarak indirmek: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aDünya hazırlığı tamamlandı. \"{worldName}\" dünyasını oluşturmak/yüklemek için sunucuyu yeniden başlatın.", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cYaratılış sırasında ortaya çıktı. Konsolu daha fazla ayrıntı için görün.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aBaşarılı bir şekilde dünyanızı yarattı!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aDünyanız otomatik olarak sunucu yeniden başladığında ana dünya olarak belirlenecektir.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eRuntime dünya yaratımı engellidir Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eDünya dosyalarını hazırlamak ve bukkit.yml Bir sonraki başlangıç için...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cBoyut için dünya dosyalarını sahnelemek için başarısız oldu \"{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aGüncelleme Tarihi server.properties Seviye adı \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cDünya sahnelendi, ancak güncellemeyi başaramadı server.properties Ana dünya.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aIris dünyası \"{name}\", Iris:{value} jeneratörü ve {seed} tohumu ile hazırlandı.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aBu dünya şimdi bir sonraki yeniden başlamak için ana olarak yapılandırılmıştır.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cgüncellemek için başarısız oldu bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cBelirtilen oyuncu mevcut değildir.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris{value} Volmit Software", + "iris.bukkit.commandiris.to": "§a{value} tom için {value2}", + "iris.bukkit.commandiris.total_height": "§aToplam Yükseklik: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris Dünyaları: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit Dünyaları: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cBu bir şey değil Iris Dünya. Iris Dünyalar: {value}", + "iris.bukkit.commandiris.removing_world": "§aDünyayı Değiştirin: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cDünyayı tahliye etmek için başarısız oldu: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cBoş olmayan dünyaya başarısız oldu: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aBaşarılı bir şekilde kaldırıldı {value} -den bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eDünya gibi görünüyor zaten kaldırıldı bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§ckurtarmak için başarısız oldu bukkit.yml Çünkü {value}", + "iris.bukkit.commandiris.set_debug": "§aSet debug: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aİndirme paketi: {pack} (Bea release){value}", + "iris.bukkit.commandiris.downloading_pack": "§aİndirme paketi: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cBirde olmalısın Iris dünya dünyası", + "iris.bukkit.commandiris.sending_metrics": "§ametrikleri gönderin...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cBu bir şey değil Iris Dünya. Iris Dünyalar: {value}", + "iris.bukkit.commandiris.unloading_world": "§aBoş dünya: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aWorld boşaltıldı başarıyla.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cDünyayı boşaltmak için başarısız oldu.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cDünyayı boşaltmak için başarısız oldu: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Sunucuda var değil.", + "iris.bukkit.commandiris.generator": "§9Jeneratör: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} Bir iris dünyası değil.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cTanımlamayabilir Iris Boyut için boyut {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aYükleniyor dünya: {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia, runtime'da yeni dünyaları yükleyemez. Sunucuyu yüklemek \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} başarıyla yüklenen.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cBu bir şey değil Iris Dünya. Iris Dünyalar: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aEvacuating dünya{value}", + "iris.bukkit.commandobject.object_size": "Object Boyutu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Kullanılan Bloklar: {value}", + "iris.bukkit.commandobject.blocks_object": "== nesnedeki Bloklar ==", + "iris.bukkit.commandobject.other_block_types": " + {value} Diğer blok türleri", + "iris.bukkit.commandobject.current_object_size": "Mevcut Object Boyutu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Yeni Object Boyutu: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "nesneyi kurtarmak için başarısız oldu {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cHiç bir nesne eşleşmedi: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aPlauzibilize [reach={reach}{value}] kuyruk {value2} nesne(s)", + "iris.bukkit.commandobject.hold_your_wand": ".", + "iris.bukkit.commandobject.no_area_selected": "Hiçbir alan seçilmiş değildir.", + "iris.bukkit.commandobject.ready_your_wand": "asa'a hazır olun.", + "iris.bukkit.commandobject.ready_your_wand_2": "asa'a hazır olun.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eIndicated ölçek maksimum aşıyor. En üst düzeye kadar: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Güncelleme için asa için objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Yeni asa için objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Güncelleme için asa için objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§ayerleştirildi Place {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§easa'ınızı tutmanız gerekir!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cDosya zaten var. Bunu yazmak için son derece doğru bir şekilde ayarlayın.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cBir nesneyi kurtarmak için başarısız oldu çünkü bir IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aKaydetmek için başarılı bir nesne: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": ".", + "iris.bukkit.commandobject.no_area_selected_2": "Hiçbir alan seçilmiş değildir.", + "iris.bukkit.commandobject.reverted_pastes": "§9{actualReverts}§9 yapıştırma geri alındı!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cBir tane alamazsın WorldEdit Seçim olmadan seçim WorldEditAma biliyorsun.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cSen sahip değilsin WorldEdit Bu dünyada seçim.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aTaze bir asa ile mevcut WorldEdit Üzerinde seçim!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aHayır! İyi şans binası!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eSelâmı tut!", + "iris.bukkit.commandobject.no_area_selected_3": "Hiçbir alan seçilmiş değildir.", + "iris.bukkit.commandobject.auto_select_complete": "§aotomatik seçim tamamen!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eSelâmı tut!", + "iris.bukkit.commandobject.no_area_selected_4": "Hiçbir alan seçilmiş değildir.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aotomatik seçim tamamen!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen radius sıfır bloklardan daha büyük olmalıdır.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cKesin sıralı ön oluşturma Paper veya Paper uyumlu bir sunucu gerektirir.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cBu dünya için motor erişimi çıplak!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cLütfen dünyanın yüklendiğinden emin olun & Motor başlangıçlı. Örneğin yeni bir chunk.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cPrejenerasyona başlamak için başarısız oldu. Ayrıntılar için konsolu görün.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eAktif prejenerasyon görevlerinin durması", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aÖn oluşturma görevinin duraklatma durumu değiştirildi. Şimdiki durum: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eHiçbir aktif prejenerasyon görevi duraklama /unpause.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eAktif prejenerasyon görevi yok.", + "iris.bukkit.commandpregen.pregen": "§aPrejen §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aHız: §6{value}/s§a ETA: §6{value2}§a Elapd: §6{value3}§a Yöntem: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§ayazıldı yapı indeksi: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aTüm vanillayı ithal etmek & Datapack yapıları içine §f{value}§a (over write)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aTamam: §f{imported}§a structures/objects yazılı, §f{failed}§a başarısız oldu.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Onları bir biyome/bölge/dimension 'yapılar' listesinden referans edin veya çalıştırın /iris structure list {value} indeksi yenilemek için. Etkisi almak için değişiklikler için regenerate chunks.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Yakalandı {value} yapılar. Onları bir 'yapılar' listesinden yerleştirin ve yenidengenerate chunks. silme structures/*.json Yeniden inşa etmek için.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cHiçbir yükleme Iris Dünya için bulundu {value}. İlk önce bir katılın veya oluşturun (aratıcı canlı dünyaya karşı çalışır).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cSeçilen seçildi Iris Dünya aktif jeneratör motoruna sahip değil.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cyok iris structure \"{structure}“Bu pakette", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cYapı \"{structure}\"Bir araya geldi\" 0 parçalar (kontrol startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aYapı \"{structure}': §f{value}§a parçalar, ayak izi §f{value2}x{value3}§a Bloklar (sample tohum 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cyok iris structure \"{structure}“Bu pakette", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cYapı \"{structure}\"Bir araya geldi\" 0 parçalar parça parçaları", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§ayerleştirildi ‘{structure}' ({value} parçalar) konumunuzda.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aAçılış stüdyosu \"{value}\" paket (seed: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cBir boyut paketi sağlayın: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cpaketi boyut için çözemez {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aAçılış VSCode \"Çünkü\"{value}\" paket\"", + "iris.bukkit.commandstudio.pack_has_version": "§a\"\"{value}\" paketin versiyonu var: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aGürültü Explorer!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cSanal envantere öğeleri ekleyebilir çünkü: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aAçılış envanteri şimdi!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cSadece bir anda çalışır Iris Dünya!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cSiz içeride olmak veya belirtmek gerekir Iris- üretilen dünya!", + "iris.bukkit.commandstudio.opening_map": "§aAçılış haritası!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Gürültü jeneratörleri için Performans Metriklerini Hesaplamak", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Interpolator Timings...", + "iris.bukkit.commandstudio.processing_generator_scores": "Processing Jeneratör Puanları: ", + "iris.bukkit.commandstudio.score": "Puan: {value}", + "iris.bukkit.commandstudio.done_with_result": "§atamamlandı ! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cVarlıkları doğru şekilde spawnlamak için bir Iris dünyasında olmalısınız. Mümkün olan en iyi şekilde spawnlanmaya çalışılacak.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cStüdyo dünyası açık değil!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cZaten bir stüdyo dünyasındasın!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aSizi stüdyo dünyasına gönderin!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Güncelleme kodu iş alanı için {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aGüncelleme Kodu Çalışma Alanı için {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cgeçersiz projesi: {value}. Kod çalışma alanı dosyasını silmeye çalışın ve tekrar deneyin.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cBirde olmalısın Iris dünya dünyası", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Bir iris dünyasında olmalısınız.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Sheturing IGenData -den {value} Yakındaki chunks.", + "iris.bukkit.commandstudio.reported": "Rapor: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cSunucu başlatmış olmalısın GUIs ayarlarda etkinleştirin!", + "iris.bukkit.commandstudio.players_only": "§cOyuncular sadece!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cStüdyo dünyası açık değil!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cBir stüdyo dünyasında olmalısın!", + "iris.bukkit.commandwhat.material": "Malzeme: §a{value}", + "iris.bukkit.commandwhat.full": "Tam: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Lütfen bir blok/item tutun", + "iris.bukkit.commandwhat.material_2": "Malzeme: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Lütfen bir blok/item tutun", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "olmayanlarIris Biyome: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Veri Paketi Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aIris dünyası sadece.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Lütfen herhangi bir bloka bak, gökyüzünde değil", + "iris.bukkit.commandwhat.material_3": "Malzeme: §a{value}", + "iris.bukkit.commandwhat.full_2": "Tam: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Depolama Bloku (Loot Capable)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* Lit Block (Işık Capable)", + "iris.bukkit.commandwhat.foliage_block": "§e* Foliage Blok", + "iris.bukkit.commandwhat.decorant_block": "§e*", + "iris.bukkit.commandwhat.fluid_block": "§e* Akışkan Bloku", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* Plantable Foliage Blok", + "iris.bukkit.commandwhat.solid_block": "§e* Katı Blok", + "iris.bukkit.commandwhat.found_nearby_markers": "{value} Nearby Markers ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aIris dünyası sadece.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Konsol bir biome adı olmalıdır: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biome lookup başarısız oldu: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Bilinmeyen biyome: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Konsol bir bölge adı olmalıdır: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Bölge görünümü başarısız oldu: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Bilinmeyen bölge: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Burada açık dosyaları açamaz: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Dosyayı bulamaz; belki de doğrudan bir dosyadan yüklenemez miydi?", + "iris.modded.irismoddedcommands.could_not_open": "Açıklanamaz {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Açılış {value} {value2} editörünüzde.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Konsol bir oyuncu adı olmalıdır: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} tarafından üretilmiyor Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleport başarısız oldu: Boyut {dimensionId} yüklenemez.", + "iris.modded.irismoddedcommands.teleporting": "Telporting {value} tom için {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} tarafından üretilmiyor Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "birincil dünyayı tahliye edemez; oyuncuları göndermek için hiçbir yer yoktur.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Evakuated {count} oyuncu(s) -den {value} tom için {value2}.", + "iris.modded.irismoddedcommands.set_debug": "Set debug toplan: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Sıcak ayarlar", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Bu komut sadece oyuncular tarafından kullanılabilir (dövük eşyanızı inceler).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Ana eliniz boş.", + "iris.modded.irismoddedcommands.hand_x": "El: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} tarafından üretilmiyor Irisbakınız; /iris info Yüklemek için Iris Boyutlar.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Mevcut boyut ({value}) Iris tarafından oluşturulmuyor.Bir isim açıkça: /iris pregen start {radius} ; /iris info'i Iris boyutları için görmek.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Bir prejenerasyon görevi zaten çalışıyor. Önce onu durdurun /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen başladı {value} Of {value2} Yemin ederim {value3} Bloklardan bloklar {centerX},{centerZ}.{modeNote} İlerleme konsoluna girişler; bakınız /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Prejenerasyonu Durdurun; Mevcut bölgeyi bitirin...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Durmak için aktif bir prejenerasyon görevi yok.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Durmak/resume için aktif bir prejenerasyon görevi yok.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Prejenerasyon şimdi {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Aktif prejenerasyon görevi yok.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} Volmit Software tarafından {value2} (Minecraft {value3}), {engines} Iris Boyut(s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Yüklenen boyutlar: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.biome": "Biyome: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biome lookup başarısız oldu: {value}", + "iris.modded.irismoddedcommands.region": "Bölge: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Bölge görünümü başarısız oldu: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Cave biyome: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Cave biome lookup başarısız oldu: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Yüzey bloğu: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Pozisyon: {value} {value2} {value3} (chunk. {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Bu komut sadece oyuncular tarafından kullanılabilir (gördüğün bloğu inceler).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Bir bloka bak, gökyüzünde değil.", + "iris.modded.irismoddedcommands.block_y": "Blok: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Bu komut sadece oyuncular tarafından kullanılabilir (markers etrafınızdaki parçacıkları oluşturur).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "\"için Scanning için\"{marker}Etrafınızdaki işaretler...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Marker tarama başarısız oldu: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Bul bulundu {value} yakındaki işaretleyici(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Bilinmeyen biyome: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.unknown_region_2": "Bilinmeyen bölge: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} Boyutta tanımlanmamıştır!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} Herhangi bir bölgede/biome nesne yerleştirmelerinde yapılandırılmıyor ({value} nesne anahtarları yüklenir).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Bu komut sadece oyuncular tarafından kullanılabilir. (object anahtar ‘{key}\"Demek\" {value} yüklü nesne anahtarları)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Adı an Name an Iris veya bulmak için yerli yapı.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Bilinmeyen yapı ‘{key}'. Bir şeyleri seçmek için sekme tamamlanmasını kullanın Iris yerleştirme veya kayıtlı bir yerel /datapack yapısı.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Yerel yapı için arama {value} içeride {NATIVESTRUCTURELOCATERADIUS} chunk...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Arama için Iris- Yerleştirilmiş yapı {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "bulmak için kullanılamaz Iris- Yerleştirilmiş yapı {key}: Yoğun arama güvenliği limiti, tam anlamıyla ulaştı 1024-chunkçası aradı.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Bulamadı Iris- Yerleştirilmiş yapı {key} içeride 1024 Avunks.", + "iris.modded.irismoddedcommands.search_failed": "Arama başarısız oldu: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Yerli yapı bulamaz {value} içeride {NATIVESTRUCTURELOCATERADIUS} Avunks.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Yerel yapı için arama {value} Başarısız: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Oyuncu yapı arama tamamlanmadan önce ayrıldı.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Yapı arama tamamlanmadan önce boyutları değiştirdiniz; komutu tekrar çalıştırın.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "{label}, {targetX} {clampedY} {targetZ} konumunda bulundu ancak ışınlanma başarısız oldu.", + "iris.modded.irismoddedcommands.teleported_at": "{label} konumuna ışınlandı: {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Yapı erişilebilirlik: {available} Yerli nesil uygun, {irisPlaced} Iris- Yere, {disabled} Yerli engelliler, {suppressed} Yerel olarak değiştirildi Iris yerleştirmeler, {unreachableBiomes} Bu paket biomes tarafından dışlanmış yerli ve {unsupported} Bu boyutta desteklenmeyen yerli yapılar kayıtlı. Kullanım Kullanımı /iris structure verify Bir yapı için.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Yapı Yapısı {key} islamdır. Iris- Yer ve locatable ile /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Bilinmeyen yapı ‘{key}'. Ne de öyle değil Iris- ya da vanilla veya bir veri paketi tarafından kayıt olun.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Yapı Yapısı {value} Açıkça bir şekilde değiştirildi Iris yerleştirme ve locatable ile /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Yerli yapı {value} Bu boyuttaki jeneratör durumu tarafından desteklenen ve locatable ile birlikte kullanılabilir. /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Bu komut sadece oyuncular tarafından kullanılabilir. (POI türü \" tipi\"{type}' accepted)", + "iris.modded.irismoddedcommands.searching": "Arama için {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Bu dünya için motor kapalıydı; boyutu yeniden optimize etti ve tekrar deneyin.", + "iris.modded.irismoddedcommands.search_failed_2": "Arama başarısız oldu: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Bulamadı {label} Arama süresi içinde.", + "iris.modded.irismoddedcommands.teleported_at_2": "{label} konumuna ışınlandı: {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Motor değişmişken değişti {label}Tekrar deneyin.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.world_seed": "Dünya tohumu: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Motor tohum: {value} (Resimler: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Downloading indir IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Pack \"{pack}“Koşul. Tam boyut türleri ve özel biyomes, zorlananlara katılır Iris Bir sonraki sunucuda veri paketi yeniden başlatılır; bu paketten dünyalar yaratmadan önce yeniden başlayın.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Pack download başarısız oldu çünkü {pack} ({downloadSource}; see console).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Genrated: {value} chunk(s) {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Bilinmeyen Iris Yardım bölümü: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: type ={typeKey} Aktif = aktif={activeMin}..{activeMax} mantıksal ={value} (pack ={value2}Motor başlamadı; yükseklikler bilinmiyor)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: type ={typeKey} Aktif = aktif={activeMin}..{activeMax} mantıksal ={value} | paket ‘{value2}\" istiyor\" {packMin}..{packMax} mantıksal ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: Aktif boyut türü paketi eşleştirmez. Iris Bu dünya motorunu klip arazi yerine başlatmayı reddeder. çalıştır /iris world enable Yeni dünyalar veya /iris datapack install Zaten yüklenmiştir Iris Boyutlar, sonra yeniden başlayın.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Hayır Iris Boyutlar yüklenir.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Bütün Hepsi {irisLevels} Iris Boyut(s) paket yükseklik aralıklarını eşleştirir.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}Motor başlamadı; henüz boyut tipini elde edemez.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: Boyut tipi nesil başarısız oldu: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "yazmak için başarısız oldu {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Hayır Iris Kontrollü motorlar bulundu; hiçbir şey kuruldu.", + "iris.modded.moddeddatapackcommands.failed_write_2": "yazmak için başarısız oldu {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "yazıldı. {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "World datapack \"{WORLDPACKNAME}“ Boyut tipi aşırı yüklemeler. Sunucuyu uygulamak için boyut türleri için yeniden başlatın.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "yapılandırılmış datapack import: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth Ingest is ingest BukkitSadece; bunları manuel olarak yükleme world/datapacks Gerekirse.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Bağlantılı dünya veri paketleri: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Iris hata raporlayıcısına bir test istisnası gönderildi (etkinse Sentry).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Ağ tarama başarısız oldu: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Altınhash tarama zaten çalışıyor.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Bu komut sadece oyuncular tarafından kullanılabilir. (Vand fiziksel bir öğedir)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "envanteriniz dolu.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Hayır! İyi şans binası! (sol tık = köşe 1Doğru tıklama = köşe 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Bu komut sadece oyuncular tarafından kullanılabilir. ( Toz fiziksel bir eşyadır)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "envanteriniz dolu.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Doğru, nesneyi ortaya çıkarmak için bir blok tıklayın.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Bu komut sadece oyuncular tarafından kullanılabilir. (Kaynak sizin asa seçiminizi yakalar)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Bu boyut tarafından oluşturulmuyor Iris; nesneler boyut paketine kaydedilir.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "tut Iris b. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Hiçbir alan seçilmiş değildir. Sol / sağ önce asa ile bloklara tıklayın.", + "iris.modded.moddedobjectcommands.invalid_object_name": "geçersiz nesne adı: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Çok büyük seçim: {volume} blocks (max {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Dosya zaten var. Kullanım Kullanımı /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "nesneyi kurtarmak için başarısız oldu: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "kaydedildi Kaydet {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} Blok(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Bilinmeyen veya boş nesne: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Konsol koordinatları belirtmelidir: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "İçinde bir blok aramıyorsunuz {value} Bloklar.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Yapıştırma başarısız oldu: {value} (kısmi değişiklikler geri alma için kaydedildi)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "{key}, {value} {value2} {value3} konumuna rot={rotation} ile yerleştirildi ({value4} yazma, {value5} hava olmayan{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "tut Iris b. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Hiçbir alan seçilmiş değildir.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "asa'a hazır olun. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Bir bloka bakmıyorsunuz.", + "iris.modded.moddedobjectcommands.position_set": "Pozisyon pozisyonu {value} set toplan {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Selâmı tut!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Hiçbir alan seçilmiş değildir.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "otomatik seçim için çok büyük seçim: {volume} blocks (max {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "otomatik seçim tamamlandı: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Bilinmeyen nesne: {key}", + "iris.modded.moddedobjectcommands.object_size": "Object Boyutu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Kullanılan Bloklar: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "== nesnedeki Bloklar ==", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} Diğer blok devleti (s)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Bilinmeyen nesne: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Mevcut Object Boyutu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Yeni Object Boyutu: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Object'in yükleme dosyası yoktur; küçülemez.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "nesneyi kurtarmak için başarısız oldu {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "geçersiz ulaştı: {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Hiç bir nesne eşleşmedi: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Plauzibilize [reach={reach}{value}] kuyruk {value2} nesne(s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Hiçbir şey geri çekilmez.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "{reverted} yapıştırma geri alındı.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Packs klasörü bulunamadı: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Takip etmek için paket yok {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Pack \"{pack}“Geçmiş altında bulunamadı {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Geçerlilik {value} paket (s)...", + "iris.modded.moddedpackcommands.validation_failed": "Geçerlilik \"{value}\" başarısız oldu: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Geçerlilik tamamlandı. Kırık paketler: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Pack \"{pack}“Geçmiş altında bulunamadı {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Pack \"{pack}“Geçmiş altında bulunamadı {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Geçerlilik sonuçları kaydedildi. çalıştır /iris pack validate İlk önce.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (blocking={value2}Uyarılar ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "\"Hiçbir geçerlilik sonucu yok\"{pack}'. çalıştır /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Pack \"{value}\" yüklenebilir. (Resimler ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Pack \"{value}\" bozuk:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ... ve {value} Daha fazla uyarı(lar).", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Paket için bulunan temiz adaylar yok '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "paket için temizleme önizleme \"{pack}': {value} aday(lar). Hiçbir dosya değiştirildi.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "çalıştır /iris pack cleanup {pack} apply Taze bir taramadan sonra kurantine.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Paket için bulunan temiz adaylar yok '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Tamamrantined {value} Temiz aday (s) altında {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Paket için geri yüklememek için hiçbir şey yok \"{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Geri Döndük için {value}: {value2} Dosya(lar). Hiçbir dosya değiştirildi.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Geri yükleme bloke edilir {value} Mevcut destinasyon(lar).", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "çalıştır /iris pack restore {pack} apply Taze bir çatışma kontrolünden sonra geri yüklemek.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Geri yükleme reddetti çünkü {value} destinasyon(s) zaten var.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Paket için geri yüklememek için hiçbir şey yok \"{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Geri yükleme {value} Dosya(s) -den {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... ve {value} Daha fazlası.", + "iris.modded.moddedregen.regen_is_already_running": "Bir regen zaten çalışıyor.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Bu boyut tarafından oluşturulmuyor Iris. Bunu bir andan çalıştırın Iris Boyut böylece paket çözülebilir.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "yazıldı yapı indeksi: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "yok iris structure \"{key}“Bu pakette", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Yapı \"{key}\"Bir araya geldi\" 0 parçalar (kontrol startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Yapı \"{key}': {value} parçalar, ayak izi {value2}x{value3} Bloklar (sample tohum 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Bu komut sadece oyuncular tarafından kullanılabilir (yapı sizin pozisyonunuzda toplanır).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "yok iris structure \"{key}“Bu pakette", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Yapı \"{key}\"Bir araya geldi\" 0 parçalar parça parçaları", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Yer başarısız oldu: {value} (Resim için kaydedilen kısmi değişiklikler)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "yerleştirildi ‘{key}' ({value} parçalar, {value2} Yaz(s){tileNote}) Senin konumunuzda. /iris object undo iptal etmek için.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Bir boyut paketi sağlayın: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Gürültü Explorer'ı sunucu ekranında açın.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Bu boyut tarafından oluşturulmuyor Iris; koşmak /iris studio noise Birinden Iris Jeneratörleri çözmek için boyut veya jeneratör adını omit.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Bilinmeyen jeneratör \"{generatorKey}\" pakette\" {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Jeneratör için Gürültü Explorer'ı açın ‘{value}\"(s. {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Bu boyut tarafından oluşturulmuyor Iris; Birinde dur Iris (veya stüdyo) boyut ve koşmak /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Vizyon haritasını açmak için {value} Sunucu ekranında.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "İş alanı yazmak için başarısız oldu {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Workspace yeniden yaratıldı: {value} ile ile JSON Autocomplete için şemalar.", + "iris.modded.moddedstudiocommands.could_not_open": "Açıklanamaz {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Açılış {value} editörünüzde.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Bu boyut tarafından oluşturulmuyor IrisBir paket adını açıkça belirt.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Pack \"{name}“Geçmiş altında bulunamadı {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Bir boyut paketi sağlayın: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Açılış stüdyosu \"{pack}\"(s. {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Pack \"{pack}eksik; indir IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Pack \"{pack}\" indirilemez; adı kontrol edin ve deneyin /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Pack \"{pack}'Hayır' dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Stüdyo açık başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Stüdyo enjeksiyonu başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Konsol stüdyosu açık: {dimensionId} Şimdi ‘Geçiyor’{pack}\" tohum\" {seed} (transient; yazılı değil iris-dimensions.json Ve yeniden temizlendi.)", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Bunu ile girin: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Onunla Pregen: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Onu al: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Stüdyo enjeksiyonu başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Stüdyo açık: {dimensionId} Şimdi ‘Geçiyor’{pack}\" tohum\" {seed}. Kullanım Kullanımı /iris studio close Ne zaman yapılır?", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Açık bir stüdyoya sahip değilsiniz. Kullanım Kullanımı /iris studio open İlk önce.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Stüdyo yakın başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Stüdyo kapalı: {dimensionId} tahliye edildi, boşaltıldı ve bölge verileri silindi.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Stüdyo boyutları şu anda açık değildir.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Aktif stüdyo boyutu (s): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}paket \"{value2}\" tohum\" {value3} sahibi mal sahibi {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Bu komutu yalnızca oyuncular kullanabilir.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Açık bir stüdyoya sahip değilsiniz. Kullanım Kullanımı /iris studio open İlk önce.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Stüdyo boyutu artık yüklenemez. Kullanım Kullanımı /iris studio open Tekrar.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Stüdyonuza ({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Pack \"{value}'Hayır' dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "\"\"{value}\" paketin versiyonu var: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "geçersiz projesi adı ‘{nameRaw}\" (tamam: a-z, 0-9, ve -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Pack \"{name}‘ zaten var {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Proje yaratmak \"{name}\"-den template\"{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Şablon ‘{template}‘Kolanmıyor; indir IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Şablon ‘{template}\" indirilemez; bir paketle birlikte yükleme dimensions/{template2}.json İlk önce.", + "iris.modded.moddedstudiocommands.created_project_at": "'{name}' projesi {value} konumunda oluşturuldu", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "EditDüzenle dimensions/{name}.json Ve paketin geri kalanı. A VSCode İş Alanı ile JSON şema autocomplete üretildi; açık ya da yeniden işlendi /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Proje yaratımı başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Ambalaj boyutu ‘{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Paket derlendi: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Ambalaj başarısız oldu: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Bu komut sadece oyuncular tarafından kullanılabilir (sampling pozisyonunuzda merkezileştirilmiştir).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Etrafınızdaki {value}x{value2} chunk içinde bölge dağılımı örnekleniyor...", + "iris.modded.moddedstudiocommands.rarity": "{key}: rarity ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Bölge örneği başarısız oldu: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Pack \"{pack}‘Kolanmıyor; indir IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Pack \"{pack}\" indirilemez; adını kontrol edin veya onu onunla birlikte yükleme /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "enjekte etmek için başarısız oldu Iris Dünya{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Oluşturuluş Iris dünya dünyası {dimensionId} paketten ‘{pack}‘ Boyut’{packDimension}\"(s. {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Şimdi yaşıyor ve her başlangıçta yeniden canlanıyor. Teleport ile birlikte /iris world status veya bir portal; hiçbir yeniden başlama gerekli değildir.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "enjekte etmek için başarısız oldu Iris birincil dünya: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris birincil dünya, {dimensionId} (pack ‘{pack}‘ Boyut’{packDimension}\" tohum\" {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Vanilla Overworld oluşturucusu çalışma sırasında değiştirilemez; bu nedenle bu işlem mevcut Overworld’ü yeniden oluşturmaz.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Bunun yerine, {dimensionId} Şu anda yapılandırılmış birincil dünya: vanilla overworld'deki oyuncular oraya katılmakta ve her başlangıçta yeniden seçilmişlerdir.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris Ana dünya aşırı temizlendi. Overworld mevcut jeneratörünü tutar; düzenleme server.properties seviye tipi ve onu geri değiştirmeye yeniden başlayın.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "geçersiz tohum \"{seedRaw}'. Bir numara veya 'random' kullanın.", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Pack \"{pack}‘Kolanmıyor; indir IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Pack \"{pack}\" indirilemez; adını kontrol edin veya onu onunla birlikte yükleme /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Pack \"{pack}\" henüz hazır değil (herhangi bir yükleme veya doğrulama). Bir anda tekrar kumandayı deneyin.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "yazmak için başarısız oldu server.properties; dosya izinlerini kontrol edin ve seviye tipi manuel olarak ayarlayın.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris Ana dünya \"{pack}\" (preset {preset}tohum, {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties Seviye tipi şimdi {preset}. Bir sonraki overworld, nether ve bunu bu şekilde yeniden üretin Iris Dünya.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Oyuncu verileri (öneticiler, ilerlemeler, istatistikler) tutulur; bu boyutlarda mevcut arazi değiştirilir. Bu bir kez uygulanır.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart etkinleştirilir - sunucuyu şimdi durdurun, böylece sırt çantanızı yeni ana dünyaya geri getiriyor.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Şimdi oluşturmak için sunucuyu yeniden başlatın. (Iris'in sunucuyu sizin için durdurması amacıyla modded.json içinde mainWorldAutoRestart=true ayarlayın.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Dünyayı yaratmaya cesaret edin '{dimensionId}\" paketi kullanarak\"{pack}Çünkü gerekli doğrulama başarısız oldu:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "paketi düzeltin ve koşmak /iris pack validate {pack} revize etmek için.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Pack \"{pack}\" altında bulunamadı {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Pack \"{pack}“Doğmuyor dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "geçersiz paketi referansı \"{pack}{value}'. Paket veya paket kullanın:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "geçersiz tohum \"{seedRaw}'. Bir numara veya 'random' kullanın.", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "ortadan kaldırmak için başarısız oldu Iris Dünya{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris Dünya{dimensionId}“ yüklenemezdi; kalıcı kayıt girişini temizledi ve depolanmış chunk /mantle verilerini sildi.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris Dünya{dimensionId}“ yüklenmedi; kalıcı kayıt girişini temizledi. Disk üzerinde dünya verileri tutulur.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Dekleed Iris Dünya{dimensionId}\": tahliye, yüklenmemiş, chunk/mantle verileri silindi ve başlangıç kayıt defterinden düştü.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Engelliler Iris Dünya{dimensionId}\": tahliye, yüklenme ve başlangıç kayıt defterinden düştü.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Disk üzerinde dünya verileri tutulur; yeniden kullanılabilir /iris world enable {dimensionId} veya onu silerek /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Yüklendi Iris seviye: {value} -> paket ‘{value2}‘ Boyut’{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Temel dünya: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Hayır Iris Boyut şu anda yüklenir. Bir tane oluşturun /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Yüklendi Iris Boyut: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Kullanım Kullanımı /iris world create Yeniden başlatmadan birini enjekte etmek.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Download indir & Dış veri paketi ithalatını yönetin (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Paket boyutunun 'datapackImports' bölümünde listelenen her datapack'i indir/güncelle ve yapıların vanilla gibi kaydolması için dünyaya kur", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Yeni datapacks kurulduğunda sunucuyu yeniden başlatın ( kayıt ve üretmek için yeni yapılara bağlı)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Liste yapılandırılmış veri paketi ithalatı ve onların yüklü versiyonları", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Create an installed datapack by id (ayrıca onu sil URL -den datapackImports Onu korumak için)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Datapack id (folder adı) tarafından gösterilen /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Dünya Yöneticisi", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Yükleme alın TectonicPlates Kont", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Gönderilen bir test istisnaı gönder", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Hash, determinism/identity test için sabit bir bölgenin blok çıktısını üretti", + "iris.director.commanddeveloper.param.world_hash": "Dünyanın sahip olması", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Radius merkez çevresinde", + "iris.director.commanddeveloper.param.center_chunk_x": "Merkez chunk X", + "iris.director.commanddeveloper.param.center_chunk_z": "Merkez chunk Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Bir dünyanın paketini güncelleyin (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "Dünyayı güncellemek için", + "iris.director.commanddeveloper.param.pack_install_into_world": "Dünyaya yükleme paketi", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Bir yedekleme yapmak için emin olun & İlk önce uyarıları okuyun!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Should Must Should Iris paketi tekrar indir", + "iris.director.commanddeveloper.director.test": "Test Testi", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Tek bir bölüm yerine tüm tectonik plakayı karıştırın", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Boş dosya adı altında plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Test Testi", + "iris.director.commanddeveloper.param.pack_bench": "Takım tezgaha", + "iris.director.commanddeveloper.param.radius_regions": "Radius bölgelerinde", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Açık Open GUI Karşılaştırma yaparken", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Başkasına Yükseltin Minecraft sürüm versiyonu", + "iris.director.commanddeveloper.param.version_upgrade": "Sürümü yükseltmeye yükseltmek için", + "iris.director.commanddeveloper.director.test_3": "test testi", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Dünya klasörü .mca bölgesi dosyaları için taramak", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Yakınlardaki chunk blokları yenidenjen test için", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Radius şu anki chunk çevresinde", + "iris.director.commanddeveloper.director.test_4": "Test Testi", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Iris nesli kullanılarak yakınlardaki kıvrımlar ve yenidenjenereler", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Yakındaki chunks'ın ikizi", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Chunk'ları tamponlarda üretir (dünyaya yazmaz) ve blokları+biome'ları hash'ler; bir golden dosyası yakalar veya var olanla doğrular. Taranan alanda mantle'ı sıfırlar - tek kullanımlık test dünyalarında kullanın.", + "iris.director.commanddeveloper.param.world_scan": "Dünyayı taramak için", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Radius merkez çevresinde", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Merkez chunk X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Merkez chunk Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Sıfırdan tam yenileme için önce tarama alanındaki mantle verilerini sil", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Eş zamanlı chunk nesiller; 1 = kesinlikle düzen bağımsız test testi için seri", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Ayrıca çevrimdışı diffing", + "iris.director.commandedit.director.edit_something": "Edit bir şey", + "iris.director.commandedit.director.edit_biome_you_specified": "Belirtilen biyome'yi düzeltin", + "iris.director.commandedit.param.biome_edit": "Biyome, düzenlemek için", + "iris.director.commandedit.director.edit_region_you_specified": "Belirlediğiniz bölgeye bakın", + "iris.director.commandedit.param.region_edit": "Bölgeyi düzenlemek için", + "iris.director.commandedit.director.edit_dimension_you_specified": "Tanımladığınız boyutu analiz edin", + "iris.director.commandedit.param.dimension_edit": "Düzenlemek için boyut", + "iris.director.commandfind.director.iris_find_commands": "Iris bul komutları bulun", + "iris.director.commandfind.director.find_biome": "Bir biyome bul", + "iris.director.commandfind.param.biome_look": "Biyome bakmak için", + "iris.director.commandfind.param.should_you_be_teleported": "Telported olmalısın", + "iris.director.commandfind.director.find_region": "Bir bölge bulun", + "iris.director.commandfind.param.region_look": "Bölge bakmak için", + "iris.director.commandfind.param.should_you_be_teleported_2": "Telported olmalısın", + "iris.director.commandfind.director.find_point_interest": "Bir ilgi noktası bul.", + "iris.director.commandfind.param.type_poi_look": "PoI tipi aramak için.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Telported olmalısın", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Bir yapı bul (bir vanilla anahtarı gibi minecraft:village_plains veya minecraft:strongholdYa da ithal bir iris yapı anahtarı)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Bakmak için yapı (e.g. minecraft:village_plains, minecraft:stronghold, minecraft ancient city)", + "iris.director.commandfind.director.find_object": "Bir nesne bulun", + "iris.director.commandfind.param.object_look": "Bakmak için nesne", + "iris.director.commandfind.param.should_you_be_teleported_4": "Telported olmalısın", + "iris.director.commandiris.director.basic_command": "Temel Komut", + "iris.director.commandiris.director.create_new_world": "Yeni bir dünya yaratın", + "iris.director.commandiris.param.name_world_create": "Dünyanın adı yaratmak", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Dünyayı yaratmak için boyut / paket", + "iris.director.commandiris.param.seed_generate_world_with": "Dünyayı üretmek için tohum", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Bu dünyayı ana dünya olarak otomatik olarak kullanıp kullanmayalım", + "iris.director.commandiris.director.teleport_another_world": "Teleport başka bir dünyaya", + "iris.director.commandiris.param.world_teleport": "Dünya teleport'a", + "iris.director.commandiris.param.player_teleport": "Oyuncuya teleport", + "iris.director.commandiris.director.print_version_information": "Yazdır version information", + "iris.director.commandiris.director.benchmark_pack": "Benchmark bir paket", + "iris.director.commandiris.param.dimension_benchmark": "Boyut karşılaştırmak için", + "iris.director.commandiris.director.print_world_height_information": "Baskı dünya yüksek bilgi", + "iris.director.commandiris.director.check_access_all_worlds": "Tüm dünyaların kontrolünü kontrol edin.", + "iris.director.commandiris.director.remove_iris_world": "Kaldırın Iris dünya dünyası", + "iris.director.commandiris.param.world_remove": "Dünyayı kaldırmak için", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Ayrıca klasörü kaldırmak (Eğer sahte, sadece dünyayı yükleyemez)", + "iris.director.commandiris.director.toggle_debug": "Çalmak için", + "iris.director.commandiris.director.download_project": "Bir proje indirin.", + "iris.director.commandiris.param.pack_download": "İndirmek için paket", + "iris.director.commandiris.param.branch_download_from": "Şubeden indirmek için", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Paketi indirilmiş olan ile yazmak veya yazmamak", + "iris.director.commandiris.director.get_metrics_your_world": "Dünyanız için ölçümler alın", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "yeniden yükle yapılandırma dosyası (bu da otomatik olarak yapılır)", + "iris.director.commandiris.director.unload_iris_world": "boşalt an a Iris Dünya Dünyası", + "iris.director.commandiris.param.world_unload": "Dünya boş yere", + "iris.director.commandiris.director.load_iris_world": "Bir yük Iris Dünya Dünyası", + "iris.director.commandiris.param.name_world_load": "Dünyanın adı yüklenecek", + "iris.director.commandiris.director.evacuate_iris_world": "Bir iris dünyası", + "iris.director.commandiris.param.evacuate_world": "Dünyayı Evacuate", + "iris.director.commandobject.director.iris_object_manipulation": "Iris nesne manipülasyonu", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Bir nesne stüdyosu dünyasını açın (her nesneningrid; boyut Seçmeli, tüm paketlere varsayılan)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Hangi nesne paketinin ortaya çıkmasını sağlayan Seçmeli boyut; her paketten toplu nesneler için omit", + "iris.director.commandobject.param.seed_generate_studio_with": "Stüdyoyu üretmek için tohum", + "iris.director.commandobject.director.check_composition_object": "Bir nesnenin kompozisyonunu kontrol edin", + "iris.director.commandobject.param.object_analyze": "Analiz etme nesnesi", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "En az büyüklüğüne bir nesne katın", + "iris.director.commandobject.param.object_shrink": "Rezmin etmek için nesne", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Canopy aracılığıyla organik dallar yetiştirin, böylece her yaprak vanilla çürümektedir", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Object key, prefix (ağaçlar/), veya dosyasistem yolu", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "Kururun=gerçek sadece analiz eder, hiçbir şey yazar", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "Mevcut ahşaptan bloklarda =N max şube uzunluğuna ulaşmak; uzak yaprak kümeleri bunun yerine kalıcıdır. ulaşmak =0 Sınırsız büyüyor", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "'konvert' klasöründeki .iob dosyalarına dönüştürmek.", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "nesneleri açığa çıkaran bir toz alın", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Arama yönüne dayanan bir seçim", + "iris.director.commandobject.param.amount_inset_by": "En başından itibaren", + "iris.director.commandobject.director.set_point_1_look": "Set noktası 1 Bakmak", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Mevcut pozisyonunuzu kullanmak ister veya nereye bakıyorsunuz", + "iris.director.commandobject.director.set_point_2_look": "Set noktası 2 Bakmak", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Mevcut pozisyonunuzu kullanmak ister veya nereye bakıyorsunuz", + "iris.director.commandobject.director.paste_object": "Bir nesne yapıştır", + "iris.director.commandobject.param.object_paste": "Yapıştırılacak nesne", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "nesneyi düzenlememek veya yapmamak (dövve tutmak için)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "döndürmek için derece miktarı", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "nesne yerleştirmeyi ölçen faktör", + "iris.director.commandobject.param.scale_interpolator_use": "Ölçek interpolator kullanmak için", + "iris.director.commandobject.director.save_object": "Bir nesneyi Kurtarın", + "iris.director.commandobject.param.dimension_store_object": "nesneyi saklamak için boyut", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Dosya onu depolamak için, alt katlayıcılar için kullanabilir /", + "iris.director.commandobject.param.overwrite_existing_object_files": "Mevcut nesne dosyaları yazmak için", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "mirasını kullanın TileState Serileştirme mümkünse", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Yönelme bir seçim", + "iris.director.commandobject.param.amount_shift_by": "Değiştirilecek miktar", + "iris.director.commandobject.director.undo_number_pastes": "Birden çok yapıştırmayı geri al", + "iris.director.commandobject.param.amount_pastes_undo": "Geri alınacak yapıştırma sayısı", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Bir nesne satın alın ve mevcut akımları ele alalım WorldEdit Seçim.", + "iris.director.commandobject.director.get_object_wand": "Bir nesne alın asa", + "iris.director.commandobject.director.autoselect_up_down_out": "otomatik seçim up, down, & dışarı çıktı", + "iris.director.commandobject.director.autoselect_up_out": "otomatik seçim yukarı & dışarı çıktı", + "iris.director.commandpack.director.pack_validation_maintenance": "Pack validasyon ve bakım", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Bir paket (veya tüm paketleri) ve yeniden yayımlanmış sonuçlar", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Paket klasörü adı doğrulama (hepsi için boş bırak)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Preview veya kullanılmamış kaynak temizliği uygulayın", + "iris.director.commandpack.param.pack_folder_name_clean": "Paket klasörü adı temizlemek için", + "iris.director.commandpack.param.preview_apply": "önizleme veya uygulama", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Preview veya en son karantinanın restorasyonunu uygulayın", + "iris.director.commandpack.param.pack_folder_name_restore": "Paket klasörü adı geri yüklemek için", + "iris.director.commandpack.param.preview_apply_2": "önizleme veya uygulama", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Bir paket için önbellek doğrulama durumu", + "iris.director.commandpack.param.pack_folder_name": "Paket klasörü adı", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Sizin için Iris Dünyalar!", + "iris.director.commandpregen.director.pregenerate_world": "Bir dünya", + "iris.director.commandpregen.param.radius_pregen_blocks": "Pregen'in bloklarının", + "iris.director.commandpregen.param.world_pregen": "Dünya öngenecek", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Pregen'in merkezi yeri. Mevcut konumunuz için \"me\" kullanın", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Açık açın Iris Pregen", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Bir seferde sadece bir chunk", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Aktif prejenerasyon görevini durdurun", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Pause / aktif prejenerasyon görevine devam edin", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Aktif prejenerasyon durumunu göster", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris Yapı araçları (index, ithalat, bilgi)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Rejenrate structure-index.json Tüm vanilla listeleyin, veri paketi & iris yapıları", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Diziyi indeksleyecek olan boyut", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Import her structure - vanilla ve ingested datapacks - bu pakete değiştirilebilir Iris kaynakları olarak, her zaman yazı üzerinde.Yeniden inşa edilen jigsaw yapıları köyleri veri paketi jigsaws) Düzenlenebilir havuz/ parça grafikleri, her yapı şablonu NBT bir nesne olarak bir araya getirir ve multi-template yapıları birleştirir (harwrecks, portallar, okyanus kalıntıları, nether fosiller).Bir veri paketini aldıktan ve yeniden başlatın.Regenerate chunks veya ithal kopyalar için yeni bir dünya kullanın.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Nefsimi ithal edecek olan boyut", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Yakalama kodu oluşturulan yapılar hiç yok NBT şablon (swamp huts, igloos, vs.) düzenlenebilir hale getirilir Iris Her birini atsız bir sıfır dünyasında yaratarak ve bloklarını geri oku. Bir yapı olarak zaten ithal eden yapılar, yakalama kapağından daha geniş/taller (güçlü topraklar, kontraksiyonlar, anıtlar vanilla kalır), ve düz bir overworld içinde üretilmeyen her şey. Her yakalanan yapı tek parça haline gelir Iris Bir biyome/bölge/dimension 'yapılar' listesinden izleyebilirsiniz. Runs otomatik olarak son geçiş olarak /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Paketin içine girilmesi gereken boyut", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Ana yapıyı uygunluk ve bulmak Iris- yerli aramaları engellemeden yer alan yapılar.", + "iris.director.commandstructure.param.dimension_verify": "Doğruyu doğrulamak için boyut", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Kökeni etrafında chunks içinde arama yarıçap (larger çok daha yavaş)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Bir iris yapısının jigsaw grafiğini çözün ve rapor parça sayımı & Sınırlar", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "paketin yapıdığı boyut,", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Iris yapı anahtarı denetim altına almak için", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Bir iris yapısı konumunuzda (studio test)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "paketin yapıdığı boyut,", + "iris.director.commandstructure.param.iris_structure_key_place": "iris yapı anahtarı yer için", + "iris.director.commandstudio.director.studio_commands": "Stüdyo Komutları", + "iris.director.commandstudio.director.open_new_studio_world": "Yeni bir stüdyo dünyası açın", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Bir stüdyo açmak için boyut paketi", + "iris.director.commandstudio.param.seed_generate_studio_with": "Stüdyoyu üretmek için tohum", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "İthalat vanilla ağaçları, mantarlar & nesneler (ve structures/jigsaw) sunucudan bir pakete kadar objects/vanilla klasör klasörü", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "vanilla içeriği ithal etmek için boyut paketi", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Ağaç /object özelliği başına kaç çeşidi yakalamak için", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Ayrıca vanilla da ithal et & veri paketi structures/jigsaw paketin içine", + "iris.director.commandstudio.director.open_vscode_dimension": "Açık Open VSCode Bir boyut için", + "iris.director.commandstudio.param.dimension_open_vscode": "Açıklanması gereken boyut VSCode Çünkü", + "iris.director.commandstudio.director.close_open_studio_project": "Açık bir stüdyo projesi kapat", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Studio debug puanını yakalamak için", + "iris.director.commandstudio.director.create_new_studio_project": "Yeni bir stüdyo projesi oluşturun", + "iris.director.commandstudio.param.name_this_new_iris_project": "Bu yeni şeyin adı Iris Proje.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Paketlerinizde mevcut bir projenin içeriğini kopyalayın ve bu yeni projede bir şablon olarak kullanın.", + "iris.director.commandstudio.director.get_version_pack": "Bir paketin versiyonunu alın", + "iris.director.commandstudio.param.dimension_get_version": "Boyut versiyon alır", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Gürültü Explorer'ı açın (Dönetici GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Seçmeli paket jeneratörü önizlemek için", + "iris.director.commandstudio.param.seed_preview_generator_with": "Jeneratörü önizlemek için tohum", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Bir göğüs burada olsaydı,", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Sanal envanterdeki öğelerin hızlı bir şekilde yerleştirilmesi (belirin düşmesine neden olur)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Şu anda açık olan envantere teslim olun (eğer sahte, net bir envanter açılır)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Her bölgenin üretebilme şansı hesaplayın", + "iris.director.commandstudio.param.radius_chunks": "Midunks'taki yarı", + "iris.director.commandstudio.director.render_world_map_external_gui": "Bir dünya haritası çizin (Dönetici GUI)", + "iris.director.commandstudio.param.world_open_generator": "Dünya jeneratörü açmak için", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Bir boyut sıkıştırılmış bir format", + "iris.director.commandstudio.param.dimension_pack_compress": "Boyut paketi sıkıştırmak için", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Ya da paketi obfuscate etmek", + "iris.director.commandstudio.param.whether_not_minify_pack": "paketinizi bozmak ya da", + "iris.director.commandstudio.director.profiles_performance_dimension": "Profiller bir boyutunun performansı", + "iris.director.commandstudio.param.dimension_profile": "Profile Boyut", + "iris.director.commandstudio.director.spawn_iris_entity": "Bir Iris varlığı spawnla", + "iris.director.commandstudio.param.entity_spawn": "Spawnlanacak varlık", + "iris.director.commandstudio.param.location_spawn_entity_at": "Varlığın spawnlanacağı konum", + "iris.director.commandstudio.director.teleport_active_studio_world": "Aktif stüdyo dünyaya Teleport", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Boyut projelerinizi güncelleyin VSCode İş Alanı", + "iris.director.commandstudio.param.dimension_update_workspace": "Çalışma alanını güncellemek için boyut", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Yakalayın IGenData Yakınlarda chunk raporu", + "iris.director.commandwhat.director.iris_what": "Iris Ne?", + "iris.director.commandwhat.director.what_is_my_hand": "Elimde ne var?", + "iris.director.commandwhat.director.what_biome_am_i": "Hangi biome içindeyim?", + "iris.director.commandwhat.director.what_region_am_i": "Hangi bölgedeyim?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Hangi bloklara bakıyorum?", + "iris.director.commandwhat.director.show_markers_chunk": "chunk", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Marker, Cave floor veya mağara ceiling gibi isim", + "iris.modded.help.entry.command.version": "Yazdır version information", + "iris.modded.help.entry.command.info": "Liste yüklendi Iris Boyut ve paket detayları", + "iris.modded.help.entry.command.what": "İnspect Iris biome, bölge, mağara biyome, yüzey ve pozisyonunuzda chunk, bakdığınız blok veya yakındaki işaretleyiciler", + "iris.modded.help.entry.group.find": "Bul ve teleport bul Iris biomes, bölgeler, nesneler, Iris Yapılar, yerli yapılar ve ilgi noktaları", + "iris.modded.help.entry.command.tp": "Kendinizi veya bir telefon name Bir oyuncuya installed Iris Dimension", + "iris.modded.help.entry.command.evacuate": "Tüm oyuncuları bir Iris boyutundan ana dünyanın spawn noktasına ışınla", + "iris.modded.help.entry.command.seed": "Dünya ve motor seed bilgilerini göster", + "iris.modded.help.entry.command.debug": "değiştir Iris Debug login ve kaydet settings.json", + "iris.modded.help.entry.command.reload": "Yeniden yükleme settings.json (Ayrıca her 3s otomatik olarak ısındı)", + "iris.modded.help.entry.command.download": "Bir paket projesi indirin", + "iris.modded.help.entry.command.metrics": "Mevcut nesil ölçümler için Iris boyut boyutu", + "iris.modded.help.entry.command.regen": "Yakınlarda silme ve yenidenjenere", + "iris.modded.help.entry.group.pregen": "Pregenerate a an Iris boyut boyutu", + "iris.modded.help.entry.command.wand": "Bir tane alın Iris nesne asa", + "iris.modded.help.entry.group.object": "Nesne asası, kaydetme, yapıştırma, analiz ve geri alma araçları", + "iris.modded.help.entry.group.edit": "Açık paket biyome, bölge ve boyut json dosyaları masaüstü editöründe", + "iris.modded.help.entry.command.create": "Oluşturun ve kalıcı olun Iris Boyut; alıntı paketi:dimensionKey Belirli bir paket boyutu seçmek için", + "iris.modded.help.entry.group.studio": "Paket projesi oluşturma, paketleme ve raporlar", + "iris.modded.help.entry.group.pack": "Pack validasyon ve bakım", + "iris.modded.help.entry.group.world": "Runtime Run Iris Boyut oluşturma, kaldırma ve durum", + "iris.modded.help.entry.group.datapack": "Dünya veri paketi ve statü yardımcıları", + "iris.modded.help.entry.group.structure": "Iris Yapı indeksi, bilgi ve yerleştirme araçları", + "iris.modded.help.entry.command.goldenhash": "Genrate deterministic blok parity testi için vardır", + "iris.modded.help.entry.group.developer": "Geliştirici tanıları: Sentry testi, ağ arabirimleri, bölge-file tarama", + "iris.modded.help.entry.command.biome": "Bir an bulun Iris Biyome", + "iris.modded.help.entry.command.region": "Bir an bulun Iris Bölge bölgesi", + "iris.modded.help.entry.command.object": "Bir nesne yerleşimi bulun", + "iris.modded.help.entry.command.structure": "Bir an bulun Iris- Yer veya yerel /datapack yapısı", + "iris.modded.help.entry.command.poi": "Desteklenen bir ilgi noktası bul", + "iris.modded.help.entry.command.biome_2": "masaüstü editörünüzde bir biyome json açın; pozisyonunuzda biome açılır.", + "iris.modded.help.entry.command.region_2": "masaüstü editöründe bir bölge json açın; pozisyonunuzda anahtar açılmaz", + "iris.modded.help.entry.command.dimension": "Geçerli paketin boyut JSON dosyasını masaüstü düzenleyicinizde açın", + "iris.modded.help.entry.command.start": "Prejenerasyona başlayın; bloklarda yarı, varsayılan olarak yeniden kullanılabilir kontrol önbelleği, “atla” merkezi \", bayraklar herhangi bir sırayla oluşturulur", + "iris.modded.help.entry.command.stop": "Aktif prejenerasyon görevini durdurun", + "iris.modded.help.entry.command.pause": "Pause veya özgeçmiş prejenerasyon", + "iris.modded.help.entry.command.status": "Show prejenerasyon durumu", + "iris.modded.help.entry.command.wand_3": "Bir tane alın Iris nesne asa", + "iris.modded.help.entry.command.dust": "nesne yerleştirmelerini ortaya koyan toz alın", + "iris.modded.help.entry.command.save": "Seçilmiş asa hacmini bir nesne olarak kurtarın", + "iris.modded.help.entry.command.paste": "Bir nesneyi bulunduğunuz veya belirtilen konuma, isteğe bağlı döndürerek yapıştırın", + "iris.modded.help.entry.command.expand": "Arama yönünde asa seçimi genişletin", + "iris.modded.help.entry.command.contract": "Aramanızda asa seçimi", + "iris.modded.help.entry.command.shift": "asa seçimine göz atın", + "iris.modded.help.entry.command.position1": "Set seçimi noktası 1", + "iris.modded.help.entry.command.position2": "Set seçimi noktası 2", + "iris.modded.help.entry.command.x_y": "otomatik seçim up ve dışarı", + "iris.modded.help.entry.command.x_y_2": "otomatik seçim up, down ve dışarı", + "iris.modded.help.entry.command.analyze": "Show object kompozisyon", + "iris.modded.help.entry.command.shrink": "En az büyüklüğüne bir nesne katın", + "iris.modded.help.entry.command.plausibilize": "Yetiştirilen şubeler bu yüzden ağaç hayatta kalır vanilla çürümesi", + "iris.modded.help.entry.command.undo": "Yapıştırılan nesneleri geri al", + "iris.modded.help.entry.command.create_2": "Yeni bir paket projesi oluşturun", + "iris.modded.help.entry.command.package": "Bir boyut sıkıştırılmış bir format", + "iris.modded.help.entry.command.version_2": "Bir paket versiyonunu yazdırın", + "iris.modded.help.entry.command.regions": "Yakın bölge dağıtımını hesaplamak", + "iris.modded.help.entry.command.open": "Bir paket için geçici bir stüdyo boyutu açın", + "iris.modded.help.entry.command.close": "Açık stüdyo boyutunu kapatın ve dünyayı kırın", + "iris.modded.help.entry.command.tpstudio": "Açık stüdyo boyutuna Teleport", + "iris.modded.help.entry.command.status_studio": "Açık stüdyo boyutunu ve paketini göster", + "iris.modded.help.entry.command.noise": "Gürültü Explorer GUI Sunucu ekranında", + "iris.modded.help.entry.command.map": "Vizyon haritasını açın GUI Sunucu ekranında", + "iris.modded.help.entry.command.vscode": "Bir paket için .code-workspace ve onu masaüstü editöründe açın", + "iris.modded.help.entry.command.update": "Bir paket için .code-workspace", + "iris.modded.help.entry.command.importvanilla": "Açık vanilla ithalat iş akışı", + "iris.modded.help.entry.command.validate": "Bir paket veya her paketin geçerliliği", + "iris.modded.help.entry.command.cleanup": "Preview veya kurantine alışılmamış adaylar", + "iris.modded.help.entry.command.restore": "Preview veya en son karantinayı geri yükleme", + "iris.modded.help.entry.command.status_validation": "Önbellek doğrulama durumu", + "iris.modded.help.entry.command.enable": "Oluşturun ve kalıcı olun Iris Runtime'da boyut; eksikse paketi indirin, alıntı paketi:dimensionKey Belirli bir paket boyutu seçmek için", + "iris.modded.help.entry.command.replace_overworld": "İnjek bir an Iris birincil dünya ve rota oyuncuları orada vanilla overworld yerine", + "iris.modded.help.entry.command.disable": "Evacuate ve bir yük Iris Boyut; diskteki dünya verileri yeniden etkinleştirilir", + "iris.modded.help.entry.command.delete": "Başarısız bir şekilde Iris Boyut ve onun chunk ve mantle verilerini disklerden sil", + "iris.modded.help.entry.command.list": "Liste yüklendi Iris Boyut boyutları", + "iris.modded.help.entry.command.status_world": "Show installed Iris Boyut ve yapılandırılmış birincil dünya", + "iris.modded.help.entry.command.status_datapack": "kontrol installed Iris Boyut tipi Overrides", + "iris.modded.help.entry.command.install": "Yükleme için boyut tipi Overrides Iris Boyut boyutları", + "iris.modded.help.entry.command.list_datapacks": "Liste yapılandırılmış ve yüklü datapacks", + "iris.modded.help.entry.command.ingest": "Açık Açıklama Bukkit Datapack ingest", + "iris.modded.help.entry.command.remove": "Açıklama Datapack Move iş akışı", + "iris.modded.help.entry.command.list_structures": "Rejenrate structure-index.json", + "iris.modded.help.entry.command.info_2": "Resolve a Iris Yapı grafiği ve rapor sınırları", + "iris.modded.help.entry.command.place": "Assemble ve bir yer Iris Yerinizde Yapı", + "iris.modded.help.entry.command.import": "Açık Açıklama Bukkit Yapı import iş akışı", + "iris.modded.help.entry.command.capture": "Açık Açıklama Bukkit Yapı yakalama", + "iris.modded.help.entry.command.verify": "Rapor yerli ve Iris Yapı mevcut boyutta erişilebilirlik", + "iris.modded.help.entry.command.sentry": "Bir test istisnaı gönderin Iris hata muhabiri", + "iris.modded.help.entry.command.network": "Liste ağ arabirimleri ve adresleri", + "iris.runtime.progress.finding_regions": "Bölgeleri bulmak", + "iris.runtime.progress.converting": "Dönüştürmek", + "iris.runtime.status.running": "Run", + "iris.runtime.status.stopped": "Durdu", + "iris.runtime.status.paused": "Pa used", + "iris.runtime.status.paused_lower": "durakladı", + "iris.runtime.status.running_lower": "running run", + "iris.runtime.status.enabled": "etkinleştirildi.", + "iris.runtime.status.disabled": "Engelliler.", + "iris.runtime.status.unregistered": "Kayıtsız", + "iris.runtime.status.none": "Hiçbir kimse hiçbir şey yok", + "iris.runtime.status.random": "rastgele", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "Gerçek doğru", + "iris.runtime.status.false": "sahte yanlış", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " Over write", + "iris.runtime.datapack.override_suffix": " (Dünya veri paketi override installed)", + "iris.runtime.primary_world.players_routed_suffix": " (Oyuncular oraya yolladı)", + "iris.runtime.primary_world.routing_disabled_suffix": " (Vücretsiz)", + "iris.runtime.modded.no_dimension_match": "Hayır Iris boyut maçları ‘{filter}'.", + "iris.runtime.teleport.world": "{world}'e teleport edildiniz.", + "iris.runtime.engine.hotloaded": "Motor Hotloaded", + "iris.runtime.job.completed": "{job}, {duration} sürede tamamlandı", + "iris.runtime.job.scanning_selection": "Skaning Selection", + "iris.runtime.job.loading_chunks": "Chunks", + "iris.runtime.job.searched_chunks": "Arama {chunks} Chunk", + "iris.runtime.job.compile": "Tamam", + "iris.runtime.job.saving_object": "Object", + "iris.runtime.job.downloading": "Downloading indir", + "iris.runtime.job.extracting": "Türleme", + "iris.runtime.job.installing": "Yükleme", + "iris.runtime.compile.iob_empty": "- IOB {file} has 0 Bloklar!", + "iris.runtime.compile.iob_empty_hover": "Hata:\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} 3D değil!", + "iris.runtime.compile.iob_not_3d_hover": "Hata:\n{path}\nGeniş, yükseklik veya derinlik sıfır (kötü format)", + "iris.runtime.compile.json_error": "- JSON Hata {file}", + "iris.runtime.compile.json_error_hover": "Hata:\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Yükleyiciyi bulamaz {path}", + "iris.runtime.datapack.name": "Iris Dünya", + "iris.runtime.pack.already_exists": "Pack zaten var!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "At atlama {object}: Yüklenmedi", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} wood ({branches} şubeler) {converted} Yapraklar->Ahşap, -{distances} Mesafeler", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} wood ({branches} şubeler) {converted} Yapraklar->Ahşap, -{distances} Mesafeler,!{pinned} pinnedildi", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "Başarısız {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "tamamlandı : {processed} İşlenmiş, {changed} değiştirildi, {skipped} atladı, {failed} Başarısız oldu", + "iris.runtime.tree_plausibilize.done_dry": "tamamlandı : {processed} İşlenmiş, {changed} değiştirildi, {skipped} atladı, {failed} Başarısız (kuru koşmak, hiçbir şey yazılı)", + "iris.runtime.tree_plausibilize.totals": "Toplamlar: +{wood} wood ({branches} şubeler) {converted} Yapraklar->Ahşap, -{distances} Mesafeler,!{pinned} Tamamlanmış, ulaşılamaz {before} -> {after}", + "iris.runtime.item.wand.name": "Iris", + "iris.runtime.item.wand.lore.first": "Sol ilk köşeyi ayarlamak için bir blok tıklayın", + "iris.runtime.item.wand.lore.second": "Doğru ikinci köşeyi kurmak için bir blok tıklayın", + "iris.runtime.item.dust.name": "Toz Açıklama", + "iris.runtime.item.dust.lore": "Doğru yerleştirme yapısını ortaya çıkarmak için bir blok tıklayın!", + "iris.runtime.wand.position_set": "Pozisyon pozisyonu {position} set toplan {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Bu boyut Iris tarafından oluşturulmadı.", + "iris.runtime.dust.found_object": "bulundu object bulunamadı {object}", + "iris.runtime.dust.revealed": "Ortaya çıktı {count} blok (s) {object}", + "iris.runtime.dust.revealed_capped": "Ortaya çıktı {count} blok (s) {object} (Aptal)", + "iris.runtime.dust.header": "--- Iris Toz @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Blok: {block}", + "iris.runtime.dust.position.above": "Pozisyon: +{offset} üstünde Yüzey (surface Y ={surfaceY})", + "iris.runtime.dust.position.below": "Pozisyon: {offset} Aşağıdaki yüzey (surface Y={surfaceY})", + "iris.runtime.dust.position.at": "Pozisyon: Yüzeyde (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Object @block : {object}", + "iris.runtime.dust.none": "Hiçbir kimse hiçbir şey yok", + "iris.runtime.dust.placed_by.object_above": "Tarafından Yeri: nesne /{object}\" (üstünde yüzeyi)", + "iris.runtime.dust.placed_by.decoration_above": "Yer: dekorasyon/object /stilt (üstünde yüzeyi)", + "iris.runtime.dust.placed_by.buried_object": "Yere: gömülü nesne{object}'", + "iris.runtime.dust.placed_by.terrain": "yerleştirildi by: terrain layer (depth {depth} aşağıda yüzey)", + "iris.runtime.dust.column_object": "Köşe nesnesi: {object} -> Bu blok muhtemelen nesnenin stiltünün", + "iris.runtime.dust.column_object_none": "Köşe nesnesi: {detail}", + "iris.runtime.dust.column_none": "Hiçbiri içeride 64 (decorator veya arazi, değil Bir nesne stili)", + "iris.runtime.dust.column.above": "{object} @Y={y} (üstünde).", + "iris.runtime.dust.column.below": "{object} @Y={y} (düşük)", + "iris.runtime.dust.surface_biome": "Yüzey biyome: {biome}", + "iris.runtime.dust.surface_biome_detail": "Yüzey biyome: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biyome @Y: {biome}", + "iris.runtime.dust.cave_biome": "Cave / CaveMantle Biyome: {biome}", + "iris.runtime.dust.server_biome": "Server biyome: {biome} (ID: {id})", + "iris.runtime.dust.region": "Bölge: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Midunk'taki nesneler: {objects}", + "iris.runtime.dust.copy_button": "[Bu istatistikleri kopyalamak için tıklayın]", + "iris.runtime.dust.copy_hover": "Blok istatistiklerini panoya kopyala", + "iris.runtime.pregen.starting": "Iris Pregen start...", + "iris.runtime.pregen.header": "Iris Prejen", + "iris.runtime.pregen.bossbar.paused": "Iris Prejen {generated}/{total} {percent}% duraklatıldı", + "iris.runtime.pregen.bossbar.running": "Iris Prejen {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " Başarısız oldu {failed}", + "iris.runtime.pregen.status.context": "Boyut {dimension} · Yöntem {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunk {generated}/{total} · Hız {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunk {generated}/{total} · Hız {speed}/s · Başarısızlık {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · Elapd {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · Elapd {elapsed} · duraklatıldı", + "iris.runtime.pregen.button.pause": "Pause /Resume", + "iris.runtime.pregen.button.pause.hover": "Prejenerasyon duraklama durumu", + "iris.runtime.pregen.button.stop": "Dur", + "iris.runtime.pregen.button.stop.hover": "Mevcut bölgeyi bitirin ve prejenerasyonu durdurun", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cPaketler / klasör bulunamadı.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eTakip etmek için paket yok.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aGeçerlilik tamamlandı. Kırık paketler: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cPack \"{pack}“Geçmiş altında bulunamadı packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aPaket için bulunan temiz adaylar yok '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aTamamrantined {size} Temiz aday (s) altında {quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cTemizleme modu önizleme veya uygulama olmalıdır.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aPaket için bulunan temiz adaylar yok '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§epaket için temizleme önizleme \"{pack}': {size} aday(lar). Hiçbir dosya değiştirildi.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7çalıştır /iris pack cleanup {pack} mode=apply Bu adaylara taze bir taramadan sonra.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cGeri yükleme reddetti çünkü {size} destinasyon(s) zaten var.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§ePaket için geri yüklememek için hiçbir şey yok \"{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aGeri yükleme {size} Dosya(s) -den {dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cGeri yükleme modu önizleme veya uygulama olmalıdır.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§ePaket için geri yüklememek için hiçbir şey yok \"{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eGeri Döndük için {dumpPath}: {size} Dosya(lar). Hiçbir dosya değiştirildi.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cGeri yükleme bloke edilir {size} Mevcut destinasyon(lar).", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7çalıştır /iris pack restore {pack} mode=apply Taze bir çatışma kontrolünden sonra geri yüklemek.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eGeçerlilik sonuçları kaydedildi. çalıştır /iris pack validate İlk önce.", + "iris.bukkit.runtime.commandpack.status.ok": "§aTamam§r {pack}§7 (blocking={blocking}Uyarılar ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cBKEN§r {pack}§7 (blocking={blocking}Uyarılar ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cTemizleme başarısız oldu: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cGeri yükleme başarısız oldu: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "Hala karantinaya alındı", + "iris.bukkit.runtime.commandpack.path.quarantined": "Kurantined", + "iris.bukkit.runtime.commandpack.path.candidate": "Aday adayı", + "iris.bukkit.runtime.commandpack.path.conflict": "çatışma", + "iris.bukkit.runtime.commandpack.path.restored": "geri yüklendi", + "iris.bukkit.runtime.commandpack.path.file": "dosya dosyası", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§e\"Hiçbir geçerlilik sonucu yok\"{pack}'. çalıştır /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cGeçerlilik \"{name}\" başarısız oldu: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aPack \"{packName}\" yüklenebilir.§7 (Resimler ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cPack \"{packName}\" bozuk:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... ve {count} Daha fazla uyarı.", + "one": "§7 ... ve {count} Daha fazla uyarı." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cBunu kullanmadan önce her zaman yedek alın", + "§eOluşabilecek sorunlar şunlarla sınırlı olmamak üzere şunlardır:", + "§e - Eski ve yeni chunk'lar arasında bozuk sınırlar (kesilmeler) (güncellemeden önce & sonra)", + "§e - Eski chunk'larla uyuşmayan yeniden oluşturulmuş chunk'lar", + "§e - Yeniden oluşturma sırasında tekrar spawnlanmayan yapılar", + "§e - Birbiriyle hizalanmayan mağaralar", + "§e - Birbiriyle hizalanmayan arazi katmanları", + "§cRiskleri anladığınızdan ve yedek aldığınızdan eminseniz:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aİthalat §f{total}§a vanilla & Datapack yapıları (mode= ={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[hata] {keyString}:", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[atlandı] {keyString}: Tek-template NBT - vanilla bunu kodda ya da ayrı parça şablonlarından inşa eder (Resimler üzerinden transfer edilir); bir yapı olarak ithal etmek için hiçbir şey.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[hata] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aBulk import tamamlandı: §f{imported}§a ithal, §f{skipped}§a atladı, §f{failed}§a başarısız (§f{total}§a Toplam).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aTek katlı yapılar ithal parçalardan inşa etmek (bir nesile yerleştirilen bir değişken)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} varyantlar)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[atlandı] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[hata] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aSingle-template yapıları: §f{imported}§a inşa edilmiş, §f{skipped}§a atladı, §f{failed}§a başarısız oldu.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§csunucu aracılığıyla yapı şablonlarını en aza indirmek için başarısız oldu ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eYapı şablonları ‘yapı’ kaynak yolu altında bulunamadı.", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aİthalat §f{total}§a Yapı şablonları (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[hata] {keyString}:", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[hata] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} ithal, {skipped} atladı, {failed} başarısız oldu)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aŞablon ithalatı tamamlandı: §f{imported}§a ithal, §f{skipped}§a atladı, §f{failed}§a başarısız (§f{total}§a Toplam).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eHiçbir veri paketi (ilk-minecraft) yapılar kayıtlı değildir. Bir veri paketini alın ve ilk önce yeniden başlayın.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aİthalat §f{total}§a Datapack yapıları (mode= ={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[hata] {keyString}:", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[hata] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aİthalat §f{size}§a veri paketi yapısı şablonları...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[hata] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[hata] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eSunucu aracılığıyla veri paketi şablonları istenmeyebilir ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aDatapack structure import Tamam: §f{imported}§a ithal, §f{skipped}§a atladı, §f{failed}§a başarısız oldu.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eYapı yakalama aktif tarafından desteklenmez NMS bağlayıcı; yakalama geçişini atlayın.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Hiçbir kodlanmış yapılar yakalamaya bırakılır (her şey zaten bir yapı olarak ithal edilir).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aCapturing§f{total}§aKodlanmış yapılar (hayır)NBTŞablon) bir çizik dünyaya (daha genişleyen herhangi bir daha/Daha uzun{MAXSPAN}bloklar...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[atlandı] {key}: Burada capturable bir yapı yoktu (çok büyük, yanlış boyut veya düz bir dünyada geçerli yerleştirme yok). Yemek vanilla - üretilir.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[hata] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[hata] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} Yakalandı, {skipped} atladı, {failed} başarısız oldu)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aYapı yakalama tamamlandı: §f{imported}§a Yakalandı, §f{skipped}§a atladı, §f{failed}§a başarısız (§f{total}§a Toplam).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eHiçbir vanilla ağacı /object özellikleri aktif olarak maruz bırakılır NMS Bağlanma (yalnızca)", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aİthalat §f{total}§a vanilla tree/object features (§f{wantVariants}§a Her bir şekilde) sıfır dünyaya...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[atlandı] {key}: özellik, retries'ten sonra hiçbir şey koymadı.", + "iris.bukkit.runtime.featureimporter.fail": "§c[hata] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} ithal, {skipped} atladı, {failed} başarısız oldu)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aÖzel ithalat tamamlandı: §f{imported}§a Yazılı özellikler, §f{skipped}§a atladı, §f{failed}§a başarısız (§f{total}§a Toplam).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cÖzel ithalat için sıfır dünyayı yaratamaz ({error}); ağacı /object'i atlayın.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Hiçbir şematik dosyalar bulunamadı {path}", + "iris.bukkit.runtime.irisconverter.converted": "§a{name} -> {value}, {value2} sürede dönüştürüldü", + "iris.bukkit.runtime.irisconverter.converted_2": "§aDönüştürüldü {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§ckurtarmak için başarısız oldu: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cdönüştürmeye başarısız oldu: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Dönüştürüldü: {get}, {value} sürede", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cBazı şematik dönüştürmeye başarısız oldu. Bilgi için konsolu kontrol edin.", + "iris.bukkit.runtime.studiosvc.installing_package": "Yükleme Paketi: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Paket arıyorsunuz: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "{WORKSPACENAME} klasöründe {type}.iris bulundu", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Bul bulundu {type} boyutta boyut {WORKSPACENAME} klasörü. Repacking", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Bulamaz {name} Bu paketin boyutlarında! Başarısız!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Boyutu yükleyemez! Başarısız!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} Tür yüklü. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Pack \"{key}\" paketin listesinde bulunamadı.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Kullanım Kullanımı /iris download branch= manuel olarak indirmek için.", + "iris.bukkit.runtime.studiosvc.failed_download": "indirmek için başarısız oldu '{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "indirmek için başarısız oldu IrisDimensions/overworld beta serbest bırakılması.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "indirmek için başarısız oldu '{repo}\" (branch {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Stüdyo dünyasını açmaya başarısız oldu: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Açık stüdyo \"{dimm}\" - paket hataları engelliyor:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "paketi düzeltin ve koşmak /iris pack validate {dimm} revize etmek için.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Mevcut stüdyo projesini kapatmak için başarısız oldu: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Mevcut stüdyo projesini kapatmak için başarısız oldu: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Stüdyo dünyasını açmaya başarısız oldu: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "paketi yeni bir boyut oluşturmak için bulamaz.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Tamamlanmış Boyut Dosyası", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "İthalat {downloadable} Yeni Project {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7nesne editörü hiçbir hücre tıklama altında (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio: tasarrufu §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio: Hiçbir değişiklik {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio: boş hücre {pack}/{key} (Yazmak için hayır).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio: Hiçbir hedef dosya {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio: Kurtarın §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio: kurtarma başarısız oldu {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Boyut yükleyemez \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Boyut yükleyicisi alamaz", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cStüdyo açık başarısız oldu: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cStüdyo açık başarısız oldu.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aStüdyo hazır §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Seriating Objects", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Başka bir yazıldı {g} Nesneler", + "iris.bukkit.runtime.irisproject.package_compiled": "Paket Tamamlandı!", + "iris.bukkit.runtime.irisproject.failed": "Başarısız!", + "iris.bukkit.runtime.irisengine.total": "Toplam: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Motor §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Detaylar: ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} Boyutta tanımlanmamıştır!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cBulamadı {message} Arama aralığı içinde.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§a, {message}'e giriş...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} : {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Bu dünyadan tahliye edildiniz.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Bu dünyadan tahliye edildiniz. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Bazıları var Iris Onlarda özel biyomesajlar var", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Bu paketleri kullanmak için sunucunuzu yeniden başlatmanız gerekir.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Yetersiz İzinler", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Sub-commands ya da onları kullanmak için izniniz yok.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Parametreler Ignored: {m}", + "iris.runtime.studio.opening": "§6Studio §bAÇILIYOR", + "iris.runtime.studio.opening_progress": "§6Studio §bAÇILIYOR§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cBAŞARISIZ§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aHAZIR§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cBAŞARISIZ§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio hazır§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Başlatılıyor", + "iris.runtime.studio.stage.queued": "Sırada", + "iris.runtime.studio.stage.resolve_dimension": "Boyut çözümleniyor", + "iris.runtime.studio.stage.prepare_world_pack": "Dünya paketi hazırlanıyor", + "iris.runtime.studio.stage.install_datapacks": "Datapack'ler kuruluyor", + "iris.runtime.studio.stage.create_world": "Dünya oluşturuluyor", + "iris.runtime.studio.stage.apply_world_rules": "Dünya kuralları uygulanıyor", + "iris.runtime.studio.stage.prepare_generator": "Jeneratör hazırlanıyor", + "iris.runtime.studio.stage.request_entry_chunk": "Giriş chunk'ı yükleniyor", + "iris.runtime.studio.stage.resolve_safe_entry": "Güvenli spawn aranıyor", + "iris.runtime.studio.stage.teleport_player": "Işınlanıyor", + "iris.runtime.studio.stage.finalize_open": "Tamamlanıyor", + "iris.runtime.studio.stage.cleanup": "Temizleniyor", + "iris.runtime.world_create.teleport_failed": "§eDünya yaratıldı, ancak otomatik telgraf başarısız oldu. Deneyin /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} chunk", + "iris.runtime.world_create.console": "§6Genating §e{percent}%§7 {generated}/{required} chunk§8 ({remaining} sol)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fPregeneating", + "iris.runtime.world_create.pregen.console": "§6Pregeneating §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Rejen", + "iris.runtime.chunk_job.title.delete": "Deleten", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Hazırlanma", + "iris.runtime.chunk_job.stage.clearing": "Temizleme", + "iris.runtime.chunk_job.stage.resetting_mantle": "Yeniden tanımlama mantle", + "iris.runtime.chunk_job.stage.regenerating": "Regeneating", + "iris.runtime.chunk_job.stage.generating": "Genating", + "iris.runtime.chunk_job.stage.comparing": "Karşılaştırma", + "iris.runtime.chunk_job.stage.diagnosing": "Diyabet", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bÇALIŞMA", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} chunks içinde {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} chunks içinde {elapsed} ({failures} başarısız oldu)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aDONED§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cFAIUNU§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aTamamlandı§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cBaşarısızlık§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} Tamam: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} Hatalarla tamamlandı: {summary}", + "iris.runtime.golden.no_capture": "Hiçbir altın yakalama {path}İlk önce bir yakalama çalıştırın.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash Abored: {failed} chunks üretmek için başarısız oldu. Hiçbir altın dosya yazılı değil.", + "one": "GoldenHash Abored: {failed} chunk üretmek için başarısız oldu. Hiçbir altın dosya yazılı değil." + }, + "iris.runtime.golden.failed": "GoldenHash Başarısız: {error}", + "iris.runtime.golden.mantle_reset": "Mantle sıfırlandı ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle Başarısızlık başarısız oldu ({type}); mevcut mantle devlet ile devam edin.", + "iris.runtime.golden.captured": "Altın yakalama: {chunks} chunks birleştirilmiş ={hash}", + "iris.runtime.golden.wrong_world": "Altın dosya dim ={goldenDimension} tohum ={goldenSeed} Ama bu dünya dim ={dimension} tohum ={seed}. Selam olsun.", + "iris.runtime.golden.version_warning": "Altın mc={goldenVersion}, koşmak mc ={version}. Diffs, versiyona dönüştürülebilir.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} chunks, birleştirilmiş ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} chunks farklıdır.", + "iris.runtime.golden.mismatch_chunk": " chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (Altında izin)", + "iris.runtime.golden.mismatch_more": " ... ve {count} Daha fazla daha fazlası", + "iris.runtime.golden.current_written": "Şu anki {file} için yazılmış", + "iris.runtime.golden.diag.stable": "Tekrar-gen STABLEmantle-reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Tekrar-gen UNSTABLE ({diffs}+ blok diffs), mantle-reset {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (mantle yeniden üretilir)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ diffs - mantle inşa devlet / emir bağımlıdır)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Tanı başarısız oldu: {error}", + "iris.runtime.golden.started": "GoldenHash başladı: {chunks} Etrafında 0,0 Buffers'te (dünyayı terk etti), iplikler ={threads} mod ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] chunk {x},{z} Havehed", + "iris.runtime.golden.chunk_failed": "Chunk. {x},{z} başarısız: {type}", + "iris.runtime.pack_download.invalid_pack_name": "geçersiz paketi adı \"{pack}\" (tamam: a-z, 0-9, ve -)", + "iris.runtime.pack_download.invalid_branch_name": "geçersiz şube adı \"{branch}\" (Ziyaret: mektuplar, sayılar, . ve -)", + "iris.runtime.pack_download.failed": "Pack download başarısız oldu: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Downloading indir {url}", + "iris.runtime.pack_download.failed_to_find": "Paket bulmak için başarısız oldu {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Doğru repo ve şubeyi belirttiğinizden emin olun!", + "iris.runtime.pack_download.example_command": "Örneğin: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Unpackinging {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Paket açılırken sorun oluştu. Lütfen şunları kontrol edin/yapın:", + "1. işleyen bir internet bağlantısı var mı?", + "2. indirilen indirme miydi?", + "3. siliniyor */plugins/iris/packs klasör ve re-download.", + "4. paketi buradan indirin GitHub Repo : https://github.com/IrisDimensions/overworld", + "5. İletişim desteği (diğer tüm seçenekler yardımcı değilse)" + ], + "iris.runtime.pack_download.no_extracted_files": "zip dosyasından hiçbir dosya çıkarılmadı.", + "iris.runtime.pack_download.home_directory_error": "Ev rehberi bulmakta hata. Dosya adında metin olmayan karakterler var mı?", + "iris.runtime.pack_download.invalid_archive_format": "geçersiz formatı. Eksik kök klasörü veya çok fazla klasör!", + "iris.runtime.pack_download.no_dimension_file": "Tamamlanan zip dosyasında bulunan hiçbir boyut dosya bulunamadı.", + "iris.runtime.pack_download.check_github": "GitHub'de mevcut olduğunu kontrol edin ve bunu personele rapor edin!", + "iris.runtime.pack_download.one_dimension_required": "Boyut klasörü tam olarak bir dosya içermelidir.", + "iris.runtime.pack_download.invalid_dimension": "geçersiz boyut klasörü altında dimensions/.", + "iris.runtime.pack_download.importing": "İthalat {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Paketlerdeki başka bir boyut zaten anahtarı kullanıyor {key}. İthalat başarısız oldu!", + "iris.runtime.pack_download.pack_key_conflict": "Başka bir paket anahtarı kullanıyor {key}. İthalat başarısız oldu!", + "iris.runtime.pack_download.acquired": "Başarılı bir şekilde satın alındı {name}.", + "iris.runtime.pack_download.validation_failed": "Pack \"{pack}“Başarısız doğrulama; dünya ve Stüdyo yaratımı reddedilecektir. Sebepler:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Pack \"{pack}\" ile doğrulandı\" {count} Uyarılar.", + "one": "Pack \"{pack}\" ile doğrulandı\" {count} Uyarı." + }, + "iris.runtime.pack_download.validated": "Pack \"{pack}\"Doğrulandı.", + "iris.client.vision.title": "Iris Vizyon", + "iris.client.vision.connecting": "Bağlanmak için Iris server sunucusu...", + "iris.client.vision.not_connected": "Bağlanmamaya bağlı değil", + "iris.client.vision.not_iris_world": "Bir şey değil Iris dünya dünyası", + "iris.client.vision.no_dimension_data": "Hiçbir Boyut Verileri", + "iris.client.vision.header_detail": "{status} yakınlaştırma {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Kaydırmak için sürükleyin, yakınlaştırmak için kaydırın, kapatmak için Esc tuşuna basın", + "iris.client.vision.dimension_pack": "{dimension} paket paketi {pack}", + "iris.client.toast.studio_hotload": "Stüdyo Hotload", + "iris.client.toast.changed_files": { + "other": "{count} dosyaları dosyalar", + "one": "{count} dosya dosyası" + }, + "iris.client.toast.reload_failed": "yeniden yükle başarısız oldu", + "iris.client.toast.reloaded": "Yeniden yüklendi", + "iris.client.toast.pack_failed": "{pack} Başarısız oldu", + "iris.client.what.title": "Iris What WhatWhat What nedir?", + "iris.client.what.querying": "Sorgulama {x}, {z}...", + "iris.client.what.biome": "Biyome: {biome}", + "iris.client.what.region": "Bölge: {region}", + "iris.client.what.cave": "Cave : {cave}", + "iris.client.what.height": "Yükseklik: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "duraklatıldı", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aBen", + "iris.bukkit.scoreboard.speed": "§aHız Hızı§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bÖnbellek§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bAdam§7: {count}", + "iris.bukkit.scoreboard.carving": "§dAraba§7: {state}", + "iris.bukkit.scoreboard.region": "§bBölge Bölgesi§7: {region}", + "iris.bukkit.scoreboard.biome": "§bBiyome§7: {biome}", + "iris.bukkit.scoreboard.height": "§bYükseklik§7: {height}", + "iris.bukkit.scoreboard.slope": "§bSlopee§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBUDÜ/s§7: {updates}", + "iris.desktop.vision.title": "Iris Vizyon", + "iris.desktop.vision.view": "Görüntüleme:", + "iris.desktop.vision.grid": "Izgara", + "iris.desktop.vision.follow": "Takip", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Yenileme", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "yakınlaştırma reset sıfırlama", + "iris.desktop.vision.grid_enabled": "Grid etkinleştirdi", + "iris.desktop.vision.grid_disabled": "Izgara", + "iris.desktop.vision.following": "{player} takip ediliyor", + "iris.desktop.vision.no_player": "Hiçbir oyuncu dünyada", + "iris.desktop.vision.follow_disabled": "Engellileri Takip Et", + "iris.desktop.vision.low_quality": "Düşük kaliteli", + "iris.desktop.vision.high_quality": "Yüksek kaliteli", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp | {width} x {height} bloklar blok blokları", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Pozisyon: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Sağlık: {health} / {maximum}", + "iris.desktop.vision.block_position": "Blok Block {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk. {x}, {z}", + "iris.desktop.vision.region_position": "Bölge Bölgesi {x}, {z}", + "iris.desktop.vision.biome_key": "Anahtar: {key}", + "iris.desktop.vision.biome_file": "Dosya: {file}", + "iris.desktop.vision.velocity": "Velocity : {velocity}", + "iris.desktop.vision.tiles": "Malzemeler: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "İşçiler: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Merkez: {x}, {z}", + "iris.desktop.vision.help.toggle": "değiştir yardım", + "iris.desktop.vision.help.refresh": "Yeni kaplamalar", + "iris.desktop.vision.help.follow": "Takip oyuncu", + "iris.desktop.vision.help.zoom": "Yakınlaştır/uzaklaştır", + "iris.desktop.vision.help.reset_zoom": "yakınlaştırma", + "iris.desktop.vision.help.cycle_mode": "Çevrim formu", + "iris.desktop.vision.help.quality": "değiştir karo kaliteli", + "iris.desktop.vision.help.fps": "değiştir 30/60 FPS", + "iris.desktop.vision.help.grid": "değiştir network", + "iris.desktop.vision.help.biome": "Detaylı bilgi", + "iris.desktop.vision.help.teleport": "İmlece ışınlan", + "iris.desktop.vision.help.editor": "Açık biyome içeri editörü", + "iris.desktop.vision.opened": "Açıklandı {target}", + "iris.desktop.vision.teleporting": "{x}, {z}", + "iris.desktop.vision.mode.biome": "Biyome", + "iris.desktop.vision.mode.biome_land": "Biome toprağı", + "iris.desktop.vision.mode.biome_sea": "Biome deniz", + "iris.desktop.vision.mode.region": "Bölge Bölgesi", + "iris.desktop.vision.mode.cave_land": "Cave land Cave", + "iris.desktop.vision.mode.height": "Yükseklik", + "iris.desktop.vision.mode.object_load": "Object yükü", + "iris.desktop.vision.mode.decorator_load": "Decorator yükü", + "iris.desktop.vision.mode.continent": "Continan", + "iris.desktop.vision.mode.layer_load": "Katman yükü", + "iris.desktop.noise.title": "Gürültü Explorer", + "iris.desktop.noise.title_generator": "Gürültü Explorer: {generator}", + "iris.desktop.noise.search": "Arama...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} yakınlaştırma: {zoom} Değer: {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Özel özelleştirme", + "iris.desktop.noise.category.pack_generators": "Pack Jeneratörs", + "iris.desktop.noise.category.simplex": "Basitx", + "iris.desktop.noise.category.perlin": "Kovin", + "iris.desktop.noise.category.cellular": "Hücreler", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Klover", + "iris.desktop.noise.category.hexagon": "Hexagon Escort", + "iris.desktop.noise.category.vascular": "Vasüler", + "iris.desktop.noise.category.globe": "Küre", + "iris.desktop.noise.category.cubic": "Cubik", + "iris.desktop.noise.category.fractal": "Fractalal", + "iris.desktop.noise.category.static": "Statik", + "iris.desktop.noise.category.nowhere": "Hiçbir yerde yok", + "iris.desktop.noise.category.sierpinski": "Seerpinski", + "iris.desktop.noise.category.utility": "Amaç", + "iris.desktop.noise.category.other": "Diğer", + "iris.desktop.pregen.initializing": "Başlangıç...", + "iris.desktop.pregen.title": "Prejen View", + "iris.desktop.pregen.method_pending": "Pending Ping", + "iris.desktop.pregen.paused": "duraklatıldı", + "iris.desktop.pregen.resume_hint": "Devam etmek için P'ye basın", + "iris.desktop.pregen.pause_hint": "Duraklatmak için P'ye basın", + "iris.desktop.pregen.progress_paused": "duraklatıldı {generated} Of {total} ({percent} Tamam)", + "iris.desktop.pregen.progress_saving": "Tasarruf kurtarmak... {generated} Of {total} ({percent} Tamam)", + "iris.desktop.pregen.progress_generating": "Genating {generated} Of {total} ({percent} Tamam)", + "iris.desktop.pregen.speed": "Hız: {chunksPerSecond} chunk/s, {regionsPerMinute} bölgeler/m, {chunksPerMinute} chunks /", + "iris.desktop.pregen.speed_cached": "Hız: Önbelli {chunksPerSecond} chunk/s, {regionsPerMinute} bölgeler/m, {chunksPerMinute} chunks /", + "iris.desktop.pregen.time": "{remaining} kalan ({elapsed} elapd)", + "iris.desktop.pregen.method": "Nesil yöntemi: {method}", + "iris.desktop.pregen.memory": "bellek: {used} ({usage}Baskı:) {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/vi_VI.json b/core/src/main/resources/languages/vi_VI.json new file mode 100644 index 000000000..2bd8fa92a --- /dev/null +++ b/core/src/main/resources/languages/vi_VI.json @@ -0,0 +1,1435 @@ +{ + "locale": "vi_VI", + "messages": { + "director.help.navigation.parent.hover": "Quay lại nhóm lệnh cha", + "director.help.navigation.back": "Quay lại", + "director.help.no_subcommands": "Không có lệnh con trên trang này.", + "director.help.no_description": "Không có mô tả", + "director.help.aliases": "Bí danh", + "director.help.command_group": "Nhóm lệnh. Nhấp để mở.", + "director.help.no_parameters": "Không có tham số. Nhấp để điền sẵn lệnh.", + "director.help.parameters": "Tham số", + "director.help.parameter.required": "bắt buộc", + "director.help.parameter.optional": "tùy chọn", + "director.help.parameter.default": "mặc định", + "director.help.navigation.previous.hover": "Trang trước", + "director.help.navigation.next.hover": "Trang sau", + "director.help.navigation.page": "Trang", + "director.runtime.error.invalid_origin": "Không thể chạy lệnh này từ nguồn này.", + "director.runtime.error.unknown_parameter": "Khóa tham số không xác định: {key}", + "director.runtime.error.unexpected_argument": "Đối số không mong đợi \"{argument}\". Các tham số tùy chọn phải được chỉ định bằng khóa, ví dụ seed=123", + "director.runtime.error.conversion_failed": "Không thể chuyển \"{value}\" thành {type} cho {parameter}", + "director.runtime.error.default_parse_failed": "Không thể phân tích giá trị mặc định của tham số {parameter}", + "director.runtime.error.missing_argument": "Thiếu đối số \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "Không thể thực thi lệnh {command}: {reason}", + "director.runtime.usage": "Cách dùng: {usage}", + "iris.command.permission_denied": "Bạn không có quyền '{permission}'", + "iris.command.unknown": "Lệnh Iris không xác định", + "iris.command.player_only": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.command.iris_world_required": "Chiều không gian này không được Iris tạo ra.", + "iris.command.reload.success": "Đã tải lại cài đặt và ngôn ngữ {locale}.", + "iris.command.reload.failed": "Đã tải lại cài đặt, nhưng ngôn ngữ {locale} bị từ chối; tiếp tục sử dụng {activeLocale}.", + "iris.modded.help.unknown_section": "Không rõ Iris Phần trợ giúp: {section}", + "iris.modded.help.back_hover": "Trở về {parent}.", + "iris.modded.help.command_parameter": "Tham số lệnh", + "iris.modded.help.parameter_required": "Tham số này là cần thiết.", + "iris.modded.help.parameter_optional": "Tham số này là tùy chọn.", + "iris.modded.help.brigadier_text": "Tham số này được đọc là văn bản bằng Brigadier.", + "iris.modded.help.operator_notice": "Iris lệnh cần cho phép điều hành (bằng 2).", + "iris.modded.help.operator_instruction": "Chạy {command} từ bàn giao tiếp (hoặc kích hoạt gian lận trong một người chơi); cho đến khi đó những lệnh này sẽ không chạy hoặc tab đầy đủ.", + "iris.modded.command.properties.none": "Thuộc tính: (không có)", + "iris.modded.command.properties.list": "Thuộc tính {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7Bắt đầu đọc tập dữ liệu...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§aBộ dữ liệu đã cấu hình: §f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§aBộ dữ liệu đã cài đặt: §f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§eThêm Modrinth URLs đến chiều không giandatapackImports'Danh sách, sau đó chạy /iris datapack ingest.", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§agenhash bắt đầu: {value} chunk...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cgenhash thất bại tại chunk {rx},{rz}: {value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§agenhash toàn cục=§6{value}§a chunk={value2} khối đặc={solidBlocks} trong {value3}", + "iris.bukkit.commandfind.not_iris_world": "§6Không phải trong một Iris Thế giới!", + "iris.bukkit.commandfind.unknown_structure": "§cCấu trúc không rõ: {structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6Chạy trò chơi này để dịch chuyển tới một cấu trúc.", + "iris.bukkit.commandfind.locating": "§7Ghi lưu {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6Chạy trò chơi này để dịch chuyển tới một cấu trúc.", + "iris.bukkit.commandfind.locating_2": "§7Ghi lưu {structure}...", + "iris.bukkit.commandfind.teleported": "§aChuyển tới {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§aĐã gỡ bỏ thành công thư mục thế giới", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§aĐã gỡ bỏ thành công thư mục thế giới", + "iris.bukkit.commandiris.failed_remove_world_folder": "§cLỗi gỡ bỏ thư mục thế giới", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§cKhông tìm thấy gói có đối tượng nào trên máy chủ này.", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§cKhông có đối tượng nào để đặt trên các gói được chọn.", + "iris.bukkit.commandobject.opening_object_studio_objects": "§aMở phòng thu đối tượng cho {scope} ({totalObjects} đối tượng)", + "iris.bukkit.commandobject.failed_open_object_studio": "§cLỗi mở tập ảnh đối tượng: {value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§cPhải ghi rõ một tên gói.", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§cGói '{pack}Không tìm thấy dưới packs/.", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ... và {value} nhiều hơn.", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§aKiểm tra cấu trúc trong §f{value}§a từ {value2},{value3} bên trong {searchRadius} Chunk...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§aNhập nội dung vanilla vào §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§ađã nhập xong: §f{imported}§a objects/structures Đã viết, §f{failed}§a bị lỗi.", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7Cây objects/vanilla/...; tham khảo chúng từ vị trí vật thể sinh học.", + "iris.bukkit.commandstudio.no_open_studio_projects": "§cKhông có dự án studio mở.", + "iris.bukkit.commandstudio.closing_studio": "§eĐóng studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§cViệc đóng cửa phòng thu thất bại: {value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§cViệc đóng cửa phòng thu thất bại: {value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§ePhòng thu đóng cửa. Vẫn đang dọn dẹp gia đình trên thế giới được xếp hàng để khởi động lại.", + "iris.bukkit.commandstudio.studio_closed": "§aPhòng thu đóng cửa.", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§cAnh đang ở trong thế giới phòng thu để lật ngược bảng điểm.", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Bảng ghi chú gỡ lỗi phòng thu {value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§cKhông thể cập nhật bảng kiểm tra lỗi phòng thu ngay bây giờ.", + "iris.bukkit.commandstudio.opened_inventory": "§aMở kho hàng!", + "iris.bukkit.commandstudio.generating_data": "§7Đang tạo ra dữ liệu...", + "iris.bukkit.commandstudio.done": "§aXong!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "Anh không được phép.{ROOTPERMISSION}'", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5Trạng thái:", + "iris.bukkit.irisenginestatus.service": "§5- Dịch vụ: §d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- Bộ phim: §d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- Thời gian bảo trì: §d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- Người làm việc song: §d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- Nhiệm vụ thế giới hoạt động: §d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5Đĩa kiến tạo:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- Thiết lập trí nhớ: §d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- Sử dụng Heap: §d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- Lãnh địa: §d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- Hàng đợi: §d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- Thời gian kéo dài trung bình: §d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- Thời gian kéo dài tối đa: §d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- Thời gian kéo dài tối thiểu: §d{value}", + "iris.bukkit.irisenginestatus.caches": "§5Cache:", + "iris.bukkit.irisenginestatus.resource": "§5- Tài nguyên: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- Dòng chảy 2D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- Dòng chảy 3D: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- Khác: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5Khác:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris Thế giới: §d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- Chunks nạp đạn: §d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§cThế giới là vô nghĩa.", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§cMục tiêu A Iris Thế giới trước khi đọc một cái thùng rác.", + "iris.bukkit.commanddeveloper.upgrading": "§aĐang nâng cấp tới {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§aHọc xong rồi! Bây giờ bạn có thể cập nhật phiên bản máy phục vụ của bạn {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§cBán kính phải là 0 hoặc cao hơn.", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§cĐây không phải là Iris Thế giới.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§cĐộng cơ tiếp cận thế giới này là vô giá trị.", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§aXoá khởi động: §6{chunks}§a chunk(s) xung quanh §6{centerX},{centerZ}§a. Dọn dẹp các khu nhà thành không khí.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§cBán kính phải là 0 hoặc cao hơn.", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§cChắc anh đang ở trong... Iris Thế giới dùng lại.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§cĐộng cơ tiếp cận thế giới này là vô giá trị. Đầu tiên là tạo ra những mẩu gần đó.", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§aKhởi động lại: §6{chunks}§a chunk(s) xung quanh §6{centerX},{centerZ}§a. Xóa bỏ và tái tạo tại chỗ.", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§cBán kính phải là 0 hoặc cao hơn.", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§cMục tiêu phải là một Iris Thế giới.", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§cĐộng cơ tiếp cận thế giới này là vô giá trị.", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aBắt đầu GoldenHash: §6{chunks}§a chunk(s) xung quanh §6{centerX},{centerZ}§a trong bộ đệm (thế giới chưa động đến).", + "iris.bukkit.commandedit.players_only": "§cChỉ người chơi thôi!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§cKhông phòng thu nào mở cửa cả!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§cCậu chắc đang ở trong phòng thu!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§cKhông thể mở tập tin trong môi trường không đầu!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§cMôi trường này không hỗ trợ môi trường!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6Không tìm thấy tập tin này; có lẽ nó không được tải trực tiếp từ tập tin nào?", + "iris.bukkit.commandedit.opening_vscode": "§aMở {value} {value2} trong VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§cKhông tìm thấy tập tin. Hoặc không tồn tại", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6Không tìm thấy tập tin này; có lẽ nó không được tải trực tiếp từ tập tin nào?", + "iris.bukkit.commandedit.opening_vscode_2": "§aMở {value} {value2} trong VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§cKhông tìm thấy tập tin. Hoặc không tồn tại", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6Không tìm thấy tập tin này; có lẽ nó không được tải trực tiếp từ tập tin nào?", + "iris.bukkit.commandedit.opening_vscode_3": "§aMở {value} {value2} trong VSCode! ", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§cKhông tìm thấy tập tin. Hoặc không tồn tại", + "iris.bukkit.commandfind.not_iris_world_5": "§6Không phải trong một Iris Thế giới!", + "iris.bukkit.commandfind.not_iris_world_2": "§6Không phải trong một Iris Thế giới!", + "iris.bukkit.commandfind.not_iris_world_3": "§6Không phải trong một Iris Thế giới!", + "iris.bukkit.commandfind.not_iris_world_4": "§6Không phải trong một Iris Thế giới!", + "iris.bukkit.commandfind.object_studio_teleporting": "§aPhòng thu đối tượng: đang dịch chuyển tới {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} không được cấu hình trong bất kỳ vùng nào/ miền thuộc địa.", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§cKhông thể dùng tên thế giới \"iris\" vì Iris sử dụng thư mục này cho các thế giới Studio.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§cChúng ta có thể đề nghị cái tên \"IrisWorldThay vào đó?", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§cKhông thể dùng tên thế giới \"benchmark\" vì Iris sử dụng thư mục này cho các gói đo hiệu năng.", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§cChúng ta có thể đề nghị cái tên \"IrisWorldThay vào đó?", + "iris.bukkit.commandiris.that_folder_already_exists": "§cThư mục đó đã có!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§cKhông tìm thấy hay tải về chiều không gian \"{resolvedType}\".", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§eHãy thử một trong những: ngoài thế giới, vanilla, bằng phẳng, kết thúc", + "iris.bukkit.commandiris.download_manually_iris_download": "§eHoặc tải về bằng tay: /iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§aĐã chuẩn bị xong thế giới. Hãy khởi động lại máy chủ để tạo/tải \"{worldName}\".", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§cNgoại lệ được nuôi lớn trong suốt quá trình sáng tạo. Xem bảng điều khiển để biết thêm chi tiết.", + "iris.bukkit.commandiris.successfully_created_your_world": "§aThành công trong việc tạo ra thế giới của anh!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§aThế giới của bạn sẽ tự động được thiết lập như thế giới chính khi máy chủ khởi động lại.", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eComment Folia.", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§eĐang chuẩn bị tập tin thế giới và bukkit.yml cho lần khởi chạy tiếp theo...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§cKhông thể tạo tập tin cho chiều không gian{value}\".", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§aCập nhật server.properties Cấp-tên là \"{name}\".", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§cThế giới đã được thiết lập, nhưng không cập nhật được server.properties thế giới chính.", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§aĐã chuẩn bị thế giới Iris \"{name}\" với trình tạo Iris:{value} và seed {seed}.", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§aThế giới này bây giờ được cấu hình là chính cho lần khởi động lại tiếp theo.", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§cLỗi cập nhật bukkit.yml: {value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§cNgười chơi đã ghi rõ không tồn tại.", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v.{value} by Volmit Phần mềm", + "iris.bukkit.commandiris.to": "§a{value} phải {value2}", + "iris.bukkit.commandiris.total_height": "§aTổng chiều cao: {value}", + "iris.bukkit.commandiris.iris_worlds": "§9Thế giới Iris: ", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Thế giới Bukkit: ", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§cĐây không phải là Iris Thế giới. Iris Thế giới: {value}", + "iris.bukkit.commandiris.removing_world": "§aXóa bỏ thế giới: {value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§cLỗi di tản thế giới: {value}", + "iris.bukkit.commandiris.failed_unload_world": "§cLỗi tải xuống thế giới: {value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§aĐã gỡ bỏ thành công {value} từ bukkit.yml", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§eCó vẻ như thế giới đã bị loại bỏ bukkit.yml", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§cLỗi lưu bukkit.yml bởi vì {value}", + "iris.bukkit.commandiris.set_debug": "§aĐặt lỗi là: {to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§aĐang tải về: {pack} (beta phát hành){value}", + "iris.bukkit.commandiris.downloading_pack": "§aĐang tải về: {pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§cChắc anh đang ở trong... Iris thế giới", + "iris.bukkit.commandiris.sending_metrics": "§aName...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§cĐây không phải là Iris Thế giới. Iris Thế giới: {value}", + "iris.bukkit.commandiris.unloading_world": "§aThế giới tải xuống: {value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§aThế giới đã tháo dỡ thành công.", + "iris.bukkit.commandiris.failed_unload_world_2": "§cThất bại trong việc dỡ bỏ thế giới.", + "iris.bukkit.commandiris.failed_unload_world_3": "§cLỗi tải xuống thế giới: {value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e{logicalWorldName} Không có trên máy chủ.", + "iris.bukkit.commandiris.generator": "§9Trình tạo: {dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} không phải thế giới của Iris.", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§cKhông thể xác định Iris Kích thước cho {logicalWorldName}.", + "iris.bukkit.commandiris.loading_world": "§aTải về {logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia không thể tải những thế giới mới vào thời điểm chạy trốn. Khởi động lại máy phục vụ để tải \"{logicalWorldName}\".", + "iris.bukkit.commandiris.loaded_successfully": "§a{logicalWorldName} đã nạp thành công.", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§cĐây không phải là Iris Thế giới. Iris Thế giới: {value}", + "iris.bukkit.commandiris.evacuating_world": "§aThế giới đang sơ tán{value}", + "iris.bukkit.commandobject.object_size": "Cỡ đối tượng: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "Dùng khối: {value}", + "iris.bukkit.commandobject.blocks_object": "teppi82@ gmail. com", + "iris.bukkit.commandobject.other_block_types": " + {value} Kiểu khối khác", + "iris.bukkit.commandobject.current_object_size": "Cỡ đối tượng hiện có: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "Cỡ đối tượng mới: {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "Lỗi lưu đối tượng {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§cKhông có đối tượng khớp: {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§aChất dẻo [reach={reach}{value}] hàng đợi {value2} object(s)", + "iris.bukkit.commandobject.hold_your_wand": "Giữ chặt đũa phép.", + "iris.bukkit.commandobject.no_area_selected": "Chưa chọn diện tích.", + "iris.bukkit.commandobject.ready_your_wand": "Chuẩn bị đũa phép.", + "iris.bukkit.commandobject.ready_your_wand_2": "Chuẩn bị đũa phép.", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§eTỷ lệ đã được xác định vượt quá mức tối đa. Cấp xuống tối đa: {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "Name objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "Đưa cây đũa mới cho objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "Name objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§aĐã đặt {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§eAnh cần phải giữ đũa phép!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§cTập tin đã có. Đặt ghi đè bằng chân dung để ghi đè lên nó.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§cLỗi lưu đối tượng vì một IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§aĐối tượng thành công cần lưu: {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "Giữ chặt đũa phép.", + "iris.bukkit.commandobject.no_area_selected_2": "Chưa chọn diện tích.", + "iris.bukkit.commandobject.reverted_pastes": "§9Đã hoàn tác {actualReverts}§9 lần dán!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§cBạn không thể có được một WorldEdit Chọn mà không cần WorldEditAnh biết đấy.", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§cAnh không có WorldEdit Chọn lọc trên thế giới này.", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§aMột cây đũa phép mới với dòng chảy WorldEdit Chọn đi!", + "iris.bukkit.commandobject.poof_good_luck_building": "§aPoof. Chúc may mắn!", + "iris.bukkit.commandobject.hold_your_wand_3": "§eGiữ chặt đũa phép!", + "iris.bukkit.commandobject.no_area_selected_3": "Chưa chọn diện tích.", + "iris.bukkit.commandobject.auto_select_complete": "§aTự động chọn hoàn tất!", + "iris.bukkit.commandobject.hold_your_wand_4": "§eGiữ chặt đũa phép!", + "iris.bukkit.commandobject.no_area_selected_4": "Chưa chọn diện tích.", + "iris.bukkit.commandobject.auto_select_complete_2": "§aTự động chọn hoàn tất!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cBán kính Pregen phải lớn hơn không khối.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§cTiền tạo tuần tự nghiêm ngặt yêu cầu Paper hoặc máy chủ tương thích với Paper.", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§cĐộng cơ truy cập thế giới này là vô ích!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§cHãy chắc chắn rằng thế giới đã lên đạn. & Động cơ đã khởi động. Chẳng hạn như tạo ra một mảng mới.", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§cGặp lỗi khi bắt đầu thế hệ trước. Xem bảng điều khiển để biết thêm chi tiết.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§eKhông có tác vụ trước thế hệ mới cần dừng", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§aĐã chuyển trạng thái tạm dừng của tác vụ tiền tạo. Trạng thái hiện tại: {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§eKhông có tác vụ trước thế hệ hoạt động để tạm dừng/unpause.", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§eKhông có nhiệm vụ trước thế hệ.", + "iris.bukkit.commandpregen.pregen": "§aBản quyền §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§aTốc độ: §6{value}/s§a ETA: §6{value2}§a Phát triển: §6{value3}§a Phương pháp: §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§aChỉ mục cấu trúc ghi: §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§aName & Comment §f{value}§a ( dư viết)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§aNhập xong: §f{imported}§a structures/objects Đã viết, §f{failed}§a bị lỗi.", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7Tham khảo chúng từ danh sách cấu trúc của sinh học/region/dimensision, hoặc chạy /iris structure list {value} để làm lại chỉ mục. Tạo lại các mảng để thay đổi có tác dụng.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7Đã bắt {value} cấu trúc. Đặt chúng từ một danh sách cấu trúc và tái tạo các mảng. Xoá structures/*.json Để bắt lại nó.", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§cChưa nạp Iris ♪ Thế giới tìm thấy cho ♪ {value}. Tham gia hoặc tạo ra một trong những đầu tiên (cuộc tìm kiếm chống lại một thế giới sống).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§cĐã chọn Iris Thế giới không có trình tạo hoạt động.", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§cKhông có cấu trúc Iris{structure}'Trong gói này", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§cCấu trúc{structure}Tập hợp 0 mảnh ( cuộc kiểm tra startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§aCấu trúc{structure}': §f{value}§a mảnh, dấu chân §f{value2}x{value3}§a khối (dòng dõi đơn giản 1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§cKhông có cấu trúc Iris{structure}'Trong gói này", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§cCấu trúc{structure}Tập hợp 0 mảnh", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§aĐã đặt '{structure}' ({value} Các mảnh) tại vị trí.", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§aMở studio cho \"{value}\" Gói (dòng dõi: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§cCung cấp một gói chiều: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§cKhông thể giải quyết gói cho kích thước {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§aMở VSCode cho \"{value}gói", + "iris.bukkit.commandstudio.pack_has_version": "§aCái \"{value}\"Tất có phiên bản: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§aMở cửa!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§cKhông thể thêm mục vào kho ảo vì: {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§aMở kho hàng ngay!", + "iris.bukkit.commandstudio.only_works_iris_world": "§cChỉ làm việc trong một Iris Thế giới!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§cBạn cần phải ở trong hoặc chỉ ra một Iris- Thế giới được tạo ra!", + "iris.bukkit.commandstudio.opening_map": "§aMở bản đồ!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "Tính toán số liệu hiệu quả cho máy phát nhiễu", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "Tính toán thời hạn của bộ Nội suy...", + "iris.bukkit.commandstudio.processing_generator_scores": "Điểm máy phát: ", + "iris.bukkit.commandstudio.score": "Điểm: {value}", + "iris.bukkit.commandstudio.done_with_result": "§aXong! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§cBạn phải ở trong một thế giới Iris để tạo thực thể đúng cách. Hệ thống sẽ cố gắng tạo chúng theo cách tốt nhất có thể.", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§cKhông phòng thu nào mở cửa cả!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§cAnh đã ở trong thế giới phòng thu rồi!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§aĐưa cậu đến phòng thu!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6Đang cập nhật vùng làm việc mã hóa {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§aKhông gian mật mã đã cập nhật {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§cDự án không hợp lệ: {value}. Cố gắng xoá tập tin không gian mã hóa rồi thử lại.", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§cChắc anh đang ở trong... Iris thế giới", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "Chắc cô đang ở thế giới của Iris.", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "Bắt buộc IGenData từ {value} Gần đây thôi.", + "iris.bukkit.commandstudio.reported": "Báo cáo: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§cBạn phải có máy chủ đã chạy GUIs đã bật trong thiết lập.", + "iris.bukkit.commandstudio.players_only": "§cChỉ người chơi thôi!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§cKhông phòng thu nào mở cửa cả!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§cCậu chắc đang ở trong phòng thu!", + "iris.bukkit.commandwhat.material": "Nguyên liệu: §a{value}", + "iris.bukkit.commandwhat.full": "Đầy đủ: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "Vui lòng giữ lại một khối/ món đồ", + "iris.bukkit.commandwhat.material_2": "Nguyên liệu: §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "Vui lòng giữ lại một khối/ món đồ", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "Không...Iris Hai sắc: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "Bộ dữ liệu Biome: {value} (ID: {value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§aChỉ có Iris thôi.", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "Xin hãy nhìn vào bất kỳ khối nào, không phải bầu trời.", + "iris.bukkit.commandwhat.material_3": "Nguyên liệu: §a{value}", + "iris.bukkit.commandwhat.full_2": "Đầy đủ: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* Khối kho lưu trữ (có khả năng điều khiển)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§eKhối Lit (có khả năng điều khiển ánh sáng)", + "iris.bukkit.commandwhat.foliage_block": "§eKhối xương sống", + "iris.bukkit.commandwhat.decorant_block": "§eKhối phân cách", + "iris.bukkit.commandwhat.fluid_block": "§eKhối Fluid", + "iris.bukkit.commandwhat.plantable_foliage_block": "§eName", + "iris.bukkit.commandwhat.solid_block": "§eKhối rắn", + "iris.bukkit.commandwhat.found_nearby_markers": "Tìm thấy {value} Nearby Markers ({marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§aChỉ có Iris thôi.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "Bàn điều khiển phải đặt tên một máy sinh học: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Lỗi tra cứu sinh học: {value}", + "iris.modded.irismoddedcommands.unknown_biome": "Tôi sinh không rõ: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "Cần phải đặt tên vùng: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "Việc tra tìm vùng bị lỗi: {value}", + "iris.modded.irismoddedcommands.unknown_region": "Vùng không rõ: {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.cannot_open_files_here": "Không thể mở tập tin ở đây: {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "Không tìm thấy tập tin này; có lẽ nó không được tải trực tiếp từ tập tin?", + "iris.modded.irismoddedcommands.could_not_open": "Không thể mở {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "Mở {value} {value2} trong biên tập của anh.", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "Cần phải đặt tên người chơi: /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} không được tạo ra bởi Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Chuyển tiếp thất bại: chiều {dimensionId} không nạp đạn.", + "iris.modded.irismoddedcommands.teleporting": "Chuyển tiếp {value} phải {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} không được tạo ra bởi Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "Không thể sơ tán thế giới chính; không có nơi nào để gửi cầu thủ.", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "Đã sơ tán{count}người chơi từ{value}phải{value2}.", + "iris.modded.irismoddedcommands.set_debug": "Đặt lỗi là: {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "Thiết lập nạp nóng", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "Lệnh này chỉ có thể được dùng bởi người chơi (nó kiểm tra mục đang giữ).", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "Bàn tay chính của anh trống rỗng.", + "iris.modded.irismoddedcommands.hand_x": "Tay: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} không được tạo ra bởi Iris; thấy /iris info đã nạp Iris Kích thước.", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "Kích thước hiện tại ({value}) không được tạo ra bởi Iris. Tên một rõ ràng: /iris pregen start {radius} ; thấy /iris info đã nạp Iris Kích thước.", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "Một nhiệm vụ tiền thế hệ đang được thực hiện. Dừng lại trước /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen khởi động {value} Kho {value2} bởi {value3} khối {centerX},{centerZ}.{modeNote} Nhật ký tiến hành để bàn điều khiển; xem /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "Đang dừng lại tiền thế hệ; kết thúc vùng hiện tại...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "Không có nhiệm vụ trước thế hệ mới để dừng lại.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "Không có tác vụ trước chế độ tích cực để tạm dừng/ tiếp tục.", + "iris.modded.irismoddedcommands.pregeneration_is_now": "Thế hệ trước là bây giờ {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "Không có nhiệm vụ trước thế hệ.", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value} by Volmit Phần mềm trên {value2} (Minecraft {value3}), {engines} Iris dimension(s)", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "Kích cỡ đã tải: {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.biome": "Hai sắc: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Lỗi tra cứu sinh học: {value}", + "iris.modded.irismoddedcommands.region": "Vùng: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "Việc tra tìm vùng bị lỗi: {value}", + "iris.modded.irismoddedcommands.cave_biome": "Sinh học hang động: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "Việc tra cứu sinh học hang động thất bại: {value}", + "iris.modded.irismoddedcommands.surface_block_y": "Khối mặt: {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "Vị trí: {value} {value2} {value3} (cunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "Lệnh này chỉ có thể được sử dụng bởi người chơi (nó kiểm tra khối bạn đang nhìn).", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "Nhìn một khối, không phải bầu trời.", + "iris.modded.irismoddedcommands.block_y": "Khối: {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "Lệnh này chỉ có thể được sử dụng bởi người chơi (những người phân tích dịch là các hạt xung quanh bạn).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "Đang quét tìm '{marker}♪ Dấu hiệu quanh bạn ♪...", + "iris.modded.irismoddedcommands.marker_scan_failed": "Việc quét dấu hiệu bị lỗi: {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "Tìm thấy {value} Nhãn gần (s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.unknown_biome_2": "Tôi sinh không rõ: {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.unknown_region_2": "Vùng không rõ: {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} không được định nghĩa trong chiều không gian!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} không được cấu hình trong bất kỳ vùng nào/ miền thuộc địa ({value} Phím đối tượng đã nạp).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "Lệnh này chỉ có thể được sử dụng bởi người chơi. ( Khóa theo dõi '{key}Giải quyết chống lại {value} đã tải lên khóa đối tượng)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "Tên Iris hoặc cấu trúc bản địa để xác định vị trí.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "Không biết cấu trúc '{key}'. Dùng thẻ hoàn tất để chọn a Iris Vị trí hoặc một cấu trúc bản địa/datapack đã đăng ký.", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "Tìm kiếm cấu trúc bản xứ {value} bên trong {NATIVESTRUCTURELOCATERADIUS} Chunk...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "Tìm kiếm Iris- cấu trúc đã thay thế {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "Không thể định vị Iris- cấu trúc đã thay thế {key}: mật độ tìm kiếm an toàn đã đạt trước khi đầy 1024- Bán kính bị lục soát.", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "Không tìm thấy Iris- cấu trúc đã thay thế {key} bên trong 1024 Vài miếng.", + "iris.modded.irismoddedcommands.search_failed": "Tìm kiếm thất bại: {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "Không tìm thấy cấu trúc mẹ đẻ {value} bên trong {NATIVESTRUCTURELOCATERADIUS} Vài miếng.", + "iris.modded.irismoddedcommands.search_native_structure_failed": "Tìm kiếm cấu trúc bản xứ {value} bị lỗi: {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "Người chơi đã ngắt kết nối trước khi tìm kiếm cấu trúc hoàn tất.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "Bạn đã thay đổi kích thước trước khi tìm kiếm cấu trúc hoàn tất; chạy lại lệnh.", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "Tìm thấy {label} vào {targetX} {clampedY} {targetZ}nhưng dịch chuyển tức thời thất bại.", + "iris.modded.irismoddedcommands.teleported_at": "Chuyển tới {label} vào {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "Khả năng chạm tới cấu trúc: {available} Có thể điều khiển thế hệ bản địa, {irisPlaced} Iris- Đã đặt chỗ, {disabled} bị tàn tật {suppressed} tự thay thế bởi Iris Tiền đặt chỗ, {unreachableBiomes} bản địa bị loại trừ bởi sinh thiết của gói này, và {unsupported} đã đăng ký cấu trúc bản địa không được hỗ trợ trong chiều này. Dùng /iris structure verify cho một cấu trúc.", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "Cấu trúc {key} là Iris- đã đặt chỗ và dễ bị tổn thương với /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "Không biết cấu trúc '{key}'. Không phải. Iris- cũng không đăng ký bằng vanilla hay hồ sơ.", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "Cấu trúc {value} được hoàn toàn thay thế bởi a Iris Đặt chỗ và locable với /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "Cấu trúc Sở hữu {value} được hiệu lực, được hỗ trợ bởi nhà máy phát của chiều này, và có thể giải quyết với /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "Lệnh này chỉ có thể được sử dụng bởi người chơi. (POI Kiểu '{type}Chấp nhận)", + "iris.modded.irismoddedcommands.searching": "Tìm kiếm {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "Động cơ của thế giới này đã bị đóng lại; trở lại chiều không gian và thử lại.", + "iris.modded.irismoddedcommands.search_failed_2": "Tìm kiếm thất bại: {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "Không tìm thấy {label} trong thời gian tìm kiếm.", + "iris.modded.irismoddedcommands.teleported_at_2": "Chuyển tới {label} vào {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "Động cơ thay đổi trong khi tìm kiếm {label}; thử lại.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.world_seed": "Hạt giống thế giới: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "Hạt giống động cơ: {value} (đã trộn: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "Đang tải về IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "Gói '{pack}Đã cài đặt. Các loại hình kích thước chính xác và tùy chỉnh sinh học tham gia vào cưỡng bức Iris Bộ dữ liệu trên trình phục vụ kế tiếp khởi chạy lại; khởi động lại trước khi tạo các thế giới từ gói này.", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "Việc tải về gói thất bại {pack} ({downloadSource}; xem bảng điều khiển).", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "Tạo ra: {value} chunk(s), {value2}/s", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "Không rõ Iris Phần trợ giúp: {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}: gõ={typeKey} hoạt động ={activeMin}..{activeMax} logic ={value} (pack ={value2}Chưa khởi động cơ, chưa tính độ cao gói)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}: gõ={typeKey} hoạt động ={activeMin}..{activeMax} logic ={value} Gói đồ{value2}Muốn {packMin}..{packMax} logic ={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " WARNING: kiểu kích thước hoạt động không khớp với gói. Iris sẽ từ chối khởi động cỗ máy thế giới này thay vì địa hình. Chạy /iris world enable Cho thế giới mới, hay /iris datapack install vì đã nạp Iris Kích thước, rồi khởi động lại.", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "Không Iris Kích thước được nạp.", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "Tất cả{irisLevels} IrisKích thước phù hợp với phạm vi chiều cao gói của chúng.", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: động cơ chưa khởi động; chưa thể lấy được kiểu kích thước của nó.", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}Việc tạo kiểu kích thước bị lỗi: {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "Lỗi ghi {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "Không Iris Không gian với động cơ đang chạy, không có gì được cài đặt.", + "iris.modded.moddeddatapackcommands.failed_write_2": "Lỗi ghi {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "Ghi {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "Bộ dữ liệu thế giới{WORLDPACKNAME}Name Khởi động lại trình phục vụ cho kiểu kích thước cần áp dụng.", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "Bộ dữ liệu đã cấu hình: {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth Ăn là Bukkit-Chỉ; cài đặt những điều này bằng tay vào world/datapacks nếu cần thiết.", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "Bộ dữ liệu thế giới đã cài đặt: {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "Đã gửi một ngoại lệ thử nghiệm đến trình báo lỗi Iris (Sentry nếu được bật).", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "Việc quét mạng bị lỗi: {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "Chụp cắt lớp vàng đã chạy rồi.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "Lệnh này chỉ có thể được sử dụng bởi người chơi. (Cái đũa là vật thể)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "Hàng tồn kho đầy rồi.", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "Poof. Chúc may mắn! (Tiếng nhấn bên trái = góc 1nhắp phải = góc 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "Lệnh này chỉ có thể được sử dụng bởi người chơi. ( bụi là một vật thể)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "Hàng tồn kho đầy rồi.", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "Nhấn vào một khối để tiết lộ đối tượng của nó.", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "Lệnh này chỉ có thể được sử dụng bởi người chơi. (Tiếng súng của bạn)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "Kích thước này không được tạo ra bởi Iris; các vật thể lưu vào không gian.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "Giữ lấy Iris đũa phép. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "Chưa chọn diện tích. Dùng đũa phép để nhấn vào khối bên trái/phải trước.", + "iris.modded.moddedobjectcommands.invalid_object_name": "Tên đối tượng không hợp lệ: {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "Vùng chọn quá lớn: {volume} khối (xx {MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "Tập tin đã có. Dùng /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "Lỗi lưu đối tượng: {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "Đã lưu {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} block(s){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "Đối tượng không rõ hay rỗng: {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "Cần phải xác định tọa độ: /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "Bạn không nhìn vào một khối trong {value} tòa nhà.", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "Dán thất bại: {value} (các thay đổi một phần đã được ghi lại để hoàn tác)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "Đã đặt {key} vào {value} {value2} {value3} thối ={rotation} ({value4} ghi(s), {value5} không phải không gian{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "Giữ lấy Iris đũa phép. (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "Chưa chọn diện tích.", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "Chuẩn bị đũa phép. (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "Bạn không nhìn vào một khối.", + "iris.modded.moddedobjectcommands.position_set": "Vị trí {value} đặt {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.moddedobjectcommands.hold_your_wand": "Giữ chặt đũa phép!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "Chưa chọn diện tích.", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "Vùng chọn quá lớn để chọn tự động: {volume} khối (xx {MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "Hoàn tất chọn tự động: {value}", + "iris.modded.moddedobjectcommands.unknown_object": "Đối tượng lạ: {key}", + "iris.modded.moddedobjectcommands.object_size": "Cỡ đối tượng: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "Dùng khối: {value}", + "iris.modded.moddedobjectcommands.blocks_object": "teppi82@ gmail. com", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining} Tình trạng khối khác)", + "iris.modded.moddedobjectcommands.unknown_object_2": "Đối tượng lạ: {key}", + "iris.modded.moddedobjectcommands.current_object_size": "Cỡ đối tượng hiện có: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "Cỡ đối tượng mới: {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "Đối tượng không có tập tin tải; không thể bền bỉ thu nhỏ.", + "iris.modded.moddedobjectcommands.failed_save_object_2": "Lỗi lưu đối tượng {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "Không hợp lệ {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "Không có đối tượng khớp: {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "Chất dẻo [reach={reach}{value}] hàng đợi {value2} object(s)", + "iris.modded.moddedobjectcommands.nothing_undo": "Không có gì để hủy bỏ.", + "iris.modded.moddedobjectcommands.reverted_paste_s": "Đã hoàn tác {reverted} lần dán.", + "iris.modded.moddedpackcommands.packs_folder_not_found": "Không tìm thấy thư mục gói: {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "Không có túi để kiểm tra dưới {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "Gói '{pack}Không tìm thấy dưới {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "Đang thẩm tra {value} gói (s)...", + "iris.modded.moddedpackcommands.validation_failed": "Kiểm tra '{value}Lỗi: {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "Đã kiểm tra xong. Gói hỏng: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "Gói '{pack}Không tìm thấy dưới {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "Gói '{pack}Không tìm thấy dưới {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "Không có kết quả hợp lệ. Chạy /iris pack validate Đầu tiên.", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (bị chặn ={value2}Cảnh báo ={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "Không có kết quả hợp lệ cho «{pack}'. Chạy /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "Gói '{value}'có thể tải được. (Những cuộc chiến ={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "Gói '{value}Là bị hỏng:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ...và {value} cảnh báo thêm.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "Không tìm thấy ứng dụng dọn dẹp cho gói '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "Xem thử dọn dẹp cho gói '{pack}': {value} candidate(s). Không có tập tin nào bị thay đổi.", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "Chạy /iris pack cleanup {pack} apply để cách ly sau khi quét lại.", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "Không tìm thấy ứng dụng dọn dẹp cho gói '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "Cách ly {value} dọn dẹp dưới {value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "Không có gì để phục hồi cho gói '{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "Xem thử phục hồi {value}: {value2} file (s). Không có tập tin nào bị thay đổi.", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "Phục hồi bị chặn bởi {value} đã có.", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "Chạy /iris pack restore {pack} apply để khôi phục sau khi kiểm tra xung đột mới.", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "Phục hồi bị từ chối bởi vì {value} destination(s) already exist.", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "Không có gì để phục hồi cho gói '{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "Phục hồi tập tin {value} từ {value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... và {value} nhiều hơn.", + "iris.modded.moddedregen.regen_is_already_running": "Một bản sao đang chạy.", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "Kích thước này không được tạo ra bởi Iris. Chạy điều này từ một Iris Không gian để bầy đàn được giải quyết.", + "iris.modded.moddedstructurecommands.wrote_structure_index": "Chỉ mục cấu trúc ghi: {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "Không có cấu trúc Iris{key}'Trong gói này", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "Cấu trúc{key}Tập hợp 0 mảnh ( cuộc kiểm tra startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "Cấu trúc{key}': {value} mảnh, dấu chân {value2}x{value3} khối (dòng dõi đơn giản 1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "Lệnh này chỉ có thể được sử dụng bởi người chơi (các cấu trúc được lắp ráp tại vị trí của bạn).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "Không có cấu trúc Iris{key}'Trong gói này", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "Cấu trúc{key}Tập hợp 0 mảnh", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "Nơi bị lỗi: {value} (các thay đổi phần được ghi lại cho việc hoàn tác)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "Đã đặt '{key}' ({value} Từng mảnh, {value2} ghi (s){tileNote}) tại địa điểm của bạn. /iris object undo để trở lại.", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "Cung cấp một gói chiều: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "Mở hệ thống nhiễu trên màn hình máy chủ.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "Kích thước này không được tạo ra bởi Iris; chạy /iris studio noise từ một Iris Kích thước để giải quyết trình tạo, hoặc bỏ tên máy phát.", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "Máy phát không rõ{generatorKey}' thành gói' {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "Mở bộ phát sinh nhiễu{value}' (dòng dõi {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "Kích thước này không được tạo ra bởi Iris; đứng trong một Iris (hoặc studio) Kích thước và chạy /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "Mở bản đồ về sự hiện thấy {value} trên màn hình máy phục vụ.", + "iris.modded.moddedstudiocommands.failed_write_workspace": "Lỗi ghi vùng làm việc cho {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "Không gian làm việc được tái tạo: {value} có JSON Các bản thiết kế cho việc hoàn thành tự động.", + "iris.modded.moddedstudiocommands.could_not_open": "Không thể mở {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "Mở {value} trong biên tập của anh.", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "Kích thước này không được tạo ra bởi Iris; chỉ ra một tên gói rõ ràng.", + "iris.modded.moddedstudiocommands.pack_not_found_under": "Gói '{name}Không tìm thấy dưới {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "Cung cấp một gói chiều: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "Mở studio cho '{pack}' (dòng dõi {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "Gói '{pack}Thiếu; tải về IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "Gói '{pack}Không thể tải về; hãy kiểm tra tên rồi thử /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "Gói '{pack}'không có dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "Việc mở phòng thu thất bại: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "Việc tiêm phòng thu thất bại: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "Phòng điều khiển mở: {dimensionId} chạy{pack}hạt giống {seed} ( chuyển hóa, không phải được viết sang iris-dimensions.json và bật lại).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "Nhập nó với: /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "Mẫu thử với: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "Gỡ bỏ nó bằng: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "Việc tiêm phòng thu thất bại: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "Phòng thu mở: {dimensionId} chạy{pack}hạt giống {seed}. Dùng /iris studio close khi xong việc.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "Bạn không có một studio mở. Dùng /iris studio open Đầu tiên.", + "iris.modded.moddedstudiocommands.studio_close_failed": "Việc đóng cửa phòng thu thất bại: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "Phòng thu đóng: {dimensionId} đã được sơ tán, tháo dỡ và xóa dữ liệu khu vực.", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "Không có không gian studio nào được mở.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "Kích thước studio hoạt động:{value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: gói '{value2}hạt giống {value3} người chủ {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "Chỉ người chơi mới có thể sử dụng lệnh này.", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "Bạn không có một studio mở. Dùng /iris studio open Đầu tiên.", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "Không gian studio của anh không còn nạp đạn nữa. Dùng /iris studio open Một lần nữa.", + "iris.modded.moddedstudiocommands.teleported_your_studio": "Dịch chuyển đến studio của bạn{dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "Gói '{value}'không có dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "Cái \"{value}\"Tất có phiên bản: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "Tên dự án không hợp lệ{nameRaw}' (được phép: a-z, 0-9, và -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "Gói '{name}'Đã có tại {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "Đang tạo dự án{name}Từ mẫu{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "Mẫu{template}Chưa cài đặt; tải về IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "Mẫu{template}Không thể tải về; cài đặt một gói với dimensions/{template2}.json Đầu tiên.", + "iris.modded.moddedstudiocommands.created_project_at": "Tạo dự án{name}Ở {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "Sửa dimensions/{name}.json và những người còn lại. A VSCode Vùng làm việc với JSON schema tự động hoàn tất đã được tạo ra; mở nó hoặc chạy lại /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "Lỗi tạo dự án: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "Không gian gói tin{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "Gói được biên dịch: {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "Gửi thất bại: {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "Lệnh này chỉ có thể được sử dụng bởi người chơi (làm gương trung tâm vào vị trí của bạn).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "Chiều không gian này không được Iris tạo ra.", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "Phân phối khu vực {value}x{value2} Những chunk xung quanh bạn...", + "iris.modded.moddedstudiocommands.rarity": "{key}: hiếm ={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "Việc lấy mẫu vùng bị lỗi: {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "Gói '{pack}Chưa cài đặt; tải về IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "Gói '{pack}Không thể tải về; hãy kiểm tra tên hay cài đặt nó bằng /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "Lỗi khi tiêm Iris Thế giới{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "Tạo Iris thế giới {dimensionId} từ gói '{pack}Không gian{packDimension}' (dòng dõi {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "Nó được truyền hình trực tiếp và phát lại vào mỗi lần khởi động. Name /iris world status hoặc cổng; không cần khởi động lại.", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "Lỗi khi tiêm Iris Thế giới chính: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris Thế giới chính được thiết lập {dimensionId} (pack '{pack}Không gian{packDimension}hạt giống {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "Trình tạo Overworld mặc định không thể được thay nóng, vì vậy thao tác này KHÔNG tạo lại Overworld hiện có.", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "Thay vào đó, {dimensionId} Bây giờ là thế giới chính được cấu hình: những người chơi trong thế giới bên kia vanilla được định tuyến ở đó, và nó tái phát vào mỗi lần bắt đầu.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris quyền kiểm soát thế giới đã được xóa. Thế giới bên ngoài giữ trình tạo; chỉnh sửa server.properties Kiểu cấp và khởi động lại để thay đổi nó.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "Hạt giống không hợp lệ{seedRaw}'. Sử dụng một số hoặc \"vô hạn\".", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "Gói '{pack}Chưa cài đặt; tải về IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "Gói '{pack}Không thể tải về; hãy kiểm tra tên hay cài đặt nó bằng /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "Gói '{pack}' chưa sẵn sàng (chưa tải hay xác nhận). Thử lại lệnh lần nữa đi.", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "Lỗi ghi server.properties; kiểm tra quyền hạn tập tin và đặt kiểu cấp thủ công.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris thế giới chính được đặt thành '{pack}(đã định sẵn {preset}, hạt giống {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties Kiểu cấp là bây giờ {preset}. Trên lần khởi động lại tiếp theo thế giới bên dưới, và kết thúc tái tạo như thế này Iris Thế giới.", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "Dữ liệu của người chơi (ký ức, tiến bộ, thống kê) được lưu giữ; địa hình hiện có trong các chiều không gian đó bị thay thế. Điều này áp dụng một lần.", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart đã bật — dừng máy phục vụ ngay bây giờ để gói khởi động lại nó trong thế giới chính mới.", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "Khởi động lại máy phục vụ ngay bây giờ để tạo ra nó. (Để riêng mainWorldAutoRestart= Đúng trong modded.json có Iris Dừng trình phục vụ cho bạn.)", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "Từ chối tạo ra thế giới{dimensionId}Dùng gói{pack}Việc ký chứng nhận cần thiết bị:", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "Sửa gói rồi chạy đi. /iris pack validate {pack} để realidate.", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "Gói '{pack}Không tìm thấy dưới {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "Gói '{pack}không chứa dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "tham chiếu gói không hợp lệ{pack}{value}'. Dùng gói hoặc túi:dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "Hạt giống không hợp lệ{seedRaw}'. Sử dụng một số hoặc \"vô hạn\".", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "Lỗi gỡ bỏ Iris Thế giới{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris Thế giới{dimensionId}Không nạp; xoá mục đăng nhập kiên trì của nó và xóa dữ liệu đã cất giữ.", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris Thế giới{dimensionId}'không được nạp đạn; xóa mục đăng nhập kiên trì của nó. Dữ liệu thế giới trên đĩa được lưu giữ.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "Xóa Iris Thế giới{dimensionId}Di tản, dỡ hàng, xóa dữ liệu và thả xuống từ đăng ký khởi động.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "Tắt Iris Thế giới{dimensionId}Di tản, dỡ hàng, và thả từ đăng ký khởi động.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "Dữ liệu thế giới trên đĩa được lưu giữ; với /iris world enable {dimensionId} hay xoá nó bằng /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "Đã nạp Iris Cấp: {value} -> gói '{value2}Không gian{value3}'", + "iris.modded.moddedworldcommands.primary_world": "Thế giới chính: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "Không Iris Kích thước đang được tải. Tạo một với /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "Đã nạp Iris Kích thước: {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "Dùng /iris world create tiêm một mũi mà không khởi động lại.", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "Tải về & Quản lý các tập dữ liệu bên ngoài (Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "Tải xuống/update mỗi tập dữ liệu liệt kê trong một chiều không gian gói 'datapackImports'và cài đặt nó vào thế giới để cấu trúc của nó được lưu trữ như vanilla", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "Khởi động lại máy phục vụ khi cài đặt các lốc dữ liệu mới (đã yêu cầu cho cấu trúc mới để đăng ký và tạo)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "Liệt kê các tập dữ liệu đã cấu hình và phiên bản đã cài đặt", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "Gỡ bỏ bộ dữ liệu đã cài đặt bằng id (cũng xóa bỏ nó URL từ datapackImports để giữ nó đi mất)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "Mã nhận diện dữ liệu (tên thư mục) được hiển thị bởi /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris Quản lý thế giới", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "Đã nạp TectonicPlates Số lượng", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "Name", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "Đã tạo ra khối kết xuất của một khu vực cố định để thử nghiệm chủ nghĩa xác định/không xác định", + "iris.director.commanddeveloper.param.world_hash": "♪ Thế giới sẽ khô cằn ♪", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "Bán kính trong mảng xung quanh trung tâm", + "iris.director.commanddeveloper.param.center_chunk_x": "Chunk trung tâm X", + "iris.director.commanddeveloper.param.center_chunk_z": "Chunk trung tâm Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "Cập nhật gói của một thế giới (UNSAFE!)", + "iris.director.commanddeveloper.param.world_update": "♪ Cả thế giới để cập nhật ♪", + "iris.director.commanddeveloper.param.pack_install_into_world": "Name", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "Nhớ sao lưu đấy. & đọc lời cảnh báo trước!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "Nên Iris tải gói về cho bạn", + "iris.director.commanddeveloper.director.test": "Thử", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "Đổ cả đĩa kiến tạo thay vì một phần", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "Mã nhận diện tập tin lưu trữ bên dưới plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "Thử", + "iris.director.commanddeveloper.param.pack_bench": "Gói dùng để đo điểm chuẩn", + "iris.director.commanddeveloper.param.radius_regions": "Bán kính trong vùng", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "Mở GUI trong khi đánh dấu", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "Nâng cấp lên một Minecraft phiên bản", + "iris.director.commanddeveloper.param.version_upgrade": "Phiên bản cần nâng cấp lên", + "iris.director.commanddeveloper.director.test_3": "thử ra", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "Thư mục thế giới cần quét tìm tập tin vùng .mca", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "Xoá các khối tải gần đó để thử lại", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "Bán kính trong mảng xung quanh mảng hiện tại của bạn", + "iris.director.commanddeveloper.director.test_4": "Thử", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "Xóa và tái tạo các mẫu gần đó được dùng Iris thế hệ", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "Bán kính", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "Tạo ra các mảng thành bộ đệm (không có giấy viết) và hash block+biomes; lấy một tập tin vàng hoặc lời tiên đoán chống lại một cái đã có. Đặt lại lớp vỏ trong khu vực được quét trên thế giới thử dùng một lần.", + "iris.director.commanddeveloper.param.world_scan": "Thế giới sẽ quét qua", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "Bán kính trong mảng xung quanh trung tâm", + "iris.director.commanddeveloper.param.center_chunk_x_2": "Chunk trung tâm X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "Chunk trung tâm Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "Xóa dữ liệu trong vùng quét trước tiên để phục hồi hoàn toàn từ đầu", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "Thế hệ ghép liên tục; 1 = Hoàn toàn nối tiếp cho bài kiểm tra tự đặt hàng", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "Cũng đổ đầy đủ không gian khối không khí cho việc phân tách ngoại tuyến", + "iris.director.commandedit.director.edit_something": "Sửa gì đó", + "iris.director.commandedit.director.edit_biome_you_specified": "Sửa bản sinh học mà bạn xác định", + "iris.director.commandedit.param.biome_edit": "Sinh học để chỉnh sửa", + "iris.director.commandedit.director.edit_region_you_specified": "Sửa đổi vùng bạn chỉ định", + "iris.director.commandedit.param.region_edit": "Vùng cần sửa", + "iris.director.commandedit.director.edit_dimension_you_specified": "Sửa đổi kích thước bạn xác định", + "iris.director.commandedit.param.dimension_edit": "Kích thước cần sửa", + "iris.director.commandfind.director.iris_find_commands": "Iris Tìm câu lệnh", + "iris.director.commandfind.director.find_biome": "Tìm một sinh vật học", + "iris.director.commandfind.param.biome_look": "Sinh học để tìm", + "iris.director.commandfind.param.should_you_be_teleported": "Có cần dịch chuyển không?", + "iris.director.commandfind.director.find_region": "Tìm vùng", + "iris.director.commandfind.param.region_look": "Vùng cần tìm kiếm", + "iris.director.commandfind.param.should_you_be_teleported_2": "Có cần dịch chuyển không?", + "iris.director.commandfind.director.find_point_interest": "Tìm một điểm thú vị.", + "iris.director.commandfind.param.type_poi_look": "Kiểu PoI để tìm kiếm.", + "iris.director.commandfind.param.should_you_be_teleported_3": "Có cần dịch chuyển không?", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "Tìm một cấu trúc (một chìa khóa vanilla như minecraft:village_plains hay minecraft:strongholdhoặc khoá cấu trúc mắt nhập khẩu)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "Cấu trúc cần tìm kiếm (e.g. minecraft:village_plains, minecraft:strongholdThợ mỏ thành phố)", + "iris.director.commandfind.director.find_object": "Tìm một đối tượng", + "iris.director.commandfind.param.object_look": "Đối tượng cần tìm kiếm", + "iris.director.commandfind.param.should_you_be_teleported_4": "Có cần dịch chuyển không?", + "iris.director.commandiris.director.basic_command": "Lệnh cơ bản", + "iris.director.commandiris.director.create_new_world": "Tạo dựng một thế giới mới", + "iris.director.commandiris.param.name_world_create": "Tên của thế giới để tạo ra", + "iris.director.commandiris.param.dimension_pack_create_world_with": "Kích thước/ lốc tạo ra thế giới với", + "iris.director.commandiris.param.seed_generate_world_with": "Hạt giống để tạo ra thế giới với", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "Có nên tự động sử dụng thế giới này làm thế giới chính hay không", + "iris.director.commandiris.director.teleport_another_world": "Name", + "iris.director.commandiris.param.world_teleport": "Thế giới có thể dịch chuyển", + "iris.director.commandiris.param.player_teleport": "Người chơi cần dịch chuyển", + "iris.director.commandiris.director.print_version_information": "In thông tin phiên bản", + "iris.director.commandiris.director.benchmark_pack": "Benchmark một gói", + "iris.director.commandiris.param.dimension_benchmark": "Kích thước để đánh dấu", + "iris.director.commandiris.director.print_world_height_information": "In thông tin cấp cao thế giới", + "iris.director.commandiris.director.check_access_all_worlds": "Kiểm tra tất cả các thế giới.", + "iris.director.commandiris.director.remove_iris_world": "Bỏ Iris thế giới", + "iris.director.commandiris.param.world_remove": "Thế giới cần loại bỏ", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "Có nên gỡ bỏ thư mục (nếu thiết lập sai, cũng không nạp toàn thế giới)", + "iris.director.commandiris.director.toggle_debug": "Bật/ tắt gỡ lỗi", + "iris.director.commandiris.director.download_project": "Tải về một dự án.", + "iris.director.commandiris.param.pack_download": "Name", + "iris.director.commandiris.param.branch_download_from": "Chi nhánh để tải về từ", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "Có nên ghi đè gói này bằng cái đã tải về hay không", + "iris.director.commandiris.director.get_metrics_your_world": "Lấy máy đo cho thế giới của bạn", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "Nạp lại tập tin cấu hình (điều này cũng được làm tự động)", + "iris.director.commandiris.director.unload_iris_world": "Hủy tải Iris Thế giới", + "iris.director.commandiris.param.world_unload": "Thế giới cần dỡ hàng.", + "iris.director.commandiris.director.load_iris_world": "Tải một Iris Thế giới", + "iris.director.commandiris.param.name_world_load": "Tên thế giới cần tải", + "iris.director.commandiris.director.evacuate_iris_world": "Sơ tán thế giới mắt", + "iris.director.commandiris.param.evacuate_world": "Di tản thế giới.", + "iris.director.commandobject.director.iris_object_manipulation": "Iris thao tác đối tượng", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "Mở một phòng thu đối tượng (crid của mọi đối tượng; kích thước tùy chọn, mặc định cho tất cả các gói)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "Kích thước tùy chọn mà đối tượng gói để đặt ra; bỏ qua để tổng hợp các đối tượng từ mỗi gói", + "iris.director.commandobject.param.seed_generate_studio_with": "Hạt giống để tạo ra studio với", + "iris.director.commandobject.director.check_composition_object": "Kiểm tra thành phần của một đối tượng", + "iris.director.commandobject.param.object_analyze": "Đối tượng cần phân tích", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "Thu nhỏ đối tượng về kích cỡ tối thiểu", + "iris.director.commandobject.param.object_shrink": "Vật thể thu nhỏ", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "Phát triển các nhánh hữu cơ qua tán cây để mỗi chiếc lá sống sót sau sự mục rữa của vanilla", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "Khóa đối tượng, tiền tố (cây/) hoặc đường dẫn hệ thống tập tin", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "sấy chạy = True phân tích, không viết gì", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "Đến =N chiều dài chi nhánh tối đa trong các khối từ gỗ đã có; các cụm lá xa hơn bị mắc kẹt lại. Đến=0 phát triển vô hạn", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "Chuyển đổi tập tin .schem trong thư mục «convert » sang tập tin « .iob ».", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "Lấy một loại bột tiết lộ các vật thể", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "Chỉnh sửa phần chọn dựa trên hướng nhìn của bạn", + "iris.director.commandobject.param.amount_inset_by": "Số tiền cần đặt", + "iris.director.commandobject.director.set_point_1_look": "Đặt điểm 1 để xem", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "Nên sử dụng vị trí hiện tại của bạn hay là nơi bạn nhìn", + "iris.director.commandobject.director.set_point_2_look": "Đặt điểm 2 để xem", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "Nên sử dụng vị trí hiện tại của bạn hay là nơi bạn nhìn", + "iris.director.commandobject.director.paste_object": "Dán một đối tượng", + "iris.director.commandobject.param.object_paste": "Đối tượng cần dán", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "Có nên sửa đổi đối tượng (cần giữ đũa phép)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "Số lượng độ để quay", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "Các yếu tố mà để tỷ lệ vị trí đối tượng", + "iris.director.commandobject.param.scale_interpolator_use": "Name", + "iris.director.commandobject.director.save_object": "Lưu một đối tượng", + "iris.director.commandobject.param.dimension_store_object": "Kích thước để cất giữ đối tượng vào", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "Tập tin để cất giữ nó, có thể dùng / cho thư mục con", + "iris.director.commandobject.param.overwrite_existing_object_files": "Ghi đè các tập tin đối tượng đã có", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "Dùng di sản TileState Nhân dạng nếu có thể", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "Dịch sự lựa chọn theo hướng nhìn của bạn", + "iris.director.commandobject.param.amount_shift_by": "Số tiền để dịch chuyển bởi", + "iris.director.commandobject.director.undo_number_pastes": "Hoàn tác nhiều lần dán", + "iris.director.commandobject.param.amount_pastes_undo": "Số lần dán cần hoàn tác", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "Lấy một cây đũa phép và lấy dòng điện WorldEdit Chọn đi.", + "iris.director.commandobject.director.get_object_wand": "Lấy một cây đũa thần", + "iris.director.commandobject.director.autoselect_up_down_out": "Tự động chọn lên, xuống & ra", + "iris.director.commandobject.director.autoselect_up_out": "Tự động chọn & ra", + "iris.director.commandpack.director.pack_validation_maintenance": "Gói gọn và bảo trì", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "Kiểm tra một gói (hoặc tất cả) và kết quả công bố lại", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "Tên thư mục gói cần xác nhận (bỏ rỗng cho mọi người)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "Xem thử hoặc áp dụng dọn sạch nguồn không dùng", + "iris.director.commandpack.param.pack_folder_name_clean": "Tên hộp thư mục cần làm sạch", + "iris.director.commandpack.param.preview_apply": "xem thử hay áp dụng", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "Xem thử hoặc áp dụng khôi phục cách ly mới nhất", + "iris.director.commandpack.param.pack_folder_name_restore": "Tên thư mục gói cần phục hồi", + "iris.director.commandpack.param.preview_apply_2": "xem thử hay áp dụng", + "iris.director.commandpack.director.show_cached_validation_status_pack": "Hiện trạng thái hợp lệ hoá bộ nhớ tạm cho gói", + "iris.director.commandpack.param.pack_folder_name": "Tên hộp thư mục", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "Hãy cố gắng Iris Thế giới!", + "iris.director.commandpregen.director.pregenerate_world": "Tạo ra một thế giới", + "iris.director.commandpregen.param.radius_pregen_blocks": "Bán kính của các tiền tố trong khối", + "iris.director.commandpregen.param.world_pregen": "Thế giới sẽ được định sẵn", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "Vị trí trung tâm của thần tiên. Dùng chữ \"tôi\" cho vị trí hiện tại của bạn", + "iris.director.commandpregen.param.open_iris_pregen_gui": "Mở cửa Iris gui pregen", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "Tạo ra chỉ một lần", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "Name", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "Tạm dừng / tiếp tục công việc tiền tiến hoạt động", + "iris.director.commandpregen.director.show_active_pregeneration_status": "Name", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris Công cụ cấu trúc (index, nhập khẩu, thông tin)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "Tái tạo structure-index.json Name & Cấu trúc mắt", + "iris.director.commandstructure.param.dimension_whose_pack_index": "Name", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "Nhập mọi cấu trúc - vaniStencils và Dữ liệu đã nuốt vào gói này là có thể sửa Iris Nguồn lực, luôn vượt quá tầm tay. Xây dựng lại cấu trúc ghép hình (villages, tiền đồn, trò chơi ghép dữ liệu) như đồ thị hồ sơ/ mảnh sửa đổi được, nhập vào mỗi mẫu cấu trúc NBT là một vật thể, và lắp ráp các cấu trúc đa tư (các tàu ngầm, phá hủy cánh cổng, tàn tích đại dương, hóa thạch thấp). Chạy sau khi nuốt một bộ dữ liệu và khởi động lại. Những bản sao nhập khẩu được sản xuất lại hoặc sử dụng một thế giới tươi mới.", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "Name", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "Chụp cấu trúc mã hóa mà không có NBT Mẫu (swamp lều, igloos, etc.) thành có thể sửa đổi Iris Các vật thể bằng cách tạo ra từng vật trong một thế giới bị trầy xước và đọc lại những khối của nó. Các cấu trúc đã được nhập khẩu như là một cấu trúc, các cấu trúc rộng hơn một phần của nắp tàu (giữ chặt, biệt thự, đài tưởng niệm vẫn còn vanilla), và bất cứ thứ gì không tạo ra trong một thế giới phẳng. Mỗi cấu trúc bị bắt lại trở thành một mảnh ghép duy nhất Iris cấu trúc bạn có thể phân loại từ danh sách cấu trúc sinh học/region/dimensition. Chạy tự động như lần đi qua cuối cùng của /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "Chiều không gian để thu thập vào", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "Kiểm tra cấu trúc bản xứ dao động và định vị Iris- những cấu trúc được đặt chỗ mà không chặn việc tìm kiếm bản địa.", + "iris.director.commandstructure.param.dimension_verify": "Kích thước để xác minh", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "Bán kính tìm kiếm trong mảng xung quanh nguồn (lớn hơn chậm hơn)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "Giải quyết cấu trúc crimesaw đồ thị và đếm mảnh báo cáo & giới hạn", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "Kích thước mà bầy đàn nắm giữ cấu trúc", + "iris.director.commandstructure.param.iris_structure_key_inspect": "Chìa khóa cấu trúc mắt để kiểm tra", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "Tập hợp và đặt một cấu trúc Iris tại vị trí của bạn (thử nghiệm từ xa)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "Kích thước mà bầy đàn nắm giữ cấu trúc", + "iris.director.commandstructure.param.iris_structure_key_place": "Name", + "iris.director.commandstudio.director.studio_commands": "Lệnh phòng thu", + "iris.director.commandstudio.director.open_new_studio_world": "Mở một phòng thu mới", + "iris.director.commandstudio.param.dimension_pack_open_studio": "Name", + "iris.director.commandstudio.param.seed_generate_studio_with": "Hạt giống để tạo ra studio với", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "Nhập câyilla, nấm & đối tượng (và structures/jigsaw) Từ máy phục vụ vào một gói objects/vanilla Thư mục", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "Name", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "Có bao nhiêu biến thể để nắm bắt mỗi tính năng trên cây/ thu hút", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "Cũng nhập vanilla & Bộ dữ liệu structures/jigsaw vào túi", + "iris.director.commandstudio.director.open_vscode_dimension": "Mở VSCode cho một chiều", + "iris.director.commandstudio.param.dimension_open_vscode": "Kích thước để mở VSCode Vì", + "iris.director.commandstudio.director.close_open_studio_project": "Đóng một dự án studio mở", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "Bật/ tắt bảng chọn gỡ lỗi phòng thu", + "iris.director.commandstudio.director.create_new_studio_project": "Tạo một dự án studio mới", + "iris.director.commandstudio.param.name_this_new_iris_project": "Tên của cái mới này Iris Dự án.", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "Sao chép nội dung của một dự án đã có trong thư mục của bạn và dùng nó làm mẫu trong dự án mới này.", + "iris.director.commandstudio.director.get_version_pack": "Lấy phiên bản của một gói", + "iris.director.commandstudio.param.dimension_get_version": "Kích thước nhận được phiên bản của", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "Mở cửa nhà thám hiểm âm thanh (bên ngoài GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "Trình tạo ra gói tùy chọn để xem thử", + "iris.director.commandstudio.param.seed_preview_generator_with": "Hạt giống để xem thử trình tạo bằng", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "Hãy lộ chiến lợi phẩm nếu có một cái rương ở ngay đây.", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "Nạp nhanh mục trong kho ảo (có thể gây ra thả hiệu suất)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "Có nên phụ thêm vào kho hàng hiện đang mở (nếu có giả, dọn sạch kho chứa)", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "Tính cơ hội cho mỗi vùng tạo ra", + "iris.director.commandstudio.param.radius_chunks": "Bán kính theo đoạn", + "iris.director.commandstudio.director.render_world_map_external_gui": "Vẽ bản đồ thế giới (bên ngoài GUI)", + "iris.director.commandstudio.param.world_open_generator": "Thế giới mở trình tạo cho", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "Name", + "iris.director.commandstudio.param.dimension_pack_compress": "Name", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "Có nên làm ô uế các gói", + "iris.director.commandstudio.param.whether_not_minify_pack": "Có nên giải nén hay không", + "iris.director.commandstudio.director.profiles_performance_dimension": "Phân tích hiệu suất của một chiều không gian", + "iris.director.commandstudio.param.dimension_profile": "Kích thước cần phân tích", + "iris.director.commandstudio.director.spawn_iris_entity": "Tạo một thực thể Iris", + "iris.director.commandstudio.param.entity_spawn": "Thực thể cần tạo", + "iris.director.commandstudio.param.location_spawn_entity_at": "Vị trí để tạo thực thể", + "iris.director.commandstudio.director.teleport_active_studio_world": "Name", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "Cập nhật dự án chiều không gian của bạn VSCode Miền làm việc", + "iris.director.commandstudio.param.dimension_update_workspace": "Kích thước để cập nhật không gian làm việc của", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "Bắt một IGenData @ info/ rich", + "iris.director.commandwhat.director.iris_what": "Iris Cái gì?", + "iris.director.commandwhat.director.what_is_my_hand": "Trong tay tôi có gì?", + "iris.director.commandwhat.director.what_biome_am_i": "Tôi đang ở phòng sinh học nào?", + "iris.director.commandwhat.director.what_region_am_i": "Tôi đang ở vùng nào?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "Tôi đang nhìn vào khu vực nào?", + "iris.director.commandwhat.director.show_markers_chunk": "Hiện dấu hiệu trong đoạn", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "Dấu hiệu tên như hang tầng hoặc hang động", + "iris.modded.help.entry.command.version": "In thông tin phiên bản", + "iris.modded.help.entry.command.info": "Danh sách đã tải Iris Kích thước và gói chi tiết", + "iris.modded.help.entry.command.what": "Kiểm tra Iris Sinh học, khu vực, sinh học hang động, bề mặt và mảng tại vị trí của bạn, khối bạn nhìn vào, mục được giữ, hoặc các điểm gần đó", + "iris.modded.help.entry.group.find": "Tìm và dịch chuyển sang Iris Sinh học, vùng, vật thể, Iris cấu trúc, cấu trúc bản địa và điểm quan tâm", + "iris.modded.help.entry.command.tp": "Name Iris Chiều rộng", + "iris.modded.help.entry.command.evacuate": "Dịch chuyển mọi người chơi khỏi chiều không gian Iris đến điểm spawn của thế giới chính", + "iris.modded.help.entry.command.seed": "Hiển thị thông tin seed của thế giới và engine", + "iris.modded.help.entry.command.debug": "Bật/ tắt Iris @ info/ rich settings.json", + "iris.modded.help.entry.command.reload": "Nạp lại settings.json (đã nạp quá nóng tự động mỗi 3)", + "iris.modded.help.entry.command.download": "Tải về dự án gói", + "iris.modded.help.entry.command.metrics": "Số đo cỡ ảnh hiện thời Iris Chiều rộng", + "iris.modded.help.entry.command.regen": "Xóa và tái tạo các mẫu gần đó", + "iris.modded.help.entry.group.pregen": "Tiền tố a Iris Chiều rộng", + "iris.modded.help.entry.command.wand": "Lấy một cái Iris đũa thần đối tượng", + "iris.modded.help.entry.group.object": "Các công cụ đũa phép đối tượng, lưu, dán, phân tích và hoàn tác", + "iris.modded.help.entry.group.edit": "Mở tập sinh học, vùng và tập tin json trong trình soạn thảo màn hình nền", + "iris.modded.help.entry.command.create": "Tạo ra và tiêm một sự bền bỉ Iris Không gian; gói trích dẫn:dimensionKey để chọn một chiều cụ thể", + "iris.modded.help.entry.group.studio": "Gói gọn các dự án tạo, đóng gói và báo cáo", + "iris.modded.help.entry.group.pack": "Gói gọn và bảo trì", + "iris.modded.help.entry.group.world": "Thời gian chạy Iris Name", + "iris.modded.help.entry.group.datapack": "Name", + "iris.modded.help.entry.group.structure": "Iris chỉ mục cấu trúc, thông tin và công cụ định vị", + "iris.modded.help.entry.command.goldenhash": "Tạo ra khối quyết định để kiểm tra cân bằng", + "iris.modded.help.entry.group.developer": "Chẩn đoán dành cho nhà phát triển: kiểm tra Sentry, giao diện mạng và quét tệp vùng", + "iris.modded.help.entry.command.biome": "Tìm một Iris sinh học", + "iris.modded.help.entry.command.region": "Tìm một Iris vùng", + "iris.modded.help.entry.command.object": "Tìm một vị trí đối tượng", + "iris.modded.help.entry.command.structure": "Tìm một Iris- Đã thay thế hoặc bản địa/dapack cấu trúc", + "iris.modded.help.entry.command.poi": "Tìm một điểm đáng chú ý", + "iris.modded.help.entry.command.biome_2": "Mở một máy sinh học json trong trình soạn thảo màn hình nền của bạn; không có phím nào mở đường dẫn sinh học ở vị trí của bạn", + "iris.modded.help.entry.command.region_2": "Mở một vùng json trong trình soạn thảo màn hình nền của bạn; không có phím nào mở vùng ở vị trí của bạn", + "iris.modded.help.entry.command.dimension": "Mở JSON chiều không gian của gói hiện tại trong trình chỉnh sửa trên máy tính", + "iris.modded.help.entry.command.start": "Bắt đầu thế hệ trước; bán kính theo khối, bộ nhớ tạm chốt có thể tái sử dụng theo mặc định, trung tâm thông qua 'at cờ được soạn theo thứ tự nào", + "iris.modded.help.entry.command.stop": "Name", + "iris.modded.help.entry.command.pause": "Tạm dừng hoặc tiếp tục thế hệ trước", + "iris.modded.help.entry.command.status": "Hiện trạng thái thế hệ trước", + "iris.modded.help.entry.command.wand_3": "Lấy một cái Iris đũa thần đối tượng", + "iris.modded.help.entry.command.dust": "Lấy bụi tiết lộ vị trí đối tượng", + "iris.modded.help.entry.command.save": "Lưu âm lượng đũa làm đối tượng", + "iris.modded.help.entry.command.paste": "Dán một đối tượng tại vị trí của bạn hoặc vị trí chỉ định, có thể xoay", + "iris.modded.help.entry.command.expand": "Hãy mở rộng tầm nhìn của cây đũa phép", + "iris.modded.help.entry.command.contract": "Hợp đồng lựa chọn đũa phép theo hướng nhìn của bạn", + "iris.modded.help.entry.command.shift": "Dịch sự lựa chọn đũa phép theo hướng của bạn", + "iris.modded.help.entry.command.position1": "Đặt điểm chọn 1", + "iris.modded.help.entry.command.position2": "Đặt điểm chọn 2", + "iris.modded.help.entry.command.x_y": "Tự động chọn lên và ra", + "iris.modded.help.entry.command.x_y_2": "Tự động chọn lên, xuống và ra", + "iris.modded.help.entry.command.analyze": "Hiện thành phần đối tượng", + "iris.modded.help.entry.command.shrink": "Thu nhỏ đối tượng về kích cỡ tối thiểu", + "iris.modded.help.entry.command.plausibilize": "Lớn lên những nhánh cây để lá cây sống sót sau khi bị hư hại", + "iris.modded.help.entry.command.undo": "Hoàn tác các đối tượng đã dán", + "iris.modded.help.entry.command.create_2": "Tạo một dự án gói mới", + "iris.modded.help.entry.command.package": "Name", + "iris.modded.help.entry.command.version_2": "In một phiên bản gói", + "iris.modded.help.entry.command.regions": "Tính phân phối vùng gần", + "iris.modded.help.entry.command.open": "Mở một không gian studio tạm thời cho một gói", + "iris.modded.help.entry.command.close": "Đóng cửa không gian mở và bỏ đi thế giới của nó", + "iris.modded.help.entry.command.tpstudio": "Name", + "iris.modded.help.entry.command.status_studio": "Hiển thị các không gian studio mở và gói của nó", + "iris.modded.help.entry.command.noise": "Mở kho chứa tiếng ồn GUI trên trình phục vụ hiện", + "iris.modded.help.entry.command.map": "Mở bản đồ thị giác GUI trên trình phục vụ hiện", + "iris.modded.help.entry.command.vscode": "Tạo lại không gian làm việc . mã hoá cho một gói và mở nó trong trình soạn thảo bàn làm việc của bạn", + "iris.modded.help.entry.command.update": "Tạo lại không gian . mã hoá cho một gói", + "iris.modded.help.entry.command.importvanilla": "Giải thích luồng công việc nhập vanilla", + "iris.modded.help.entry.command.validate": "Kiểm tra một gói hay từng gói", + "iris.modded.help.entry.command.cleanup": "Xem thử hoặc cách ly ứng dụng nguồn không dùng", + "iris.modded.help.entry.command.restore": "Xem thử hoặc phục hồi cách ly mới nhất", + "iris.modded.help.entry.command.status_validation": "Hiện trạng thái hợp lệ tạm", + "iris.modded.help.entry.command.enable": "Tạo ra và tiêm một sự bền bỉ Iris Không gian thời gian chạy; tải xuống các gói nếu thiếu, trích dẫn gói:dimensionKey để chọn một chiều cụ thể", + "iris.modded.help.entry.command.replace_overworld": "Tiêm a Iris Thế giới chính và các cầu thủ đường xá ở đó thay vì hiện nay", + "iris.modded.help.entry.command.disable": "Di tản và dỡ hàng. Iris Kích thước; dữ liệu thế giới trên đĩa được lưu giữ để phục hồi sức khỏe", + "iris.modded.help.entry.command.delete": "Tắt Iris Kích thước và xoá dữ liệu trong đĩa", + "iris.modded.help.entry.command.list": "Danh sách đã tải Iris Kích thước", + "iris.modded.help.entry.command.status_world": "Hiện khung lề Iris Kích thước và thế giới chính được cấu hình", + "iris.modded.help.entry.command.status_datapack": "Kiểm tra đã nạp Iris Name", + "iris.modded.help.entry.command.install": "Name Iris Kích thước", + "iris.modded.help.entry.command.list_datapacks": "Name", + "iris.modded.help.entry.command.ingest": "Giải thích Bukkit Name", + "iris.modded.help.entry.command.remove": "Name", + "iris.modded.help.entry.command.list_structures": "Tái tạo structure-index.json", + "iris.modded.help.entry.command.info_2": "Giải quyết một Iris giới hạn cấu trúc đồ thị và báo cáo", + "iris.modded.help.entry.command.place": "Tập hợp và đặt một Iris kết cấu tại vị trí của bạn", + "iris.modded.help.entry.command.import": "Giải thích Bukkit Comment", + "iris.modded.help.entry.command.capture": "Giải thích Bukkit Name", + "iris.modded.help.entry.command.verify": "Báo cáo bản địa và Iris cấu trúc khả năng chạm tới trong chiều không gian hiện tại", + "iris.modded.help.entry.command.sentry": "Gửi một ngoại lệ thử nghiệm đến Iris Thông báo lỗi", + "iris.modded.help.entry.command.network": "Liệt kê các giao diện mạng và địa chỉ của chúng", + "iris.runtime.progress.finding_regions": "Tìm vùng", + "iris.runtime.progress.converting": "Chuyển đổi", + "iris.runtime.status.running": "Đang chạy", + "iris.runtime.status.stopped": "Bị dừng", + "iris.runtime.status.paused": "Tạm dừng", + "iris.runtime.status.paused_lower": "bị dừng", + "iris.runtime.status.running_lower": "đang chạy", + "iris.runtime.status.enabled": "đã bật.", + "iris.runtime.status.disabled": "Vô hiệu.", + "iris.runtime.status.unregistered": "Chưa đăng ký", + "iris.runtime.status.none": "không có", + "iris.runtime.status.random": "ngẫu nhiên", + "iris.runtime.status.match": "MATCH", + "iris.runtime.status.mismatch": "MISMATCH", + "iris.runtime.status.true": "đúng", + "iris.runtime.status.false": "sai", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " viết quá", + "iris.runtime.datapack.override_suffix": " (Bộ dữ liệu thế giới ghi đè)", + "iris.runtime.primary_world.players_routed_suffix": " (Những người chơi đã đến đó)", + "iris.runtime.primary_world.routing_disabled_suffix": " (bị tắt)", + "iris.runtime.modded.no_dimension_match": "Không Iris Kích thước khớp{filter}'.", + "iris.runtime.teleport.world": "Anh đã bị dịch chuyển {world}.", + "iris.runtime.engine.hotloaded": "Comment", + "iris.runtime.job.completed": "Hoàn tất {job} trong {duration}", + "iris.runtime.job.scanning_selection": "Đang quét vùng chọn", + "iris.runtime.job.loading_chunks": "Đang nạp Chunks", + "iris.runtime.job.searched_chunks": "Đã tìm kiếm {chunks} Chunnks", + "iris.runtime.job.compile": "Name", + "iris.runtime.job.saving_object": "Đang lưu đối tượng", + "iris.runtime.job.downloading": "Đang tải về", + "iris.runtime.job.extracting": "Xuất ra", + "iris.runtime.job.installing": "Đang cài đặt", + "iris.runtime.compile.iob_empty": "- IOB {file} có 0 các khối!", + "iris.runtime.compile.iob_empty_hover": "Lỗi\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} không phải 3D!", + "iris.runtime.compile.iob_not_3d_hover": "Lỗi\n{path}\nChiều rộng, chiều cao hoặc chiều sâu là 0 (hình dạng xấu)", + "iris.runtime.compile.json_error": "- JSON Lỗi {file}", + "iris.runtime.compile.json_error_hover": "Lỗi\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "Không tìm thấy bộ tải cho {path}", + "iris.runtime.datapack.name": "Iris Thế hệ", + "iris.runtime.pack.already_exists": "Gói hàng đã có!", + "iris.runtime.tree_plausibilize.dry_suffix": ", DRY", + "iris.runtime.tree_plausibilize.skip_load": "bỏ qua {object}Lỗi tải", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} gỗ ({branches} chi nhánh), {converted} để lại->gỗ,{distances} Khoảng cách", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} gỗ ({branches} chi nhánh), {converted} để lại->gỗ,{distances} Khoảng cách!{pinned} Đã kết nối", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "bị lỗi {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "Hoàn tất: {processed} Xử lý, {changed} đã thay đổi, {skipped} bỏ qua, {failed} bị lỗi", + "iris.runtime.tree_plausibilize.done_dry": "Hoàn tất: {processed} Xử lý, {changed} đã thay đổi, {skipped} bỏ qua, {failed} bị lỗi (đã sấy chạy, không có gì được ghi)", + "iris.runtime.tree_plausibilize.totals": "Tổng: +{wood} gỗ ({branches} chi nhánh), {converted} để lại->gỗ,{distances} Khoảng cách!{pinned} Comment {before} -> {after}", + "iris.runtime.item.wand.name": "Cây Iris", + "iris.runtime.item.wand.lore.first": "Nhấn vào một khối để đặt góc thứ nhất", + "iris.runtime.item.wand.lore.second": "Nhấn vào một khối để đặt góc thứ hai", + "iris.runtime.item.dust.name": "Bụi bày tỏ", + "iris.runtime.item.dust.lore": "Nhấn vào một khối để biết cấu trúc vị trí của nó!", + "iris.runtime.wand.position_set": "Vị trí {position} đặt {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "Chiều không gian này không được Iris tạo ra.", + "iris.runtime.dust.found_object": "Đối tượng đã tìm {object}", + "iris.runtime.dust.revealed": "Đã tiết lộ{count}khối{object}", + "iris.runtime.dust.revealed_capped": "Đã tiết lộ{count}khối{object}(bị bao vây)", + "iris.runtime.dust.header": "--- Iris Bụi {x}, {y}, {z} ---", + "iris.runtime.dust.block": "Khối: {block}", + "iris.runtime.dust.position.above": "Vị trí: +{offset} phía trên bề mặt (mặt rộng Y={surfaceY})", + "iris.runtime.dust.position.below": "Vị trí: {offset} Bên dưới bề mặt (mặt đất Y={surfaceY})", + "iris.runtime.dust.position.at": "Vị trí: tại bề mặt (Y={surfaceY})", + "iris.runtime.dust.object_at_block": "Đối tượng {object}", + "iris.runtime.dust.none": "không có", + "iris.runtime.dust.placed_by.object_above": "Được đặt bởi đối tượng/ giây{object}' (mặt trên)", + "iris.runtime.dust.placed_by.decoration_above": "Đặt theo: trang trí/ thu hút/ Linh tinh (mặt đất)", + "iris.runtime.dust.placed_by.buried_object": "Đặt theo: đối tượng đã chôn{object}'", + "iris.runtime.dust.placed_by.terrain": "Đặt theo lớp địa hình ( thâm tím {depth} dưới bề mặt)", + "iris.runtime.dust.column_object": "Đối tượng cột: {object} -> khối này có khả năng mà đối tượng của Stilt", + "iris.runtime.dust.column_object_none": "Đối tượng cột: {detail}", + "iris.runtime.dust.column_none": "không có gì bên trong 64 (Khán giả hoặc địa hình, không một dấu chấm)", + "iris.runtime.dust.column.above": "{object} @Y={y} (hình trên)", + "iris.runtime.dust.column.below": "{object} @Y={y} (Tiếng thấp)", + "iris.runtime.dust.surface_biome": "Sinh học bề mặt: {biome}", + "iris.runtime.dust.surface_biome_detail": "Sinh học bề mặt: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Tạm dừng {biome}", + "iris.runtime.dust.cave_biome": "Hang động/Mantle sinh học: {biome}", + "iris.runtime.dust.server_biome": "Sinh thiết máy phục vụ: {biome} (ID: {id})", + "iris.runtime.dust.region": "Vùng: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "Đối tượng dạng đoạn {objects}", + "iris.runtime.dust.copy_button": "[nhấp để sao chép các thống kê]", + "iris.runtime.dust.copy_hover": "Chép thông tin chặn vào bảng nháp", + "iris.runtime.pregen.starting": "Iris Bắt đầu Pregen...", + "iris.runtime.pregen.header": "Iris Bản quyền", + "iris.runtime.pregen.bossbar.paused": "Iris Bản quyền {generated}/{total} {percent}% đã tạm dừng", + "iris.runtime.pregen.bossbar.running": "Iris Bản quyền {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " bị lỗi {failed}", + "iris.runtime.pregen.status.context": "Kích thước {dimension} · Phương pháp {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "Chunnks {generated}/{total} * Tốc độ {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "Chunnks {generated}/{total} * Tốc độ {speed}/s Lỗi {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} Lập tắt {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} Lập tắt {elapsed} · đã tạm dừng", + "iris.runtime.pregen.button.pause": "Tạm dừng/ Tiếp tục", + "iris.runtime.pregen.button.pause.hover": "Bật/ tắt trạng thái tạm dừng tiền thế hệ", + "iris.runtime.pregen.button.stop": "Dừng", + "iris.runtime.pregen.button.stop.hover": "Kết thúc vùng hiện tại và dừng tiến trình tiền tế bào", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§cKhông tìm thấy gói/ thư mục.", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§eKhông có túi để kiểm tra.", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§aĐã kiểm tra xong. Gói hỏng: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§cGói '{pack}Không tìm thấy dưới packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§aKhông tìm thấy ứng dụng dọn dẹp cho gói '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§aCách ly{size}Ứng cử viên làm sạch dưới{quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§cChế độ làm sạch phải được xem thử hay áp dụng.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§aKhông tìm thấy ứng dụng dọn dẹp cho gói '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§eXem thử dọn dẹp cho gói '{pack}': {size} candidate(s). Không có tập tin nào bị thay đổi.", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7Chạy /iris pack cleanup {pack} mode=apply để cách ly những ứng cử viên này sau khi quét mới.", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§cPhục hồi bị từ chối bởi vì {size} destination(s) already exist.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§eKhông có gì để phục hồi cho gói '{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§aĐã phục hồi{size}Tập tin từ{dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§cChế độ phục hồi phải được xem thử hoặc áp dụng.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§eKhông có gì để phục hồi cho gói '{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§eXem thử phục hồi {dumpPath}: {size} file (s). Không có tập tin nào bị thay đổi.", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§cPhục hồi bị chặn bởi{size}đích đã có.", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7Chạy /iris pack restore {pack} mode=apply để khôi phục sau khi kiểm tra xung đột mới.", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§eKhông có kết quả hợp lệ. Chạy /iris pack validate Đầu tiên.", + "iris.bukkit.runtime.commandpack.status.ok": "§aĐược rồi§r {pack}§7 (bị chặn ={blocking}Cảnh báo ={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§cHÌNH§r {pack}§7 (bị chặn ={blocking}Cảnh báo ={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§cLàm sạch thất bại: {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§cViệc phục hồi bị lỗi: {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "Vẫn bị cách ly", + "iris.bukkit.runtime.commandpack.path.quarantined": "Cách ly", + "iris.bukkit.runtime.commandpack.path.candidate": "ứng cử viên", + "iris.bukkit.runtime.commandpack.path.conflict": "xung đột", + "iris.bukkit.runtime.commandpack.path.restored": "Đã phục hồi", + "iris.bukkit.runtime.commandpack.path.file": "Tập tin", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§eKhông có kết quả hợp lệ cho «{pack}'. Chạy /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§cKiểm tra '{name}Lỗi: {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§aGói '{packName}'có thể tải được.§7 (Những cuộc chiến ={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§cGói '{packName}Là bị hỏng:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... và {count} cảnh báo thêm.", + "one": "§7 ... và {count} cảnh báo thêm." + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§cLuôn tạo bản sao lưu trước khi sử dụng chức năng này", + "§eCác vấn đề có thể xảy ra bao gồm nhưng không giới hạn ở:", + "§e - Chunk bị hỏng (đứt đoạn) giữa chunk cũ và mới (trước khi cập nhật & sau khi cập nhật)", + "§e - Chunk được tạo lại không khớp với chunk cũ", + "§e - Cấu trúc không xuất hiện lại khi tái tạo", + "§e - Hang động không nối khớp", + "§e - Các lớp địa hình không nối khớp", + "§cKhi bạn đã hiểu rủi ro và tạo bản sao lưu:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§aNhập §f{total}§a Name & cấu trúc gói dữ liệu (mode={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[lỗi] {keyString}: khóa không hợp lệ", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[bỏ qua] {keyString}: NBT -oni xây dựng nó bằng mã hoặc từ các mẫu riêng biệt (được nhập qua các mẫu); không có gì để nhập như một cấu trúc.", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[lỗi] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§aĐã nhập xong: §f{imported}§a Nhập khẩu, §f{skipped}§a bỏ qua, §f{failed}§a lỗi (§f{total}§a Tổng cộng).", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§aXây dựng cấu trúc thái dương đơn từ các mảnh nhập khẩu (một biến thể được đặt trên mỗi thế hệ)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[group] {value} -> {value2} ({blocks} biến thế)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[bỏ qua] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[lỗi] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§aCác cấu trúc thái đơn: §f{imported}§a Xây dựng, §f{skipped}§a bỏ qua, §f{failed}§a bị lỗi.", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§cLỗi liệt kê các mẫu cấu trúc thông qua máy chủ ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§eKhông tìm thấy mẫu cấu trúc nào dưới đường dẫn tài nguyên « cơ cấu ».", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§aNhập §f{total}§a mẫu cấu trúc (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[lỗi] {keyString}: khóa không hợp lệ", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[lỗi] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} Nhập khẩu, {skipped} bỏ qua, {failed} bị lỗi)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§aComment §f{imported}§a Nhập khẩu, §f{skipped}§a bỏ qua, §f{failed}§a lỗi (§f{total}§a Tổng cộng).", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§eKhông có tập dữ liệu nào (không phải của tôi) được đăng ký. Hãy khởi động lại dữ liệu trước, rồi chạy lại lần nữa.", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§aNhập §f{total}§a cấu trúc gói dữ liệu (mode={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[lỗi] {keyString}: khóa không hợp lệ", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[lỗi] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§aNhập §f{size}§a Comment...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[lỗi] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[lỗi] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§eKhông thể liệt kê các mẫu dữ liệu qua máy chủ ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§aComment §f{imported}§a Nhập khẩu, §f{skipped}§a bỏ qua, §f{failed}§a bị lỗi.", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§eBắt giữ cấu trúc không được hỗ trợ bởi các hoạt động NMS ràng buộc, bỏ qua việc bắt giữ.", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7Không còn cấu trúc mã hóa nào để lấy (mọi thứ đã được nhập vào như một cấu trúc).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§aBắt buộc §f{total}§a Cấu trúc mã hóa (không có NBT Biểu mẫu) thành một thế giới bị trầy xước (đi vào bất cứ thế giới rộng hơn/taller nào so với {MAXSPAN} khối)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[bỏ qua] {key}▪ Không đặt một cấu trúc quan trọng ở đây (quá lớn, sai kích thước hoặc không có vị trí thích hợp trong một thế giới phẳng). Vẫn sản xuất vanilla.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[lỗi] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[capture] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[lỗi] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} Đã bị bắt, {skipped} bỏ qua, {failed} bị lỗi)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§aHoàn tất ghi hình cấu trúc: §f{imported}§a Đã bị bắt, §f{skipped}§a bỏ qua, §f{failed}§a lỗi (§f{total}§a Tổng cộng).", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§eName NMS Liên kết (chỉ đưa vào các cấu trúc).", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§aNhập §f{total}§a Các tính năng của cây van-ni- a/ dễ theo dõi (§f{wantVariants}§a biến thể mỗi) thành một thế giới cũ...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[bỏ qua] {key}: tính năng không đặt gì sau khi nhớ lại.", + "iris.bukkit.runtime.featureimporter.fail": "§c[lỗi] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} Nhập khẩu, {skipped} bỏ qua, {failed} bị lỗi)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§aMới nhập xong: §f{imported}§a Tính năng được viết ra, §f{skipped}§a bỏ qua, §f{failed}§a lỗi (§f{total}§a Tổng cộng).", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§cKhông thể tạo thế giới xước để nhập đặc điểm ({error}; bỏ qua cây/Bỏ qua đối tượng.", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "Không tìm thấy tập tin sơ đồ cần chuyển đổi {path}", + "iris.bukkit.runtime.irisconverter.converted": "§aChuyển đổi {name} -> {value} trong {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§aChuyển đổi {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§cLỗi lưu: {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§cLỗi chuyển đổi: {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7Chuyển đổi: {get} trong {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§cMột số sơ đồ không thể chuyển đổi. Kiểm tra bảng điều khiển xem có chi tiết gì không.", + "iris.bukkit.runtime.studiosvc.installing_package": "Đang cài đặt gói: {name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "Đang tìm gói: {type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "Tìm thấy {type}Tham gia {WORKSPACENAME} Thư mục", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "Tìm thấy {type} Không gian trong {WORKSPACENAME} thư mục. Đang nạp lại", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "Không tìm thấy {name} trong các kích thước thư mục của gói này! Thất bại!", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "Không nạp được chiều không gian! Thất bại!", + "iris.bukkit.runtime.studiosvc.type_installed": "{name} đã cài đặt. ", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "Gói '{key}Không tìm thấy trong danh sách gói hàng.", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "Dùng /iris download branch= tải về bằng tay.", + "iris.bukkit.runtime.studiosvc.failed_download": "Lỗi tải xuống{key}'.", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "Việc tải về bị lỗi IrisDimensionsSự giải phóng của thế giới Bta.", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "Lỗi tải xuống{repo}' (branch {branch}).", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "Lỗi mở thế giới studio: {error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "Không thể mở studio{dimm}- gói có lỗi chặn:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "Sửa gói rồi chạy đi. /iris pack validate {dimm} để realidate.", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "Lỗi đóng lại dự án studio đã có: {error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "Lỗi đóng lại dự án studio đã có: {error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "Lỗi mở thế giới studio: {error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "Không thể tìm ra bầy để tạo ra một chiều không gian mới.", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "Name", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "Nhập {downloadable} vào dự án mới {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Phòng thu đối tượng: không có tế bào dưới nhắp (x={x} z={z}).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bPhòng thu đối tượng: đang lưu §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Phòng thu đối tượng: không thay đổi cho {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Phòng thu đối tượng: ô trống {pack}/{key} (không có gì để viết).", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cPhòng thu đối tượng: không có tập tin đích cho {pack}/{key}.", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aPhòng thu đối tượng: đã lưu §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cPhòng thu đối tượng: việc lưu không thành công {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "Không thể tải chiều \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "Không thể lấy bộ tải chiều", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§cViệc mở phòng thu thất bại: {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§cViệc mở phòng thu bị lỗi.", + "iris.bukkit.runtime.irisproject.studio_ready": "§aPhòng thu sẵn sàng §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6Studio §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "Chèn", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "Viết khác {g} Đối tượng", + "iris.bukkit.runtime.irisproject.package_compiled": "Gói đã được biên dịch!", + "iris.bukkit.runtime.irisproject.failed": "Thất bại!", + "iris.bukkit.runtime.irisengine.total": "Tổng: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " Máy §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "Chi tiết ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} không được định nghĩa trong chiều không gian!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§cKhông tìm thấy {message} trong phạm vi tìm kiếm.", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§aChuyển tới {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} lúc: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "Anh đã được sơ tán khỏi thế giới này.", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "Anh đã được sơ tán khỏi thế giới này. {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "Có một số Iris Những gói có thiết bị sinh học tùy chỉnh", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "Bạn cần phải khởi chạy lại trình phục vụ để dùng những gói này.", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "Quyền hạn", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "Có hoặc không có lệnh con hoặc bạn không có quyền sử dụng chúng.", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "Tham số bị bỏ qua: {m}", + "iris.runtime.studio.opening": "§6Studio §bĐANG MỞ", + "iris.runtime.studio.opening_progress": "§6Studio §bĐANG MỞ§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6Studio §cTHẤT BẠI§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6Studio §aSẴN SÀNG§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §cTHẤT BẠI§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §aStudio đã sẵn sàng§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6Studio §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "Đang khởi tạo", + "iris.runtime.studio.stage.queued": "Đang chờ", + "iris.runtime.studio.stage.resolve_dimension": "Đang xác định chiều không gian", + "iris.runtime.studio.stage.prepare_world_pack": "Đang chuẩn bị gói thế giới", + "iris.runtime.studio.stage.install_datapacks": "Đang cài datapack", + "iris.runtime.studio.stage.create_world": "Đang tạo thế giới", + "iris.runtime.studio.stage.apply_world_rules": "Đang áp dụng quy tắc thế giới", + "iris.runtime.studio.stage.prepare_generator": "Đang chuẩn bị trình tạo", + "iris.runtime.studio.stage.request_entry_chunk": "Đang tải chunk khởi đầu", + "iris.runtime.studio.stage.resolve_safe_entry": "Đang tìm điểm spawn an toàn", + "iris.runtime.studio.stage.teleport_player": "Đang dịch chuyển", + "iris.runtime.studio.stage.finalize_open": "Đang hoàn tất", + "iris.runtime.studio.stage.cleanup": "Đang dọn dẹp", + "iris.runtime.world_create.teleport_failed": "§eThế giới đã được tạo ra, nhưng dịch chuyển tự động thất bại. Thử /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} Chunk", + "iris.runtime.world_create.console": "§6Đang tạo ra §e{percent}%§7 {generated}/{required} Chunk§8 ({remaining} trái)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §fTạo ra", + "iris.runtime.world_create.pregen.console": "§6Tạo ra §e{percent}%", + "iris.runtime.chunk_job.title.regen": "Bản sao", + "iris.runtime.chunk_job.title.delete": "Xoá", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "Đang chuẩn bị", + "iris.runtime.chunk_job.stage.clearing": "Đang xoá", + "iris.runtime.chunk_job.stage.resetting_mantle": "Đang đặt lại lớp vỏ", + "iris.runtime.chunk_job.stage.regenerating": "Tạo lại", + "iris.runtime.chunk_job.stage.generating": "Đang tạo ra", + "iris.runtime.chunk_job.stage.comparing": "Đang so sánh", + "iris.runtime.chunk_job.stage.diagnosing": "Chẩn đoán", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §bCÔNG VIỆC", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} Chunk {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} Chunk {elapsed} ({failures} bị lỗi)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §aDOE§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §cTHẤT BẠI§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §aHoàn tất§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §cThất bại§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} Hoàn tất: {summary}", + "iris.runtime.chunk_job.failed": "§c{title} kết thúc với lỗi: {summary}", + "iris.runtime.golden.no_capture": "Không bắt được vàng {path}; chạy một cuộc bắt giữ trước.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash Hủy bỏ: {failed} Không thể tạo ra các mảng. Không có hồ sơ vàng được viết.", + "one": "GoldenHash Hủy bỏ: {failed} Việc phân tích bị lỗi. Không có hồ sơ vàng được viết." + }, + "iris.runtime.golden.failed": "GoldenHash bị lỗi: {error}", + "iris.runtime.golden.mantle_reset": "Mantle Đặt lại ({path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle Việc đặt lại bị lỗi ({type}); tiếp tục với trạng thái lớp vỏ hiện có.", + "iris.runtime.golden.captured": "Vàng được ghi lại: {chunks} Các mảng kết hợp ={hash}", + "iris.runtime.golden.wrong_world": "Tập tin vàng là cho bóng mờ ={goldenDimension} hạt giống ={goldenSeed} Nhưng thế giới này là tối thiểu ={dimension} hạt giống ={seed}. Hủy bỏ.", + "iris.runtime.golden.version_warning": "Vàng đã được bắt trên mc ={goldenVersion}chạy mc ={version}. Sự khác biệt có thể là do phiên bản.", + "iris.runtime.golden.match": "GOLDEN MATCH: {current}/{golden} Các mảng, kết hợp ={hash}", + "iris.runtime.golden.mismatch": "GOLDEN MISMATCH: {mismatches}/{chunks} Mỗi chunk mỗi khác.", + "iris.runtime.golden.mismatch_chunk": " Chunk {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (đã bỏ lỡ vàng)", + "iris.runtime.golden.mismatch_more": " ... và {count} thêm", + "iris.runtime.golden.current_written": "Dấu chấm phẩy hiện tại {file}", + "iris.runtime.golden.diag.stable": "Hệ thống lặp lại STABLEMantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "Hệ thống lặp lại UNSTABLE ({diffs}+ khối phân cách), bao phủ {mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "STABLE (tự động tạo lại bản sao quét)", + "iris.runtime.golden.diag.mantle_diverged": "DIVERGED ({diffs}+ diffs - xây dựng lớp vỏ là phụ thuộc tình trạng/ thứ tự)", + "iris.runtime.golden.diag.mantle_skipped": "SKIPPED ({type})", + "iris.runtime.golden.diag.failed": "Chẩn đoán thất bại: {error}", + "iris.runtime.golden.started": "GoldenHash bắt đầu: {chunks} Cuộn quanh 0,0 trong bộ đệm (thế giới chưa động đến), các sợi={threads} Chế độ ={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] Chunk {x},{z} bị đóng cửa", + "iris.runtime.golden.chunk_failed": "Chunk. {x},{z} thất bại: {type}", + "iris.runtime.pack_download.invalid_pack_name": "Tên gói không hợp lệ{pack}' (được phép: a-z, 0-9, và -)", + "iris.runtime.pack_download.invalid_branch_name": "Tên chi nhánh không hợp lệ{branch}' (được phép: letters, digits, . và -)", + "iris.runtime.pack_download.failed": "Tải về gói thất bại: {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "Đang tải về {url}", + "iris.runtime.pack_download.failed_to_find": "Không tìm thấy gói tại {url}", + "iris.runtime.pack_download.check_repository_and_branch": "Hãy chắc chắn rằng bạn đã xác định đúng mục và chi nhánh!", + "iris.runtime.pack_download.example_command": "Chẳng hạn: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "Đang mở gói {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "Vấn đề là khi dỡ đồ ra. Vui lòng kiểm tra/ làm những điều sau:", + "1. Anh có kết nối internet hoạt động không?", + "2. Việc tải về có bị hỏng không?", + "3. Cố xóa */plugins/iris/packs Thư mục và tải xuống.", + "4. Tải các gói từ GitHub Nhắc lại: https://github.com/IrisDimensions/overworld", + "5. Hỗ trợ liên lạc (nếu mọi tùy chọn khác không giúp đỡ)" + ], + "iris.runtime.pack_download.no_extracted_files": "Không có tập tin nào được lấy từ tập tin zip.", + "iris.runtime.pack_download.home_directory_error": "Lỗi khi tìm thư mục chính. Có ký tự không ngữ cảnh nào trong tên tập tin không?", + "iris.runtime.pack_download.invalid_archive_format": "Định dạng không hợp lệ. Thiếu thư mục gốc hoặc quá nhiều thư mục!", + "iris.runtime.pack_download.no_dimension_file": "Không tìm thấy tập tin chiều không gian nào trong tập tin nén lại.", + "iris.runtime.pack_download.check_github": "Kiểm tra xem nó có ở trên không GitHub và báo cáo với nhân viên!", + "iris.runtime.pack_download.one_dimension_required": "Thư mục kích thước phải chứa chính xác một tập tin.", + "iris.runtime.pack_download.invalid_dimension": "Thư mục chiều không hợp lệ nằm dưới dimensions/.", + "iris.runtime.pack_download.importing": "Nhập {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "Một chiều không gian khác trong thư mục gói là đã sử dụng phím {key}. Nhập thất bại!", + "iris.runtime.pack_download.pack_key_conflict": "Name {key}. Nhập thất bại!", + "iris.runtime.pack_download.acquired": "Được thành công {name}.", + "iris.runtime.pack_download.validation_failed": "Gói '{pack}'Đã thất bại trong việc xác nhận; thế giới và phòng thu sẽ bị từ chối. Lý do:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "Gói '{pack}Xác nhận với {count} Cảnh báo.", + "one": "Gói '{pack}Xác nhận với {count} Cảnh báo." + }, + "iris.runtime.pack_download.validated": "Gói '{pack}Xác nhận.", + "iris.client.vision.title": "Iris Tầm nhìn", + "iris.client.vision.connecting": "Đang kết nối tới Iris máy phục vụ...", + "iris.client.vision.not_connected": "chưa kết nối", + "iris.client.vision.not_iris_world": "Không phải Iris thế giới", + "iris.client.vision.no_dimension_data": "không có dữ liệu chiều không gian", + "iris.client.vision.header_detail": "{status} phóng đại {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "Kéo tới cuộn để thu nhỏ Esc", + "iris.client.vision.dimension_pack": "{dimension} gói {pack}", + "iris.client.toast.studio_hotload": "Nạp nóng phòng thu", + "iris.client.toast.changed_files": { + "other": "{count} Tập tin", + "one": "{count} Tập tin" + }, + "iris.client.toast.reload_failed": "Tải lại thất bại", + "iris.client.toast.reloaded": "Đã tải lại", + "iris.client.toast.pack_failed": "{pack} bị lỗi", + "iris.client.what.title": "Iris Sao?", + "iris.client.what.querying": "Truy vấn {x}, {z}...", + "iris.client.what.biome": "Hai sắc: {biome}", + "iris.client.what.region": "Vùng: {region}", + "iris.client.what.cave": "Hang: {cave}", + "iris.client.what.height": "Chiều cao: {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "đã tạm dừng", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris.", + "iris.bukkit.scoreboard.speed": "§aTốc độ§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§bBộ nhớ tạm§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMangle§7: {count}", + "iris.bukkit.scoreboard.carving": "§dQuan tâm§7: {state}", + "iris.bukkit.scoreboard.region": "§bVùng§7: {region}", + "iris.bukkit.scoreboard.biome": "§bĐôi§7: {biome}", + "iris.bukkit.scoreboard.height": "§bChiều cao§7: {height}", + "iris.bukkit.scoreboard.slope": "§bTrượt§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§bBAD/s§7: {updates}", + "iris.desktop.vision.title": "Iris Tầm nhìn", + "iris.desktop.vision.view": "Xem:", + "iris.desktop.vision.grid": "Lưới", + "iris.desktop.vision.follow": "Theo", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "Cập nhật", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "Đặt lại phóng đại", + "iris.desktop.vision.grid_enabled": "Lưới đã bật", + "iris.desktop.vision.grid_disabled": "Tắt Lưới", + "iris.desktop.vision.following": "Đang theo dõi {player}", + "iris.desktop.vision.no_player": "Không có người chơi trên thế giới", + "iris.desktop.vision.follow_disabled": "Tắt theo", + "iris.desktop.vision.low_quality": "Chất lượng thấp", + "iris.desktop.vision.high_quality": "Chất lượng cao", + "iris.desktop.vision.status_left": "{mode} | {bpp} bpp {width} x {height} khối", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "Vị trí: {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "Sức khỏe: {health} / {maximum}", + "iris.desktop.vision.block_position": "Khối {x}, {z}", + "iris.desktop.vision.chunk_position": "Chunk. {x}, {z}", + "iris.desktop.vision.region_position": "Vùng {x}, {z}", + "iris.desktop.vision.biome_key": "Khóa: {key}", + "iris.desktop.vision.biome_file": "Tập tin: {file}", + "iris.desktop.vision.velocity": "Tốc độ: {velocity}", + "iris.desktop.vision.tiles": "Lát: {high} HD / {low} LQ", + "iris.desktop.vision.workers": "Công nhân: {high} HD / {low} LQ", + "iris.desktop.vision.center": "Giữa: {x}, {z}", + "iris.desktop.vision.help.toggle": "Bật/tắt trợ giúp", + "iris.desktop.vision.help.refresh": "Làm tươi các miếng", + "iris.desktop.vision.help.follow": "Theo", + "iris.desktop.vision.help.zoom": "Thu nhỏ", + "iris.desktop.vision.help.reset_zoom": "Đặt lại phóng đại", + "iris.desktop.vision.help.cycle_mode": "Chế độ vẽ vòng tròn", + "iris.desktop.vision.help.quality": "Bật/ tắt chất lượng ô vuông", + "iris.desktop.vision.help.fps": "Bật/ tắt 30/60 FPS", + "iris.desktop.vision.help.grid": "Bật/ tắt lưới", + "iris.desktop.vision.help.biome": "Thông tin về sinh học chi tiết", + "iris.desktop.vision.help.teleport": "Chuyển sang con chạy", + "iris.desktop.vision.help.editor": "Mở tài liệu sinh học trong bộ sửa", + "iris.desktop.vision.opened": "Mở {target}", + "iris.desktop.vision.teleporting": "Chuyển tới {x}, {z}", + "iris.desktop.vision.mode.biome": "Đôi", + "iris.desktop.vision.mode.biome_land": "Vùng đất đa sắc màu", + "iris.desktop.vision.mode.biome_sea": "Biển lấp lánh", + "iris.desktop.vision.mode.region": "Vùng", + "iris.desktop.vision.mode.cave_land": "Vùng đất hang động", + "iris.desktop.vision.mode.height": "Chiều cao", + "iris.desktop.vision.mode.object_load": "Trọng tải đối tượng", + "iris.desktop.vision.mode.decorator_load": "Tải bộ phân giải", + "iris.desktop.vision.mode.continent": "Lục", + "iris.desktop.vision.mode.layer_load": "Trọng tải Lớp", + "iris.desktop.noise.title": "Trình thám hiểm tiếng ồn", + "iris.desktop.noise.title_generator": "Thám hiểm tiếng ồn: {generator}", + "iris.desktop.noise.search": "Tìm kiếm...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} Phóng to- thu nhỏ {zoom} Giá trị {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "Tự chọn", + "iris.desktop.noise.category.pack_generators": "Trình tạo nén", + "iris.desktop.noise.category.simplex": "Đơn giản", + "iris.desktop.noise.category.perlin": "PerlinName", + "iris.desktop.noise.category.cellular": "Cổ tử tế", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "Sao", + "iris.desktop.noise.category.hexagon": "Lục giác", + "iris.desktop.noise.category.vascular": "Bóng loáng", + "iris.desktop.noise.category.globe": "Hình cầu", + "iris.desktop.noise.category.cubic": "Bậc ba", + "iris.desktop.noise.category.fractal": "Phân dạng", + "iris.desktop.noise.category.static": "Tĩnh", + "iris.desktop.noise.category.nowhere": "Không nơi nào", + "iris.desktop.noise.category.sierpinski": "Sierpinski.", + "iris.desktop.noise.category.utility": "Tiện ích", + "iris.desktop.noise.category.other": "Khác", + "iris.desktop.pregen.initializing": "Đang sở khởi...", + "iris.desktop.pregen.title": "Xem mẫu", + "iris.desktop.pregen.method_pending": "Đang đợi", + "iris.desktop.pregen.paused": "đã tạm dừng", + "iris.desktop.pregen.resume_hint": "Nhấn P để tiếp tục", + "iris.desktop.pregen.pause_hint": "Nhấn nút P để tạm dừng", + "iris.desktop.pregen.progress_paused": "đã tạm dừng {generated} Kho {total} ({percent} Hoàn tất)", + "iris.desktop.pregen.progress_saving": "Đang lưu... {generated} Kho {total} ({percent} Hoàn tất)", + "iris.desktop.pregen.progress_generating": "Đang tạo ra {generated} Kho {total} ({percent} Hoàn tất)", + "iris.desktop.pregen.speed": "Tốc độ: {chunksPerSecond} Chunk/s, {regionsPerMinute} Vùng/m, {chunksPerMinute} Chunk", + "iris.desktop.pregen.speed_cached": "Tốc độ: đã lưu tạm {chunksPerSecond} Chunk/s, {regionsPerMinute} Vùng/m, {chunksPerMinute} Chunk", + "iris.desktop.pregen.time": "{remaining} còn lại ({elapsed} Mở rộng)", + "iris.desktop.pregen.method": "Phương pháp thế hệ: {method}", + "iris.desktop.pregen.memory": "Bộ nhớ: {used} ({usage}) Áp lực: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/zh_CN.json b/core/src/main/resources/languages/zh_CN.json new file mode 100644 index 000000000..ce217ba67 --- /dev/null +++ b/core/src/main/resources/languages/zh_CN.json @@ -0,0 +1,1435 @@ +{ + "locale": "zh_CN", + "messages": { + "director.help.navigation.parent.hover": "返回上级命令组", + "director.help.navigation.back": "返回", + "director.help.no_subcommands": "此页面没有子命令。", + "director.help.no_description": "未提供说明", + "director.help.aliases": "别名", + "director.help.command_group": "命令组。点击打开。", + "director.help.no_parameters": "无参数。点击预填命令。", + "director.help.parameters": "参数", + "director.help.parameter.required": "必填", + "director.help.parameter.optional": "可选", + "director.help.parameter.default": "默认", + "director.help.navigation.previous.hover": "上一页", + "director.help.navigation.next.hover": "下一页", + "director.help.navigation.page": "页", + "director.runtime.error.invalid_origin": "无法从此来源运行该命令。", + "director.runtime.error.unknown_parameter": "未知参数键: {key}", + "director.runtime.error.unexpected_argument": "意外参数 \"{argument}\"。可选参数必须使用键指定,例如 seed=123", + "director.runtime.error.conversion_failed": "无法将 \"{value}\" 转换为 {parameter} 所需的 {type}", + "director.runtime.error.default_parse_failed": "无法解析参数 {parameter} 的默认值", + "director.runtime.error.missing_argument": "缺少参数 \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "执行命令 {command} 失败: {reason}", + "director.runtime.usage": "用法: {usage}", + "iris.command.permission_denied": "你没有权限 '{permission}'。", + "iris.command.unknown": "未知的 Iris 命令。", + "iris.command.player_only": "此命令只能由玩家执行。", + "iris.command.iris_world_required": "此维度不是由 Iris 生成的。", + "iris.command.reload.success": "设置和语言 {locale} 已重新加载。", + "iris.command.reload.failed": "设置已重新加载,但语言 {locale} 验证失败;继续使用 {activeLocale}。", + "iris.modded.help.unknown_section": "未知的 Iris 帮助章节:{section}", + "iris.modded.help.back_hover": "返回 {parent}。", + "iris.modded.help.command_parameter": "命令参数", + "iris.modded.help.parameter_required": "此参数为必填项。", + "iris.modded.help.parameter_optional": "此参数为可选项。", + "iris.modded.help.brigadier_text": "此参数是 Brigadier 文本。", + "iris.modded.help.operator_notice": "Iris 命令需要操作员权限(等级 2)。", + "iris.modded.help.operator_instruction": "请从控制台执行 {command}(或在单人游戏中启用作弊);在此之前,这些命令不会执行,也不会提供 Tab 补全。", + "iris.modded.command.properties.none": "属性:(无)", + "iris.modded.command.properties.list": "属性 : {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7正在导入数据包...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§a已配置的数据包导入:§f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§a已安装的数据包:§f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§e将 Modrinth URL 添加到维度的 'datapackImports' 列表,然后执行 /iris datapack ingest。", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§aGenHash 已启动:{value} 个区块...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cGenHash 在区块 {rx},{rz} 失败:{value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§aGenHash 全局值=§6{value}§a 区块={value2} 实心方块={solidBlocks} 输入={value3}", + "iris.bukkit.commandfind.not_iris_world": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.unknown_structure": "§c未知结构:{structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6请在游戏内执行此命令以传送到结构。", + "iris.bukkit.commandfind.locating": "§7正在定位 {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6请在游戏内执行此命令以传送到结构。", + "iris.bukkit.commandfind.locating_2": "§7正在定位 {structure}...", + "iris.bukkit.commandfind.teleported": "§a已传送到 {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§a成功删除世界文件夹", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§a成功删除世界文件夹", + "iris.bukkit.commandiris.failed_remove_world_folder": "§c删除世界文件夹失败", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§c此服务器上未找到包含对象的包。", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§c选定的包中没有可放置的对象。", + "iris.bukkit.commandobject.opening_object_studio_objects": "§a正在打开对象 Studio:{scope}({totalObjects} 个对象)", + "iris.bukkit.commandobject.failed_open_object_studio": "§c无法打开对象 Studio:{value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§c必须指定包名。", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§c在 packs/ 中找不到包 '{pack}'。", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ...另有 {value} 项", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§a正在验证结构 §f{value}§a;起点 {value2},{value3},范围 {searchRadius} 个区块...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§a正在将原版内容导入 §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§a原版内容导入完成:已写入 §f{imported}§a 个 objects/structures,§f{failed}§a 个失败。", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7树和对象位于 objects/vanilla/...;请从群系的对象放置中引用它们。", + "iris.bukkit.commandstudio.no_open_studio_projects": "§c没有打开的 Studio 项目。", + "iris.bukkit.commandstudio.closing_studio": "§e正在关闭 Studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§c关闭 Studio 失败:{value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§c关闭 Studio 失败:{value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio 已关闭;剩余的世界系列清理已排队,并将在下次启动时作为后备处理。", + "iris.bukkit.commandstudio.studio_closed": "§aStudio 已关闭。", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§c你必须位于 Studio 世界中才能切换调试计分板。", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio 调试计分板:{value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§c目前无法更新 Studio 调试计分板。", + "iris.bukkit.commandstudio.opened_inventory": "§a已打开物品栏!", + "iris.bukkit.commandstudio.generating_data": "§7正在生成数据...", + "iris.bukkit.commandstudio.done": "§a完成!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "你没有权限 '{ROOTPERMISSION}'。", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5状态:", + "iris.bukkit.irisenginestatus.service": "§5- 服务:§d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- 指标:§d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- 维护周期:§d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- 工作线程并行度:§d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- 活跃世界任务:§d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5构造板块:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- 配置保留数:§d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- 堆内存使用:§d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- 常驻:§d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- 已排队:§d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- 平均空闲时长:§d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- 最大空闲时长:§d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- 最小空闲时长:§d{value}", + "iris.bukkit.irisenginestatus.caches": "§5缓存:", + "iris.bukkit.irisenginestatus.resource": "§5- 资源: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 二维流: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 三维流: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- 其他:§d{value}({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5其他:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris 世界:§d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- 已加载区块:§d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§c世界为空。", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§c请先选择一个 Iris 世界,再读取 Mantle 转储。", + "iris.bukkit.commanddeveloper.upgrading": "§a升级到 {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§a升级完毕! 您现在可以更新您的服务器版本到 {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§c半径必须大于或等于 0。", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§c这不是 Iris 世界。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§c此世界的引擎访问为空。", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§a删除已启动:正在清空以区块 §6{centerX},{centerZ}§a 为中心的 §6{chunks}§a 个区块。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§c半径必须大于或等于 0。", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§c你必须位于 Iris 世界中才能使用 regen。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§c此世界的引擎访问为空。请先生成附近的区块。", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§a重新生成已启动:正在原地删除并重新生成以区块 §6{centerX},{centerZ}§a 为中心的 §6{chunks}§a 个区块。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§c半径必须大于或等于 0。", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§c目标必须是 Iris 世界。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§c此世界的引擎访问为空。", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash 已启动:正在缓冲区中处理以区块 §6{centerX},{centerZ}§a 为中心的 §6{chunks}§a 个区块;世界不会被修改。", + "iris.bukkit.commandedit.players_only": "§c此命令只能由玩家执行!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§c当前没有打开的 Studio 世界!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§c你必须位于 Studio 世界中!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§c无法在无图形界面的环境中打开文件!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§c此环境不支持桌面功能!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6找不到文件;它可能不是直接从文件加载的。", + "iris.bukkit.commandedit.opening_vscode": "§a正在 VSCode 中打开 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§c找不到文件:注册项不存在。", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6找不到文件;它可能不是直接从文件加载的。", + "iris.bukkit.commandedit.opening_vscode_2": "§a正在 VSCode 中打开 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§c找不到文件:注册项不存在。", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6找不到文件;它可能不是直接从文件加载的。", + "iris.bukkit.commandedit.opening_vscode_3": "§a正在 VSCode 中打开 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§c找不到文件:注册项不存在。", + "iris.bukkit.commandfind.not_iris_world_5": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_2": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_3": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_4": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.object_studio_teleporting": "§a对象 Studio:正在传送到 {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} 未配置在任何区域、群系或对象放置中。", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§c不能使用世界名称 \"iris\",因为 Iris 将该目录用于 Studio 世界。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§c建议改用名称 \"IrisWorld\"。", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§c不能使用世界名称 \"benchmark\",因为 Iris 将该目录用于基准测试包。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§c建议改用名称 \"IrisWorld\"。", + "iris.bukkit.commandiris.that_folder_already_exists": "§c该文件夹已存在!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§c找不到或无法下载维度 \"{resolvedType}\"。", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§e可尝试:overworld、vanilla、flat 或 the_end", + "iris.bukkit.commandiris.download_manually_iris_download": "§e也可以手动下载:/iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§a世界暂存完成。请重启服务器以生成并加载 \"{worldName}\"。", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§c创建期间发生异常。详情请查看控制台。", + "iris.bukkit.commandiris.successfully_created_your_world": "§a世界创建成功!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§a服务器重启时,此世界将自动设为主世界。", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eFolia 上已禁用运行时世界创建。", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§e正在为下次启动准备世界文件和 bukkit.yml...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§c无法为维度 \"{value}\" 暂存世界文件。", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§a已将 server.properties 中的 level-name 更新为 \"{name}\"。", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§c世界已暂存,但无法更新 server.properties 中的主世界。", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§a已暂存 Iris 世界 \"{name}\",生成器为 Iris:{value},种子为 {seed}。", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§a此世界现已设为下次重启后的主世界。", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§c无法更新 bukkit.yml:{value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§c指定的玩家不存在。", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v.{value},由 Volmit Software 开发", + "iris.bukkit.commandiris.to": "§a{value} 改为: {value2}", + "iris.bukkit.commandiris.total_height": "§a总高度:{value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris 世界:", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit 世界:", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§c这不是 Iris 世界。Iris 世界数量:{value}", + "iris.bukkit.commandiris.removing_world": "§a正在移除世界:{value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§c无法疏散世界:{value}", + "iris.bukkit.commandiris.failed_unload_world": "§c无法卸载世界:{value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§a已从 bukkit.yml 中移除 {value}", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§e该世界似乎已从 bukkit.yml 中移除。", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§c无法保存 bukkit.yml:{value}", + "iris.bukkit.commandiris.set_debug": "§a调试模式已设为:{to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§a正在下载包:{pack}(Beta 版本){value}", + "iris.bukkit.commandiris.downloading_pack": "§a正在下载包:{pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§c你必须位于 Iris 世界中。", + "iris.bukkit.commandiris.sending_metrics": "§a正在发送指标...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§c这不是 Iris 世界。Iris 世界数量:{value}", + "iris.bukkit.commandiris.unloading_world": "§a正在卸载世界:{value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§a世界已成功卸载。", + "iris.bukkit.commandiris.failed_unload_world_2": "§c无法卸载世界。", + "iris.bukkit.commandiris.failed_unload_world_3": "§c无法卸载世界:{value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e服务器上不存在 {logicalWorldName}。", + "iris.bukkit.commandiris.generator": "§9生成器:{dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} 不是 Iris 世界。", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§c无法确定 {logicalWorldName} 的 Iris 维度。", + "iris.bukkit.commandiris.loading_world": "§a正在加载世界:{logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia 无法在运行时加载新世界。请重启服务器以加载 \"{logicalWorldName}\"。", + "iris.bukkit.commandiris.loaded_successfully": "§a已成功加载 {logicalWorldName}。", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§c这不是 Iris 世界。Iris 世界数量:{value}", + "iris.bukkit.commandiris.evacuating_world": "§a正在疏散世界:{value}", + "iris.bukkit.commandobject.object_size": "对象大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "使用的块 : {value}", + "iris.bukkit.commandobject.blocks_object": "==:", + "iris.bukkit.commandobject.other_block_types": " + {value} 其他块类型", + "iris.bukkit.commandobject.current_object_size": "当前对象大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "新对象大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "保存对象失败 {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§c未匹配对象 : {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§a铺设 [reach={reach}{value}] 已排队 {value2} 对象( S)", + "iris.bukkit.commandobject.hold_your_wand": "拿着你的魔杖", + "iris.bukkit.commandobject.no_area_selected": "未选择区域 。", + "iris.bukkit.commandobject.ready_your_wand": "准备好魔杖", + "iris.bukkit.commandobject.ready_your_wand_2": "准备好魔杖", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§e说明的比额表超过上限。 缩小至最大 : {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "更新的魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "给新魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "更新的魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§a已放置 {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§e你得拿着你的魔杖!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§c文件已经存在 。 设置覆盖=真以覆盖它.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§c由于保存对象失败 IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§a成功对象保存 : {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "拿着你的魔杖", + "iris.bukkit.commandobject.no_area_selected_2": "未选择区域 。", + "iris.bukkit.commandobject.reverted_pastes": "§9已还原 {actualReverts}§9 贴纸!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§c你不能得到一个 WorldEdit 未选择 WorldEdit你知道吗?", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§c你没有 WorldEdit 选择这个世界。", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§a新的魔杖与您的当前 WorldEdit 选中它!", + "iris.bukkit.commandobject.poof_good_luck_building": "§a猪! 祝你好运建筑!", + "iris.bukkit.commandobject.hold_your_wand_3": "§e拿着你的魔杖!", + "iris.bukkit.commandobject.no_area_selected_3": "未选择区域 。", + "iris.bukkit.commandobject.auto_select_complete": "§a自动选择完成!", + "iris.bukkit.commandobject.hold_your_wand_4": "§e拿着你的魔杖!", + "iris.bukkit.commandobject.no_area_selected_4": "未选择区域 。", + "iris.bukkit.commandobject.auto_select_complete_2": "§a自动选择完成!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen半径必须大于零块.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§c严格的序列预生成要求 Paper 或一个 Paper- 兼容服务器。", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§c这个世界的引擎是无效的!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§c请确保世界充满 & 引擎已经初始化。 例如, 生成一个新的块 。", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§c启动预生成失败 。 详情见控制台。", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§e没有活动生成前任务可停止", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§a已暂停/ 未停止的生成前任务, 现在 : {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§e没有活动的生成前任务可以暂停/停止 。", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§e没有活动生成前任务 。", + "iris.bukkit.commandpregen.pregen": "§a预览 §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§a速度 : §6{value}/s§a ETA: §6{value2}§a 击落: §6{value3}§a 方法 : §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§c无法解析大小包 {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§a写作结构索引 : §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§c无法解析大小包 {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§a导入全部原版 & 数据包结构进入 §f{value}§a (覆盖)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§a导入完成 : §f{imported}§a structures/objects 写, §f{failed}§a 失败 。", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7参考生物群落/ 区域/ 构造列表, 或运行 /iris structure list {value} 用于刷新索引。 重新生成块以生效 。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§c无法解析大小包 {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7已捕获 {value} 结构。 把它们从“ 结构” 列表中放置, 再生块 。 删除 a structures/*.json 重新抓起来", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§c未加载 Iris 发现的世界 {value}. 加入或先创建一个(搜索会针对一个活的世界).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§c选中的 Iris 世界没有活动生成器引擎。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§c无法解析大小包 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§c无Iris结构 '{structure}\"在这个包里\"", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§c结构 '{structure}组装 0 块( 请检查 startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§a结构 '{structure}': §f{value}§a脚印§f{value2}页:1{value3}§a块(样本种子1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§c无法解析大小包 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§c无Iris结构 '{structure}\"在这个包里\"", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§c结构 '{structure}组装 0 块", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a已放置 '{structure}' ({value}在您的位置。", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§a工作室 \"{value}\" 包(种子: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§c提供一个维度包: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§c无法解析大小包 {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§a正在 VSCode 中打开包 \"{value}\"", + "iris.bukkit.commandstudio.pack_has_version": "§a那个 \"{value}\" 包有版本: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§a打开噪音探测器!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§c无法将项目添加到虚拟库存中, 因为 : {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§a现在打开存货!", + "iris.bukkit.commandstudio.only_works_iris_world": "§c只有工作在一个 Iris 这个世界!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§c您需要加入或指定一个 Iris- 创造的世界!", + "iris.bukkit.commandstudio.opening_map": "§a打开地图!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "计算噪音生成器的性能计量", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "计算内分泌器...", + "iris.bukkit.commandstudio.processing_generator_scores": "处理生成器分数 : ", + "iris.bukkit.commandstudio.score": "分数 : {value}", + "iris.bukkit.commandstudio.done_with_result": "§a没问题! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§c你必须在一个 Iris 自然而然的产物 尽力而为", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§c没有工作室的世界是开放的!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§c你已经在工作室了!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§a让你去工作室世界!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6更新代码工作空间 {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§a更新的代码工作空间 {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§c无效的工程 : {value}. 尝试删除代码工作空间文件并再次尝试 。", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§c你一定在一个 Iris 世界", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "你一定在Iris世界里", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "隐藏 IGenData 从 {value} 附近块。", + "iris.bukkit.commandstudio.reported": "向: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§c您必须已启动服务器 GUIs 在设置中启用 !", + "iris.bukkit.commandstudio.players_only": "§c只有球员!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§c没有工作室的世界是开放的!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§c你一定在一个工作室的世界!", + "iris.bukkit.commandwhat.material": "材料 : §a{value}", + "iris.bukkit.commandwhat.full": "满: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "请稍等", + "iris.bukkit.commandwhat.material_2": "材料 : §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "请稍等", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "无Iris 生物群落: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "数据包 Biome :{value}(编号:{value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§a只有爱里斯的世界。", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "请看任何街区,不要看天空", + "iris.bukkit.commandwhat.material_3": "材料 : §a{value}", + "iris.bukkit.commandwhat.full_2": "满: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* 存储区块(抢掠能力)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* 立方块(灯光能力)", + "iris.bukkit.commandwhat.foliage_block": "§e* 叶片块", + "iris.bukkit.commandwhat.decorant_block": "§e* 装饰性块", + "iris.bukkit.commandwhat.fluid_block": "§e* 流体块", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* 植物叶片块", + "iris.bukkit.commandwhat.solid_block": "§e* 固体块", + "iris.bukkit.commandwhat.found_nearby_markers": "发现{value}临近标记( N){marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§a只有爱里斯的世界。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "控制台必须命名一个 biome: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biome 搜索失败 : {value}", + "iris.modded.irismoddedcommands.unknown_biome": "未知生物仪 : {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "控制台必须指定一个区域: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "区域搜索失败 : {value}", + "iris.modded.irismoddedcommands.unknown_region": "未知区域 : {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.cannot_open_files_here": "无法在此打开文件 : {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "无法找到文件; 也许它不是直接从文件中加载的 ?", + "iris.modded.irismoddedcommands.could_not_open": "无法打开 {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "开幕 {value} {value2} 在你的编辑。", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "控制台必须给玩家命名 : /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} 不由 Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleport 失败: 维度 {dimensionId} 未加载。", + "iris.modded.irismoddedcommands.teleporting": "远程传送 {value} 改为: {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} 不由 Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "无法撤离主世界; 没有地方可以发送玩家 。", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "已撤离{count}玩家从{value}改为:{value2}.", + "iris.modded.irismoddedcommands.set_debug": "设置调试到 : {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "热载设置", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "此命令只能被玩家使用( 它检查您持有的项目) 。", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "汝主手执空.", + "iris.modded.irismoddedcommands.hand_x": "手执: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} 不由 Iris; 见 /iris info 用于加载 Iris 维度。", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "目前的层面{value})不是由Iris.明确名称:/iris pregen start {radius} ; 见/iris info用于加载Iris维度。", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "生成前的任务已经在运行中 。 先别闹了 /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen 开始于 {value} 页:1 {value2} 由 {value3} 块从 {centerX},{centerZ}.{modeNote} 要控制台的进度日志; 参见 /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "停止预生成; 完成当前区域...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "无活动生成前任务可停止 。", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "没有活动生成前任务可以暂停/恢复 。", + "iris.modded.irismoddedcommands.pregeneration_is_now": "早产是现在 {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "没有活动生成前任务 。", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value}由Volmit Software打开{value2} (Minecraft {value3}), {engines} Iris维度", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "加载的维度 : {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.biome": "生物群落: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biome 搜索失败 : {value}", + "iris.modded.irismoddedcommands.region": "地区: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "区域搜索失败 : {value}", + "iris.modded.irismoddedcommands.cave_biome": "洞穴生物仪: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "洞穴生物探测失败 : {value}", + "iris.modded.irismoddedcommands.surface_block_y": "表面块 : {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "位置 : {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "此命令只能被玩家使用( 它检查您正在查看的块) 。", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "看一个街区,不是天空。", + "iris.modded.irismoddedcommands.block_y": "块 : {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "此命令只能被玩家使用( 标记渲染为您周围的粒子) 。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "扫描“{marker}你身边的标记...", + "iris.modded.irismoddedcommands.marker_scan_failed": "标记扫描失败 : {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "发现 {value} 附近标记(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.unknown_biome_2": "未知生物仪 : {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.unknown_region_2": "未知区域 : {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} 维度中没有定义!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} 未在任何区域/生物物体布置中配置({value} 对象密钥已载入).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "此命令只能被玩家使用. (对象密钥”{key}`针对 {value} 已加载对象密钥)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "名称 Iris 或本地结构来定位。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "未知结构 '{key}'. 使用标签补全来选择 Iris 放置或注册的本地/数据包结构。", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "寻找本地结构 {value} 在内部 {NATIVESTRUCTURELOCATERADIUS} 块...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "正在寻找 Iris- 安置结构 {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "无法定位 Iris- 安置结构 {key}: 密度搜索安全限值在完整前达到 1024- 半径被搜查了", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "无法找到 Iris- 安置结构 {key} 在内部 1024 块。", + "iris.modded.irismoddedcommands.search_failed": "搜索失败 : {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "找不到本地结构 {value} 在内部 {NATIVESTRUCTURELOCATERADIUS} 块。", + "iris.modded.irismoddedcommands.search_native_structure_failed": "搜索本地结构 {value} 失败 : {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "玩家在结构搜索完成前断开.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "您在结构搜索完成前更改了维度; 再次运行命令 。", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "发现 {label} 时间 {targetX} {clampedY} {targetZ}但是电传失败了", + "iris.modded.irismoddedcommands.teleported_at": "传送到 {label} 时间 {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "结构可达性: {available} 当地一代人, {irisPlaced} Iris- 已经安排好了 {disabled} 本地残疾人; {suppressed} 原生替换为 Iris 安置人员, {unreachableBiomes} 被这群生物群落所排斥,还有 {unsupported} 已注册的本地结构不支持这一方面。 使用 /iris structure verify 一个结构。", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "结构 {key} 这是 Iris- 放置和可移动 /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "未知结构 '{key}'. 两者都不是 Iris- 被原版或数据包放置或登记。", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "结构 {value} 明确替换为 Iris 放置和可移动 /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "本地结构 {value} 被启用,由此维的生成状态支持,并可用 /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "此命令只能被玩家使用. (POI 类型“{type}`已接受)", + "iris.modded.irismoddedcommands.searching": "正在寻找 {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "这个世界的引擎已经关闭;重新加入维度并再次尝试。", + "iris.modded.irismoddedcommands.search_failed_2": "搜索失败 : {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "无法找到 {label} 在搜索超时中。", + "iris.modded.irismoddedcommands.teleported_at_2": "传送到 {label} 时间 {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "定位时引擎改变 {label}再试一次", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.world_seed": "世界种子: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "引擎种子 : {value} (混合为: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "下载 IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "包{pack}'已安装。 它的精确维度类型和自定义生物群落 加入强制 Iris 下一个服务器上的数据包重新启动; 在此包创建世界之前重新启动。", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "包下载失败 {pack} ({downloadSource}; 见控制台)。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "此维度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "生成 :{value}块,{value2}/编号", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "不详 Iris 帮助区域 : {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}类型={typeKey} 活动={activeMin}..{activeMax} 逻辑={value} (包={value2},引擎未启动;包高度未知)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}类型={typeKey} 活动={activeMin}..{activeMax} 逻辑={value} | pack '{value2}愿望 {packMin}..{packMax} 逻辑={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " 警告:活动维度类型与包不匹配. Iris 将拒绝启动这个世界引擎 而不是剪切地形。 运行 /iris world enable 为新世界,或 /iris datapack install 用于已加载 Iris 维度,然后重新启动。", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "没有 Iris 维度已加载。", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "全体{irisLevels} Iris维度与其包高程相符。", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: 引擎尚未启动;尚不能得出其维度类型。", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: 维度类型生成失败 : {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "写入失败 {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "没有 Iris 找到有运行中的引擎的维度; 没有安装 。", + "iris.modded.moddeddatapackcommands.failed_write_2": "写入失败 {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "编剧 {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "世界数据包 '{WORLDPACKNAME}' 维度类型已安装。 重新启动用于应用维度类型的服务器 。", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "已配置数据包导入 : {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth 摄入是 Bukkit- 只安装; 手动安装到 world/datapacks 如果需要的话。", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "安装的世界数据包 : {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "已向 Iris 错误报告器发送测试异常(若已启用 Sentry)。", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "网络扫描失败 : {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "金色扫描已经运行中 。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "此命令只能被玩家使用. (魔杖是实物)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "你的存货满了", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "猪! 祝你好运建筑! (左键=角 1,右键点击=角 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "此命令只能被玩家使用. (尘是有形物品)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "你的存货满了", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "右键单击块以显示其所属对象。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "此命令只能被玩家使用. (拯救抓住你的魔杖选择)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "此维度不是由 Iris;对象保存到维度包中。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "拿着 Iris 魔杖 魔棍 (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "未选择区域 。 左/右点击带魔杖的块。", + "iris.modded.moddedobjectcommands.invalid_object_name": "无效的对象名称 : {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "选择太大 :{volume}块(最大值){MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "文件已经存在 。 使用 /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "保存对象失败 : {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "已保存 {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} 块( B){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "未知或空对象 : {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "控制台必须指定坐标 : /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "你不看一个街区里面 {value} 块。", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "粘贴失败 : {value} (部分更改记录为撤销)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "已放置 {key} 时间 {value} {value2} {value3} 腐烂={rotation} ({value4} 写入(s) {value5} 非空调{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "拿着 Iris 魔杖 魔棍 (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "未选择区域 。", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "准备好魔杖 (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "你没在看一个街区。", + "iris.modded.moddedobjectcommands.position_set": "立场 {value} 设置为 {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.hold_your_wand": "拿着你的魔杖!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "未选择区域 。", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "选择太大, 无法自动选择 :{volume}块(最大值){MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "自动选择完成 : {value}", + "iris.modded.moddedobjectcommands.unknown_object": "未知对象 : {key}", + "iris.modded.moddedobjectcommands.object_size": "对象大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "使用的块 : {value}", + "iris.modded.moddedobjectcommands.blocks_object": "==:", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining}其他块状态", + "iris.modded.moddedobjectcommands.unknown_object_2": "未知对象 : {key}", + "iris.modded.moddedobjectcommands.current_object_size": "当前对象大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "新对象大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "对象没有负载文件; 无法坚持缩写 。", + "iris.modded.moddedobjectcommands.failed_save_object_2": "保存对象失败 {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "无效的覆盖 : {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "未匹配对象 : {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "铺设 [reach={reach}{value}] 已排队 {value2} 对象( S)", + "iris.modded.moddedobjectcommands.nothing_undo": "没有什么可以弥补的。", + "iris.modded.moddedobjectcommands.reverted_paste_s": "已还原{reverted}粘贴!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "未找到文件夹 : {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "没有包可以验证 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "包{pack}'未发现于 {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "验证{value}包...", + "iris.modded.moddedpackcommands.validation_failed": "验证 '{value}' 失败 : {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "鉴定完毕 破损的包: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "包{pack}'未发现于 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "包{pack}'未发现于 {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "未记录验证结果. 运行 /iris pack validate 先说", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (阻断={value2}时,警告={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "没有验证结果 '{pack}'. 运行 /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "包{value}'是可装载的。 (警报={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "包{value}'为. 损坏:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ...和{value}更多警告。", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "没有找到包的清理候选人 '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "包的清理预览{pack}': {value}候选人。没有更改文件 。", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "运行 /iris pack cleanup {pack} apply 重新扫描后隔离", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "没有找到包的清理候选人 '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "检疫{value}清理候选人{value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "没有东西可以还原{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "恢复预览{value}: {value2}文件。没有更改文件 。", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "恢复被阻断{value}现有目的地。", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "运行 /iris pack restore {pack} apply 在重新核对冲突后恢复。", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "还原被拒绝,因为{value}目的地已经存在。", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "没有东西可以还原{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "已恢复{value}文件从{value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... 和 {value} 再来", + "iris.modded.moddedregen.regen_is_already_running": "Regen 已经运行了 。", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "此维度不是由 Iris. 运行此从一个 Iris 维度可以解决包。", + "iris.modded.moddedstructurecommands.wrote_structure_index": "写作结构索引 : {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "无Iris结构 '{key}\"在这个包里\"", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "结构 '{key}组装 0 块( 请检查 startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "结构 '{key}': {value}脚印{value2}页:1{value3}块(样本种子1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "此命令只能被玩家使用(结构在您的位置组装).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "无Iris结构 '{key}\"在这个包里\"", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "结构 '{key}组装 0 块", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "位置失败 : {value} (部分更改记录为撤销)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "已放置 '{key}' ({value}块,{value2}写入{tileNote}在你的地点。 /iris object undo将返回。", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "提供一个维度包: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "在服务器显示上打开噪音探索器 。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "此维度不是由 Iris; 运行 /iris studio noise 从 a Iris 以解析生成器,或省略生成器名称。", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "未知的生成器 '{generatorKey}包 {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "打开生成器的噪音探索器 '{value}'(种子 {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "此维度不是由 Iris; 站在一个 Iris (或工作室) 维度和运行 /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "打开远景图 {value} 在服务器显示中。", + "iris.modded.moddedstudiocommands.failed_write_workspace": "写入工作空间失败 {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "工作空间重生成 : {value} 与 JSON 自动完成的计划。", + "iris.modded.moddedstudiocommands.could_not_open": "无法打开 {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "开幕 {value} 在你的编辑。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "此维度不是由 Iris; 明确指定包名。", + "iris.modded.moddedstudiocommands.pack_not_found_under": "包{name}'未发现于 {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "提供一个维度包: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "开幕工作室{pack}'(种子 {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "包{pack}' 缺少; 下载 IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "包{pack}' 无法下载; 请检查名称并尝试 /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "包{pack}没有 dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "工作室打开失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "工作室注入失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "控制台工作室打开 : {dimensionId} 现在运行“{pack}种子 {seed} (短暂;不写给 iris-dimensions.json 并在重新启动时清除).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "输入方式 : /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "给它预留: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "删除方式: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "工作室注入失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "工作室打开 : {dimensionId} 现在运行“{pack}种子 {seed}. 使用 /iris studio close 当完成。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "你没有开放的工作室。 使用 /iris studio open 先说", + "iris.modded.moddedstudiocommands.studio_close_failed": "工作室关闭失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "工作室关闭 : {dimensionId} 并删除其区域数据。", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "目前没有工作室维度打开.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "活动工作室维度( S): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: 包 '{value2}种子 {value3} 拥有者 {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "你没有开放的工作室。 使用 /iris studio open 先说", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "你的工作室的维度已经没有了 使用 /iris studio open 再来一次", + "iris.modded.moddedstudiocommands.teleported_your_studio": "电传到你的工作室({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "包{value}没有 dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "那个 \"{value}\" 包有版本: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "无效的工程名称 '{nameRaw}'(获批准:a-z, 0-9时, 和 -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "包{name}' 已经存在于 {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "创建工程 '{name}'从模板'{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "模板{template}'未安装;下载 IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "模板{template}' 无法下载;安装一个包 dimensions/{template2}.json 先说", + "iris.modded.moddedstudiocommands.created_project_at": "创建的工程 '{name}时 {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "编辑 dimensions/{name}.json 还有剩下的包 A VSCode 工作空间 JSON 生成了 schema 自动完成; 打开或重运行 /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "工程创建失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "包维度 '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "汇编的软件包 : {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "包失败 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "此命令只能被玩家使用(样本以你的位置为中心).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "此维度不是由 Iris 生成的。", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "抽样地区分布 {value}x{value2} 环绕着你...", + "iris.modded.moddedstudiocommands.rarity": "{key}: 罕见={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "区域采样失败 : {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "包{pack}'未安装;下载 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "包{pack}' 无法下载; 检查名称或安装 /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "注入失败 Iris 世界{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "创建 Iris 世界 {dimensionId} 从包\"{pack}\" 维度 \"{packDimension}'(种子 {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "它现在正在直播,并在每次启动时重新注入。 传送到 /iris world status 或门户网站;不需要重新启动。", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "注入失败 Iris 初级世界: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris 初级世界 {dimensionId} (pack '{pack}\" 维度 \"{packDimension}种子 {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "原版主世界生成器无法热替换,因此此操作不会重新生成现有的主世界。", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "相反, {dimensionId} 现在是配置的初级世界:在原版覆盖世界的玩家在加入时会在那里经过路由,并且在每次启动时都会重新注入.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris 关闭主世界。 覆盖世界保留其当前生成器; 编辑 server.properties 级别类型并重新启动以将其修改回。", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "无效的种子 '{seedRaw}'. 使用数字或“ 随机” 。", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "包{pack}'未安装;下载 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "包{pack}' 无法下载; 检查名称或安装 /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "包{pack}'尚未准备好(仍在加载或验证中)。 一会儿再试试命令", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "写入失败 server.properties; 检查文件权限并手动设定级别类型.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris 主要世界设定为`{pack}'(预设 {preset}种子 {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties 关卡类型现在 {preset}. 在接下来的重现世界时, 网罗, 结束再生像这样 Iris 这个世界", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "玩家数据(发明,进步,统计)保存;这些维度的现有地形被替换. 这适用一次。", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart 已启用 - 停止服务器, 因此您重新启动的包器将它带回新的主世界 。", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "现在重新启动服务器以生成它 。 (设置 mainWorldAutoRestart真实的 modded.json 拥有 Iris 为您停止服务器。 )", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "拒绝创造世界 '{dimensionId}\" 使用包 \"{pack}' 因为所需的验证失败 :", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "修复内容包,然后运行 /iris pack validate {pack} 重新验证。", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "包{pack}`未发现于 {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "包{pack}'不包含 dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "无效的包引用 '{pack}{value}'. 使用包或包 :dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "无效的种子 '{seedRaw}'. 使用数字或“ 随机” 。", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "删除失败 Iris 世界{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris 世界{dimensionId}`未加载;清除其持续登记册条目,并清除其储存的块/块数据。", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris 世界{dimensionId}`未加载;清除了其持续的登记册条目。 磁盘上的世界数据被保存.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "删除 Iris 世界{dimensionId}':撤离,卸载,块/块数据被擦除,从启动登记簿上掉落.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "已禁用 Iris 世界{dimensionId}':撤离,卸载,从起动登记中投放.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "磁盘上的世界数据保存;可重新使用 /iris world enable {dimensionId} 或将其删除 /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "已加载 Iris 级别 : {value} -> 包{value2}\" 维度 \"{value3}'", + "iris.modded.moddedworldcommands.primary_world": "初级世界: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "没有 Iris 维度正在加载 。 创建一个 /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "已加载 Iris 维度 : {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "使用 /iris world create 在不重新启动的情况下注入一个。", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "下载 & 管理外部数据包进口(Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "下载/更新包“ s” 中列出的每个数据包datapackImports并将其安装到世界 所以它的结构像原版", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "安装新数据包时重新启动服务器( 新结构需要注册和生成)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "列出已配置的数据包导入及其安装版本", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "通过 id 删除一个已安装的数据包( 同时删除其 URL)datapackImports让它消失)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "数据包 id (文件夹名称) 显示于 /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris 世界经理", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "加载 TectonicPlates 计数", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "向哨兵发送测试例外", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "用于确定/识别测试的固定区域的散列输出", + "iris.director.commanddeveloper.param.world_hash": "散开的世界", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "半径为中心周围的块", + "iris.director.commanddeveloper.param.center_chunk_x": "居中块 X", + "iris.director.commanddeveloper.param.center_chunk_z": "居中块 Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "更新世界的内容包(不安全!)", + "iris.director.commanddeveloper.param.world_update": "更新世界", + "iris.director.commanddeveloper.param.pack_install_into_world": "加载世界的包", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "一定要做备份 & 先读一下警告!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "应否 Iris 再次下载包", + "iris.director.commanddeveloper.director.test": "测试", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "将整个构造板块丢弃,而不是一个单段", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "丢弃文件 ID 下方 plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "测试", + "iris.director.commanddeveloper.param.pack_bench": "包到长椅", + "iris.director.commanddeveloper.param.radius_regions": "区域半径", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "打开 GUI 在设定基准时", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "升级到另一个 Minecraft 版本", + "iris.director.commanddeveloper.param.version_upgrade": "升级到", + "iris.director.commanddeveloper.director.test_3": "测试", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "扫描 .mca 区域文件的世界文件夹", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "删除附近的块块进行再生测试", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "当前块周围的半径", + "iris.director.commanddeveloper.director.test_4": "测试", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "使用 Iris 生成", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "附近块的半径", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "在缓冲区中生成区块(不写入世界)并对方块和 biome 进行 hash;用于捕获 golden 文件或与现有文件进行验证。会重置扫描区域中的 mantle——请仅在一次性测试世界中使用。", + "iris.director.commanddeveloper.param.world_scan": "扫描世界", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "半径为中心周围的块", + "iris.director.commanddeveloper.param.center_chunk_x_2": "居中块 X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "居中块 Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "从零开始完全再生,先删除扫描区域内的Mantle数据", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "同时代的几代人; 1 = 严格序列进行订单依赖测试", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "还要把整个非空气区块都丢掉", + "iris.director.commandedit.director.edit_something": "编辑一些东西", + "iris.director.commandedit.director.edit_biome_you_specified": "编辑您指定的生物仪", + "iris.director.commandedit.param.biome_edit": "要编辑的生物仪", + "iris.director.commandedit.director.edit_region_you_specified": "编辑您指定的区域", + "iris.director.commandedit.param.region_edit": "要编辑的区域", + "iris.director.commandedit.director.edit_dimension_you_specified": "编辑您指定的维度", + "iris.director.commandedit.param.dimension_edit": "要编辑的维度", + "iris.director.commandfind.director.iris_find_commands": "Iris 查找命令", + "iris.director.commandfind.director.find_biome": "查找群系", + "iris.director.commandfind.param.biome_look": "要查找的群系", + "iris.director.commandfind.param.should_you_be_teleported": "是否传送到目标", + "iris.director.commandfind.director.find_region": "查找区域", + "iris.director.commandfind.param.region_look": "要查找的区域", + "iris.director.commandfind.param.should_you_be_teleported_2": "是否传送到目标", + "iris.director.commandfind.director.find_point_interest": "查找兴趣点", + "iris.director.commandfind.param.type_poi_look": "要查找的兴趣点类型", + "iris.director.commandfind.param.should_you_be_teleported_3": "是否传送到目标", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "查找结构(例如原版键 minecraft:village_plains、minecraft:stronghold,或导入的 Iris 结构键)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "要查找的结构(例如 minecraft:village_plains、minecraft:stronghold、minecraft:ancient_city)", + "iris.director.commandfind.director.find_object": "查找对象", + "iris.director.commandfind.param.object_look": "要查找的对象", + "iris.director.commandfind.param.should_you_be_teleported_4": "是否传送到目标", + "iris.director.commandiris.director.basic_command": "Iris 基础命令", + "iris.director.commandiris.director.create_new_world": "创建新世界", + "iris.director.commandiris.param.name_world_create": "要创建的世界名称", + "iris.director.commandiris.param.dimension_pack_create_world_with": "用于创建世界的维度包", + "iris.director.commandiris.param.seed_generate_world_with": "用于生成世界的种子", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "是否自动将此世界设为主世界", + "iris.director.commandiris.director.teleport_another_world": "传送到另一个世界", + "iris.director.commandiris.param.world_teleport": "要传送到的世界", + "iris.director.commandiris.param.player_teleport": "要传送的玩家", + "iris.director.commandiris.director.print_version_information": "显示版本信息", + "iris.director.commandiris.director.benchmark_pack": "对维度包进行基准测试", + "iris.director.commandiris.param.dimension_benchmark": "要进行基准测试的维度", + "iris.director.commandiris.director.print_world_height_information": "显示世界高度信息", + "iris.director.commandiris.director.check_access_all_worlds": "检查所有世界的访问状态", + "iris.director.commandiris.director.remove_iris_world": "移除 Iris 世界", + "iris.director.commandiris.param.world_remove": "要移除的世界", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "是否同时删除世界文件夹;设为 false 时只停止加载世界", + "iris.director.commandiris.director.toggle_debug": "切换调试模式", + "iris.director.commandiris.director.download_project": "下载维度包", + "iris.director.commandiris.param.pack_download": "要下载的包", + "iris.director.commandiris.param.branch_download_from": "要下载的分支", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "是否用下载的版本覆盖现有包", + "iris.director.commandiris.director.get_metrics_your_world": "显示世界指标", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "重新加载配置文件(也会自动执行)", + "iris.director.commandiris.director.unload_iris_world": "卸载 Iris 世界", + "iris.director.commandiris.param.world_unload": "要卸载的世界", + "iris.director.commandiris.director.load_iris_world": "加载 Iris 世界", + "iris.director.commandiris.param.name_world_load": "要加载的世界名称", + "iris.director.commandiris.director.evacuate_iris_world": "疏散 Iris 世界", + "iris.director.commandiris.param.evacuate_world": "要疏散的世界", + "iris.director.commandobject.director.iris_object_manipulation": "Iris 对象操纵", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "打开对象工作室世界( 每个对象的网格; 维度可选, 默认为所有包)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "对象包的可选维度; 省略以汇总每包的对象", + "iris.director.commandobject.param.seed_generate_studio_with": "制作工作室的种子", + "iris.director.commandobject.director.check_composition_object": "检查对象的构成", + "iris.director.commandobject.param.object_analyze": "分析对象", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "缩小对象到最小大小", + "iris.director.commandobject.param.object_shrink": "缩小对象", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "通过树冠生长有机树枝 使每个叶子都能存活下来", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "对象密钥、 前缀( 树/ ) 或文件系统路径", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "干燥=只分析,不写", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "达到=N 最大分支长度,与现有木材成块;更远的叶片组则具有持久性。 达到=0 增长无限", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "将“转换”文件夹中的.schem文件转换为.iob文件。", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "获取显示对象的粉末", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "根据您的外观方向订约选择", + "iris.director.commandobject.param.amount_inset_by": "数额为:", + "iris.director.commandobject.director.set_point_1_look": "设定点 1 打开", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "是否使用您当前位置, 或您看起来的位置", + "iris.director.commandobject.director.set_point_2_look": "设定点 2 打开", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "是否使用您当前位置, 或您看起来的位置", + "iris.director.commandobject.director.paste_object": "粘贴对象", + "iris.director.commandobject.param.object_paste": "要粘贴的对象", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "是否编辑对象( 需要持有魔杖)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "旋转的度数", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "对象放置的尺度", + "iris.director.commandobject.param.scale_interpolator_use": "要使用的尺度内插符", + "iris.director.commandobject.director.save_object": "保存对象", + "iris.director.commandobject.param.dimension_store_object": "存储对象的维度", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "要存储它的文件, 可以使用 / 用于子文件夹", + "iris.director.commandobject.param.overwrite_existing_object_files": "覆盖已有对象文件", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "使用遗留 TileState 如果可能,序列化", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "将选中区域移到您的外观方向", + "iris.director.commandobject.param.amount_shift_by": "转帐金额", + "iris.director.commandobject.director.undo_number_pastes": "撤消多个粘贴", + "iris.director.commandobject.param.amount_pastes_undo": "要取消的粘贴量", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "获取对象棒并抓取电流 WorldEdit 选择。", + "iris.director.commandobject.director.get_object_wand": "获取对象魔杖", + "iris.director.commandobject.director.autoselect_up_down_out": "自动选择上下 & 关闭", + "iris.director.commandobject.director.autoselect_up_out": "自动选择上 & 关闭", + "iris.director.commandpack.director.pack_validation_maintenance": "包验证和维护", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "验证一个包(或所有包)并重新公布结果", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "要校验的包文件夹名称( 为所有人留空)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "预览或应用未使用的资源清理", + "iris.director.commandpack.param.pack_folder_name_clean": "要清理的文件夹名称", + "iris.director.commandpack.param.preview_apply": "预览或应用", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "最新检疫的预览或应用恢复", + "iris.director.commandpack.param.pack_folder_name_restore": "要恢复的包文件夹名称", + "iris.director.commandpack.param.preview_apply_2": "预览或应用", + "iris.director.commandpack.director.show_cached_validation_status_pack": "显示包的缓存验证状态", + "iris.director.commandpack.param.pack_folder_name": "文件夹名称", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "预生成 Iris 世界", + "iris.director.commandpregen.director.pregenerate_world": "预生成世界", + "iris.director.commandpregen.param.radius_pregen_blocks": "预生成半径(方块)", + "iris.director.commandpregen.param.world_pregen": "要预生成的世界", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "预生成中心位置;使用 'me' 代表当前位置", + "iris.director.commandpregen.param.open_iris_pregen_gui": "打开 Iris 预生成 GUI", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "每次只生成一个区块", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "停止当前预生成任务", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "暂停或继续当前预生成任务", + "iris.director.commandpregen.director.show_active_pregeneration_status": "显示当前预生成状态", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris 结构工具(索引、导入、信息)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "重新生成 structure-index.json 列出所有原版, 数据包 & Iris结构", + "iris.director.commandstructure.param.dimension_whose_pack_index": "组合索引的维度", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "导入 每个 结构 - 原版 和 吸收数据包 - 作为可编辑内容输入此包 Iris 资源,总是覆盖。 重建拼图结构(村庄、前哨、数据包拼图)作为可编辑的池/块图表,导入每个结构模板 NBT 作为物体,并组装多层结构(沉船、被毁的门户、海洋废墟、网状化石)。 在摄入数据包后运行并重新启动. 重新生成块或使用新世界来放置导入的拷贝 。", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "输入到", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "抓取没有代码生成的结构 NBT 模板( 映射小屋、 冰屋等) 可编辑 Iris 通过在丢弃的刮伤世界中 生成每个物体 并读回它的块。 跳过已经作为结构导入的结构,比捕捉封顶(坚固的地基,豪宅,古迹仍为原版)更宽/更细的结构,以及任何不会在平坦的世界范围内生成的结构. 每个抓获的结构都变成单块 Iris 从生物群落/区域/ Dimension 结构列表中可以放置结构。 自动运行作为最后的传球 /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "能够捕捉到", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "验证本地结构是否合格并找到 Iris- 设置结构而不会阻碍本地搜索", + "iris.director.commandstructure.param.dimension_verify": "核查的维度", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "搜索半径按原产地周围的块排列( 较大更慢)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "解析Iris结构的拼图并报告块数 & 界限", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "组装结构的维度", + "iris.director.commandstructure.param.iris_structure_key_inspect": "检查的Iris结构密钥", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "将Iris结构集合并放置在您的位置( studio测试)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "组装结构的维度", + "iris.director.commandstructure.param.iris_structure_key_place": "要放置的Iris结构键", + "iris.director.commandstudio.director.studio_commands": "Studio 命令", + "iris.director.commandstudio.director.open_new_studio_world": "打开新的 Studio 世界", + "iris.director.commandstudio.param.dimension_pack_open_studio": "要在 Studio 中打开的维度包", + "iris.director.commandstudio.param.seed_generate_studio_with": "用于生成 Studio 世界的种子", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "将服务器中的原版树木、蘑菇和对象,以及 structures/jigsaw,导入包的 objects/vanilla 文件夹", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "要导入原版内容的维度包", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "每个树木或对象特征要捕获的变体数量", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "是否同时将原版和数据包的 structures/jigsaw 导入包中", + "iris.director.commandstudio.director.open_vscode_dimension": "在 VSCode 中打开维度", + "iris.director.commandstudio.param.dimension_open_vscode": "要在 VSCode 中打开的维度", + "iris.director.commandstudio.director.close_open_studio_project": "关闭已打开的 Studio 项目", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "切换 Studio 调试计分板", + "iris.director.commandstudio.director.create_new_studio_project": "创建新的 Studio 项目", + "iris.director.commandstudio.param.name_this_new_iris_project": "新 Iris 项目的名称", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "复制 packs 文件夹中现有项目的内容,作为新项目的模板", + "iris.director.commandstudio.director.get_version_pack": "获取包的版本", + "iris.director.commandstudio.param.dimension_get_version": "要查询版本的维度", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "打开噪声浏览器(外部 GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "要预览的可选包生成器", + "iris.director.commandstudio.param.seed_preview_generator_with": "用于预览生成器的种子", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "显示此处若有箱子时会生成的战利品", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "快速向虚拟物品栏插入物品(可能降低性能)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "是否追加到当前打开的物品栏;设为 false 时会先清空", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "计算各区域的生成概率", + "iris.director.commandstudio.param.radius_chunks": "半径(区块)", + "iris.director.commandstudio.director.render_world_map_external_gui": "渲染世界地图(外部 GUI)", + "iris.director.commandstudio.param.world_open_generator": "要打开生成器的世界", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "将维度打包为压缩格式", + "iris.director.commandstudio.param.dimension_pack_compress": "要压缩的维度包", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "是否混淆包内容", + "iris.director.commandstudio.param.whether_not_minify_pack": "是否精简包内容", + "iris.director.commandstudio.director.profiles_performance_dimension": "分析维度的性能", + "iris.director.commandstudio.param.dimension_profile": "要分析的维度", + "iris.director.commandstudio.director.spawn_iris_entity": "生成 Iris 实体", + "iris.director.commandstudio.param.entity_spawn": "要生成的实体", + "iris.director.commandstudio.param.location_spawn_entity_at": "实体的生成位置", + "iris.director.commandstudio.director.teleport_active_studio_world": "传送到当前 Studio 世界", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "更新维度项目的 VSCode 工作区", + "iris.director.commandstudio.param.dimension_update_workspace": "要更新工作区的维度", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "捕获附近区块的 IGenData 区块报告", + "iris.director.commandwhat.director.iris_what": "Iris 你说什么?", + "iris.director.commandwhat.director.what_is_my_hand": "我手里拿着什么?", + "iris.director.commandwhat.director.what_biome_am_i": "我是什么生物吗?", + "iris.director.commandwhat.director.what_region_am_i": "我在哪个地区?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "我在看哪个街区?", + "iris.director.commandwhat.director.show_markers_chunk": "以块显示标记", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "标记名, 如 洞穴 地板或洞穴的天花板", + "iris.modded.help.entry.command.version": "显示版本信息", + "iris.modded.help.entry.command.info": "列出已加载的 Iris 维度和包详情", + "iris.modded.help.entry.command.what": "检查当前位置的 Iris 群系、区域、洞穴群系、地表和区块,以及注视的方块、手持物品或附近标记", + "iris.modded.help.entry.group.find": "查找并传送到 Iris 群系、区域、对象、Iris 结构、原生结构和兴趣点", + "iris.modded.help.entry.command.tp": "将自己或指定玩家传送到已加载的 Iris 维度", + "iris.modded.help.entry.command.evacuate": "将 Iris 维度中的所有玩家传送到主世界出生点", + "iris.modded.help.entry.command.seed": "显示世界和引擎的种子信息", + "iris.modded.help.entry.command.debug": "切换 Iris 调试日志并保存 settings.json", + "iris.modded.help.entry.command.reload": "重新加载 settings.json(也会每 3 秒自动热加载)", + "iris.modded.help.entry.command.download": "下载包项目", + "iris.modded.help.entry.command.metrics": "显示当前 Iris 维度的生成指标", + "iris.modded.help.entry.command.regen": "原地删除并重新生成附近区块", + "iris.modded.help.entry.group.pregen": "预生成 Iris 维度", + "iris.modded.help.entry.command.wand": "获取 Iris 对象魔杖", + "iris.modded.help.entry.group.object": "对象魔杖、保存、粘贴、分析和撤销工具", + "iris.modded.help.entry.group.edit": "在桌面编辑器中打开包的群系、区域和维度 JSON 文件", + "iris.modded.help.entry.command.create": "创建并注入持久 Iris 维度;用引号包住 pack:dimensionKey 可选择特定包维度", + "iris.modded.help.entry.group.studio": "包项目创建、打包和报告", + "iris.modded.help.entry.group.pack": "包验证和维护", + "iris.modded.help.entry.group.world": "运行时 Iris 维度的创建、移除和状态", + "iris.modded.help.entry.group.datapack": "世界数据包安装和状态工具", + "iris.modded.help.entry.group.structure": "Iris 结构索引、信息和放置工具", + "iris.modded.help.entry.command.goldenhash": "为一致性测试生成确定性方块哈希", + "iris.modded.help.entry.group.developer": "开发者诊断:Sentry 测试、网络接口和区域文件扫描", + "iris.modded.help.entry.command.biome": "查找 Iris 群系", + "iris.modded.help.entry.command.region": "查找 Iris 区域", + "iris.modded.help.entry.command.object": "查找对象放置", + "iris.modded.help.entry.command.structure": "查找由 Iris 放置或原生/数据包提供的结构", + "iris.modded.help.entry.command.poi": "查找支持的兴趣点", + "iris.modded.help.entry.command.biome_2": "在桌面编辑器中打开群系 JSON;不指定键时打开当前位置的群系", + "iris.modded.help.entry.command.region_2": "在桌面编辑器中打开区域 JSON;不指定键时打开当前位置的区域", + "iris.modded.help.entry.command.dimension": "在桌面编辑器中打开当前包的维度 JSON", + "iris.modded.help.entry.command.start": "开始预生成;半径以方块计,默认启用可恢复的检查点缓存,通过 'at ' 指定中心,各标志可按任意顺序组合", + "iris.modded.help.entry.command.stop": "停止当前预生成任务", + "iris.modded.help.entry.command.pause": "暂停或继续预生成", + "iris.modded.help.entry.command.status": "显示预生成状态", + "iris.modded.help.entry.command.wand_3": "获取 Iris 对象魔杖", + "iris.modded.help.entry.command.dust": "获取可显示对象放置位置的尘粉", + "iris.modded.help.entry.command.save": "将魔杖选区保存为对象", + "iris.modded.help.entry.command.paste": "在当前位置或指定位置粘贴对象,可选择旋转", + "iris.modded.help.entry.command.expand": "沿注视方向扩展魔杖选区", + "iris.modded.help.entry.command.contract": "沿注视方向收缩魔杖选区", + "iris.modded.help.entry.command.shift": "沿注视方向移动魔杖选区", + "iris.modded.help.entry.command.position1": "设置选区点 1", + "iris.modded.help.entry.command.position2": "设置选区点 2", + "iris.modded.help.entry.command.x_y": "自动向上和向外扩展选区", + "iris.modded.help.entry.command.x_y_2": "自动向上、向下和向外扩展选区", + "iris.modded.help.entry.command.analyze": "显示对象构成", + "iris.modded.help.entry.command.shrink": "将对象收缩至最小尺寸", + "iris.modded.help.entry.command.plausibilize": "生成枝干,使树叶不会被原版规则腐烂", + "iris.modded.help.entry.command.undo": "撤销已粘贴的对象", + "iris.modded.help.entry.command.create_2": "创建新的包项目", + "iris.modded.help.entry.command.package": "将维度打包为压缩格式", + "iris.modded.help.entry.command.version_2": "显示包版本", + "iris.modded.help.entry.command.regions": "计算附近区域的分布", + "iris.modded.help.entry.command.open": "为包打开临时 Studio 维度", + "iris.modded.help.entry.command.close": "关闭已打开的 Studio 维度并丢弃其世界", + "iris.modded.help.entry.command.tpstudio": "传送到已打开的 Studio 维度", + "iris.modded.help.entry.command.status_studio": "显示已打开的 Studio 维度及其包", + "iris.modded.help.entry.command.noise": "在服务器显示器上打开噪声浏览器 GUI", + "iris.modded.help.entry.command.map": "在服务器显示器上打开 Vision 地图 GUI", + "iris.modded.help.entry.command.vscode": "重新生成包的 .code-workspace,并在桌面编辑器中打开", + "iris.modded.help.entry.command.update": "重新生成包的 .code-workspace", + "iris.modded.help.entry.command.importvanilla": "说明原版内容导入流程", + "iris.modded.help.entry.command.validate": "验证一个包或所有包", + "iris.modded.help.entry.command.cleanup": "预览或隔离未使用的资源候选项", + "iris.modded.help.entry.command.restore": "预览或恢复最近的隔离内容", + "iris.modded.help.entry.command.status_validation": "显示缓存的验证状态", + "iris.modded.help.entry.command.enable": "在运行时创建并注入持久 Iris 维度;缺少包时会自动下载,用引号包住 pack:dimensionKey 可选择特定包维度", + "iris.modded.help.entry.command.replace_overworld": "注入 Iris 主世界,并将玩家路由到该世界而非原版主世界", + "iris.modded.help.entry.command.disable": "疏散并卸载 Iris 维度;保留磁盘上的世界数据以便重新启用", + "iris.modded.help.entry.command.delete": "禁用 Iris 维度并从磁盘清除其区块和 Mantle 数据", + "iris.modded.help.entry.command.list": "列出已加载的 Iris 维度", + "iris.modded.help.entry.command.status_world": "显示已加载的 Iris 维度和配置的主世界", + "iris.modded.help.entry.command.status_datapack": "检查已加载 Iris 维度的维度类型覆盖", + "iris.modded.help.entry.command.install": "为已加载的 Iris 维度安装维度类型覆盖", + "iris.modded.help.entry.command.list_datapacks": "列出已配置和已安装的数据包", + "iris.modded.help.entry.command.ingest": "说明 Bukkit 数据包导入流程", + "iris.modded.help.entry.command.remove": "说明数据包移除流程", + "iris.modded.help.entry.command.list_structures": "重新生成 structure-index.json", + "iris.modded.help.entry.command.info_2": "解析 Iris 结构图并报告边界", + "iris.modded.help.entry.command.place": "在当前位置组装并放置 Iris 结构", + "iris.modded.help.entry.command.import": "说明 Bukkit 结构导入流程", + "iris.modded.help.entry.command.capture": "说明 Bukkit 结构捕获流程", + "iris.modded.help.entry.command.verify": "报告当前维度中原生结构和 Iris 结构的可达性", + "iris.modded.help.entry.command.sentry": "向 Iris 错误报告器发送测试异常", + "iris.modded.help.entry.command.network": "列出网络接口及其地址", + "iris.runtime.progress.finding_regions": "寻找区域", + "iris.runtime.progress.converting": "转换", + "iris.runtime.status.running": "运行", + "iris.runtime.status.stopped": "已停止", + "iris.runtime.status.paused": "暂停", + "iris.runtime.status.paused_lower": "暂停", + "iris.runtime.status.running_lower": "运行", + "iris.runtime.status.enabled": "启用。", + "iris.runtime.status.disabled": "已禁用。", + "iris.runtime.status.unregistered": "未登记", + "iris.runtime.status.none": "无", + "iris.runtime.status.random": "随机", + "iris.runtime.status.match": "匹配", + "iris.runtime.status.mismatch": "不匹配", + "iris.runtime.status.true": "真实", + "iris.runtime.status.false": "虚假", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " 覆盖", + "iris.runtime.datapack.override_suffix": " (已安装世界数据包覆盖)", + "iris.runtime.primary_world.players_routed_suffix": " (玩家经过那里)", + "iris.runtime.primary_world.routing_disabled_suffix": " (线路已禁用)", + "iris.runtime.modded.no_dimension_match": "没有 Iris 维度匹配 '{filter}'.", + "iris.runtime.teleport.world": "你被传送到 {world}.", + "iris.runtime.engine.hotloaded": "引擎已热加载", + "iris.runtime.job.completed": "已完成 {job} 输入 {duration}", + "iris.runtime.job.scanning_selection": "扫描选择", + "iris.runtime.job.loading_chunks": "正在加载块", + "iris.runtime.job.searched_chunks": "已搜索 {chunks} 块", + "iris.runtime.job.compile": "编译", + "iris.runtime.job.saving_object": "保存对象", + "iris.runtime.job.downloading": "下载", + "iris.runtime.job.extracting": "提取", + "iris.runtime.job.installing": "安装", + "iris.runtime.compile.iob_empty": "- IOB {file} 已经 0 块!", + "iris.runtime.compile.iob_empty_hover": "错误 :\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} 不是三维!", + "iris.runtime.compile.iob_not_3d_hover": "错误 :\n{path}\n宽度、 高度或深度为 0 (坏格式)", + "iris.runtime.compile.json_error": "- JSON 错误 {file}", + "iris.runtime.compile.json_error_hover": "错误 :\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "找不到装填器 {path}", + "iris.runtime.datapack.name": "Iris 世界一代组织", + "iris.runtime.pack.already_exists": "包已经存在了!", + "iris.runtime.tree_plausibilize.dry_suffix": ", 试运行", + "iris.runtime.tree_plausibilize.skip_load": "跳过 {object}: 加载失败", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} 木材({branches} 分部门), {converted} 叶->木头,~{distances} 距离", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} 木材({branches} 分部门), {converted} 叶->木头,~{distances} 距离远!{pinned} 锁定", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "失败 {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "结曰: {processed} 已处理, {changed} 变了, {skipped} 跳过 {failed} 失败", + "iris.runtime.tree_plausibilize.done_dry": "已完成:处理 {processed} 个,更改 {changed} 个,跳过 {skipped} 个,失败 {failed} 个(试运行,未写入任何内容)", + "iris.runtime.tree_plausibilize.totals": "共计:+{wood} 木材({branches} 分部门), {converted} 叶->木头,~{distances} 距离远!{pinned} 被钉住,无法到达 {before} -> {after}", + "iris.runtime.item.wand.name": "魔杖 Iris", + "iris.runtime.item.wand.lore.first": "左键单击块设置第一个角", + "iris.runtime.item.wand.lore.second": "右键单击块设置第二个角", + "iris.runtime.item.dust.name": "弥漫的尘埃", + "iris.runtime.item.dust.lore": "右键点击块显示其位置结构!", + "iris.runtime.wand.position_set": "立场 {position} 设置为 {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "此维度不是由 Iris 生成的。", + "iris.runtime.dust.found_object": "找到对象 {object}", + "iris.runtime.dust.revealed": "被揭露{count}区块{object}", + "iris.runtime.dust.revealed_capped": "被揭露{count}区块{object}(封顶)", + "iris.runtime.dust.header": "--- Iris 尘埃 @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "块 : {block}", + "iris.runtime.dust.position.above": "职位:+{offset} 上方 表面(表Y={surfaceY})", + "iris.runtime.dust.position.below": "位置 : {offset} 低于表面(表Y={surfaceY})", + "iris.runtime.dust.position.at": "位置:在表面(Y={surfaceY})", + "iris.runtime.dust.object_at_block": "对象@ 方块: {object}", + "iris.runtime.dust.none": "无", + "iris.runtime.dust.placed_by.object_above": "位置: 对象/斜体 '{object}'(以上表面)", + "iris.runtime.dust.placed_by.decoration_above": "由:装饰/物件/斜体(上表面)", + "iris.runtime.dust.placed_by.buried_object": "由: 掩埋对象 '{object}'", + "iris.runtime.dust.placed_by.terrain": "地形层(深度){depth}(低于表面)", + "iris.runtime.dust.column_object": "列对象 : {object} -> 此块可能是天体的斜体", + "iris.runtime.dust.column_object_none": "列对象 : {detail}", + "iris.runtime.dust.column_none": "内无 64 (装饰或地形, 非 对象斜体)", + "iris.runtime.dust.column.above": "{object} @Y={y} (上文) .", + "iris.runtime.dust.column.below": "{object} @Y={y} (下图).", + "iris.runtime.dust.surface_biome": "表面生物仪: {biome}", + "iris.runtime.dust.surface_biome_detail": "表面生物仪: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @ Y: (原始内容存档于2018-09-29).{biome}", + "iris.runtime.dust.cave_biome": "洞穴/内脏Mantle 生物仪 : {biome}", + "iris.runtime.dust.server_biome": "服务器 biome :{biome}(编号:{id})", + "iris.runtime.dust.region": "地区: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "块中的对象 : {objects}", + "iris.runtime.dust.copy_button": "[点击复制这些统计]", + "iris.runtime.dust.copy_hover": "将块数据复制到剪贴板", + "iris.runtime.pregen.starting": "Iris 前置开始...", + "iris.runtime.pregen.header": "Iris 预览", + "iris.runtime.pregen.bossbar.paused": "Iris 预览 {generated}/{total} {percent}% 已暂停", + "iris.runtime.pregen.bossbar.running": "Iris 预览 {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " 失败 {failed}", + "iris.runtime.pregen.status.context": "维度 {dimension} 方法 {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "块 {generated}/{total} 速度 {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "块 {generated}/{total} 速度 {speed}/s 失败 {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · 溃败 {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · 溃败 {elapsed} · 已暂停", + "iris.runtime.pregen.button.pause": "暂停/恢复", + "iris.runtime.pregen.button.pause.hover": "切换生成前暂停状态", + "iris.runtime.pregen.button.stop": "停下来", + "iris.runtime.pregen.button.stop.hover": "完成当前区域并停止预生成", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§c未找到包/ 文件夹 。", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§e没有包可以验证。", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§a鉴定完毕 破损的包: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§c包{pack}'未发现于 packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§a没有找到包的清理候选人 '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a检疫{size}清理候选人{quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§c清理模式必须是预览或应用.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§a没有找到包的清理候选人 '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§e包的清理预览{pack}': {size}候选人。没有更改文件 。", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7运行 /iris pack cleanup {pack} mode=apply 在重新扫描后将这些候选人隔离", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§c还原被拒绝,因为{size}目的地已经存在。", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§e没有东西可以还原{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a已恢复{size}文件从{dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§c还原模式必须是预览或应用.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§e没有东西可以还原{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§e恢复预览{dumpPath}: {size}文件。没有更改文件 。", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§c恢复被阻断{size}现有目的地。", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7运行 /iris pack restore {pack} mode=apply 在重新核对冲突后恢复。", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§e未记录验证结果. 运行 /iris pack validate 先说", + "iris.bukkit.runtime.commandpack.status.ok": "§a还好§r {pack}§7 (阻断={blocking}时,警告={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§c伤痕§r {pack}§7 (阻断={blocking}时,警告={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§c清理失败 : {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§c恢复失败 : {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "仍隔离", + "iris.bukkit.runtime.commandpack.path.quarantined": "隔离", + "iris.bukkit.runtime.commandpack.path.candidate": "候选人", + "iris.bukkit.runtime.commandpack.path.conflict": "冲突", + "iris.bukkit.runtime.commandpack.path.restored": "恢复", + "iris.bukkit.runtime.commandpack.path.file": "文件", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§e没有验证结果 '{pack}'. 运行 /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§c验证 '{name}' 失败 : {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§a包{packName}'是可装载的。§7 (警报={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§c包{packName}'为. 损坏:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... 和 {count} 更多的警告。 更多警告。", + "one": "§7 ... 和 {count} 更多的警告。 更多警告。" + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§c在使用之前,你应该先做备份", + "§e由此产生的问题可以是,但不限于:", + "§e - 新旧块之间的断块(断块)(以前 & 更新后)", + "§e - 重新生成不适合旧的块", + "§e - 结构在再生时不再产生", + "§e - 洞穴不排队", + "§e - 地层不排队", + "§c现在,你意识到了风险, 并做了一个备份:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§a导入 §f{total}§a 原版 & 数据包结构(模式={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[失败] {keyString}无效的密钥", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[跳过] {keyString}: 无单调 NBT - 原版用代码或从单独的块模板(通过模板通过导入)中构建它;不作为一个结构导入。", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[失败] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§a批量导入完成 : §f{imported}§a 进口 §f{skipped}§a 跳过 §f{failed}§a 失败 (§f{total}§a 总计)。", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§a从进口的部件建造单层结构(每代放置一个变体)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[组] {value} -> {value2} ({blocks} 变体)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[跳过] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[失败] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§a单调结构: §f{imported}§a 建造, §f{skipped}§a 跳过 §f{failed}§a 失败 。", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§c通过服务器列出结构模板失败 ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§e在“ 结构” 资源路径下找不到结构模板 。", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§a导入 §f{total}§a 结构模板(模式={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[失败] {keyString}无效的密钥", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[失败] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} 进口 {skipped} 跳过 {failed} 失败)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§a模板导入完成 : §f{imported}§a 进口 §f{skipped}§a 跳过 §f{failed}§a 失败 (§f{total}§a 总计)。", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§e没有登记数据包(非矿物)结构。 获取一个数据包并首先重新启动, 然后再次运行 。", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§a导入 §f{total}§a 数据包结构(模式={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[失败] {keyString}无效的密钥", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[失败] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§a导入 §f{size}§a 数据包结构模板...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[失败] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[失败] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§e无法通过服务器列出数据包模板 ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§a数据包结构导入完成 : §f{imported}§a 进口 §f{skipped}§a 跳过 §f{failed}§a 失败 。", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§e结构捕捉不被活动者支持 NMS 绑定; 跳过捕获通道。", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7没有代码生成的结构留待捕捉(所有东西已经作为结构导入).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§a隐藏§f{total}§a代码生成结构( 无)NBT切换到一个划痕世界(吸取更大的/高过{MAXSPAN}块)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[跳过] {key}:没有在此放置一个可封顶结构(太大,错误的维度,或者在一个平坦的世界中没有有效的放置). 留原版生成.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[失败] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[捕获] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[失败] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} 被俘获, {skipped} 跳过 {failed} 失败)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§a结构捕捉完成 : §f{imported}§a 被俘获, §f{skipped}§a 跳过 §f{failed}§a 失败 (§f{total}§a 总计)。", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§e活动者未暴露原版树/物体特征 NMS 约束(仅导入结构)。", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§a导入 §f{total}§a 原版树/物体特征(§f{wantVariants}§a 每个变体)进入刮伤世界...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[跳过] {key}: 特性在重试后没有放置任何内容 。", + "iris.bukkit.runtime.featureimporter.fail": "§c[失败] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} 进口 {skipped} 跳过 {failed} 失败)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§a特性导入完成 : §f{imported}§a 特写, §f{skipped}§a 跳过 §f{failed}§a 失败 (§f{total}§a 总计)。", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§c无法为特性导入创建抓取世界( N){error}); 跳过树/对象通过。", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "找不到图解文件 {path}", + "iris.bukkit.runtime.irisconverter.converted": "§a已转换 {name} -> {value} 输入 {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§a已转换 {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§c保存失败 : {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§c转换失败 : {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7已转换 : {get} 输入 {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§c一些示意图未能转换. 检查控制台的细节。", + "iris.bukkit.runtime.studiosvc.installing_package": "正在安装内容包:{name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "正在查找内容包:{type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "在 {WORKSPACENAME} 文件夹中找到 {type}.iris", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "在 {WORKSPACENAME} 文件夹中找到 {type} 维度,正在重新打包", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "在此内容包的 dimensions 文件夹中找不到 {name},操作失败。", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "无法加载维度,操作失败。", + "iris.bukkit.runtime.studiosvc.type_installed": "已安装 {name} 类型。", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "内容包“{key}”不在内容包列表中。", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "使用 /iris download branch= 手动下载。", + "iris.bukkit.runtime.studiosvc.failed_download": "无法下载“{key}”。", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "无法下载 IrisDimensions/overworld 测试版。", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "无法下载“{repo}”(分支 {branch})。", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "无法打开工作室世界:{error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "无法打开工作室“{dimm}”:内容包存在阻断错误:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "修复内容包,然后运行 /iris pack validate {dimm} 重新验证。", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "无法关闭现有工作室项目:{error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "无法关闭现有工作室项目:{error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "无法打开工作室世界:{error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "找不到用于创建新维度的内容包。", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "缺少导入的维度文件", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "正在将 {downloadable} 导入新项目 {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio:点击位置下方没有单元格 (x={x} z={z})。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio:正在保存 §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio:{pack}/{key} 没有更改。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio:单元格 {pack}/{key} 为空,无需写入。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio:{pack}/{key} 没有目标文件。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio:已保存 §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio:无法保存 {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "无法加载维度 \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "无法获得维度加载器", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§c工作室打开失败 : {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§c工作室打开失败 。", + "iris.bukkit.runtime.irisproject.studio_ready": "§a工作室准备好了 §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6工作室 §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "序列对象", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "写另一首 {g} 对象", + "iris.bukkit.runtime.irisproject.package_compiled": "包编译!", + "iris.bukkit.runtime.irisproject.failed": "失败了!", + "iris.bukkit.runtime.irisengine.total": "共计: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " 发动机 §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "细节 : ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} 维度中没有定义!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§c无法找到 {message} 在搜索范围内。", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§a传送到 {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} 地点: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "你被从这个世界疏散了", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "你被从这个世界疏散了 {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "有几个 Iris 包里有自定义的生物元素", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "您需要重新启动您的服务器来使用这些包 。", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "权限不足", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "没有子命令或您没有权限使用它们 。", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "被忽略参数 : {m}", + "iris.runtime.studio.opening": "§6工作室 §b开幕", + "iris.runtime.studio.opening_progress": "§6工作室 §b开幕§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6工作室 §c失败§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6工作室 §a准备§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §c失败§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §a工作室准备好了§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6工作室 §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "初始化", + "iris.runtime.studio.stage.queued": "队列", + "iris.runtime.studio.stage.resolve_dimension": "解决层面", + "iris.runtime.studio.stage.prepare_world_pack": "准备世界包", + "iris.runtime.studio.stage.install_datapacks": "安装数据包", + "iris.runtime.studio.stage.create_world": "创造世界", + "iris.runtime.studio.stage.apply_world_rules": "应用世界规则", + "iris.runtime.studio.stage.prepare_generator": "正在准备生成器", + "iris.runtime.studio.stage.request_entry_chunk": "正在加载条目块", + "iris.runtime.studio.stage.resolve_safe_entry": "寻找安全的产卵", + "iris.runtime.studio.stage.teleport_player": "远程传送", + "iris.runtime.studio.stage.finalize_open": "最后确定", + "iris.runtime.studio.stage.cleanup": "清理", + "iris.runtime.world_create.teleport_failed": "§e世界是创建的,但自动电传传送失败. 尝试 /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} 块", + "iris.runtime.world_create.console": "§6正在生成 §e{percent}%§7 {generated}/{required} 块§8 ({remaining} 左侧)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §f预生成", + "iris.runtime.world_create.pregen.console": "§6预生成 §e{percent}%", + "iris.runtime.chunk_job.title.regen": "瑞根,你好吗?", + "iris.runtime.chunk_job.title.delete": "删除", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "准备", + "iris.runtime.chunk_job.stage.clearing": "清除", + "iris.runtime.chunk_job.stage.resetting_mantle": "重置Mantle", + "iris.runtime.chunk_job.stage.regenerating": "重新生成", + "iris.runtime.chunk_job.stage.generating": "正在生成", + "iris.runtime.chunk_job.stage.comparing": "比较", + "iris.runtime.chunk_job.stage.diagnosing": "诊断", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §b工作", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} 块进入 {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} 块进入 {elapsed} ({failures} 失败)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §a完成§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §c失败§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §a完成§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §c失败§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} 完成 : {summary}", + "iris.runtime.chunk_job.failed": "§c{title} 以错误完成 : {summary}", + "iris.runtime.golden.no_capture": "没有金色的捕捉 {path};先进行抓捕.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash 已中止 : {failed} 块无法生成 。 没有写金色文件 。", + "one": "GoldenHash 已中止 : {failed} 块无法生成 。 没有写金色文件 。" + }, + "iris.runtime.golden.failed": "GoldenHash 失败 : {error}", + "iris.runtime.golden.mantle_reset": "Mantle重设( N){path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle重设置失败( E){type});继续维持现有的Mantle状态。", + "iris.runtime.golden.captured": "黄金俘虏: {chunks} 块组合={hash}", + "iris.runtime.golden.wrong_world": "金色文件为 dim={goldenDimension} 种子数={goldenSeed} 但这个世界是暗淡的{dimension} 种子数={seed}. 中止行动", + "iris.runtime.golden.version_warning": "黄金在Mc=上被俘{goldenVersion},运行 mc={version}. 差异可能是版本引起的.", + "iris.runtime.golden.match": "戈尔登马奇:{current}/{golden}块,combined={hash}", + "iris.runtime.golden.mismatch": "戈尔登密斯:{mismatches}/{chunks}块不同。", + "iris.runtime.golden.mismatch_chunk": " 块 {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (失踪的金色)", + "iris.runtime.golden.mismatch_more": " ... 和 {count} 更多", + "iris.runtime.golden.current_written": "当前散列已写入 {file}", + "iris.runtime.golden.diag.stable": "重复基因 稳定,重置Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "重复基因{diffs}+ 块 差异, Mantle重置{mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "稳定 (曼托重建复制扫描输出)", + "iris.runtime.golden.diag.mantle_diverged": "二、导 言{diffs}+ 差异 - Mantle构造状态/命令依赖)", + "iris.runtime.golden.diag.mantle_skipped": "已跳过 ({type})", + "iris.runtime.golden.diag.failed": "诊断失败 : {error}", + "iris.runtime.golden.started": "GoldenHash 开始 : {chunks} 块绕 0,0 在缓冲器(世界未触动)中,线程={threads} 模式={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] 块 {x},{z} 散开", + "iris.runtime.golden.chunk_failed": "块 {x},{z} 失败: {type}", + "iris.runtime.pack_download.invalid_pack_name": "无效的包名'{pack}'(获批准:a-z, 0-9时, 和 -)", + "iris.runtime.pack_download.invalid_branch_name": "无效的分支名称 '{branch}'(被分配:字母,数字,. _ 和 -)", + "iris.runtime.pack_download.failed": "包下载失败 : {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "下载 {url}", + "iris.runtime.pack_download.failed_to_find": "找到包失败 {url}", + "iris.runtime.pack_download.check_repository_and_branch": "确保您指定正确的还本付息和分支 !", + "iris.runtime.pack_download.example_command": "例如: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "正在解压 {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "解包时发布. 请检查/做如下:", + "1. 你有一个正常的互联网连接?", + "2. 下载是否腐败?", + "3. 尝试删除 */plugins/iris/packs 文件夹和重新下载。", + "4. 从中下载包 GitHub 重传 : https://github.com/IrisDimensions/overworld", + "5. 联系人支持( 如果所有其他选项都没有帮助)" + ], + "iris.runtime.pack_download.no_extracted_files": "没有从zip文件中提取文件 。", + "iris.runtime.pack_download.home_directory_error": "查找主目录时出错 。 文件名中是否有非文本字符 ?", + "iris.runtime.pack_download.invalid_archive_format": "无效的格式 。 缺少根文件夹或过多的文件夹!", + "iris.runtime.pack_download.no_dimension_file": "在提取的zip文件中找不到维度文件 。", + "iris.runtime.pack_download.check_github": "检查它是否在 GitHub 把这个报告给工作人员!", + "iris.runtime.pack_download.one_dimension_required": "维度文件夹必须包含一个文件 。", + "iris.runtime.pack_download.invalid_dimension": "无效的维度文件夹 dimensions/.", + "iris.runtime.pack_download.importing": "导入 {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "包文件夹中的另一个维度已经使用密钥 {key}. 导入失败 !", + "iris.runtime.pack_download.pack_key_conflict": "另一个包是用钥匙 {key}. 导入失败 !", + "iris.runtime.pack_download.acquired": "已成功获取 {name}.", + "iris.runtime.pack_download.validation_failed": "包{pack}' 验证失败; 世界和工作室的创建将被拒绝. 原因:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "包{pack}'经验证 {count} 警告! 警告你们!", + "one": "包{pack}'经验证 {count} 警告,你应该知道" + }, + "iris.runtime.pack_download.validated": "包{pack}已确认。", + "iris.client.vision.title": "Iris 愿景", + "iris.client.vision.connecting": "正在连接到 Iris 服务器...", + "iris.client.vision.not_connected": "未连接", + "iris.client.vision.not_iris_world": "没有 Iris 世界", + "iris.client.vision.no_dimension_data": "无维度数据", + "iris.client.vision.header_detail": "{status} 缩放 {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "拖动以平移,滚动以缩放,按 Esc 关闭", + "iris.client.vision.dimension_pack": "{dimension} 包 {pack}", + "iris.client.toast.studio_hotload": "工作室热负荷", + "iris.client.toast.changed_files": { + "other": "{count} 文件", + "one": "{count} 文件" + }, + "iris.client.toast.reload_failed": "重新加载失败", + "iris.client.toast.reloaded": "重新加载", + "iris.client.toast.pack_failed": "{pack} 失败", + "iris.client.what.title": "Iris 什麽?", + "iris.client.what.querying": "查询 {x}, {z}...", + "iris.client.what.biome": "生物群落: {biome}", + "iris.client.what.region": "地区: {region}", + "iris.client.what.cave": "洞穴: {cave}", + "iris.client.what.height": "高度 : {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "已暂停", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§a速度§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§b缓存§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§d雕刻§7: {state}", + "iris.bukkit.scoreboard.region": "§b地区§7: {region}", + "iris.bukkit.scoreboard.biome": "§b生物团§7: {biome}", + "iris.bukkit.scoreboard.height": "§b高度§7: {height}", + "iris.bukkit.scoreboard.slope": "§b斜坡§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§b学生会/s§7: {updates}", + "iris.desktop.vision.title": "Iris 愿景", + "iris.desktop.vision.view": "视图 :", + "iris.desktop.vision.grid": "网格", + "iris.desktop.vision.follow": "跟着", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "刷新", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "缩放重置", + "iris.desktop.vision.grid_enabled": "已启用网格", + "iris.desktop.vision.grid_disabled": "已禁用网格", + "iris.desktop.vision.following": "跟踪 {player}", + "iris.desktop.vision.no_player": "世界上没有玩家", + "iris.desktop.vision.follow_disabled": "跟随已禁用", + "iris.desktop.vision.low_quality": "低质量", + "iris.desktop.vision.high_quality": "高质量", + "iris.desktop.vision.status_left": "{mode} | {bpp} 联合国 {width} x {height} 块", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "位置 : {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "卫生: {health} / {maximum}", + "iris.desktop.vision.block_position": "块 {x}, {z}", + "iris.desktop.vision.chunk_position": "块 {x}, {z}", + "iris.desktop.vision.region_position": "地区 {x}, {z}", + "iris.desktop.vision.biome_key": "键 : {key}", + "iris.desktop.vision.biome_file": "文件 : {file}", + "iris.desktop.vision.velocity": "速度 : {velocity}", + "iris.desktop.vision.tiles": "线条 : {high} HD / {low} LQ", + "iris.desktop.vision.workers": "工人: {high} HD / {low} LQ", + "iris.desktop.vision.center": "中点 : {x}, {z}", + "iris.desktop.vision.help.toggle": "切换帮助", + "iris.desktop.vision.help.refresh": "刷新瓷砖", + "iris.desktop.vision.help.follow": "跟随玩家", + "iris.desktop.vision.help.zoom": "缩放/退出", + "iris.desktop.vision.help.reset_zoom": "重置缩放", + "iris.desktop.vision.help.cycle_mode": "循环渲染模式", + "iris.desktop.vision.help.quality": "切换瓦片质量", + "iris.desktop.vision.help.fps": "切换 30/60 FPS", + "iris.desktop.vision.help.grid": "切换网格", + "iris.desktop.vision.help.biome": "详细生物信息", + "iris.desktop.vision.help.teleport": "传送到光标", + "iris.desktop.vision.help.editor": "在编辑器中打开 biome", + "iris.desktop.vision.opened": "打开 {target}", + "iris.desktop.vision.teleporting": "传送到 {x}, {z}", + "iris.desktop.vision.mode.biome": "生物团", + "iris.desktop.vision.mode.biome_land": "生物土地", + "iris.desktop.vision.mode.biome_sea": "生物海", + "iris.desktop.vision.mode.region": "地区", + "iris.desktop.vision.mode.cave_land": "洞穴土地", + "iris.desktop.vision.mode.height": "高度", + "iris.desktop.vision.mode.object_load": "对象负载", + "iris.desktop.vision.mode.decorator_load": "加载装饰器", + "iris.desktop.vision.mode.continent": "大陆", + "iris.desktop.vision.mode.layer_load": "图层负载", + "iris.desktop.noise.title": "噪声探索器", + "iris.desktop.noise.title_generator": "噪声探索器 : {generator}", + "iris.desktop.noise.search": "搜索...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} 缩放 : {zoom} 数值 : {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "自定义", + "iris.desktop.noise.category.pack_generators": "包生成器", + "iris.desktop.noise.category.simplex": "简单x", + "iris.desktop.noise.category.perlin": "佩林语Name", + "iris.desktop.noise.category.cellular": "手机", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "克罗弗", + "iris.desktop.noise.category.hexagon": "六边形", + "iris.desktop.noise.category.vascular": "宽度", + "iris.desktop.noise.category.globe": "环球", + "iris.desktop.noise.category.cubic": "立方体", + "iris.desktop.noise.category.fractal": "分形", + "iris.desktop.noise.category.static": "静态", + "iris.desktop.noise.category.nowhere": "没有", + "iris.desktop.noise.category.sierpinski": "锡尔平斯基", + "iris.desktop.noise.category.utility": "工具", + "iris.desktop.noise.category.other": "其他人员", + "iris.desktop.pregen.initializing": "初始化...", + "iris.desktop.pregen.title": "Pregen 视图", + "iris.desktop.pregen.method_pending": "待决", + "iris.desktop.pregen.paused": "已暂停", + "iris.desktop.pregen.resume_hint": "按 P 键恢复", + "iris.desktop.pregen.pause_hint": "按 P 暂停", + "iris.desktop.pregen.progress_paused": "已暂停 {generated} 页:1 {total} ({percent} 完成) 数据", + "iris.desktop.pregen.progress_saving": "保存... {generated} 页:1 {total} ({percent} 完成) 数据", + "iris.desktop.pregen.progress_generating": "正在生成 {generated} 页:1 {total} ({percent} 完成) 数据", + "iris.desktop.pregen.speed": "速度 : {chunksPerSecond} 块/s, {regionsPerMinute} 区域/米, {chunksPerMinute} 块/米", + "iris.desktop.pregen.speed_cached": "速度:已缓存 {chunksPerSecond} 块/s, {regionsPerMinute} 区域/米, {chunksPerMinute} 块/米", + "iris.desktop.pregen.time": "{remaining} 剩余({elapsed} 已过期)", + "iris.desktop.pregen.method": "生成方法 : {method}", + "iris.desktop.pregen.memory": "内存 : {used} ({usage})压力: {pressure}/s" + } +} diff --git a/core/src/main/resources/languages/zh_TW.json b/core/src/main/resources/languages/zh_TW.json new file mode 100644 index 000000000..460726d56 --- /dev/null +++ b/core/src/main/resources/languages/zh_TW.json @@ -0,0 +1,1435 @@ +{ + "locale": "zh_TW", + "messages": { + "director.help.navigation.parent.hover": "返回上層命令群組", + "director.help.navigation.back": "返回", + "director.help.no_subcommands": "此頁面沒有子命令。", + "director.help.no_description": "未提供說明", + "director.help.aliases": "別名", + "director.help.command_group": "命令群組。點擊以開啟。", + "director.help.no_parameters": "無參數。點擊以預先填入命令。", + "director.help.parameters": "參數", + "director.help.parameter.required": "必填", + "director.help.parameter.optional": "選填", + "director.help.parameter.default": "預設", + "director.help.navigation.previous.hover": "上一頁", + "director.help.navigation.next.hover": "下一頁", + "director.help.navigation.page": "頁面", + "director.runtime.error.invalid_origin": "無法從此來源執行該指令。", + "director.runtime.error.unknown_parameter": "未知參數鍵: {key}", + "director.runtime.error.unexpected_argument": "意外參數 \"{argument}\"。選用參數必須使用鍵指定,例如 seed=123", + "director.runtime.error.conversion_failed": "無法將 \"{value}\" 轉換為 {parameter} 所需的 {type}", + "director.runtime.error.default_parse_failed": "無法解析參數 {parameter} 的預設值", + "director.runtime.error.missing_argument": "缺少參數 \"{parameter}\" ({type})", + "director.runtime.error.execution_failed": "執行指令 {command} 失敗: {reason}", + "director.runtime.usage": "用法: {usage}", + "iris.command.permission_denied": "你沒有權限 '{permission}'。", + "iris.command.unknown": "未知的 Iris 命令。", + "iris.command.player_only": "此命令只能由玩家執行。", + "iris.command.iris_world_required": "此維度不是由 Iris 生成的。", + "iris.command.reload.success": "設定和語言 {locale} 已重新載入。", + "iris.command.reload.failed": "設定已重新載入,但語言 {locale} 驗證失敗;繼續使用 {activeLocale}。", + "iris.modded.help.unknown_section": "未知的 Iris 說明章節:{section}", + "iris.modded.help.back_hover": "返回 {parent}。", + "iris.modded.help.command_parameter": "命令參數", + "iris.modded.help.parameter_required": "此參數為必填項目。", + "iris.modded.help.parameter_optional": "此參數為選用項目。", + "iris.modded.help.brigadier_text": "此參數是 Brigadier 文字。", + "iris.modded.help.operator_notice": "Iris 命令需要管理員權限(等級 2)。", + "iris.modded.help.operator_instruction": "請從主控台執行 {command}(或在單人遊戲中啟用作弊);在此之前,這些命令不會執行,也不會提供 Tab 補全。", + "iris.modded.command.properties.none": "屬性:(無)", + "iris.modded.command.properties.list": "屬性 : {properties}", + "iris.bukkit.commanddatapack.starting_datapack_ingest": "§7正在匯入資料包...", + "iris.bukkit.commanddatapack.configured_datapack_imports": "§a已設定的資料包匯入:§f{value}", + "iris.bukkit.commanddatapack.message": "§7 - §f{url}", + "iris.bukkit.commanddatapack.installed_datapacks": "§a已安裝的資料包:§f{value}", + "iris.bukkit.commanddatapack.message_2": "§7 - §f{value}§7 {value2}", + "iris.bukkit.commanddatapack.add_modrinth_urls_dimension_s_datapackimports_list_then_run_iris": "§e將 Modrinth URL 加入維度的 'datapackImports' 清單,然後執行 /iris datapack ingest。", + "iris.bukkit.commanddeveloper.genhash_started_chunks": "§aGenHash 已啟動:{value} 個區塊...", + "iris.bukkit.commanddeveloper.genhash_failed_at_chunk": "§cGenHash 在區塊 {rx},{rz} 失敗:{value}", + "iris.bukkit.commanddeveloper.genhash_global_chunks_solid": "§aGenHash 全域值=§6{value}§a 區塊={value2} 實心方塊={solidBlocks} 輸入={value3}", + "iris.bukkit.commandfind.not_iris_world": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.unknown_structure": "§c未知結構:{structureKey}", + "iris.bukkit.commandfind.run_this_game_teleport_structure": "§6請在遊戲內執行此命令以傳送到結構。", + "iris.bukkit.commandfind.locating": "§7正在定位 {structureKey}...", + "iris.bukkit.commandfind.run_this_game_teleport_structure_2": "§6請在遊戲內執行此命令以傳送到結構。", + "iris.bukkit.commandfind.locating_2": "§7正在定位 {structure}...", + "iris.bukkit.commandfind.teleported": "§a已傳送到 {structure} @ {value}, {y}, {value2}", + "iris.bukkit.commandiris.successfully_removed_world_folder": "§a成功刪除世界資料夾", + "iris.bukkit.commandiris.successfully_removed_world_folder_2": "§a成功刪除世界資料夾", + "iris.bukkit.commandiris.failed_remove_world_folder": "§c刪除世界資料夾失敗", + "iris.bukkit.commandobject.no_packs_with_objects_were_found_on_this_server": "§c此伺服器上找不到包含物件的包。", + "iris.bukkit.commandobject.no_objects_place_across_selected_pack_s": "§c選取的包中沒有可放置的物件。", + "iris.bukkit.commandobject.opening_object_studio_objects": "§a正在開啟物件 Studio:{scope}({totalObjects} 個物件)", + "iris.bukkit.commandobject.failed_open_object_studio": "§c無法開啟物件 Studio:{value}", + "iris.bukkit.commandpack.you_must_specify_pack_name": "§c必須指定包名。", + "iris.bukkit.commandpack.pack_not_found_under_packs": "§c在 packs/ 中找不到包 '{pack}'。", + "iris.bukkit.commandpack.message": "§7 - {label}: {value}", + "iris.bukkit.commandpack.more": "§7 ...另有 {value} 項", + "iris.bukkit.commandstructure.verifying_structures_from_within_chunks": "§a正在驗證結構 §f{value}§a;起點 {value2},{value3},範圍 {searchRadius} 個區塊...", + "iris.bukkit.commandstudio.importing_vanilla_content_into": "§a正在將原版內容匯入 §f{value}§a...", + "iris.bukkit.commandstudio.importvanilla_complete_objects_structures_written_failed": "§a原版內容匯入完成:已寫入 §f{imported}§a 個 objects/structures,§f{failed}§a 個失敗。", + "iris.bukkit.commandstudio.trees_objects_are_under_objects_vanilla_reference_them_from_biome": "§7樹木和物件位於 objects/vanilla/...;請從生態域的物件放置中引用它們。", + "iris.bukkit.commandstudio.no_open_studio_projects": "§c沒有開啟的 Studio 專案。", + "iris.bukkit.commandstudio.closing_studio": "§e正在關閉 Studio...", + "iris.bukkit.commandstudio.studio_close_failed": "§c關閉 Studio 失敗:{value}", + "iris.bukkit.commandstudio.studio_close_failed_2": "§c關閉 Studio 失敗:{value}", + "iris.bukkit.commandstudio.studio_closed_remaining_world_family_cleanup_was_queued_startup_fallback": "§eStudio 已關閉;剩餘的世界系列清理已排入佇列,並會在下次啟動時作為備援處理。", + "iris.bukkit.commandstudio.studio_closed": "§aStudio 已關閉。", + "iris.bukkit.commandstudio.you_must_be_studio_world_toggle_debug_scoreboard": "§c你必須位於 Studio 世界中才能切換偵錯計分板。", + "iris.bukkit.commandstudio.studio_debug_scoreboard": "{value}Studio 偵錯計分板:{value2}", + "iris.bukkit.commandstudio.could_not_update_studio_debug_scoreboard_right_now": "§c目前無法更新 Studio 偵錯計分板。", + "iris.bukkit.commandstudio.opened_inventory": "§a已開啟物品欄!", + "iris.bukkit.commandstudio.generating_data": "§7正在生成資料...", + "iris.bukkit.commandstudio.done": "§a完成!", + "iris.bukkit.commandstudio.message": "§a{k}: {value} / {value2}%", + "iris.bukkit.commandsvc.you_lack_permission": "你沒有權限 '{ROOTPERMISSION}'。", + "iris.bukkit.irisenginestatus.message": "§5-------------------------", + "iris.bukkit.irisenginestatus.status": "§5狀態:", + "iris.bukkit.irisenginestatus.service": "§5- 服務:§d{value}", + "iris.bukkit.irisenginestatus.metrics": "§5- 指標:§d{value}", + "iris.bukkit.irisenginestatus.maintenance_period": "§5- 維護週期:§d{value}", + "iris.bukkit.irisenginestatus.worker_parallelism": "§5- 工作執行緒平行度:§d{value}", + "iris.bukkit.irisenginestatus.active_world_tasks": "§5- 進行中的世界工作:§d{value}", + "iris.bukkit.irisenginestatus.tectonic_plates": "§5構造板塊:", + "iris.bukkit.irisenginestatus.configured_retention": "§5- 設定保留數:§d{value}", + "iris.bukkit.irisenginestatus.heap_usage": "§5- 堆積記憶體用量:§d{value}", + "iris.bukkit.irisenginestatus.resident": "§5- 常駐:§d{value}", + "iris.bukkit.irisenginestatus.queued": "§5- 已排入佇列:§d{value}", + "iris.bukkit.irisenginestatus.average_idle_duration": "§5- 平均閒置時間:§d{value}", + "iris.bukkit.irisenginestatus.max_idle_duration": "§5- 最長閒置時間:§d{value}", + "iris.bukkit.irisenginestatus.min_idle_duration": "§5- 最短閒置時間:§d{value}", + "iris.bukkit.irisenginestatus.caches": "§5快取:", + "iris.bukkit.irisenginestatus.resource": "§5- 資源: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.2d_stream": "§5- 二維流: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.3d_stream": "§5- 三維流: §d{value} ({value2})", + "iris.bukkit.irisenginestatus.other": "§5- 其他:§d{value}({value2})", + "iris.bukkit.irisenginestatus.other_2": "§5其他:", + "iris.bukkit.irisenginestatus.iris_worlds": "§5- Iris 世界:§d{value}", + "iris.bukkit.irisenginestatus.loaded_chunks": "§5- 已載入區塊:§d{value}", + "iris.bukkit.irisenginestatus.message_2": "§5-------------------------", + "iris.bukkit.commanddeveloper.world_is_null": "§c世界為空。", + "iris.bukkit.commanddeveloper.target_iris_world_before_reading_mantle_dump": "§c請先選擇一個 Iris 世界,再讀取 Mantle 傾印檔。", + "iris.bukkit.commanddeveloper.upgrading": "§a升級到 {value}...", + "iris.bukkit.commanddeveloper.done_upgrading_you_can_now_update_your_server_version": "§a升級完畢! 您現在可以更新您的伺服器版本到 {value}", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater": "§c半徑必須大於或等於 0。", + "iris.bukkit.commanddeveloper.this_is_not_iris_world": "§c這不是 Iris 世界。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null": "§c此世界的引擎存取為空。", + "iris.bukkit.commanddeveloper.delete_started_chunk_s_around_clearing_blocks_air": "§a刪除已啟動:正在清空以區塊 §6{centerX},{centerZ}§a 為中心的 §6{chunks}§a 個區塊。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_2": "§c半徑必須大於或等於 0。", + "iris.bukkit.commanddeveloper.you_must_be_iris_world_use_regen": "§c你必須位於 Iris 世界中才能使用 regen。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_generate_nearby_chunks_first": "§c此世界的引擎存取為空。請先生成附近的區塊。", + "iris.bukkit.commanddeveloper.regen_started_chunk_s_around_deleting_regenerating_place": "§a重新生成已啟動:正在原地刪除並重新生成以區塊 §6{centerX},{centerZ}§a 為中心的 §6{chunks}§a 個區塊。", + "iris.bukkit.commanddeveloper.radius_must_be_0_greater_3": "§c半徑必須大於或等於 0。", + "iris.bukkit.commanddeveloper.target_must_be_iris_world": "§c目標必須是 Iris 世界。", + "iris.bukkit.commanddeveloper.engine_access_this_world_is_null_2": "§c此世界的引擎存取為空。", + "iris.bukkit.commanddeveloper.goldenhash_started_chunk_s_around_buffers_world_untouched": "§aGoldenHash 已啟動:正在緩衝區中處理以區塊 §6{centerX},{centerZ}§a 為中心的 §6{chunks}§a 個區塊;世界不會被修改。", + "iris.bukkit.commandedit.players_only": "§c此命令只能由玩家執行!", + "iris.bukkit.commandedit.no_studio_world_is_open": "§c目前沒有開啟的 Studio 世界!", + "iris.bukkit.commandedit.you_must_be_studio_world": "§c你必須位於 Studio 世界中!", + "iris.bukkit.commandedit.cannot_open_files_headless_environments": "§c無法在無圖形介面的環境中開啟檔案!", + "iris.bukkit.commandedit.desktop_is_not_supported_by_this_environment": "§c此環境不支援桌面功能!", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "§6找不到檔案;它可能不是直接從檔案載入的。", + "iris.bukkit.commandedit.opening_vscode": "§a正在 VSCode 中開啟 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist": "§c找不到檔案:註冊項目不存在。", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_2": "§6找不到檔案;它可能不是直接從檔案載入的。", + "iris.bukkit.commandedit.opening_vscode_2": "§a正在 VSCode 中開啟 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_2": "§c找不到檔案:註冊項目不存在。", + "iris.bukkit.commandedit.cannot_find_file_perhaps_it_was_not_loaded_directly_from_3": "§6找不到檔案;它可能不是直接從檔案載入的。", + "iris.bukkit.commandedit.opening_vscode_3": "§a正在 VSCode 中開啟 {value} {value2}!", + "iris.bukkit.commandedit.cant_find_file_registrant_does_not_exist_3": "§c找不到檔案:註冊項目不存在。", + "iris.bukkit.commandfind.not_iris_world_5": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_2": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_3": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.not_iris_world_4": "§6你不在 Iris 世界中!", + "iris.bukkit.commandfind.object_studio_teleporting": "§a物件 Studio:正在傳送到 {object}", + "iris.bukkit.commandfind.is_not_configured_any_region_biome_object_placements": "§c{object} 未設定於任何區域、生態域或物件放置中。", + "iris.bukkit.commandiris.you_cannot_use_world_name_iris_creating_worlds_as_iris": "§c不能使用世界名稱 \"iris\",因為 Iris 將該目錄用於 Studio 世界。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead": "§c建議改用名稱 \"IrisWorld\"。", + "iris.bukkit.commandiris.you_cannot_use_world_name_benchmark_creating_worlds_as_iris": "§c不能使用世界名稱 \"benchmark\",因為 Iris 將該目錄用於基準測試包。", + "iris.bukkit.commandiris.may_we_suggest_name_irisworld_instead_2": "§c建議改用名稱 \"IrisWorld\"。", + "iris.bukkit.commandiris.that_folder_already_exists": "§c該資料夾已存在!", + "iris.bukkit.commandiris.could_not_find_download_dimension": "§c找不到或無法下載維度 \"{resolvedType}\"。", + "iris.bukkit.commandiris.try_one_overworld_vanilla_flat_theend": "§e可嘗試:overworld、vanilla、flat 或 the_end", + "iris.bukkit.commandiris.download_manually_iris_download": "§e也可以手動下載:/iris download {resolvedType}", + "iris.bukkit.commandiris.world_staging_completed_restart_server_generate_load": "§a世界暫存完成。請重新啟動伺服器以生成並載入 \"{worldName}\"。", + "iris.bukkit.commandiris.exception_raised_during_creation_see_console_more_details": "§c建立期間發生例外。詳細資訊請查看主控台。", + "iris.bukkit.commandiris.successfully_created_your_world": "§a世界建立成功!", + "iris.bukkit.commandiris.your_world_will_automatically_be_set_as_main_world_when": "§a伺服器重新啟動時,此世界將自動設為主世界。", + "iris.bukkit.commandiris.runtime_world_creation_is_disabled_on_folia": "§eFolia 上已停用執行階段世界建立。", + "iris.bukkit.commandiris.preparing_world_files_bukkit_yml_next_startup": "§e正在為下次啟動準備世界檔案和 bukkit.yml...", + "iris.bukkit.commandiris.failed_stage_world_files_dimension": "§c無法為維度 \"{value}\" 暫存世界檔案。", + "iris.bukkit.commandiris.updated_server_properties_level_name": "§a已將 server.properties 中的 level-name 更新為 \"{name}\"。", + "iris.bukkit.commandiris.world_was_staged_but_failed_update_server_properties_main_world": "§c世界已暫存,但無法更新 server.properties 中的主世界。", + "iris.bukkit.commandiris.staged_iris_world_with_generator_iris_seed": "§a已暫存 Iris 世界 \"{name}\",生成器為 Iris:{value},種子為 {seed}。", + "iris.bukkit.commandiris.this_world_is_now_configured_as_main_next_restart": "§a此世界現已設為下次重新啟動後的主世界。", + "iris.bukkit.commandiris.failed_update_bukkit_yml": "§c無法更新 bukkit.yml:{value}", + "iris.bukkit.commandiris.specified_player_does_not_exist": "§c指定的玩家不存在。", + "iris.bukkit.commandiris.iris_v_by_volmit_software": "§aIris v.{value},由 Volmit Software 開發", + "iris.bukkit.commandiris.to": "§a{value} 改為: {value2}", + "iris.bukkit.commandiris.total_height": "§a總高度:{value}", + "iris.bukkit.commandiris.iris_worlds": "§9Iris 世界:", + "iris.bukkit.commandiris.message": "§a- {value}", + "iris.bukkit.commandiris.bukkit_worlds": "§6Bukkit 世界:", + "iris.bukkit.commandiris.message_2": "§7- {value}", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds": "§c這不是 Iris 世界。Iris 世界數量:{value}", + "iris.bukkit.commandiris.removing_world": "§a正在移除世界:{value}", + "iris.bukkit.commandiris.failed_evacuate_world": "§c無法疏散世界:{value}", + "iris.bukkit.commandiris.failed_unload_world": "§c無法卸載世界:{value}", + "iris.bukkit.commandiris.successfully_removed_from_bukkit_yml": "§a已從 bukkit.yml 中移除 {value}", + "iris.bukkit.commandiris.looks_like_world_was_already_removed_from_bukkit_yml": "§e該世界似乎已從 bukkit.yml 中移除。", + "iris.bukkit.commandiris.failed_save_bukkit_yml_because": "§c無法儲存 bukkit.yml:{value}", + "iris.bukkit.commandiris.set_debug": "§a偵錯模式已設為:{to}", + "iris.bukkit.commandiris.downloading_pack_beta_release": "§a正在下載包:{pack}(Beta 版本){value}", + "iris.bukkit.commandiris.downloading_pack": "§a正在下載包:{pack}/{branch}{value}", + "iris.bukkit.commandiris.you_must_be_iris_world": "§c你必須位於 Iris 世界中。", + "iris.bukkit.commandiris.sending_metrics": "§a正在傳送指標...", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_2": "§c這不是 Iris 世界。Iris 世界數量:{value}", + "iris.bukkit.commandiris.unloading_world": "§a正在卸載世界:{value}", + "iris.bukkit.commandiris.world_unloaded_successfully": "§a世界已成功卸載。", + "iris.bukkit.commandiris.failed_unload_world_2": "§c無法卸載世界。", + "iris.bukkit.commandiris.failed_unload_world_3": "§c無法卸載世界:{value}", + "iris.bukkit.commandiris.doesnt_exist_on_server": "§e伺服器上不存在 {logicalWorldName}。", + "iris.bukkit.commandiris.generator": "§9生成器:{dimension}", + "iris.bukkit.commandiris.is_not_iris_world": "§6{logicalWorldName} 不是 Iris 世界。", + "iris.bukkit.commandiris.could_not_determine_iris_dimension": "§c無法判斷 {logicalWorldName} 的 Iris 維度。", + "iris.bukkit.commandiris.loading_world": "§a正在載入世界:{logicalWorldName}", + "iris.bukkit.commandiris.folia_cannot_load_new_worlds_at_runtime_restart_server_load": "§eFolia 無法在執行階段載入新世界。請重新啟動伺服器以載入 \"{logicalWorldName}\"。", + "iris.bukkit.commandiris.loaded_successfully": "§a已成功載入 {logicalWorldName}。", + "iris.bukkit.commandiris.this_is_not_iris_world_iris_worlds_3": "§c這不是 Iris 世界。Iris 世界數量:{value}", + "iris.bukkit.commandiris.evacuating_world": "§a正在疏散世界:{value}", + "iris.bukkit.commandobject.object_size": "物件大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.blocks_used": "使用的塊 : {value}", + "iris.bukkit.commandobject.blocks_object": "==:", + "iris.bukkit.commandobject.other_block_types": " + {value} 其他塊型別", + "iris.bukkit.commandobject.current_object_size": "當前物件大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.new_object_size": "新物件大小 : {value} * {value2} * {value3}", + "iris.bukkit.commandobject.failed_save_object": "儲存物件失敗 {value}: {value2}", + "iris.bukkit.commandobject.no_objects_matched": "§c未匹配物件 : {target}", + "iris.bukkit.commandobject.plausibilize_reach_queued_object_s": "§a鋪設 [reach={reach}{value}] 已排隊 {value2} 物件( S)", + "iris.bukkit.commandobject.hold_your_wand": "拿著你的魔杖", + "iris.bukkit.commandobject.no_area_selected": "未選擇區域 。", + "iris.bukkit.commandobject.ready_your_wand": "準備好魔杖", + "iris.bukkit.commandobject.ready_your_wand_2": "準備好魔杖", + "iris.bukkit.commandobject.indicated_scale_exceeds_maximum_downscaled_maximum": "§e說明的比額表超過上限。 縮小至最大 : {maxScale}", + "iris.bukkit.commandobject.updated_wand_objects_iob": "更新的魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.given_new_wand_objects_iob": "給新魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.updated_wand_objects_iob_2": "更新的魔杖 objects/{value}.iob ", + "iris.bukkit.commandobject.placed": "§a已放置 {object}", + "iris.bukkit.commandobject.you_need_hold_your_wand": "§e你得拿著你的魔杖!", + "iris.bukkit.commandobject.file_already_exists_set_overwrite_true_overwrite_it": "§c檔案已經存在 。 設定覆蓋=真以覆蓋它.", + "iris.bukkit.commandobject.failed_save_object_because_ioexception": "§c由於儲存物件失敗 IOException: {value}", + "iris.bukkit.commandobject.successfully_object_saved_objects": "§a成功物件儲存 : {value}/objects/{name}", + "iris.bukkit.commandobject.hold_your_wand_2": "拿著你的魔杖", + "iris.bukkit.commandobject.no_area_selected_2": "未選擇區域 。", + "iris.bukkit.commandobject.reverted_pastes": "§9已還原 {actualReverts}§9 貼紙!", + "iris.bukkit.commandobject.you_can_t_get_worldedit_selection_without_worldedit_you_know": "§c你不能得到一個 WorldEdit 未選擇 WorldEdit你知道嗎?", + "iris.bukkit.commandobject.you_don_t_have_worldedit_selection_this_world": "§c你沒有 WorldEdit 選擇這個世界。", + "iris.bukkit.commandobject.fresh_wand_with_your_current_worldedit_selection_on_it": "§a新的魔杖與您的當前 WorldEdit 選中它!", + "iris.bukkit.commandobject.poof_good_luck_building": "§a豬! 祝你好運建築!", + "iris.bukkit.commandobject.hold_your_wand_3": "§e拿著你的魔杖!", + "iris.bukkit.commandobject.no_area_selected_3": "未選擇區域 。", + "iris.bukkit.commandobject.auto_select_complete": "§a自動選擇完成!", + "iris.bukkit.commandobject.hold_your_wand_4": "§e拿著你的魔杖!", + "iris.bukkit.commandobject.no_area_selected_4": "未選擇區域 。", + "iris.bukkit.commandobject.auto_select_complete_2": "§a自動選擇完成!", + "iris.bukkit.commandpregen.pregen_radius_must_be_greater_than_zero_blocks": "§cPregen半徑必須大於零塊.", + "iris.bukkit.commandpregen.strict_serial_pregeneration_requires_paper_paper_compatible_server": "§c嚴格的序列預生成要求 Paper 或一個 Paper- 相容伺服器。", + "iris.bukkit.commandpregen.engine_access_this_world_is_null": "§c這個世界的引擎是無效的!", + "iris.bukkit.commandpregen.please_make_sure_world_is_loaded_engine_is_initialized_generate": "§c請確保世界充滿 & 引擎已經初始化。 例如, 生成一個新的塊 。", + "iris.bukkit.commandpregen.failed_start_pregeneration_see_console_details": "§c啟動預生成失敗 。 詳情見控制檯。", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_stop": "§e沒有活動生成前任務可停止", + "iris.bukkit.commandpregen.paused_unpaused_pregeneration_task_now": "§a已暫停/ 未停止的生成前任務, 現在 : {value}.", + "iris.bukkit.commandpregen.no_active_pregeneration_tasks_pause_unpause": "§e沒有活動的生成前任務可以暫停/停止 。", + "iris.bukkit.commandpregen.no_active_pregeneration_task": "§e沒有活動生成前任務 。", + "iris.bukkit.commandpregen.pregen": "§a預覽 §6{world}§a: §6{value}/{value2}§a (§6{value3}%§a){value4}", + "iris.bukkit.commandpregen.speed_s_eta_elapsed_method": "§a速度 : §6{value}/s§a ETA: §6{value2}§a 擊落: §6{value3}§a 方法 : §6{value4}{value5}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension": "§c無法解析大小包 {value}", + "iris.bukkit.commandstructure.wrote_structure_index": "§a寫作結構索引 : §f{value}", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_2": "§c無法解析大小包 {value}", + "iris.bukkit.commandstructure.importing_all_vanilla_datapack_structures_into_overwrite": "§a匯入全部原版 & 資料包結構進入 §f{value}§a (覆蓋)...", + "iris.bukkit.commandstructure.import_complete_structures_objects_written_failed": "§a匯入完成 : §f{imported}§a structures/objects 寫, §f{failed}§a 失敗 。", + "iris.bukkit.commandstructure.reference_them_from_biome_region_dimension_structures_list_run_iris": "§7參考生物群落/ 區域/ 構造列表, 或執行 /iris structure list {value} 用於重新整理索引。 重新生成塊以生效 。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_3": "§c無法解析大小包 {value}", + "iris.bukkit.commandstructure.captured_structures_place_them_from_structures_list_regenerate_chunks_delete": "§7已捕獲 {value} 結構。 把它們從“ 結構” 列表中放置, 再生塊 。 刪除 a structures/*.json 重新抓起來", + "iris.bukkit.commandstructure.no_loaded_iris_world_found_join_create_one_first_search": "§c未載入 Iris 發現的世界 {value}. 加入或先建立一個(搜尋會針對一個活的世界).", + "iris.bukkit.commandstructure.selected_iris_world_has_no_active_generator_engine": "§c選中的 Iris 世界沒有活動生成器引擎。", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_4": "§c無法解析大小包 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack": "§c無Iris結構 '{structure}\"在這個包裡\"", + "iris.bukkit.commandstructure.structure_assembled_0_pieces_check_startpool": "§c結構 '{structure}組裝 0 塊( 請檢查 startPool '{value}')", + "iris.bukkit.commandstructure.structure_pieces_footprint_x_blocks_sample_seed_1234": "§a結構 '{structure}': §f{value}§a腳印§f{value2}頁:1{value3}§a塊(樣本種子1234)", + "iris.bukkit.commandstructure.could_not_resolve_pack_dimension_5": "§c無法解析大小包 {value}", + "iris.bukkit.commandstructure.no_iris_structure_this_pack_2": "§c無Iris結構 '{structure}\"在這個包裡\"", + "iris.bukkit.commandstructure.structure_assembled_0_pieces": "§c結構 '{structure}組裝 0 塊", + "iris.bukkit.commandstructure.placed_pieces_at_your_location": "§a已放置 '{structure}' ({value}在您的位置。", + "iris.bukkit.commandstudio.opening_studio_pack_seed": "§a工作室 \"{value}\" 包(種子: {seed})", + "iris.bukkit.commandstudio.provide_dimension_pack_iris_std_importvanilla_pack_dimension": "§c提供一個維度包: /iris std importvanilla pack=", + "iris.bukkit.commandstudio.could_not_resolve_pack_dimension": "§c無法解析大小包 {value}", + "iris.bukkit.commandstudio.opening_vscode_pack": "§a正在 VSCode 中開啟包 \"{value}\"", + "iris.bukkit.commandstudio.pack_has_version": "§a那個 \"{value}\" 包有版本: {value2}", + "iris.bukkit.commandstudio.opening_noise_explorer": "§a開啟噪音探測器!", + "iris.bukkit.commandstudio.cannot_add_items_virtual_inventory_because": "§c無法將專案新增到虛擬庫存中, 因為 : {value}", + "iris.bukkit.commandstudio.opening_inventory_now": "§a現在開啟存貨!", + "iris.bukkit.commandstudio.only_works_iris_world": "§c只有工作在一個 Iris 這個世界!", + "iris.bukkit.commandstudio.you_need_be_specify_iris_generated_world": "§c您需要加入或指定一個 Iris- 創造的世界!", + "iris.bukkit.commandstudio.opening_map": "§a開啟地圖!", + "iris.bukkit.commandstudio.calculating_performance_metrics_noise_generators": "計算噪音生成器的效能計量", + "iris.bukkit.commandstudio.calculating_interpolator_timings": "計算內分泌器...", + "iris.bukkit.commandstudio.processing_generator_scores": "處理生成器分數 : ", + "iris.bukkit.commandstudio.score": "分數 : {value}", + "iris.bukkit.commandstudio.done_with_result": "§a沒問題! {value}", + "iris.bukkit.commandstudio.you_have_be_iris_world_spawn_entities_properly_trying_spawn": "§c你必須在一個 Iris 自然而然的產物 盡力而為", + "iris.bukkit.commandstudio.no_studio_world_is_open": "§c沒有工作室的世界是開放的!", + "iris.bukkit.commandstudio.you_are_already_studio_world": "§c你已經在工作室了!", + "iris.bukkit.commandstudio.sending_you_studio_world": "§a讓你去工作室世界!", + "iris.bukkit.commandstudio.updating_code_workspace": "§6更新程式碼工作空間 {value}...", + "iris.bukkit.commandstudio.updated_code_workspace": "§a更新的程式碼工作空間 {value}", + "iris.bukkit.commandstudio.invalid_project_try_deleting_code_workspace_file_try_again": "§c無效的工程 : {value}. 嘗試刪除程式碼工作空間檔案並再次嘗試 。", + "iris.bukkit.commandstudio.you_must_be_iris_world": "§c你一定在一個 Iris 世界", + "iris.bukkit.commandstudio.you_must_be_iris_world_2": "你一定在Iris世界裡", + "iris.bukkit.commandstudio.capturing_igendata_from_nearby_chunks": "隱藏 IGenData 從 {value} 附近塊。", + "iris.bukkit.commandstudio.reported": "向: {value}", + "iris.bukkit.commandstudio.you_must_have_server_launched_guis_enabled_settings": "§c您必須已啟動伺服器 GUIs 在設定中啟用 !", + "iris.bukkit.commandstudio.players_only": "§c只有球員!", + "iris.bukkit.commandstudio.no_studio_world_is_open_2": "§c沒有工作室的世界是開放的!", + "iris.bukkit.commandstudio.you_must_be_studio_world": "§c你一定在一個工作室的世界!", + "iris.bukkit.commandwhat.material": "材料 : §a{value}", + "iris.bukkit.commandwhat.full": "滿: §f{value}", + "iris.bukkit.commandwhat.please_hold_block_item": "請稍等", + "iris.bukkit.commandwhat.material_2": "材料 : §a{value}", + "iris.bukkit.commandwhat.please_hold_block_item_2": "請稍等", + "iris.bukkit.commandwhat.ibiome": "IBiome: {value} ({value2})", + "iris.bukkit.commandwhat.non_iris_biome": "無Iris 生物群落: {value}", + "iris.bukkit.commandwhat.data_pack_biome_id": "數據包 Biome :{value}(編號:{value2})", + "iris.bukkit.commandwhat.iregion": "IRegion: {value} ({value2})", + "iris.bukkit.commandwhat.iris_worlds_only": "§a只有愛裡斯的世界。", + "iris.bukkit.commandwhat.please_look_at_any_block_not_at_sky": "請看任何街區,不要看天空", + "iris.bukkit.commandwhat.material_3": "材料 : §a{value}", + "iris.bukkit.commandwhat.full_2": "滿: §f{value}", + "iris.bukkit.commandwhat.storage_block_loot_capable": "§e* 存儲區塊(搶掠能力)", + "iris.bukkit.commandwhat.lit_block_light_capable": "§e* 立方塊(燈光能力)", + "iris.bukkit.commandwhat.foliage_block": "§e* 葉片塊", + "iris.bukkit.commandwhat.decorant_block": "§e* 裝飾性塊", + "iris.bukkit.commandwhat.fluid_block": "§e* 流體塊", + "iris.bukkit.commandwhat.plantable_foliage_block": "§e* 植物葉片塊", + "iris.bukkit.commandwhat.solid_block": "§e* 固體塊", + "iris.bukkit.commandwhat.found_nearby_markers": "發現{value}臨近標記( N){marker})", + "iris.bukkit.commandwhat.iris_worlds_only_2": "§a只有愛裡斯的世界。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.console_must_name_biome_iris_edit_biome_key": "控制檯必須命名一個 biome: /iris edit biome ", + "iris.modded.irismoddedcommands.biome_lookup_failed": "Biome 搜尋失敗 : {value}", + "iris.modded.irismoddedcommands.unknown_biome": "未知生物儀 : {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_2": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.console_must_name_region_iris_edit_region_key": "控制檯必須指定一個區域: /iris edit region ", + "iris.modded.irismoddedcommands.region_lookup_failed": "區域搜尋失敗 : {value}", + "iris.modded.irismoddedcommands.unknown_region": "未知區域 : {key}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_3": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.cannot_open_files_here": "無法在此開啟檔案 : {value}", + "iris.modded.irismoddedcommands.cannot_find_file_perhaps_it_was_not_loaded_directly_from": "無法找到檔案; 也許它不是直接從檔案中載入的 ?", + "iris.modded.irismoddedcommands.could_not_open": "無法開啟 {value}: {value2}", + "iris.modded.irismoddedcommands.opening_your_editor": "開幕 {value} {value2} 在你的編輯。", + "iris.modded.irismoddedcommands.console_must_name_player_iris_tp_dimension_player": "控制檯必須給玩家命名 : /iris tp ", + "iris.modded.irismoddedcommands.is_not_generated_by_iris": "{value} 不由 Iris.", + "iris.modded.irismoddedcommands.teleport_failed_dimension_is_not_loaded": "Teleport 失敗: 維度 {dimensionId} 未載入。", + "iris.modded.irismoddedcommands.teleporting": "遠端傳送 {value} 改為: {dimensionId}...", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_2": "{value} 不由 Iris.", + "iris.modded.irismoddedcommands.cannot_evacuate_primary_world_there_is_nowhere_send_players": "無法撤離主世界; 沒有地方可以傳送玩家 。", + "iris.modded.irismoddedcommands.evacuated_player_s_from": "已撤離{count}玩家從{value}改為:{value2}.", + "iris.modded.irismoddedcommands.set_debug": "設定除錯到 : {to}", + "iris.modded.irismoddedcommands.hotloaded_settings": "熱載設定", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects": "此命令只能被玩家使用( 它檢查您持有的專案) 。", + "iris.modded.irismoddedcommands.your_main_hand_is_empty": "汝主手執空.", + "iris.modded.irismoddedcommands.hand_x": "手執: {value} x{value2}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_4": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_5": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.is_not_generated_by_iris_see_iris_info_loaded_iris": "{value} 不由 Iris; 見 /iris info 用於載入 Iris 維度。", + "iris.modded.irismoddedcommands.current_dimension_is_not_generated_by_iris_name_one_explicitly": "目前的層面{value})不是由Iris.明確名稱:/iris pregen start {radius} ; 見/iris info用於載入Iris維度。", + "iris.modded.irismoddedcommands.pregeneration_task_is_already_running_stop_it_first_with_iris": "生成前的任務已經在執行中 。 先別鬧了 /iris pregen stop.", + "iris.modded.irismoddedcommands.pregen_started_by_blocks_from_progress_logs_console_see_iris": "Pregen 開始於 {value} 頁:1 {value2} 由 {value3} 塊從 {centerX},{centerZ}.{modeNote} 要控制檯的進度日誌; 參見 /iris pregen status.{guiNote}", + "iris.modded.irismoddedcommands.stopping_pregeneration_finishing_up_current_region": "停止預生成; 完成當前區域...", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_stop": "無活動生成前任務可停止 。", + "iris.modded.irismoddedcommands.no_active_pregeneration_task_pause_resume": "沒有活動生成前任務可以暫停/恢復 。", + "iris.modded.irismoddedcommands.pregeneration_is_now": "早產是現在 {value}.", + "iris.modded.irismoddedcommands.no_active_pregeneration_task": "沒有活動生成前任務 。", + "iris.modded.irismoddedcommands.iris_by_volmit_software_on_minecraft_iris_dimension_s": "Iris {value}由Volmit Software打開{value2} (Minecraft {value3}), {engines} Iris維度", + "iris.modded.irismoddedcommands.loaded_dimensions_iris": "載入的維度 : {total} ({iris} Iris)", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_2": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_6": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.biome": "生物群落: {value} ({value2})", + "iris.modded.irismoddedcommands.biome_lookup_failed_2": "Biome 搜尋失敗 : {value}", + "iris.modded.irismoddedcommands.region": "地區: {value} ({value2})", + "iris.modded.irismoddedcommands.region_lookup_failed_2": "區域搜尋失敗 : {value}", + "iris.modded.irismoddedcommands.cave_biome": "洞穴生物儀: {value}", + "iris.modded.irismoddedcommands.cave_biome_lookup_failed": "洞穴生物探測失敗 : {value}", + "iris.modded.irismoddedcommands.surface_block_y": "表面塊 : {value} (y={value2})", + "iris.modded.irismoddedcommands.position_chunk": "位置 : {value} {value2} {value3} (chunk {value4},{value5})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_it_inspects_2": "此命令只能被玩家使用( 它檢查您正在檢視的塊) 。", + "iris.modded.irismoddedcommands.look_at_block_not_sky": "看一個街區,不是天空。", + "iris.modded.irismoddedcommands.block_y": "塊 : {value} (y={value2})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_markers_render": "此命令只能被玩家使用( 標記渲染為您周圍的粒子) 。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_7": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.scanning_markers_around_you": "掃描“{marker}你身邊的標記...", + "iris.modded.irismoddedcommands.marker_scan_failed": "標記掃描失敗 : {value}", + "iris.modded.irismoddedcommands.found_nearby_marker_s": "發現 {value} 附近標記(s) ({marker})", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_3": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_8": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.unknown_biome_2": "未知生物儀 : {key}", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_4": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_9": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.unknown_region_2": "未知區域 : {key}", + "iris.modded.irismoddedcommands.is_not_defined_dimension": "{value} 維度中沒有定義!", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_10": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.is_not_configured_any_region_biome_object_placements_object_keys": "{key} 未在任何區域/生物物體佈置中配置({value} 物件金鑰已載入).", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_object_key": "此命令只能被玩家使用. (物件金鑰”{key}`針對 {value} 已載入物件金鑰)", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_11": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.name_iris_native_structure_locate": "名稱 Iris 或本地結構來定位。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_5": "此命令只能由玩家使用。", + "iris.modded.irismoddedcommands.unknown_structure_use_tab_completion_choose_iris_placement_registered_native": "未知結構 '{key}'. 使用標籤補全來選擇 Iris 放置或註冊的本地/資料包結構。", + "iris.modded.irismoddedcommands.searching_native_structure_within_chunks": "尋找本地結構 {value} 在內部 {NATIVESTRUCTURELOCATERADIUS} 塊...", + "iris.modded.irismoddedcommands.searching_iris_placed_structure": "正在尋找 Iris- 安置結構 {key}...", + "iris.modded.irismoddedcommands.unable_locate_iris_placed_structure_density_search_safety_limit_was": "無法定位 Iris- 安置結構 {key}: 密度搜尋安全限值在完整前達到 1024- 半徑被搜查了", + "iris.modded.irismoddedcommands.could_not_find_iris_placed_structure_within_1024_chunks": "無法找到 Iris- 安置結構 {key} 在內部 1024 塊。", + "iris.modded.irismoddedcommands.search_failed": "搜尋失敗 : {value}", + "iris.modded.irismoddedcommands.could_not_find_native_structure_within_chunks": "找不到本地結構 {value} 在內部 {NATIVESTRUCTURELOCATERADIUS} 塊。", + "iris.modded.irismoddedcommands.search_native_structure_failed": "搜尋本地結構 {value} 失敗 : {value2}", + "iris.modded.irismoddedcommands.player_disconnected_before_structure_search_completed": "玩家在結構搜尋完成前斷開.", + "iris.modded.irismoddedcommands.you_changed_dimensions_before_structure_search_completed_run_command_again": "您在結構搜尋完成前更改了維度; 再次執行命令 。", + "iris.modded.irismoddedcommands.found_at_but_teleportation_failed": "發現 {label} 時間 {targetX} {clampedY} {targetZ}但是電傳失敗了", + "iris.modded.irismoddedcommands.teleported_at": "傳送到 {label} 時間 {targetX} {clampedY} {targetZ}", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_12": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.structure_reachability_native_generation_eligible_iris_placed_native_disabled_native": "結構可達性: {available} 當地一代人, {irisPlaced} Iris- 已經安排好了 {disabled} 本地殘疾人; {suppressed} 原生替換為 Iris 安置人員, {unreachableBiomes} 被這群生物群落所排斥,還有 {unsupported} 已註冊的本地結構不支援這一方面。 使用 /iris structure verify 一個結構。", + "iris.modded.irismoddedcommands.structure_is_iris_placed_locatable_with_iris_goto_structure": "結構 {key} 這是 Iris- 放置和可移動 /iris goto structure {key2}.", + "iris.modded.irismoddedcommands.unknown_structure_it_is_neither_iris_placed_nor_registered_by": "未知結構 '{key}'. 兩者都不是 Iris- 被原版或資料包放置或登記。", + "iris.modded.irismoddedcommands.structure_is_explicitly_replaced_by_iris_placement_locatable_with_iris": "結構 {value} 明確替換為 Iris 放置和可移動 /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.native_structure_is_enabled_supported_by_this_dimension_s_generator": "本地結構 {value} 被啟用,由此維的生成狀態支援,並可用 /iris goto structure {value2}.", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_13": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.this_command_can_only_be_used_by_players_poi_type": "此命令只能被玩家使用. (POI 型別“{type}`已接受)", + "iris.modded.irismoddedcommands.searching": "正在尋找 {label}...", + "iris.modded.irismoddedcommands.engine_this_world_has_been_closed_rejoin_dimension_try_again": "這個世界的引擎已經關閉;重新加入維度並再次嘗試。", + "iris.modded.irismoddedcommands.search_failed_2": "搜尋失敗 : {failure}", + "iris.modded.irismoddedcommands.could_not_find_within_search_timeout": "無法找到 {label} 在搜尋超時中。", + "iris.modded.irismoddedcommands.teleported_at_2": "傳送到 {label} 時間 {blockX} {blockY} {blockZ}", + "iris.modded.irismoddedcommands.engine_changed_while_locating_try_again": "定位時引擎改變 {label}再試一次", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_14": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.world_seed": "世界種子: {value}", + "iris.modded.irismoddedcommands.engine_seed_mixed": "引擎種子 : {value} (混合為: {value2})", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_15": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.downloading_irisdimensions": "下載 IrisDimensions/{pack} ({downloadSource})...", + "iris.modded.irismoddedcommands.pack_installed_its_exact_dimension_types_custom_biomes_join_forced": "包{pack}'已安裝。 它的精確維度型別和自定義生物群落 加入強制 Iris 下一個伺服器上的資料包重新啟動; 在此包建立世界之前重新啟動。", + "iris.modded.irismoddedcommands.pack_download_failed_see_console": "包下載失敗 {pack} ({downloadSource}; 見控制檯)。", + "iris.modded.irismoddedcommands.this_dimension_is_not_generated_by_iris_16": "此維度不是由 Iris 生成的。", + "iris.modded.irismoddedcommands.generated_chunk_s_s": "生成 :{value}塊,{value2}/編號", + "iris.modded.irismoddedcommands.ms": " {value}: {value2}ms", + "iris.modded.moddedcommandhelp.unknown_iris_help_section": "不詳 Iris 幫助區域 : {normalized}", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_engine_not_started_pack_heights_unknown": "{dimensionId}型別={typeKey} 活動={activeMin}..{activeMax} 邏輯={value} (包={value2},引擎未啟動;包高度未知)", + "iris.modded.moddeddatapackcommands.type_active_logical_pack_wants_logical": "{dimensionId}型別={typeKey} 活動={activeMin}..{activeMax} 邏輯={value} | pack '{value2}願望 {packMin}..{packMax} 邏輯={packLogical} | {value3}{value4}", + "iris.modded.moddeddatapackcommands.warning_active_dimension_type_does_not_match_pack_iris_will": " 警告:活動維度型別與包不匹配. Iris 將拒絕啟動這個世界引擎 而不是剪下地形。 執行 /iris world enable 為新世界,或 /iris datapack install 用於已載入 Iris 維度,然後重新啟動。", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_are_loaded": "沒有 Iris 維度已載入。", + "iris.modded.moddeddatapackcommands.all_iris_dimension_s_match_their_pack_height_ranges": "全體{irisLevels} Iris維度與其包高程相符。", + "iris.modded.moddeddatapackcommands.engine_not_started_cannot_derive_its_dimension_type_yet": "{value}: 引擎尚未啟動;尚不能得出其維度型別。", + "iris.modded.moddeddatapackcommands.dimension_type_generation_failed": "{value}: 維度型別生成失敗 : {value2}", + "iris.modded.moddeddatapackcommands.failed_write": "寫入失敗 {output}: {value}", + "iris.modded.moddeddatapackcommands.no_iris_dimensions_with_running_engines_found_nothing_was_installed": "沒有 Iris 找到有執行中的引擎的維度; 沒有安裝 。", + "iris.modded.moddeddatapackcommands.failed_write_2": "寫入失敗 {mcmeta}: {value}", + "iris.modded.moddeddatapackcommands.wrote": "編劇 {path}", + "iris.modded.moddeddatapackcommands.world_datapack_dimension_type_overrides_installed_restart_server_dimension_types": "世界資料包 '{WORLDPACKNAME}' 維度型別已安裝。 重新啟動用於應用維度型別的伺服器 。", + "iris.modded.moddeddatapackcommands.configured_datapack_imports": "已配置資料包匯入 : {value}", + "iris.modded.moddeddatapackcommands.message": " - {url}", + "iris.modded.moddeddatapackcommands.modrinth_ingest_is_bukkit_only_install_these_manually_into_world": "Modrinth 攝入是 Bukkit- 只安裝; 手動安裝到 world/datapacks 如果需要的話。", + "iris.modded.moddeddatapackcommands.installed_world_datapacks": "安裝的世界資料包 : {value}", + "iris.modded.moddeddatapackcommands.message_2": " - {name}", + "iris.modded.moddeddevelopercommands.dispatched_test_exception_iris_error_reporter_sentry_if_enabled": "已向 Iris 錯誤報告器傳送測試例外(若已啟用 Sentry)。", + "iris.modded.moddeddevelopercommands.message": " {value}", + "iris.modded.moddeddevelopercommands.network_scan_failed": "網路掃描失敗 : {value}", + "iris.modded.moddedgoldenhash.goldenhash_scan_is_already_running": "金色掃描已經執行中 。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_wand_is": "此命令只能被玩家使用. (魔杖是實物)", + "iris.modded.moddedobjectcommands.your_inventory_is_full": "你的存貨滿了", + "iris.modded.moddedobjectcommands.poof_good_luck_building_left_click_corner_1_right_click": "豬! 祝你好運建築! (左鍵=角 1,右鍵點選=角 2)", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_dust_is": "此命令只能被玩家使用. (塵是有形物品)", + "iris.modded.moddedobjectcommands.your_inventory_is_full_2": "你的存貨滿了", + "iris.modded.moddedobjectcommands.right_click_block_reveal_object_it_belongs": "右鍵單擊塊以顯示其所屬物件。", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_saving_captures": "此命令只能被玩家使用. (拯救抓住你的魔杖選擇)", + "iris.modded.moddedobjectcommands.this_dimension_is_not_generated_by_iris_objects_save_into": "此維度不是由 Iris;物件儲存到維度包中。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand": "拿著 Iris 魔杖 魔棍 (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected_left_right_click_blocks_with_wand_first": "未選擇區域 。 左/右點選帶魔杖的塊。", + "iris.modded.moddedobjectcommands.invalid_object_name": "無效的物件名稱 : {nameRaw}", + "iris.modded.moddedobjectcommands.selection_too_large_blocks_max": "選擇太大 :{volume}塊(最大值){MAXSAVEVOLUME}).", + "iris.modded.moddedobjectcommands.file_already_exists_use_iris_object_save_overwrite": "檔案已經存在 。 使用 /iris object save overwrite {name}", + "iris.modded.moddedobjectcommands.failed_save_object": "儲存物件失敗 : {value}", + "iris.modded.moddedobjectcommands.saved_objects_iob_x_x_block_s": "已儲存 {value}/objects/{name}.iob: {w}x{h}x{d}, {value2} 塊( B){tileNote}", + "iris.modded.moddedobjectcommands.unknown_empty_object": "未知或空物件 : {key}", + "iris.modded.moddedobjectcommands.console_must_specify_coordinates_iris_object_paste_at_x_y": "控制檯必須指定座標 : /iris object paste at [rotate ] {key}", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block_within_blocks": "你不看一個街區裡面 {value} 塊。", + "iris.modded.moddedobjectcommands.paste_failed_partial_changes_recorded_undo": "貼上失敗 : {value} (部分更改記錄為撤銷)", + "iris.modded.moddedobjectcommands.placed_at_rot_write_s_non_air": "已放置 {key} 時間 {value} {value2} {value3} 腐爛={rotation} ({value4} 寫入(s) {value5} 非空調{tileNote})", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.hold_your_iris_wand_iris_wand_2": "拿著 Iris 魔杖 魔棍 (/iris wand)", + "iris.modded.moddedobjectcommands.no_area_selected": "未選擇區域 。", + "iris.modded.moddedobjectcommands.message": "{value} {amount} {value2}: {value3}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_2": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.ready_your_wand_iris_wand": "準備好魔杖 (/iris wand)", + "iris.modded.moddedobjectcommands.you_are_not_looking_at_block": "你沒在看一個街區。", + "iris.modded.moddedobjectcommands.position_set": "立場 {value} 設定為 {value2} {value3} {value4}", + "iris.modded.moddedobjectcommands.this_command_can_only_be_used_by_players_3": "此命令只能由玩家使用。", + "iris.modded.moddedobjectcommands.hold_your_wand": "拿著你的魔杖!", + "iris.modded.moddedobjectcommands.no_area_selected_2": "未選擇區域 。", + "iris.modded.moddedobjectcommands.selection_too_large_auto_select_blocks_max": "選擇太大, 無法自動選擇 :{volume}塊(最大值){MAXAUTOSELECTVOLUME}).", + "iris.modded.moddedobjectcommands.auto_select_complete": "自動選擇完成 : {value}", + "iris.modded.moddedobjectcommands.unknown_object": "未知物件 : {key}", + "iris.modded.moddedobjectcommands.object_size": "物件大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.blocks_used": "使用的塊 : {value}", + "iris.modded.moddedobjectcommands.blocks_object": "==:", + "iris.modded.moddedobjectcommands.message_2": " - {value} * {value2}", + "iris.modded.moddedobjectcommands.other_block_state_s": " + {remaining}其他塊狀態", + "iris.modded.moddedobjectcommands.unknown_object_2": "未知物件 : {key}", + "iris.modded.moddedobjectcommands.current_object_size": "當前物件大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.new_object_size": "新物件大小 : {value} * {value2} * {value3}", + "iris.modded.moddedobjectcommands.object_has_no_load_file_cannot_persist_shrink": "物件沒有負載檔案; 無法堅持縮寫 。", + "iris.modded.moddedobjectcommands.failed_save_object_2": "儲存物件失敗 {value}: {value2}", + "iris.modded.moddedobjectcommands.invalid_reach": "無效的覆蓋 : {token}", + "iris.modded.moddedobjectcommands.no_objects_matched": "未匹配物件 : {target}", + "iris.modded.moddedobjectcommands.plausibilize_reach_queued_object_s": "鋪設 [reach={reach}{value}] 已排隊 {value2} 物件( S)", + "iris.modded.moddedobjectcommands.nothing_undo": "沒有什麼可以彌補的。", + "iris.modded.moddedobjectcommands.reverted_paste_s": "已還原{reverted}粘貼!", + "iris.modded.moddedpackcommands.packs_folder_not_found": "未找到資料夾 : {value}", + "iris.modded.moddedpackcommands.no_packs_validate_under": "沒有包可以驗證 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under": "包{pack}'未發現於 {value}", + "iris.modded.moddedpackcommands.validating_pack_s": "驗證{value}包...", + "iris.modded.moddedpackcommands.validation_failed": "驗證 '{value}' 失敗 : {value2}", + "iris.modded.moddedpackcommands.validation_complete_broken_packs": "鑑定完畢 破損的包: {brokenTotal}/{value}", + "iris.modded.moddedpackcommands.pack_not_found_under_2": "包{pack}'未發現於 {value}", + "iris.modded.moddedpackcommands.pack_not_found_under_3": "包{pack}'未發現於 {value}", + "iris.modded.moddedpackcommands.no_validation_results_recorded_run_iris_pack_validate_first": "未記錄驗證結果. 執行 /iris pack validate 先說", + "iris.modded.moddedpackcommands.blocking_warnings": "{tag} {value} (阻斷={value2}時,警告={value3})", + "iris.modded.moddedpackcommands.no_validation_result_run_iris_pack_validate": "沒有驗證結果 '{pack}'. 執行 /iris pack validate {pack2}.", + "iris.modded.moddedpackcommands.pack_is_loadable_warnings": "包{value}'是可裝載的。 (警報={value2})", + "iris.modded.moddedpackcommands.pack_is_broken": "包{value}'為. 損壞:", + "iris.modded.moddedpackcommands.message": " - {reason}", + "iris.modded.moddedpackcommands.message_2": " ! {value}", + "iris.modded.moddedpackcommands.more_warning_s": " ...和{value}更多警告。", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack": "沒有找到包的清理候選人 '{pack}'.", + "iris.modded.moddedpackcommands.cleanup_preview_pack_candidate_s_no_files_were_changed": "包的清理預覽{pack}': {value}候選人。沒有更改文件 。", + "iris.modded.moddedpackcommands.run_iris_pack_cleanup_apply_quarantine_after_fresh_scan": "執行 /iris pack cleanup {pack} apply 重新掃描後隔離", + "iris.modded.moddedpackcommands.no_cleanup_candidates_found_pack_2": "沒有找到包的清理候選人 '{pack}'.", + "iris.modded.moddedpackcommands.quarantined_cleanup_candidate_s_under": "檢疫{value}清理候選人{value2}.", + "iris.modded.moddedpackcommands.nothing_restore_pack": "沒有東西可以還原{pack}'.", + "iris.modded.moddedpackcommands.restore_preview_file_s_no_files_were_changed": "恢復預覽{value}: {value2}文件。沒有更改文件 。", + "iris.modded.moddedpackcommands.restore_is_blocked_by_existing_destination_s": "恢復被阻斷{value}現有目的地。", + "iris.modded.moddedpackcommands.run_iris_pack_restore_apply_restore_after_fresh_conflict_check": "執行 /iris pack restore {pack} apply 在重新核對衝突後恢復。", + "iris.modded.moddedpackcommands.restore_refused_because_destination_s_already_exist": "還原被拒絕,因為{value}目的地已經存在。", + "iris.modded.moddedpackcommands.nothing_restore_pack_2": "沒有東西可以還原{pack}'.", + "iris.modded.moddedpackcommands.restored_file_s_from": "已恢復{value}文件從{value2}.", + "iris.modded.moddedpackcommands.message_3": " - {label}: {value}", + "iris.modded.moddedpackcommands.more": " ... 和 {value} 再來", + "iris.modded.moddedregen.regen_is_already_running": "Regen 已經執行了 。", + "iris.modded.moddedstructurecommands.this_dimension_is_not_generated_by_iris_run_this_from": "此維度不是由 Iris. 執行此從一個 Iris 維度可以解決包。", + "iris.modded.moddedstructurecommands.wrote_structure_index": "寫作結構索引 : {value}", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack": "無Iris結構 '{key}\"在這個包裡\"", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces_check_startpool": "結構 '{key}組裝 0 塊( 請檢查 startPool '{value}')", + "iris.modded.moddedstructurecommands.structure_pieces_footprint_x_blocks_sample_seed_1234": "結構 '{key}': {value}腳印{value2}頁:1{value3}塊(樣本種子1234)", + "iris.modded.moddedstructurecommands.this_command_can_only_be_used_by_players_structure_is": "此命令只能被玩家使用(結構在您的位置組裝).", + "iris.modded.moddedstructurecommands.no_iris_structure_this_pack_2": "無Iris結構 '{key}\"在這個包裡\"", + "iris.modded.moddedstructurecommands.structure_assembled_0_pieces": "結構 '{key}組裝 0 塊", + "iris.modded.moddedstructurecommands.place_failed_partial_changes_recorded_undo": "位置失敗 : {value} (部分更改記錄為撤銷)", + "iris.modded.moddedstructurecommands.placed_pieces_write_s_at_your_location_iris_object_undo": "已放置 '{key}' ({value}塊,{value2}寫入{tileNote}在你的地點。 /iris object undo將返回。", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed": "提供一個維度包: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_noise_explorer_on_server_display": "在伺服器顯示上開啟噪音探索器 。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_run_iris_studio": "此維度不是由 Iris; 執行 /iris studio noise 從 a Iris 以解析生成器,或省略生成器名稱。", + "iris.modded.moddedstudiocommands.unknown_generator_pack": "未知的生成器 '{generatorKey}包 {value}.", + "iris.modded.moddedstudiocommands.opening_noise_explorer_generator_seed": "開啟生成器的噪音探索器 '{value}'(種子 {seed}).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_stand_iris_studio": "此維度不是由 Iris; 站在一個 Iris (或工作室) 維度和執行 /iris studio map.", + "iris.modded.moddedstudiocommands.opening_vision_map_on_server_display": "開啟遠景圖 {value} 在伺服器顯示中。", + "iris.modded.moddedstudiocommands.failed_write_workspace": "寫入工作空間失敗 {value}: {value2}", + "iris.modded.moddedstudiocommands.workspace_regenerated_with_json_schemas_autocomplete": "工作空間重生成 : {value} 與 JSON 自動完成的計劃。", + "iris.modded.moddedstudiocommands.could_not_open": "無法開啟 {value}: {value2}", + "iris.modded.moddedstudiocommands.opening_your_editor": "開幕 {value} 在你的編輯。", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris_specify_pack_name": "此維度不是由 Iris; 明確指定包名。", + "iris.modded.moddedstudiocommands.pack_not_found_under": "包{name}'未發現於 {value}", + "iris.modded.moddedstudiocommands.provide_dimension_pack_iris_studio_open_pack_seed_2": "提供一個維度包: /iris studio open [seed]", + "iris.modded.moddedstudiocommands.opening_studio_seed": "開幕工作室{pack}'(種子 {seed})...", + "iris.modded.moddedstudiocommands.pack_missing_downloading_irisdimensions": "包{pack}' 缺少; 下載 IrisDimensions/{pack2}...", + "iris.modded.moddedstudiocommands.pack_could_not_be_downloaded_check_name_try_iris_download": "包{pack}' 無法下載; 請檢查名稱並嘗試 /iris download {pack2}.", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json": "包{pack}沒有 dimensions/{pack2}.json", + "iris.modded.moddedstudiocommands.studio_open_failed": "工作室開啟失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_injection_failed": "工作室注入失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.console_studio_open_now_runs_seed_transient_not_written_iris": "控制檯工作室開啟 : {dimensionId} 現在執行“{pack}種子 {seed} (短暫;不寫給 iris-dimensions.json 並在重新啟動時清除).", + "iris.modded.moddedstudiocommands.enter_it_with_execute_run_tp_s_8_5_8": "輸入方式 : /execute in {dimensionId} run tp @s 8.5 {surface} 8.5", + "iris.modded.moddedstudiocommands.pregen_it_with_iris_pregen_start_radius": "給它預留: /iris pregen start {dimensionId}", + "iris.modded.moddedstudiocommands.remove_it_with_iris_studio_close": "刪除方式: /iris studio close", + "iris.modded.moddedstudiocommands.studio_injection_failed_2": "工作室注入失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_open_now_runs_seed_use_iris_studio_close_when": "工作室開啟 : {dimensionId} 現在執行“{pack}種子 {seed}. 使用 /iris studio close 當完成。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open": "你沒有開放的工作室。 使用 /iris studio open 先說", + "iris.modded.moddedstudiocommands.studio_close_failed": "工作室關閉失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.studio_closed_was_evacuated_unloaded_its_region_data_deleted": "工作室關閉 : {dimensionId} 並刪除其區域資料。", + "iris.modded.moddedstudiocommands.no_studio_dimensions_are_currently_open": "目前沒有工作室維度開啟.", + "iris.modded.moddedstudiocommands.active_studio_dimension_s": "活動工作室維度( S): {value}", + "iris.modded.moddedstudiocommands.pack_seed_owner": " {value}: 包 '{value2}種子 {value3} 擁有者 {ownerName}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players": "此命令只能由玩家使用。", + "iris.modded.moddedstudiocommands.you_do_not_have_open_studio_use_iris_studio_open_2": "你沒有開放的工作室。 使用 /iris studio open 先說", + "iris.modded.moddedstudiocommands.your_studio_dimension_is_no_longer_loaded_use_iris_studio": "你的工作室的維度已經沒有了 使用 /iris studio open 再來一次", + "iris.modded.moddedstudiocommands.teleported_your_studio": "電傳到你的工作室({dimensionId}).", + "iris.modded.moddedstudiocommands.pack_has_no_dimensions_json_2": "包{value}沒有 dimensions/{value2}.json", + "iris.modded.moddedstudiocommands.pack_has_version": "那個 \"{value}\" 包有版本: {value2}", + "iris.modded.moddedstudiocommands.invalid_project_name_allowed_z_0_9": "無效的工程名稱 '{nameRaw}'(獲批准:a-z, 0-9時, 和 -)", + "iris.modded.moddedstudiocommands.pack_already_exists_at": "包{name}' 已經存在於 {value}", + "iris.modded.moddedstudiocommands.creating_project_from_template": "建立工程 '{name}'從模板'{template}'...", + "iris.modded.moddedstudiocommands.template_is_not_installed_downloading_irisdimensions": "模板{template}'未安裝;下載 IrisDimensions/{template2}...", + "iris.modded.moddedstudiocommands.template_could_not_be_downloaded_install_pack_with_dimensions_json": "模板{template}' 無法下載;安裝一個包 dimensions/{template2}.json 先說", + "iris.modded.moddedstudiocommands.created_project_at": "建立的工程 '{name}時 {value}", + "iris.modded.moddedstudiocommands.edit_dimensions_json_rest_pack_vscode_workspace_with_json_schema": "編輯 dimensions/{name}.json 還有剩下的包 A VSCode 工作空間 JSON 生成了 schema 自動完成; 開啟或重執行 /iris studio vscode.", + "iris.modded.moddedstudiocommands.project_creation_failed": "工程建立失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.packaging_dimension": "包維度 '{dimKey}'...", + "iris.modded.moddedstudiocommands.package_compiled": "彙編的軟體包 : {value}", + "iris.modded.moddedstudiocommands.packaging_failed": "包失敗 : {value}{errorMessage}", + "iris.modded.moddedstudiocommands.this_command_can_only_be_used_by_players_sampling_is": "此命令只能被玩家使用(樣本以你的位置為中心).", + "iris.modded.moddedstudiocommands.this_dimension_is_not_generated_by_iris": "此維度不是由 Iris 生成的。", + "iris.modded.moddedstudiocommands.sampling_region_distribution_x_chunks_around_you": "抽樣地區分佈 {value}x{value2} 環繞著你...", + "iris.modded.moddedstudiocommands.rarity": "{key}: 罕見={rarity} / {value}%", + "iris.modded.moddedstudiocommands.region_sampling_failed": "區域取樣失敗 : {value}", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions": "包{pack}'未安裝;下載 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with": "包{pack}' 無法下載; 檢查名稱或安裝 /iris download {pack2}.", + "iris.modded.moddedworldcommands.failed_inject_iris_world": "注入失敗 Iris 世界{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.created_iris_world_from_pack_dimension_seed": "建立 Iris 世界 {dimensionId} 從包\"{pack}\" 維度 \"{packDimension}'(種子 {seed}).", + "iris.modded.moddedworldcommands.it_is_live_now_re_injected_on_every_startup_teleport": "它現在正在直播,並在每次啟動時重新注入。 傳送到 /iris world status 或入口網站;不需要重新啟動。", + "iris.modded.moddedworldcommands.failed_inject_iris_primary_world": "注入失敗 Iris 初級世界: {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_primary_world_set_pack_dimension_seed": "Iris 初級世界 {dimensionId} (pack '{pack}\" 維度 \"{packDimension}種子 {seed}).", + "iris.modded.moddedworldcommands.vanilla_overworld_generator_cannot_be_hot_swapped_so_this_does": "原版主世界生成器無法熱替換,因此此操作不會重新生成現有的主世界。", + "iris.modded.moddedworldcommands.instead_is_now_configured_primary_world_players_vanilla_overworld_are": "相反, {dimensionId} 現在是配置的初級世界:在原版覆蓋世界的玩家在加入時會在那裡經過路由,並且在每次啟動時都會重新注入.", + "iris.modded.moddedworldcommands.iris_main_world_override_cleared_overworld_keeps_its_current_generator": "Iris 關閉主世界。 覆蓋世界保留其當前生成器; 編輯 server.properties 級別型別並重新啟動以將其修改回。", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random": "無效的種子 '{seedRaw}'. 使用數字或“ 隨機” 。", + "iris.modded.moddedworldcommands.pack_is_not_installed_downloading_irisdimensions_2": "包{pack}'未安裝;下載 IrisDimensions/{pack2}...", + "iris.modded.moddedworldcommands.pack_could_not_be_downloaded_check_name_install_it_with_2": "包{pack}' 無法下載; 檢查名稱或安裝 /iris download {pack2}.", + "iris.modded.moddedworldcommands.pack_is_not_ready_yet_still_loading_validating_try_command": "包{pack}'尚未準備好(仍在載入或驗證中)。 一會兒再試試命令", + "iris.modded.moddedworldcommands.failed_write_server_properties_check_file_permissions_set_level_type": "寫入失敗 server.properties; 檢查檔案許可權並手動設定級別型別.", + "iris.modded.moddedworldcommands.iris_main_world_set_preset_seed": "Iris 主要世界設定為`{pack}'(預設 {preset}種子 {value}).", + "iris.modded.moddedworldcommands.server_properties_level_type_is_now_on_next_restart_overworld": "server.properties 關卡型別現在 {preset}. 在接下來的重現世界時, 網羅, 結束再生像這樣 Iris 這個世界", + "iris.modded.moddedworldcommands.player_data_inventories_advancements_stats_is_kept_existing_terrain_those": "玩家資料(發明,進步,統計)儲存;這些維度的現有地形被替換. 這適用一次。", + "iris.modded.moddedworldcommands.mainworldautorestart_is_enabled_stopping_server_now_so_your_restart_wrapper": "mainWorldAutoRestart 已啟用 - 停止伺服器, 因此您重新啟動的包器將它帶回新的主世界 。", + "iris.modded.moddedworldcommands.restart_server_now_generate_it_set_mainworldautorestart_true_modded_json": "現在重新啟動伺服器以生成它 。 (設定 mainWorldAutoRestart真實的 modded.json 擁有 Iris 為您停止伺服器。 )", + "iris.modded.moddedworldcommands.refusing_create_world_using_pack_because_required_validation_failed": "拒絕創造世界 '{dimensionId}\" 使用包 \"{pack}' 因為所需的驗證失敗 :", + "iris.modded.moddedworldcommands.message": " - {reason}", + "iris.modded.moddedworldcommands.fix_pack_run_iris_pack_validate_revalidate": "修復內容包,然後執行 /iris pack validate {pack} 重新驗證。", + "iris.modded.moddedworldcommands.pack_was_not_found_under": "包{pack}`未發現於 {value}", + "iris.modded.moddedworldcommands.pack_does_not_contain_dimensions_json": "包{pack}'不包含 dimensions/{packDimension}.json", + "iris.modded.moddedworldcommands.invalid_pack_reference_use_pack_pack_dimensionkey": "無效的包引用 '{pack}{value}'. 使用包或包 :dimensionKey.", + "iris.modded.moddedworldcommands.invalid_seed_use_number_random_2": "無效的種子 '{seedRaw}'. 使用數字或“ 隨機” 。", + "iris.modded.moddedworldcommands.failed_remove_iris_world": "刪除失敗 Iris 世界{dimensionId}': {value}{errorMessage}", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry": "Iris 世界{dimensionId}`未載入;清除其持續登記冊條目,並清除其儲存的塊/塊資料。", + "iris.modded.moddedworldcommands.iris_world_was_not_loaded_cleared_its_persistent_registry_entry_2": "Iris 世界{dimensionId}`未載入;清除了其持續的登記冊條目。 磁碟上的世界資料被儲存.", + "iris.modded.moddedworldcommands.deleted_iris_world_evacuated_unloaded_chunk_mantle_data_wiped_dropped": "刪除 Iris 世界{dimensionId}':撤離,卸載,塊/塊資料被擦除,從啟動登記簿上掉落.", + "iris.modded.moddedworldcommands.disabled_iris_world_evacuated_unloaded_dropped_from_startup_registry": "已禁用 Iris 世界{dimensionId}':撤離,卸載,從起動登記中投放.", + "iris.modded.moddedworldcommands.world_data_on_disk_is_kept_re_enable_with_iris": "磁碟上的世界資料儲存;可重新使用 /iris world enable {dimensionId} 或將其刪除 /iris world delete {dimensionId2}.", + "iris.modded.moddedworldcommands.loaded_iris_level_pack_dimension": "已載入 Iris 級別 : {value} -> 包{value2}\" 維度 \"{value3}'", + "iris.modded.moddedworldcommands.primary_world": "初級世界: {primary}{value}", + "iris.modded.moddedworldcommands.no_iris_dimensions_are_currently_loaded_create_one_with_iris": "沒有 Iris 維度正在載入 。 建立一個 /iris world create .", + "iris.modded.moddedworldcommands.loaded_iris_dimensions": "已載入 Iris 維度 : {value}", + "iris.modded.moddedworldcommands.message_2": " - {dimension}", + "iris.modded.moddedworldcommands.use_iris_world_create_name_pack_inject_one_without_restarting": "使用 /iris world create 在不重新啟動的情況下注入一個。", + "iris.director.commanddatapack.director.download_manage_external_datapack_imports_modrinth": "下載 & 管理外部資料包進口(Modrinth)", + "iris.director.commanddatapack.director.download_update_every_datapack_listed_pack_dimension_s_datapackimports_install_it_into": "下載/更新包“ s” 中列出的每個資料包datapackImports並將其安裝到世界 所以它的結構像原版", + "iris.director.commanddatapack.param.restart_server_when_new_datapacks_are_installed_required_new_structures_register_generate": "安裝新資料包時重新啟動伺服器( 新結構需要註冊和生成)", + "iris.director.commanddatapack.director.list_configured_datapack_imports_their_installed_versions": "列出已配置的資料包匯入及其安裝版本", + "iris.director.commanddatapack.director.remove_installed_datapack_by_id_also_delete_its_url_from_datapackimports_keep": "通過 id 刪除一個已安裝的數據包( 同時刪除其 URL)datapackImports讓它消失)", + "iris.director.commanddatapack.param.datapack_id_folder_name_shown_by_iris_datapack_list": "資料包 id (資料夾名稱) 顯示於 /iris datapack list", + "iris.director.commanddeveloper.director.iris_world_manager": "Iris 世界經理", + "iris.director.commanddeveloper.director.get_loaded_tectonicplates_count": "載入 TectonicPlates 計數", + "iris.director.commanddeveloper.director.send_test_exception_sentry": "向哨兵傳送測試例外", + "iris.director.commanddeveloper.director.hash_generated_block_output_fixed_area_determinism_identity_testing": "用於確定/識別測試的固定區域的雜湊輸出", + "iris.director.commanddeveloper.param.world_hash": "散開的世界", + "iris.director.commanddeveloper.param.radius_chunks_around_center": "半徑為中心周圍的塊", + "iris.director.commanddeveloper.param.center_chunk_x": "居中塊 X", + "iris.director.commanddeveloper.param.center_chunk_z": "居中塊 Z", + "iris.director.commanddeveloper.director.update_pack_world_unsafe": "更新世界的內容包(不安全!)", + "iris.director.commanddeveloper.param.world_update": "更新世界", + "iris.director.commanddeveloper.param.pack_install_into_world": "載入世界的包", + "iris.director.commanddeveloper.param.make_sure_make_backup_read_warnings_first": "一定要做備份 & 先讀一下警告!", + "iris.director.commanddeveloper.param.should_iris_download_pack_again_you": "應否 Iris 再次下載包", + "iris.director.commanddeveloper.director.test": "測試", + "iris.director.commanddeveloper.param.dump_whole_tectonic_plate_instead_single_section": "將整個構造板塊丟棄,而不是一個單段", + "iris.director.commanddeveloper.param.dump_file_id_under_plugins_iris_dump_pv_id": "丟棄檔案 ID 下方 plugins/Iris/dump (pv..*)", + "iris.director.commanddeveloper.director.test_2": "測試", + "iris.director.commanddeveloper.param.pack_bench": "包到長椅", + "iris.director.commanddeveloper.param.radius_regions": "區域半徑", + "iris.director.commanddeveloper.param.open_gui_while_benchmarking": "開啟 GUI 在設定基準時", + "iris.director.commanddeveloper.director.upgrade_another_minecraft_version": "升級到另一個 Minecraft 版本", + "iris.director.commanddeveloper.param.version_upgrade": "升級到", + "iris.director.commanddeveloper.director.test_3": "測試", + "iris.director.commanddeveloper.param.world_folder_scan_mca_region_files": "掃描 .mca 區域檔案的世界資料夾", + "iris.director.commanddeveloper.director.delete_nearby_chunk_blocks_regen_testing": "刪除附近的塊塊進行再生測試", + "iris.director.commanddeveloper.param.radius_chunks_around_your_current_chunk": "當前塊周圍的半徑", + "iris.director.commanddeveloper.director.test_4": "測試", + "iris.director.commanddeveloper.director.delete_regenerate_nearby_chunks_place_using_iris_generation": "使用 Iris 生成", + "iris.director.commanddeveloper.param.radius_nearby_chunks": "附近塊的半徑", + "iris.director.commanddeveloper.director.generate_chunks_into_buffers_no_world_writes_hash_blocks_biomes_captures_golden": "在緩衝區中生成區塊(不寫入世界)並對方塊和 biome 進行 hash;用於擷取 golden 檔案或與現有檔案進行驗證。會重設掃描區域中的 mantle——請僅在一次性測試世界中使用。", + "iris.director.commanddeveloper.param.world_scan": "掃描世界", + "iris.director.commanddeveloper.param.radius_chunks_around_center_2": "半徑為中心周圍的塊", + "iris.director.commanddeveloper.param.center_chunk_x_2": "居中塊 X", + "iris.director.commanddeveloper.param.center_chunk_z_2": "居中塊 Z", + "iris.director.commanddeveloper.param.delete_mantle_data_scan_area_first_full_regeneration_from_scratch": "從零開始完全再生,先刪除掃描區域內的Mantle資料", + "iris.director.commanddeveloper.param.concurrent_chunk_generations_1_strictly_serial_order_dependence_testing": "同時代的幾代人; 1 = 嚴格序列進行訂單依賴測試", + "iris.director.commanddeveloper.param.also_dump_full_per_chunk_non_air_blockstates_offline_diffing": "還要把整個非空氣區塊都丟掉", + "iris.director.commandedit.director.edit_something": "編輯一些東西", + "iris.director.commandedit.director.edit_biome_you_specified": "編輯您指定的生物儀", + "iris.director.commandedit.param.biome_edit": "要編輯的生物儀", + "iris.director.commandedit.director.edit_region_you_specified": "編輯您指定的區域", + "iris.director.commandedit.param.region_edit": "要編輯的區域", + "iris.director.commandedit.director.edit_dimension_you_specified": "編輯您指定的維度", + "iris.director.commandedit.param.dimension_edit": "要編輯的維度", + "iris.director.commandfind.director.iris_find_commands": "Iris 尋找命令", + "iris.director.commandfind.director.find_biome": "尋找生態域", + "iris.director.commandfind.param.biome_look": "要尋找的生態域", + "iris.director.commandfind.param.should_you_be_teleported": "是否傳送到目標", + "iris.director.commandfind.director.find_region": "尋找區域", + "iris.director.commandfind.param.region_look": "要尋找的區域", + "iris.director.commandfind.param.should_you_be_teleported_2": "是否傳送到目標", + "iris.director.commandfind.director.find_point_interest": "尋找興趣點", + "iris.director.commandfind.param.type_poi_look": "要尋找的興趣點類型", + "iris.director.commandfind.param.should_you_be_teleported_3": "是否傳送到目標", + "iris.director.commandfind.director.find_structure_vanilla_key_like_minecraft_village_plains_minecraft_stronghold_imported_iris": "尋找結構(例如原版鍵 minecraft:village_plains、minecraft:stronghold,或匯入的 Iris 結構鍵)", + "iris.director.commandfind.param.structure_look_e_g_minecraft_village_plains_minecraft_stronghold_minecraft_ancient_city": "要尋找的結構(例如 minecraft:village_plains、minecraft:stronghold、minecraft:ancient_city)", + "iris.director.commandfind.director.find_object": "尋找物件", + "iris.director.commandfind.param.object_look": "要尋找的物件", + "iris.director.commandfind.param.should_you_be_teleported_4": "是否傳送到目標", + "iris.director.commandiris.director.basic_command": "Iris 基本命令", + "iris.director.commandiris.director.create_new_world": "建立新世界", + "iris.director.commandiris.param.name_world_create": "要建立的世界名稱", + "iris.director.commandiris.param.dimension_pack_create_world_with": "用於建立世界的維度包", + "iris.director.commandiris.param.seed_generate_world_with": "用於生成世界的種子", + "iris.director.commandiris.param.whether_not_automatically_use_this_world_as_main_world": "是否自動將此世界設為主世界", + "iris.director.commandiris.director.teleport_another_world": "傳送到另一個世界", + "iris.director.commandiris.param.world_teleport": "要傳送到的世界", + "iris.director.commandiris.param.player_teleport": "要傳送的玩家", + "iris.director.commandiris.director.print_version_information": "顯示版本資訊", + "iris.director.commandiris.director.benchmark_pack": "對維度包進行效能測試", + "iris.director.commandiris.param.dimension_benchmark": "要進行效能測試的維度", + "iris.director.commandiris.director.print_world_height_information": "顯示世界高度資訊", + "iris.director.commandiris.director.check_access_all_worlds": "檢查所有世界的存取狀態", + "iris.director.commandiris.director.remove_iris_world": "移除 Iris 世界", + "iris.director.commandiris.param.world_remove": "要移除的世界", + "iris.director.commandiris.param.whether_also_remove_folder_if_set_false_just_does_not_load_world": "是否同時刪除世界資料夾;設為 false 時只停止載入世界", + "iris.director.commandiris.director.toggle_debug": "切換偵錯模式", + "iris.director.commandiris.director.download_project": "下載維度包", + "iris.director.commandiris.param.pack_download": "要下載的包", + "iris.director.commandiris.param.branch_download_from": "要下載的分支", + "iris.director.commandiris.param.whether_not_overwrite_pack_with_downloaded_one": "是否用下載的版本覆蓋現有包", + "iris.director.commandiris.director.get_metrics_your_world": "顯示世界指標", + "iris.director.commandiris.director.reload_configuration_file_this_is_also_done_automatically": "重新載入設定檔(也會自動執行)", + "iris.director.commandiris.director.unload_iris_world": "卸載 Iris 世界", + "iris.director.commandiris.param.world_unload": "要卸載的世界", + "iris.director.commandiris.director.load_iris_world": "載入 Iris 世界", + "iris.director.commandiris.param.name_world_load": "要載入的世界名稱", + "iris.director.commandiris.director.evacuate_iris_world": "疏散 Iris 世界", + "iris.director.commandiris.param.evacuate_world": "要疏散的世界", + "iris.director.commandobject.director.iris_object_manipulation": "Iris 物件操縱", + "iris.director.commandobject.director.open_object_studio_world_grid_every_object_dimension_optional_defaults_all_packs": "開啟物件工作室世界( 每個物件的網格; 維度可選, 預設為所有包)", + "iris.director.commandobject.param.optional_dimension_whose_object_pack_lay_out_omit_aggregate_objects_from_every": "物件包的可選維度; 省略以彙總每包的物件", + "iris.director.commandobject.param.seed_generate_studio_with": "製作工作室的種子", + "iris.director.commandobject.director.check_composition_object": "檢查物件的構成", + "iris.director.commandobject.param.object_analyze": "分析物件", + "iris.director.commandobject.director.shrink_object_its_minimum_size": "縮小物件到最小大小", + "iris.director.commandobject.param.object_shrink": "縮小物件", + "iris.director.commandobject.director.grow_organic_branches_through_canopy_so_every_leaf_survives_vanilla_decay": "透過樹冠生長有機樹枝 使每個葉子都能存活下來", + "iris.director.commandobject.param.object_key_prefix_trees_filesystem_path": "物件金鑰、 字首( 樹/ ) 或檔案系統路徑", + "iris.director.commandobject.param.dryrun_true_analyzes_only_writes_nothing": "乾燥=只分析,不寫", + "iris.director.commandobject.param.reach_n_max_branch_length_blocks_from_existing_wood_farther_leaf_clusters": "達到=N 最大分支長度,與現有木材成塊;更遠的葉片組則具有永續性。 達到=0 增長無限", + "iris.director.commandobject.director.convert_schem_files_convert_folder_iob_files": "將“轉換”資料夾中的.schem檔案轉換為.iob檔案。", + "iris.director.commandobject.director.get_powder_that_reveals_objects": "獲取顯示物件的粉末", + "iris.director.commandobject.director.contract_selection_based_on_your_looking_direction": "根據您的外觀方向訂約選擇", + "iris.director.commandobject.param.amount_inset_by": "數額為:", + "iris.director.commandobject.director.set_point_1_look": "設定點 1 開啟", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look": "是否使用您當前位置, 或您看起來的位置", + "iris.director.commandobject.director.set_point_2_look": "設定點 2 開啟", + "iris.director.commandobject.param.whether_use_your_current_position_where_you_look_2": "是否使用您當前位置, 或您看起來的位置", + "iris.director.commandobject.director.paste_object": "貼上物件", + "iris.director.commandobject.param.object_paste": "要貼上的物件", + "iris.director.commandobject.param.whether_not_edit_object_need_hold_wand": "是否編輯物件( 需要持有魔杖)", + "iris.director.commandobject.param.amount_degrees_rotate_by": "旋轉的度數", + "iris.director.commandobject.param.factor_by_which_scale_object_placement": "物件放置的尺度", + "iris.director.commandobject.param.scale_interpolator_use": "要使用的尺度內插符", + "iris.director.commandobject.director.save_object": "儲存物件", + "iris.director.commandobject.param.dimension_store_object": "儲存物件的維度", + "iris.director.commandobject.param.file_store_it_can_use_subfolders": "要儲存它的檔案, 可以使用 / 用於子資料夾", + "iris.director.commandobject.param.overwrite_existing_object_files": "覆蓋已有物件檔案", + "iris.director.commandobject.param.use_legacy_tilestate_serialization_if_possible": "使用遺留 TileState 如果可能,序列化", + "iris.director.commandobject.director.shift_selection_your_looking_direction": "將選中區域移到您的外觀方向", + "iris.director.commandobject.param.amount_shift_by": "轉帳金額", + "iris.director.commandobject.director.undo_number_pastes": "撤消多個貼上", + "iris.director.commandobject.param.amount_pastes_undo": "要取消的貼上量", + "iris.director.commandobject.director.gets_object_wand_grabs_current_worldedit_selection": "獲取物件棒並抓取電流 WorldEdit 選擇。", + "iris.director.commandobject.director.get_object_wand": "獲取物件魔杖", + "iris.director.commandobject.director.autoselect_up_down_out": "自動選擇上下 & 關閉", + "iris.director.commandobject.director.autoselect_up_out": "自動選擇上 & 關閉", + "iris.director.commandpack.director.pack_validation_maintenance": "包驗證和維護", + "iris.director.commandpack.director.validate_pack_all_packs_re_publish_results": "驗證一個包(或所有包)並重新公佈結果", + "iris.director.commandpack.param.pack_folder_name_validate_leave_empty_all": "要校驗的包資料夾名稱( 為所有人留空)", + "iris.director.commandpack.director.preview_apply_unused_resource_cleanup": "預覽或應用未使用的資源清理", + "iris.director.commandpack.param.pack_folder_name_clean": "要清理的資料夾名稱", + "iris.director.commandpack.param.preview_apply": "預覽或應用", + "iris.director.commandpack.director.preview_apply_restoration_latest_quarantine": "最新檢疫的預覽或應用恢復", + "iris.director.commandpack.param.pack_folder_name_restore": "要恢復的包資料夾名稱", + "iris.director.commandpack.param.preview_apply_2": "預覽或應用", + "iris.director.commandpack.director.show_cached_validation_status_pack": "顯示包的快取驗證狀態", + "iris.director.commandpack.param.pack_folder_name": "資料夾名稱", + "iris.director.commandpregen.director.pregenerate_your_iris_worlds": "預先生成 Iris 世界", + "iris.director.commandpregen.director.pregenerate_world": "預先生成世界", + "iris.director.commandpregen.param.radius_pregen_blocks": "預先生成半徑(方塊)", + "iris.director.commandpregen.param.world_pregen": "要預先生成的世界", + "iris.director.commandpregen.param.center_location_pregen_use_me_your_current_location": "預先生成的中心位置;使用 'me' 代表目前位置", + "iris.director.commandpregen.param.open_iris_pregen_gui": "開啟 Iris 預先生成 GUI", + "iris.director.commandpregen.param.generate_only_one_chunk_at_time": "每次只生成一個區塊", + "iris.director.commandpregen.director.stop_active_pregeneration_task": "停止目前的預先生成工作", + "iris.director.commandpregen.director.pause_continue_active_pregeneration_task": "暫停或繼續目前的預先生成工作", + "iris.director.commandpregen.director.show_active_pregeneration_status": "顯示目前的預先生成狀態", + "iris.director.commandstructure.director.iris_structure_tools_index_import_info": "Iris 結構工具(索引、匯入、資訊)", + "iris.director.commandstructure.director.regenerate_structure_index_json_listing_all_vanilla_datapack_iris_structures": "重新生成 structure-index.json 列出所有原版, 資料包 & Iris結構", + "iris.director.commandstructure.param.dimension_whose_pack_index": "組合索引的維度", + "iris.director.commandstructure.director.import_every_structure_vanilla_ingested_datapacks_into_this_pack_as_editable_iris": "匯入 每個 結構 - 原版 和 吸收資料包 - 作為可編輯內容輸入此包 Iris 資源,總是覆蓋。 重建拼圖結構(村莊、前哨、資料包拼圖)作為可編輯的池/塊圖表,匯入每個結構模板 NBT 作為物體,並組裝多層結構(沉船、被毀的門戶、海洋廢墟、網狀化石)。 在攝入資料包後執行並重新啟動. 重新生成塊或使用新世界來放置匯入的複製 。", + "iris.director.commandstructure.param.dimension_whose_pack_import_into": "輸入到", + "iris.director.commandstructure.director.capture_code_generated_structures_that_have_no_nbt_template_swamp_huts_igloos": "抓取沒有程式碼生成的結構 NBT 模板( 對映小屋、 冰屋等) 可編輯 Iris 透過在丟棄的刮傷世界中 生成每個物體 並讀回它的塊。 跳過已經作為結構匯入的結構,比捕捉封頂(堅固的地基,豪宅,古蹟仍為原版)更寬/更細的結構,以及任何不會在平坦的世界範圍內生成的結構. 每個抓獲的結構都變成單塊 Iris 從生物群落/區域/ Dimension 結構列表中可以放置結構。 自動執行作為最後的傳球 /iris structure import.", + "iris.director.commandstructure.param.dimension_whose_pack_capture_into": "能夠捕捉到", + "iris.director.commandstructure.director.verify_native_structure_eligibility_locate_iris_placed_structures_without_running_blocking_native": "驗證本地結構是否合格並找到 Iris- 設定結構而不會阻礙本地搜尋", + "iris.director.commandstructure.param.dimension_verify": "核查的維度", + "iris.director.commandstructure.param.search_radius_chunks_around_origin_larger_is_much_slower": "搜尋半徑按原產地周圍的塊排列( 較大更慢)", + "iris.director.commandstructure.director.resolve_iris_structure_s_jigsaw_graph_report_piece_count_bounds": "解析Iris結構的拼圖並報告塊數 & 界限", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure": "組裝結構的維度", + "iris.director.commandstructure.param.iris_structure_key_inspect": "檢查的Iris結構金鑰", + "iris.director.commandstructure.director.assemble_place_iris_structure_at_your_location_studio_testing": "將Iris結構集合並放置在您的位置( studio測試)", + "iris.director.commandstructure.param.dimension_whose_pack_holds_structure_2": "組裝結構的維度", + "iris.director.commandstructure.param.iris_structure_key_place": "要放置的Iris結構鍵", + "iris.director.commandstudio.director.studio_commands": "Studio 命令", + "iris.director.commandstudio.director.open_new_studio_world": "開啟新的 Studio 世界", + "iris.director.commandstudio.param.dimension_pack_open_studio": "要在 Studio 中開啟的維度包", + "iris.director.commandstudio.param.seed_generate_studio_with": "用於生成 Studio 世界的種子", + "iris.director.commandstudio.director.import_vanilla_trees_mushrooms_objects_structures_jigsaw_from_server_into_pack_s": "將伺服器中的原版樹木、蘑菇和物件,以及 structures/jigsaw,匯入包的 objects/vanilla 資料夾", + "iris.director.commandstudio.param.dimension_pack_import_vanilla_content_into": "要匯入原版內容的維度包", + "iris.director.commandstudio.param.how_many_variants_capture_per_tree_object_feature": "每個樹木或物件特徵要擷取的變體數量", + "iris.director.commandstudio.param.also_import_vanilla_datapack_structures_jigsaw_into_pack": "是否同時將原版和資料包的 structures/jigsaw 匯入包中", + "iris.director.commandstudio.director.open_vscode_dimension": "在 VSCode 中開啟維度", + "iris.director.commandstudio.param.dimension_open_vscode": "要在 VSCode 中開啟的維度", + "iris.director.commandstudio.director.close_open_studio_project": "關閉已開啟的 Studio 專案", + "iris.director.commandstudio.director.toggle_your_studio_debug_scoreboard": "切換 Studio 偵錯計分板", + "iris.director.commandstudio.director.create_new_studio_project": "建立新的 Studio 專案", + "iris.director.commandstudio.param.name_this_new_iris_project": "新 Iris 專案的名稱", + "iris.director.commandstudio.param.copy_contents_existing_project_your_packs_folder_use_it_as_template_this": "複製 packs 資料夾中現有專案的內容,作為新專案的範本", + "iris.director.commandstudio.director.get_version_pack": "取得包的版本", + "iris.director.commandstudio.param.dimension_get_version": "要查詢版本的維度", + "iris.director.commandstudio.director.open_noise_explorer_external_gui": "開啟雜訊瀏覽器(外部 GUI)", + "iris.director.commandstudio.param.optional_pack_generator_preview": "要預覽的選用包生成器", + "iris.director.commandstudio.param.seed_preview_generator_with": "用於預覽生成器的種子", + "iris.director.commandstudio.director.show_loot_if_chest_were_right_here": "顯示此處若有箱子時會生成的戰利品", + "iris.director.commandstudio.param.fast_insertion_items_virtual_inventory_may_cause_performance_drop": "快速向虛擬物品欄插入物品(可能降低效能)", + "iris.director.commandstudio.param.whether_not_append_inventory_currently_open_if_false_clears_opened_inventory": "是否附加到目前開啟的物品欄;設為 false 時會先清空", + "iris.director.commandstudio.director.calculate_chance_each_region_generate": "計算各區域的生成機率", + "iris.director.commandstudio.param.radius_chunks": "半徑(區塊)", + "iris.director.commandstudio.director.render_world_map_external_gui": "算繪世界地圖(外部 GUI)", + "iris.director.commandstudio.param.world_open_generator": "要開啟生成器的世界", + "iris.director.commandstudio.director.package_dimension_into_compressed_format": "將維度封裝為壓縮格式", + "iris.director.commandstudio.param.dimension_pack_compress": "要壓縮的維度包", + "iris.director.commandstudio.param.whether_not_obfuscate_pack": "是否混淆包內容", + "iris.director.commandstudio.param.whether_not_minify_pack": "是否精簡包內容", + "iris.director.commandstudio.director.profiles_performance_dimension": "分析維度的效能", + "iris.director.commandstudio.param.dimension_profile": "要分析的維度", + "iris.director.commandstudio.director.spawn_iris_entity": "生成 Iris 實體", + "iris.director.commandstudio.param.entity_spawn": "要生成的實體", + "iris.director.commandstudio.param.location_spawn_entity_at": "實體的生成位置", + "iris.director.commandstudio.director.teleport_active_studio_world": "傳送到目前的 Studio 世界", + "iris.director.commandstudio.director.update_your_dimension_projects_vscode_workspace": "更新維度專案的 VSCode 工作區", + "iris.director.commandstudio.param.dimension_update_workspace": "要更新工作區的維度", + "iris.director.commandstudio.director.capture_igendata_chunk_report_nearby_chunks": "擷取附近區塊的 IGenData 區塊報告", + "iris.director.commandwhat.director.iris_what": "Iris 你說什麼?", + "iris.director.commandwhat.director.what_is_my_hand": "我手裡拿著什麼?", + "iris.director.commandwhat.director.what_biome_am_i": "我是什麼生物嗎?", + "iris.director.commandwhat.director.what_region_am_i": "我在哪個地區?", + "iris.director.commandwhat.director.what_block_am_i_looking_at": "我在看哪個街區?", + "iris.director.commandwhat.director.show_markers_chunk": "以塊顯示標記", + "iris.director.commandwhat.param.marker_name_such_as_cave_floor_cave_ceiling": "標記名, 如 洞穴 地板或洞穴的天花板", + "iris.modded.help.entry.command.version": "顯示版本資訊", + "iris.modded.help.entry.command.info": "列出已載入的 Iris 維度和包詳細資訊", + "iris.modded.help.entry.command.what": "檢查目前位置的 Iris 生態域、區域、洞穴生態域、地表和區塊,以及注視的方塊、手持物品或附近標記", + "iris.modded.help.entry.group.find": "尋找並傳送到 Iris 生態域、區域、物件、Iris 結構、原生結構和興趣點", + "iris.modded.help.entry.command.tp": "將自己或指定玩家傳送到已載入的 Iris 維度", + "iris.modded.help.entry.command.evacuate": "將 Iris 維度中的所有玩家傳送到主要世界出生點", + "iris.modded.help.entry.command.seed": "顯示世界和引擎的種子資訊", + "iris.modded.help.entry.command.debug": "切換 Iris 偵錯記錄並儲存 settings.json", + "iris.modded.help.entry.command.reload": "重新載入 settings.json(也會每 3 秒自動熱載入)", + "iris.modded.help.entry.command.download": "下載包專案", + "iris.modded.help.entry.command.metrics": "顯示目前 Iris 維度的生成指標", + "iris.modded.help.entry.command.regen": "原地刪除並重新生成附近區塊", + "iris.modded.help.entry.group.pregen": "預先生成 Iris 維度", + "iris.modded.help.entry.command.wand": "取得 Iris 物件魔杖", + "iris.modded.help.entry.group.object": "物件魔杖、儲存、貼上、分析和復原工具", + "iris.modded.help.entry.group.edit": "在桌面編輯器中開啟包的生態域、區域和維度 JSON 檔案", + "iris.modded.help.entry.command.create": "建立並注入持久 Iris 維度;用引號包住 pack:dimensionKey 可選擇特定包維度", + "iris.modded.help.entry.group.studio": "包專案建立、封裝和報告", + "iris.modded.help.entry.group.pack": "包驗證和維護", + "iris.modded.help.entry.group.world": "執行階段 Iris 維度的建立、移除和狀態", + "iris.modded.help.entry.group.datapack": "世界資料包安裝和狀態工具", + "iris.modded.help.entry.group.structure": "Iris 結構索引、資訊和放置工具", + "iris.modded.help.entry.command.goldenhash": "為一致性測試生成確定性方塊雜湊", + "iris.modded.help.entry.group.developer": "開發者診斷:Sentry 測試、網路介面和區域檔案掃描", + "iris.modded.help.entry.command.biome": "尋找 Iris 生態域", + "iris.modded.help.entry.command.region": "尋找 Iris 區域", + "iris.modded.help.entry.command.object": "尋找物件放置", + "iris.modded.help.entry.command.structure": "尋找由 Iris 放置或原生/資料包提供的結構", + "iris.modded.help.entry.command.poi": "尋找支援的興趣點", + "iris.modded.help.entry.command.biome_2": "在桌面編輯器中開啟生態域 JSON;不指定鍵時開啟目前位置的生態域", + "iris.modded.help.entry.command.region_2": "在桌面編輯器中開啟區域 JSON;不指定鍵時開啟目前位置的區域", + "iris.modded.help.entry.command.dimension": "在桌面編輯器中開啟目前包的維度 JSON", + "iris.modded.help.entry.command.start": "開始預先生成;半徑以方塊計,預設啟用可復原的檢查點快取,透過 'at ' 指定中心,各旗標可按任意順序組合", + "iris.modded.help.entry.command.stop": "停止目前的預先生成工作", + "iris.modded.help.entry.command.pause": "暫停或繼續預先生成", + "iris.modded.help.entry.command.status": "顯示預先生成狀態", + "iris.modded.help.entry.command.wand_3": "取得 Iris 物件魔杖", + "iris.modded.help.entry.command.dust": "取得可顯示物件放置位置的粉塵", + "iris.modded.help.entry.command.save": "將魔杖選取範圍儲存為物件", + "iris.modded.help.entry.command.paste": "在目前位置或指定位置貼上物件,可選擇旋轉", + "iris.modded.help.entry.command.expand": "沿注視方向擴展魔杖選取範圍", + "iris.modded.help.entry.command.contract": "沿注視方向縮小魔杖選取範圍", + "iris.modded.help.entry.command.shift": "沿注視方向移動魔杖選取範圍", + "iris.modded.help.entry.command.position1": "設定選取點 1", + "iris.modded.help.entry.command.position2": "設定選取點 2", + "iris.modded.help.entry.command.x_y": "自動向上和向外擴展選取範圍", + "iris.modded.help.entry.command.x_y_2": "自動向上、向下和向外擴展選取範圍", + "iris.modded.help.entry.command.analyze": "顯示物件構成", + "iris.modded.help.entry.command.shrink": "將物件縮小至最小尺寸", + "iris.modded.help.entry.command.plausibilize": "生成枝幹,使樹葉不會依原版規則腐爛", + "iris.modded.help.entry.command.undo": "復原已貼上的物件", + "iris.modded.help.entry.command.create_2": "建立新的包專案", + "iris.modded.help.entry.command.package": "將維度封裝為壓縮格式", + "iris.modded.help.entry.command.version_2": "顯示包版本", + "iris.modded.help.entry.command.regions": "計算附近區域的分布", + "iris.modded.help.entry.command.open": "為包開啟暫時的 Studio 維度", + "iris.modded.help.entry.command.close": "關閉已開啟的 Studio 維度並捨棄其世界", + "iris.modded.help.entry.command.tpstudio": "傳送到已開啟的 Studio 維度", + "iris.modded.help.entry.command.status_studio": "顯示已開啟的 Studio 維度及其包", + "iris.modded.help.entry.command.noise": "在伺服器顯示器上開啟雜訊瀏覽器 GUI", + "iris.modded.help.entry.command.map": "在伺服器顯示器上開啟 Vision 地圖 GUI", + "iris.modded.help.entry.command.vscode": "重新生成包的 .code-workspace,並在桌面編輯器中開啟", + "iris.modded.help.entry.command.update": "重新生成包的 .code-workspace", + "iris.modded.help.entry.command.importvanilla": "說明原版內容匯入流程", + "iris.modded.help.entry.command.validate": "驗證一個包或所有包", + "iris.modded.help.entry.command.cleanup": "預覽或隔離未使用的資源候選項目", + "iris.modded.help.entry.command.restore": "預覽或還原最近的隔離內容", + "iris.modded.help.entry.command.status_validation": "顯示快取的驗證狀態", + "iris.modded.help.entry.command.enable": "在執行階段建立並注入持久 Iris 維度;缺少包時會自動下載,用引號包住 pack:dimensionKey 可選擇特定包維度", + "iris.modded.help.entry.command.replace_overworld": "注入 Iris 主要世界,並將玩家導向該世界而非原版主世界", + "iris.modded.help.entry.command.disable": "疏散並卸載 Iris 維度;保留磁碟上的世界資料以便重新啟用", + "iris.modded.help.entry.command.delete": "停用 Iris 維度並從磁碟清除其區塊和 Mantle 資料", + "iris.modded.help.entry.command.list": "列出已載入的 Iris 維度", + "iris.modded.help.entry.command.status_world": "顯示已載入的 Iris 維度和設定的主要世界", + "iris.modded.help.entry.command.status_datapack": "檢查已載入 Iris 維度的維度類型覆蓋", + "iris.modded.help.entry.command.install": "為已載入的 Iris 維度安裝維度類型覆蓋", + "iris.modded.help.entry.command.list_datapacks": "列出已設定和已安裝的資料包", + "iris.modded.help.entry.command.ingest": "說明 Bukkit 資料包匯入流程", + "iris.modded.help.entry.command.remove": "說明資料包移除流程", + "iris.modded.help.entry.command.list_structures": "重新生成 structure-index.json", + "iris.modded.help.entry.command.info_2": "解析 Iris 結構圖並回報邊界", + "iris.modded.help.entry.command.place": "在目前位置組裝並放置 Iris 結構", + "iris.modded.help.entry.command.import": "說明 Bukkit 結構匯入流程", + "iris.modded.help.entry.command.capture": "說明 Bukkit 結構擷取流程", + "iris.modded.help.entry.command.verify": "回報目前維度中原生結構和 Iris 結構的可達性", + "iris.modded.help.entry.command.sentry": "向 Iris 錯誤回報器傳送測試例外", + "iris.modded.help.entry.command.network": "列出網路介面及其位址", + "iris.runtime.progress.finding_regions": "尋找區域", + "iris.runtime.progress.converting": "轉換", + "iris.runtime.status.running": "執行", + "iris.runtime.status.stopped": "已停止", + "iris.runtime.status.paused": "暫停", + "iris.runtime.status.paused_lower": "暫停", + "iris.runtime.status.running_lower": "執行", + "iris.runtime.status.enabled": "啟用。", + "iris.runtime.status.disabled": "已禁用。", + "iris.runtime.status.unregistered": "未登記", + "iris.runtime.status.none": "無", + "iris.runtime.status.random": "隨機", + "iris.runtime.status.match": "符合", + "iris.runtime.status.mismatch": "不符合", + "iris.runtime.status.true": "真實", + "iris.runtime.status.false": "虛假", + "iris.runtime.error.detail_suffix": " - {error}", + "iris.runtime.download.overwrite_suffix": " 覆蓋", + "iris.runtime.datapack.override_suffix": " (已安裝世界資料包覆蓋)", + "iris.runtime.primary_world.players_routed_suffix": " (玩家經過那裡)", + "iris.runtime.primary_world.routing_disabled_suffix": " (線路已禁用)", + "iris.runtime.modded.no_dimension_match": "沒有 Iris 維度匹配 '{filter}'.", + "iris.runtime.teleport.world": "你被傳送到 {world}.", + "iris.runtime.engine.hotloaded": "引擎已熱載入", + "iris.runtime.job.completed": "已完成 {job} 輸入 {duration}", + "iris.runtime.job.scanning_selection": "掃描選擇", + "iris.runtime.job.loading_chunks": "正在載入塊", + "iris.runtime.job.searched_chunks": "已搜尋 {chunks} 塊", + "iris.runtime.job.compile": "編譯", + "iris.runtime.job.saving_object": "儲存物件", + "iris.runtime.job.downloading": "下載", + "iris.runtime.job.extracting": "提取", + "iris.runtime.job.installing": "安裝", + "iris.runtime.compile.iob_empty": "- IOB {file} 已經 0 塊!", + "iris.runtime.compile.iob_empty_hover": "錯誤 :\n{path}", + "iris.runtime.compile.iob_not_3d": "- IOB {file} 不是三維!", + "iris.runtime.compile.iob_not_3d_hover": "錯誤 :\n{path}\n寬度、 高度或深度為 0 (壞格式)", + "iris.runtime.compile.json_error": "- JSON 錯誤 {file}", + "iris.runtime.compile.json_error_hover": "錯誤 :\n{path}\n{error}", + "iris.runtime.compile.loader_not_found": "找不到裝填器 {path}", + "iris.runtime.datapack.name": "Iris 世界一代組織", + "iris.runtime.pack.already_exists": "包已經存在了!", + "iris.runtime.tree_plausibilize.dry_suffix": ", 試執行", + "iris.runtime.tree_plausibilize.skip_load": "跳過 {object}: 載入失敗", + "iris.runtime.tree_plausibilize.result": "{object}: +{wood} 木材({branches} 分部門), {converted} 葉->木頭,~{distances} 距離", + "iris.runtime.tree_plausibilize.result_pinned": "{object}: +{wood} 木材({branches} 分部門), {converted} 葉->木頭,~{distances} 距離遠!{pinned} 鎖定", + "iris.runtime.tree_plausibilize.progress": "[{current}/{total}]", + "iris.runtime.tree_plausibilize.failed": "失敗 {object}: {type}: {error}", + "iris.runtime.tree_plausibilize.done": "結曰: {processed} 已處理, {changed} 變了, {skipped} 跳過 {failed} 失敗", + "iris.runtime.tree_plausibilize.done_dry": "已完成:處理 {processed} 個,變更 {changed} 個,跳過 {skipped} 個,失敗 {failed} 個(試執行,未寫入任何內容)", + "iris.runtime.tree_plausibilize.totals": "共計:+{wood} 木材({branches} 分部門), {converted} 葉->木頭,~{distances} 距離遠!{pinned} 被釘住,無法到達 {before} -> {after}", + "iris.runtime.item.wand.name": "魔杖 Iris", + "iris.runtime.item.wand.lore.first": "左鍵單擊塊設定第一個角", + "iris.runtime.item.wand.lore.second": "右鍵單擊塊設定第二個角", + "iris.runtime.item.dust.name": "瀰漫的塵埃", + "iris.runtime.item.dust.lore": "右鍵點選塊顯示其位置結構!", + "iris.runtime.wand.position_set": "立場 {position} 設定為 {x}, {y}, {z}", + "iris.runtime.dust.iris_world_required": "此維度不是由 Iris 生成的。", + "iris.runtime.dust.found_object": "找到物件 {object}", + "iris.runtime.dust.revealed": "被揭露{count}區塊{object}", + "iris.runtime.dust.revealed_capped": "被揭露{count}區塊{object}(封頂)", + "iris.runtime.dust.header": "--- Iris 塵埃 @ {x}, {y}, {z} ---", + "iris.runtime.dust.block": "塊 : {block}", + "iris.runtime.dust.position.above": "職位:+{offset} 上方 表面(表Y={surfaceY})", + "iris.runtime.dust.position.below": "位置 : {offset} 低於表面(表Y={surfaceY})", + "iris.runtime.dust.position.at": "位置:在表面(Y={surfaceY})", + "iris.runtime.dust.object_at_block": "物件@ 方塊: {object}", + "iris.runtime.dust.none": "無", + "iris.runtime.dust.placed_by.object_above": "位置: 物件/斜體 '{object}'(以上表面)", + "iris.runtime.dust.placed_by.decoration_above": "由:裝飾/物件/斜體(上表面)", + "iris.runtime.dust.placed_by.buried_object": "由: 掩埋物件 '{object}'", + "iris.runtime.dust.placed_by.terrain": "地形層(深度){depth}(低於表面)", + "iris.runtime.dust.column_object": "列物件 : {object} -> 此塊可能是天體的斜體", + "iris.runtime.dust.column_object_none": "列物件 : {detail}", + "iris.runtime.dust.column_none": "內無 64 (裝飾或地形, 非 物件斜體)", + "iris.runtime.dust.column.above": "{object} @Y={y} (上文) .", + "iris.runtime.dust.column.below": "{object} @Y={y} (下圖).", + "iris.runtime.dust.surface_biome": "表面生物儀: {biome}", + "iris.runtime.dust.surface_biome_detail": "表面生物儀: {biome} ({derivative})", + "iris.runtime.dust.biome_at_y": "Biome @ Y: (原始內容存檔於2018-09-29).{biome}", + "iris.runtime.dust.cave_biome": "洞穴/內臟Mantle 生物儀 : {biome}", + "iris.runtime.dust.server_biome": "服務器 biome :{biome}(編號:{id})", + "iris.runtime.dust.region": "地區: {region} ({name})", + "iris.runtime.dust.objects_in_chunk": "塊中的物件 : {objects}", + "iris.runtime.dust.copy_button": "[點選複製這些統計]", + "iris.runtime.dust.copy_hover": "將塊資料複製到剪貼簿", + "iris.runtime.pregen.starting": "Iris 前置開始...", + "iris.runtime.pregen.header": "Iris 預覽", + "iris.runtime.pregen.bossbar.paused": "Iris 預覽 {generated}/{total} {percent}% 已暫停", + "iris.runtime.pregen.bossbar.running": "Iris 預覽 {generated}/{total} {percent}% {speed}/s{eta}{failed}", + "iris.runtime.pregen.eta_fragment": " ETA {eta}", + "iris.runtime.pregen.failed_fragment": " 失敗 {failed}", + "iris.runtime.pregen.status.context": "維度 {dimension} 方法 {method}", + "iris.runtime.pregen.status.progress": "{percent}%", + "iris.runtime.pregen.status.chunks": "塊 {generated}/{total} 速度 {speed}/s", + "iris.runtime.pregen.status.chunks_failed": "塊 {generated}/{total} 速度 {speed}/s 失敗 {failed}", + "iris.runtime.pregen.status.time": "ETA {eta} · 潰敗 {elapsed}", + "iris.runtime.pregen.status.time_paused": "ETA {eta} · 潰敗 {elapsed} · 已暫停", + "iris.runtime.pregen.button.pause": "暫停/恢復", + "iris.runtime.pregen.button.pause.hover": "切換生成前暫停狀態", + "iris.runtime.pregen.button.stop": "停下來", + "iris.runtime.pregen.button.stop.hover": "完成當前區域並停止預生成", + "iris.bukkit.runtime.commandpack.packs_folder_not_found": "§c未找到包/ 資料夾 。", + "iris.bukkit.runtime.commandpack.no_packs_validate": "§e沒有包可以驗證。", + "iris.bukkit.runtime.commandpack.validation_complete_broken_packs": "§a鑑定完畢 破損的包: {broken}/{value}", + "iris.bukkit.runtime.commandpack.pack_not_found_under_packs": "§c包{pack}'未發現於 packs/.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack": "§a沒有找到包的清理候選人 '{pack}'.", + "iris.bukkit.runtime.commandpack.quarantined_cleanup_candidate_s_under": "§a檢疫{size}清理候選人{quarantinePath}.", + "iris.bukkit.runtime.commandpack.cleanup_mode_must_be_preview_apply": "§c清理模式必須是預覽或應用.", + "iris.bukkit.runtime.commandpack.no_cleanup_candidates_found_pack_2": "§a沒有找到包的清理候選人 '{pack}'.", + "iris.bukkit.runtime.commandpack.cleanup_preview_pack_candidate_s_no_files_were_changed": "§e包的清理預覽{pack}': {size}候選人。沒有更改文件 。", + "iris.bukkit.runtime.commandpack.run_iris_pack_cleanup_mode_apply_quarantine_these_candidates_after_fresh_scan": "§7執行 /iris pack cleanup {pack} mode=apply 在重新掃描後將這些候選人隔離", + "iris.bukkit.runtime.commandpack.restore_refused_because_destination_s_already_exist": "§c還原被拒絕,因為{size}目的地已經存在。", + "iris.bukkit.runtime.commandpack.nothing_restore_pack": "§e沒有東西可以還原{pack}'.", + "iris.bukkit.runtime.commandpack.restored_file_s_from": "§a已恢復{size}文件從{dumpPath}.", + "iris.bukkit.runtime.commandpack.restore_mode_must_be_preview_apply": "§c還原模式必須是預覽或應用.", + "iris.bukkit.runtime.commandpack.nothing_restore_pack_2": "§e沒有東西可以還原{pack}'.", + "iris.bukkit.runtime.commandpack.restore_preview_file_s_no_files_were_changed": "§e恢復預覽{dumpPath}: {size}文件。沒有更改文件 。", + "iris.bukkit.runtime.commandpack.restore_is_blocked_by_existing_destination_s": "§c恢復被阻斷{size}現有目的地。", + "iris.bukkit.runtime.commandpack.run_iris_pack_restore_mode_apply_restore_after_fresh_conflict_check": "§7執行 /iris pack restore {pack} mode=apply 在重新核對衝突後恢復。", + "iris.bukkit.runtime.commandpack.no_validation_results_recorded_run_iris_pack_validate_first": "§e未記錄驗證結果. 執行 /iris pack validate 先說", + "iris.bukkit.runtime.commandpack.status.ok": "§a還好§r {pack}§7 (阻斷={blocking}時,警告={warnings})", + "iris.bukkit.runtime.commandpack.status.broken": "§c傷痕§r {pack}§7 (阻斷={blocking}時,警告={warnings})", + "iris.bukkit.runtime.commandpack.cleanup_failed": "§c清理失敗 : {error}", + "iris.bukkit.runtime.commandpack.restore_failed": "§c恢復失敗 : {error}", + "iris.bukkit.runtime.commandpack.path.still_quarantined": "仍隔離", + "iris.bukkit.runtime.commandpack.path.quarantined": "隔離", + "iris.bukkit.runtime.commandpack.path.candidate": "候選人", + "iris.bukkit.runtime.commandpack.path.conflict": "衝突", + "iris.bukkit.runtime.commandpack.path.restored": "恢復", + "iris.bukkit.runtime.commandpack.path.file": "檔案", + "iris.bukkit.runtime.commandpack.no_validation_result_run_iris_pack_validate": "§e沒有驗證結果 '{pack}'. 執行 /iris pack validate {pack2}.", + "iris.bukkit.runtime.commandpack.validation_failed": "§c驗證 '{name}' 失敗 : {error}", + "iris.bukkit.runtime.commandpack.pack_is_loadable_warnings": "§a包{packName}'是可裝載的。§7 (警報={size})", + "iris.bukkit.runtime.commandpack.pack_is_broken": "§c包{packName}'為. 損壞:", + "iris.bukkit.runtime.commandpack.message": "§c - {reason}", + "iris.bukkit.runtime.commandpack.message_2": "§e ! {value}", + "iris.bukkit.runtime.commandpack.more_warning_s": { + "other": "§7 ... 和 {count} 更多的警告。 更多警告。", + "one": "§7 ... 和 {count} 更多的警告。 更多警告。" + }, + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "§c在使用之前,你應該先做備份", + "§e由此產生的問題可以是,但不限於:", + "§e - 新舊塊之間的斷塊(斷塊)(以前 & 更新後)", + "§e - 重新生成不適合舊的塊", + "§e - 結構在再生時不再產生", + "§e - 洞穴不排隊", + "§e - 地層不排隊", + "§c現在,你意識到了風險, 並做了一個備份:", + "§c/iris developer update-world {world} {pack} confirm=true" + ], + "iris.bukkit.runtime.bulkstructureimporter.importing_vanilla_datapack_structures_mode_includenonjigsaw": "§a匯入 §f{total}§a 原版 & 資料包結構(模式={mode}, includeNonJigsaw={includeNonJigsaw})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key": "§c[失敗] {keyString}無效的金鑰", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.skip_no_single_template_nbt_vanilla_builds_this_code_from_separate_piece": "§e[略過] {keyString}: 無單調 NBT - 原版用程式碼或從單獨的塊模板(透過模板透過匯入)中構建它;不作為一個結構匯入。", + "iris.bukkit.runtime.bulkstructureimporter.fail": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_2": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_3": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.bulk_import_complete_imported_skipped_failed_total": "§a批次匯入完成 : §f{imported}§a 進口 §f{skipped}§a 跳過 §f{failed}§a 失敗 (§f{total}§a 總計)。", + "iris.bukkit.runtime.bulkstructureimporter.building_single_template_structures_from_imported_pieces_one_variant_placed_per_generation": "§a從進口的部件建造單層結構(每代放置一個變體)...", + "iris.bukkit.runtime.bulkstructureimporter.group_variants": "§7[組] {value} -> {value2} ({blocks} 變體)", + "iris.bukkit.runtime.bulkstructureimporter.skip": "§e[略過] {value}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_4": "§c[失敗] {value}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.single_template_structures_built_skipped_failed": "§a單調結構: §f{imported}§a 建造, §f{skipped}§a 跳過 §f{failed}§a 失敗 。", + "iris.bukkit.runtime.bulkstructureimporter.failed_enumerate_structure_templates_via_server_resourcemanager": "§c透過伺服器列出結構模板失敗 ResourceManager: {e}", + "iris.bukkit.runtime.bulkstructureimporter.no_structure_templates_were_found_under_structure_resource_path": "§e在“ 結構” 資源路徑下找不到結構模板 。", + "iris.bukkit.runtime.bulkstructureimporter.importing_structure_templates_mode": "§a匯入 §f{total}§a 結構模板(模式={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_2": "§c[失敗] {keyString}無效的金鑰", + "iris.bukkit.runtime.bulkstructureimporter.fail_5": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_6": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} 進口 {skipped} 跳過 {failed} 失敗)", + "iris.bukkit.runtime.bulkstructureimporter.template_import_complete_imported_skipped_failed_total": "§a模板匯入完成 : §f{imported}§a 進口 §f{skipped}§a 跳過 §f{failed}§a 失敗 (§f{total}§a 總計)。", + "iris.bukkit.runtime.bulkstructureimporter.no_datapack_non_minecraft_structures_are_registered_ingest_datapack_restart_first_then": "§e沒有登記資料包(非礦物)結構。 獲取一個資料包並首先重新啟動, 然後再次執行 。", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structures_mode": "§a匯入 §f{total}§a 資料包結構(模式={mode})...", + "iris.bukkit.runtime.bulkstructureimporter.fail_invalid_key_3": "§c[失敗] {keyString}無效的金鑰", + "iris.bukkit.runtime.bulkstructureimporter.jigsaw_2": "§7[jigsaw] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.single_2": "§7[single] {keyString} -> {name}", + "iris.bukkit.runtime.bulkstructureimporter.fail_7": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_8": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_9": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.importing_datapack_structure_templates": "§a匯入 §f{size}§a 資料包結構模板...", + "iris.bukkit.runtime.bulkstructureimporter.fail_10": "§c[失敗] {keyString}: {message}", + "iris.bukkit.runtime.bulkstructureimporter.fail_11": "§c[失敗] {keyString}: {error}", + "iris.bukkit.runtime.bulkstructureimporter.could_not_enumerate_datapack_templates_via_server_resourcemanager": "§e無法透過伺服器列出資料包模板 ResourceManager: {error}", + "iris.bukkit.runtime.bulkstructureimporter.datapack_structure_import_complete_imported_skipped_failed": "§a資料包結構匯入完成 : §f{imported}§a 進口 §f{skipped}§a 跳過 §f{failed}§a 失敗 。", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_is_not_supported_by_active_nms_binding_skipping_capture_pass": "§e結構捕捉不被活動者支援 NMS 繫結; 跳過捕獲通道。", + "iris.bukkit.runtime.structurecaptureimporter.no_code_generated_structures_left_capture_everything_is_already_imported_as_structure": "§7沒有程式碼生成的結構留待捕捉(所有東西已經作為結構匯入).", + "iris.bukkit.runtime.structurecaptureimporter.capturing_code_generated_structures_no_nbt_template_into_scratch_world_skipping_any": "§a隱藏§f{total}§a代碼生成結構( 無)NBT切換到一個划痕世界(吸取更大的/高過{MAXSPAN}塊)...", + "iris.bukkit.runtime.structurecaptureimporter.skip_did_not_place_capturable_structure_here_too_large_wrong_dimension_no": "§e[略過] {key}:沒有在此放置一個可封頂結構(太大,錯誤的維度,或者在一個平坦的世界中沒有有效的放置). 留原版生成.", + "iris.bukkit.runtime.structurecaptureimporter.fail": "§c[失敗] {key}: {message}", + "iris.bukkit.runtime.structurecaptureimporter.capture_objects_iob_x_x": "§7[擷取] {key} -> objects/{name}.iob ({w}x{h}x{d})", + "iris.bukkit.runtime.structurecaptureimporter.fail_2": "§c[失敗] {key}: {error}", + "iris.bukkit.runtime.structurecaptureimporter.captured_skipped_failed": "§7...{processed}/{total} ({imported} 被俘獲, {skipped} 跳過 {failed} 失敗)", + "iris.bukkit.runtime.structurecaptureimporter.structure_capture_complete_captured_skipped_failed_total": "§a結構捕捉完成 : §f{imported}§a 被俘獲, §f{skipped}§a 跳過 §f{failed}§a 失敗 (§f{total}§a 總計)。", + "iris.bukkit.runtime.featureimporter.no_vanilla_tree_object_features_are_exposed_by_active_nms_binding_importing": "§e活動者未暴露原版樹/物體特徵 NMS 約束(僅匯入結構)。", + "iris.bukkit.runtime.featureimporter.importing_vanilla_tree_object_features_variants_each_into_scratch_world": "§a匯入 §f{total}§a 原版樹/物體特徵(§f{wantVariants}§a 每個變體)進入刮傷世界...", + "iris.bukkit.runtime.featureimporter.obj_objects_vanilla": "§7[obj] {key} -> objects/vanilla/{group}/{safeName} ({written})", + "iris.bukkit.runtime.featureimporter.skip_feature_placed_nothing_after_retries": "§e[略過] {key}: 特性在重試後沒有放置任何內容 。", + "iris.bukkit.runtime.featureimporter.fail": "§c[失敗] {key}: {error}", + "iris.bukkit.runtime.featureimporter.imported_skipped_failed": "§7...{processed}/{total} ({imported} 進口 {skipped} 跳過 {failed} 失敗)", + "iris.bukkit.runtime.featureimporter.feature_import_complete_features_written_skipped_failed_total": "§a特性匯入完成 : §f{imported}§a 特寫, §f{skipped}§a 跳過 §f{failed}§a 失敗 (§f{total}§a 總計)。", + "iris.bukkit.runtime.featureimporter.could_not_create_scratch_world_feature_import_skipping_tree_object_pass": "§c無法為特性導入創建抓取世界( N){error}); 跳過樹/對象通過。", + "iris.bukkit.runtime.irisconverter.no_schematic_files_convert_found": "找不到圖解檔案 {path}", + "iris.bukkit.runtime.irisconverter.converted": "§a已轉換 {name} -> {value} 輸入 {value2}", + "iris.bukkit.runtime.irisconverter.converted_2": "§a已轉換 {name} -> {value}", + "iris.bukkit.runtime.irisconverter.failed_save": "§c儲存失敗 : {name}", + "iris.bukkit.runtime.irisconverter.failed_convert": "§c轉換失敗 : {name}", + "iris.bukkit.runtime.irisconverter.converted_3": "§7已轉換 : {get} 輸入 {value}", + "iris.bukkit.runtime.irisconverter.some_schematics_failed_convert_check_console_details": "§c一些示意圖未能轉換. 檢查控制檯的細節。", + "iris.bukkit.runtime.studiosvc.installing_package": "正在安裝內容包:{name}:{loadKey}", + "iris.bukkit.runtime.studiosvc.looking_package": "正在尋找內容包:{type}", + "iris.bukkit.runtime.studiosvc.found_iris_folder": "在 {WORKSPACENAME} 資料夾中找到 {type}.iris", + "iris.bukkit.runtime.studiosvc.found_dimension_folder_repackaging": "在 {WORKSPACENAME} 資料夾中找到 {type} 維度,正在重新打包", + "iris.bukkit.runtime.studiosvc.can_t_find_dimensions_folder_this_pack_failed": "在此內容包的 dimensions 資料夾中找不到 {name},操作失敗。", + "iris.bukkit.runtime.studiosvc.can_t_load_dimension_failed": "無法載入維度,操作失敗。", + "iris.bukkit.runtime.studiosvc.type_installed": "已安裝 {name} 類型。", + "iris.bukkit.runtime.studiosvc.pack_was_not_found_pack_listing": "內容包「{key}」不在內容包清單中。", + "iris.bukkit.runtime.studiosvc.use_iris_download_pack_branch_branch_download_manually": "使用 /iris download branch= 手動下載。", + "iris.bukkit.runtime.studiosvc.failed_download": "無法下載「{key}」。", + "iris.bukkit.runtime.studiosvc.failed_download_irisdimensions_overworld_beta_release": "無法下載 IrisDimensions/overworld 測試版。", + "iris.bukkit.runtime.studiosvc.failed_download_branch": "無法下載「{repo}」(分支 {branch})。", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world": "無法開啟工作室世界:{error}", + "iris.bukkit.runtime.studiosvc.cannot_open_studio_pack_has_blocking_errors": "無法開啟工作室「{dimm}」:內容包存在阻斷錯誤:", + "iris.bukkit.runtime.studiosvc.message": " - {reason}", + "iris.bukkit.runtime.studiosvc.fix_pack_run_iris_pack_validate_revalidate": "修復內容包,然後執行 /iris pack validate {dimm} 重新驗證。", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project": "無法關閉現有工作室專案:{error}", + "iris.bukkit.runtime.studiosvc.failed_close_existing_studio_project_2": "無法關閉現有工作室專案:{error}", + "iris.bukkit.runtime.studiosvc.failed_open_studio_world_2": "無法開啟工作室世界:{error}", + "iris.bukkit.runtime.studiosvc.couldn_t_find_pack_create_new_dimension_from": "找不到用於建立新維度的內容包。", + "iris.bukkit.runtime.studiosvc.missing_imported_dimension_file": "缺少匯入的維度檔案", + "iris.bukkit.runtime.studiosvc.importing_into_new_project": "正在將 {downloadable} 匯入新專案 {s}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_cell_under_click_x_z": "§7Object Studio:點擊位置下方沒有儲存格 (x={x} z={z})。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saving_x_x": "§bObject Studio:正在儲存 §f{pack}/{key}§7 ({w}x{h}x{d})", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_changes": "§7Object Studio:{pack}/{key} 沒有變更。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_empty_cell_nothing_write": "§7Object Studio:儲存格 {pack}/{key} 為空,無需寫入。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_no_target_file": "§cObject Studio:{pack}/{key} 沒有目標檔案。", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_saved": "§aObject Studio:已儲存 §f{pack}/{key}", + "iris.bukkit.runtime.objectstudiosaveservice.object_studio_save_failed": "§cObject Studio:無法儲存 {pack}/{key} ({error})", + "iris.bukkit.runtime.irisproject.could_not_load_dimension": "無法載入維度 \"{value}\"", + "iris.bukkit.runtime.irisproject.could_not_get_dimension_loader": "無法獲得維度載入器", + "iris.bukkit.runtime.irisproject.studio_open_failed": "§c工作室開啟失敗 : {error}", + "iris.bukkit.runtime.irisproject.studio_open_failed_2": "§c工作室開啟失敗 。", + "iris.bukkit.runtime.irisproject.studio_ready": "§a工作室準備好了 §7({value})", + "iris.bukkit.runtime.irisproject.studio": "§6工作室 §b{bar} §e{percent}%§7 {currentStage}§8 ({value})", + "iris.bukkit.runtime.irisproject.serializing_objects": "序列物件", + "iris.bukkit.runtime.irisproject.wrote_another_objects": "寫另一首 {g} 物件", + "iris.bukkit.runtime.irisproject.package_compiled": "包編譯!", + "iris.bukkit.runtime.irisproject.failed": "失敗了!", + "iris.bukkit.runtime.irisengine.total": "共計: §l§f{value}", + "iris.bukkit.runtime.irisengine.engine": " 發動機 §n§a{i}§r: §l§f{value}", + "iris.bukkit.runtime.irisengine.details": "細節 : ", + "iris.bukkit.runtime.irisengine.message": " {befb}{num}{afb}: §l§f{value}", + "iris.bukkit.runtime.enginebukkitops.is_not_defined_dimension": "§c{name} 維度中沒有定義!", + "iris.bukkit.runtime.enginebukkitops.could_not_find_within_search_range": "§c無法找到 {message} 在搜尋範圍內。", + "iris.bukkit.runtime.enginebukkitops.teleporting": "§a傳送到 {message}...", + "iris.bukkit.runtime.enginebukkitops.at": "§a{message} 地點: {blockX} {blockY} {blockZ}", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world": "你被從這個世界疏散了", + "iris.bukkit.runtime.iristoolbelt.you_have_been_evacuated_from_this_world_2": "你被從這個世界疏散了 {m}", + "iris.bukkit.runtime.serverconfigurator.there_are_some_iris_packs_that_have_custom_biomes_them": "有幾個 Iris 包裡有自定義的生物元素", + "iris.bukkit.runtime.serverconfigurator.you_need_restart_your_server_use_these_packs": "您需要重新啟動您的伺服器來使用這些包 。", + "iris.bukkit.runtime.virtualcommand.message": "- §f{i}", + "iris.bukkit.runtime.virtualcommand.insufficient_permissions": "許可權不足", + "iris.bukkit.runtime.mortarcommand.font_minecraft_uniform": "§a{node} {value}§7 - {description}", + "iris.bukkit.runtime.mortarcommand.there_are_either_no_sub_commands_you_do_not_have_permission_use": "沒有子命令或您沒有許可權使用它們 。", + "iris.bukkit.runtime.mortarcommand.parameters_ignored": "被忽略引數 : {m}", + "iris.runtime.studio.opening": "§6工作室 §b開幕", + "iris.runtime.studio.opening_progress": "§6工作室 §b開幕§7 {percent}%", + "iris.runtime.studio.failed_progress": "§6工作室 §c失敗§7 {percent}%", + "iris.runtime.studio.ready_progress": "§6工作室 §a準備§7 100%", + "iris.runtime.studio.action.failed": "{bar}§7 §c失敗§7 | §f{stage}", + "iris.runtime.studio.action.ready": "{bar}§7 §a100%§7 | §a工作室準備好了§8 {elapsed}", + "iris.runtime.studio.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage}§8 {elapsed}", + "iris.runtime.studio.console.progress": "§6工作室 §b{bar}§e {percent}%§7 {stage}§8 ({elapsed})", + "iris.runtime.studio.stage.initializing": "初始化", + "iris.runtime.studio.stage.queued": "佇列", + "iris.runtime.studio.stage.resolve_dimension": "解決層面", + "iris.runtime.studio.stage.prepare_world_pack": "準備世界包", + "iris.runtime.studio.stage.install_datapacks": "安裝資料包", + "iris.runtime.studio.stage.create_world": "創造世界", + "iris.runtime.studio.stage.apply_world_rules": "應用世界規則", + "iris.runtime.studio.stage.prepare_generator": "正在準備生成器", + "iris.runtime.studio.stage.request_entry_chunk": "正在載入條目塊", + "iris.runtime.studio.stage.resolve_safe_entry": "尋找安全的產卵", + "iris.runtime.studio.stage.teleport_player": "遠端傳送", + "iris.runtime.studio.stage.finalize_open": "最後確定", + "iris.runtime.studio.stage.cleanup": "清理", + "iris.runtime.world_create.teleport_failed": "§e世界是建立的,但自動電傳傳送失敗. 嘗試 /iris teleport world={world}", + "iris.runtime.world_create.action": "{bar}§7 §e{percent}%§8 {generated}/{required} 塊", + "iris.runtime.world_create.console": "§6正在生成 §e{percent}%§7 {generated}/{required} 塊§8 ({remaining} 左側)", + "iris.runtime.world_create.pregen.action": "{bar}§7 §e{percent}%§7 | §f預生成", + "iris.runtime.world_create.pregen.console": "§6預生成 §e{percent}%", + "iris.runtime.chunk_job.title.regen": "瑞根,你好嗎?", + "iris.runtime.chunk_job.title.delete": "刪除", + "iris.runtime.chunk_job.title.golden_hash": "GoldenHash", + "iris.runtime.chunk_job.stage.preparing": "準備", + "iris.runtime.chunk_job.stage.clearing": "清除", + "iris.runtime.chunk_job.stage.resetting_mantle": "重置Mantle", + "iris.runtime.chunk_job.stage.regenerating": "重新生成", + "iris.runtime.chunk_job.stage.generating": "正在生成", + "iris.runtime.chunk_job.stage.comparing": "比較", + "iris.runtime.chunk_job.stage.diagnosing": "診斷", + "iris.runtime.chunk_job.bossbar.working": "§6{title} §b工作", + "iris.runtime.chunk_job.bossbar.progress": "§6{title} §b{stage}§7 §e{percent}%", + "iris.runtime.chunk_job.action.progress": "{bar}§7 §e{percent}%§7 | §f{stage} {applied}/{total}", + "iris.runtime.chunk_job.summary": "{applied}/{total} 塊進入 {elapsed}", + "iris.runtime.chunk_job.summary.failed": "{applied}/{total} 塊進入 {elapsed} ({failures} 失敗)", + "iris.runtime.chunk_job.bossbar.done": "§6{title} §a完成§7 §e{summary}", + "iris.runtime.chunk_job.bossbar.failed": "§6{title} §c失敗§7 §e{summary}", + "iris.runtime.chunk_job.action.done": "{bar}§7 §a完成§7 | §f{summary}", + "iris.runtime.chunk_job.action.failed": "{bar}§7 §c失敗§7 | §f{summary}", + "iris.runtime.chunk_job.complete": "§a{title} 完成 : {summary}", + "iris.runtime.chunk_job.failed": "§c{title} 以錯誤完成 : {summary}", + "iris.runtime.golden.no_capture": "沒有金色的捕捉 {path};先進行抓捕.", + "iris.runtime.golden.aborted": { + "other": "GoldenHash 已中止 : {failed} 塊無法生成 。 沒有寫金色檔案 。", + "one": "GoldenHash 已中止 : {failed} 塊無法生成 。 沒有寫金色檔案 。" + }, + "iris.runtime.golden.failed": "GoldenHash 失敗 : {error}", + "iris.runtime.golden.mantle_reset": "Mantle重設( N){path})", + "iris.runtime.golden.mantle_reset_failed": "Mantle重設置失敗( E){type});繼續維持現有的Mantle狀態。", + "iris.runtime.golden.captured": "黃金俘虜: {chunks} 塊組合={hash}", + "iris.runtime.golden.wrong_world": "金色檔案為 dim={goldenDimension} 種子數={goldenSeed} 但這個世界是暗淡的{dimension} 種子數={seed}. 中止行動", + "iris.runtime.golden.version_warning": "黃金在Mc=上被俘{goldenVersion},執行 mc={version}. 差異可能是版本引起的.", + "iris.runtime.golden.match": "戈爾登馬奇:{current}/{golden}塊,combined={hash}", + "iris.runtime.golden.mismatch": "戈爾登密斯:{mismatches}/{chunks}塊不同。", + "iris.runtime.golden.mismatch_chunk": " 塊 {chunk}", + "iris.runtime.golden.missing_in_golden": "{chunk} (失蹤的金色)", + "iris.runtime.golden.mismatch_more": " ... 和 {count} 更多", + "iris.runtime.golden.current_written": "當前雜湊已寫入 {file}", + "iris.runtime.golden.diag.stable": "重複基因 穩定,重置Mantle {mantleStatus} -> {file}", + "iris.runtime.golden.diag.unstable": "重復基因{diffs}+ 塊 差異, Mantle重置{mantleStatus} -> {file}", + "iris.runtime.golden.diag.mantle_stable": "穩定 (曼託重建複製掃描輸出)", + "iris.runtime.golden.diag.mantle_diverged": "二、導 言{diffs}+ 差異 - Mantle構造狀態/命令依賴)", + "iris.runtime.golden.diag.mantle_skipped": "已略過 ({type})", + "iris.runtime.golden.diag.failed": "診斷失敗 : {error}", + "iris.runtime.golden.started": "GoldenHash 開始 : {chunks} 塊繞 0,0 在緩衝器(世界未觸動)中,執行緒={threads} 模式={mode}", + "iris.runtime.golden.chunk_hashed": "[{done}/{total}] 塊 {x},{z} 散開", + "iris.runtime.golden.chunk_failed": "塊 {x},{z} 失敗: {type}", + "iris.runtime.pack_download.invalid_pack_name": "無效的包名'{pack}'(獲批准:a-z, 0-9時, 和 -)", + "iris.runtime.pack_download.invalid_branch_name": "無效的分支名稱 '{branch}'(被分配:字母,數字,. _ 和 -)", + "iris.runtime.pack_download.failed": "包下載失敗 : {type}{errorMessage}", + "iris.runtime.pack_download.downloading": "下載 {url}", + "iris.runtime.pack_download.failed_to_find": "找到包失敗 {url}", + "iris.runtime.pack_download.check_repository_and_branch": "確保您指定正確的還本付息和分支 !", + "iris.runtime.pack_download.example_command": "例如: /iris download overworld branch=stable", + "iris.runtime.pack_download.unpacking": "正在解壓縮 {repository}", + "iris.runtime.pack_download.unpack_failed": [ + "解包時釋出. 請檢查/做如下:", + "1. 你有一個正常的網際網路連線?", + "2. 下載是否腐敗?", + "3. 嘗試刪除 */plugins/iris/packs 資料夾和重新下載。", + "4. 從中下載包 GitHub 重傳 : https://github.com/IrisDimensions/overworld", + "5. 聯絡人支援( 如果所有其他選項都沒有幫助)" + ], + "iris.runtime.pack_download.no_extracted_files": "沒有從zip檔案中提取檔案 。", + "iris.runtime.pack_download.home_directory_error": "查詢主目錄時出錯 。 檔名中是否有非文字字元 ?", + "iris.runtime.pack_download.invalid_archive_format": "無效的格式 。 缺少根資料夾或過多的資料夾!", + "iris.runtime.pack_download.no_dimension_file": "在提取的zip檔案中找不到維度檔案 。", + "iris.runtime.pack_download.check_github": "檢查它是否在 GitHub 把這個報告給工作人員!", + "iris.runtime.pack_download.one_dimension_required": "維度資料夾必須包含一個檔案 。", + "iris.runtime.pack_download.invalid_dimension": "無效的維度資料夾 dimensions/.", + "iris.runtime.pack_download.importing": "匯入 {name} ({key})", + "iris.runtime.pack_download.dimension_key_conflict": "包資料夾中的另一個維度已經使用金鑰 {key}. 匯入失敗 !", + "iris.runtime.pack_download.pack_key_conflict": "另一個包是用鑰匙 {key}. 匯入失敗 !", + "iris.runtime.pack_download.acquired": "已成功獲取 {name}.", + "iris.runtime.pack_download.validation_failed": "包{pack}' 驗證失敗; 世界和工作室的建立將被拒絕. 原因:", + "iris.runtime.pack_download.validation_reason": " - {reason}", + "iris.runtime.pack_download.validated_with_warnings": { + "other": "包{pack}'經驗證 {count} 警告! 警告你們!", + "one": "包{pack}'經驗證 {count} 警告,你應該知道" + }, + "iris.runtime.pack_download.validated": "包{pack}已確認。", + "iris.client.vision.title": "Iris 願景", + "iris.client.vision.connecting": "正在連線到 Iris 伺服器...", + "iris.client.vision.not_connected": "未連線", + "iris.client.vision.not_iris_world": "沒有 Iris 世界", + "iris.client.vision.no_dimension_data": "無維度資料", + "iris.client.vision.header_detail": "{status} 縮放 {zoom} x{x} z{z}", + "iris.client.vision.footer_hint": "拖曳以平移,捲動以縮放,按 Esc 關閉", + "iris.client.vision.dimension_pack": "{dimension} 包 {pack}", + "iris.client.toast.studio_hotload": "工作室熱負荷", + "iris.client.toast.changed_files": { + "other": "{count} 檔案", + "one": "{count} 檔案" + }, + "iris.client.toast.reload_failed": "重新載入失敗", + "iris.client.toast.reloaded": "重新載入", + "iris.client.toast.pack_failed": "{pack} 失敗", + "iris.client.what.title": "Iris 什麼?", + "iris.client.what.querying": "查詢 {x}, {z}...", + "iris.client.what.biome": "生物群落: {biome}", + "iris.client.what.region": "地區: {region}", + "iris.client.what.cave": "洞穴: {cave}", + "iris.client.what.height": "高度 : {height} ({x}, {z})", + "iris.client.pregen.stats": "{done} / {total} ({percent}%)", + "iris.client.pregen.paused": "已暫停", + "iris.client.pregen.rate": "{rate}/s", + "iris.client.pregen.rate_eta": "{rate}/s ETA {eta}", + "iris.client.duration.hours_minutes": "{hours}h {minutes}m", + "iris.client.duration.minutes_seconds": "{minutes}m {seconds}s", + "iris.client.duration.seconds": "{seconds}s", + "iris.bukkit.scoreboard.title": "§aIris", + "iris.bukkit.scoreboard.speed": "§a速度§7: {speed}/s {duration}", + "iris.bukkit.scoreboard.cache": "§b快取§7: {count}", + "iris.bukkit.scoreboard.mantle": "§bMantle§7: {count}", + "iris.bukkit.scoreboard.carving": "§d雕刻§7: {state}", + "iris.bukkit.scoreboard.region": "§b地區§7: {region}", + "iris.bukkit.scoreboard.biome": "§b生物團§7: {biome}", + "iris.bukkit.scoreboard.height": "§b高度§7: {height}", + "iris.bukkit.scoreboard.slope": "§b斜坡§7: {slope}", + "iris.bukkit.scoreboard.block_updates": "§b學生會/s§7: {updates}", + "iris.desktop.vision.title": "Iris 願景", + "iris.desktop.vision.view": "檢視 :", + "iris.desktop.vision.grid": "網格", + "iris.desktop.vision.follow": "跟著", + "iris.desktop.vision.low_quality_short": "LQ", + "iris.desktop.vision.refreshing": "重新整理", + "iris.desktop.vision.fps": "{fps} FPS", + "iris.desktop.vision.zoom_reset": "縮放重置", + "iris.desktop.vision.grid_enabled": "已啟用網格", + "iris.desktop.vision.grid_disabled": "已禁用網格", + "iris.desktop.vision.following": "跟蹤 {player}", + "iris.desktop.vision.no_player": "世界上沒有玩家", + "iris.desktop.vision.follow_disabled": "跟隨已禁用", + "iris.desktop.vision.low_quality": "低質量", + "iris.desktop.vision.high_quality": "高質量", + "iris.desktop.vision.status_left": "{mode} | {bpp} 聯合國 {width} x {height} 塊", + "iris.desktop.vision.status_right": "X: {x} Z: {z} | {fps} FPS", + "iris.desktop.vision.entity_position": "位置 : {x}, {y}, {z}", + "iris.desktop.vision.entity_health": "衛生: {health} / {maximum}", + "iris.desktop.vision.block_position": "塊 {x}, {z}", + "iris.desktop.vision.chunk_position": "塊 {x}, {z}", + "iris.desktop.vision.region_position": "地區 {x}, {z}", + "iris.desktop.vision.biome_key": "鍵 : {key}", + "iris.desktop.vision.biome_file": "檔案 : {file}", + "iris.desktop.vision.velocity": "速度 : {velocity}", + "iris.desktop.vision.tiles": "線條 : {high} HD / {low} LQ", + "iris.desktop.vision.workers": "工人: {high} HD / {low} LQ", + "iris.desktop.vision.center": "中點 : {x}, {z}", + "iris.desktop.vision.help.toggle": "切換幫助", + "iris.desktop.vision.help.refresh": "重新整理瓷磚", + "iris.desktop.vision.help.follow": "跟隨玩家", + "iris.desktop.vision.help.zoom": "縮放/退出", + "iris.desktop.vision.help.reset_zoom": "重置縮放", + "iris.desktop.vision.help.cycle_mode": "迴圈渲染模式", + "iris.desktop.vision.help.quality": "切換瓦片質量", + "iris.desktop.vision.help.fps": "切換 30/60 FPS", + "iris.desktop.vision.help.grid": "切換網格", + "iris.desktop.vision.help.biome": "詳細生物資訊", + "iris.desktop.vision.help.teleport": "傳送到游標", + "iris.desktop.vision.help.editor": "在編輯器中開啟 biome", + "iris.desktop.vision.opened": "開啟 {target}", + "iris.desktop.vision.teleporting": "傳送到 {x}, {z}", + "iris.desktop.vision.mode.biome": "生物團", + "iris.desktop.vision.mode.biome_land": "生物土地", + "iris.desktop.vision.mode.biome_sea": "生物海", + "iris.desktop.vision.mode.region": "地區", + "iris.desktop.vision.mode.cave_land": "洞穴土地", + "iris.desktop.vision.mode.height": "高度", + "iris.desktop.vision.mode.object_load": "物件負載", + "iris.desktop.vision.mode.decorator_load": "載入裝飾器", + "iris.desktop.vision.mode.continent": "大陸", + "iris.desktop.vision.mode.layer_load": "圖層負載", + "iris.desktop.noise.title": "噪聲探索器", + "iris.desktop.noise.title_generator": "噪聲探索器 : {generator}", + "iris.desktop.noise.search": "搜尋...", + "iris.desktop.noise.status": "{name} | X: {x} Z: {z} 縮放 : {zoom} 數值 : {value} | {fps} FPS", + "iris.desktop.noise.category.custom": "自定義", + "iris.desktop.noise.category.pack_generators": "包生成器", + "iris.desktop.noise.category.simplex": "簡單x", + "iris.desktop.noise.category.perlin": "佩林語Name", + "iris.desktop.noise.category.cellular": "手機", + "iris.desktop.noise.category.iris": "Iris", + "iris.desktop.noise.category.clover": "克羅弗", + "iris.desktop.noise.category.hexagon": "六邊形", + "iris.desktop.noise.category.vascular": "寬度", + "iris.desktop.noise.category.globe": "環球", + "iris.desktop.noise.category.cubic": "立方體", + "iris.desktop.noise.category.fractal": "分形", + "iris.desktop.noise.category.static": "靜態", + "iris.desktop.noise.category.nowhere": "沒有", + "iris.desktop.noise.category.sierpinski": "錫爾平斯基", + "iris.desktop.noise.category.utility": "工具", + "iris.desktop.noise.category.other": "其他人員", + "iris.desktop.pregen.initializing": "初始化...", + "iris.desktop.pregen.title": "Pregen 檢視", + "iris.desktop.pregen.method_pending": "待決", + "iris.desktop.pregen.paused": "已暫停", + "iris.desktop.pregen.resume_hint": "按 P 鍵恢復", + "iris.desktop.pregen.pause_hint": "按 P 暫停", + "iris.desktop.pregen.progress_paused": "已暫停 {generated} 頁:1 {total} ({percent} 完成) 資料", + "iris.desktop.pregen.progress_saving": "儲存... {generated} 頁:1 {total} ({percent} 完成) 資料", + "iris.desktop.pregen.progress_generating": "正在生成 {generated} 頁:1 {total} ({percent} 完成) 資料", + "iris.desktop.pregen.speed": "速度 : {chunksPerSecond} 塊/s, {regionsPerMinute} 區域/米, {chunksPerMinute} 塊/米", + "iris.desktop.pregen.speed_cached": "速度:已快取 {chunksPerSecond} 塊/s, {regionsPerMinute} 區域/米, {chunksPerMinute} 塊/米", + "iris.desktop.pregen.time": "{remaining} 剩餘({elapsed} 已過期)", + "iris.desktop.pregen.method": "生成方法 : {method}", + "iris.desktop.pregen.memory": "記憶體 : {used} ({usage})壓力: {pressure}/s" + } +} diff --git a/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java b/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java index 73bad9d32..e8a9d11b0 100644 --- a/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java +++ b/core/src/test/java/art/arcane/iris/core/lifecycle/PaperLibBootstrapTest.java @@ -10,6 +10,7 @@ public class PaperLibBootstrapTest { public void isModernVersionSchemeAcceptsMajorVersionAboveOne() { assertTrue(PaperLibBootstrap.isModernVersionScheme("26.2-R0.1-SNAPSHOT")); assertTrue(PaperLibBootstrap.isModernVersionScheme("26.2")); + assertTrue(PaperLibBootstrap.isModernVersionScheme("26.2.build.2614-stable")); assertTrue(PaperLibBootstrap.isModernVersionScheme("27.0.0-R0.1-SNAPSHOT")); } diff --git a/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java b/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java new file mode 100644 index 000000000..7e5acc40a --- /dev/null +++ b/core/src/test/java/art/arcane/iris/core/localization/IrisLanguageTest.java @@ -0,0 +1,576 @@ +package art.arcane.iris.core.localization; + +import art.arcane.volmlib.util.localization.MessageArgument; +import art.arcane.volmlib.util.localization.LocaleOverlay; +import art.arcane.volmlib.util.localization.LocalizationValidationResult; +import art.arcane.volmlib.util.localization.LocalizationValidator; +import art.arcane.volmlib.util.localization.LinesValue; +import art.arcane.volmlib.util.localization.MessageKey; +import art.arcane.volmlib.util.localization.MessageValue; +import art.arcane.volmlib.util.localization.PluralValue; +import art.arcane.volmlib.util.localization.TextValue; +import art.arcane.volmlib.util.localization.VolmitLocales; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +public class IrisLanguageTest { + private static final Pattern PLACEHOLDER = Pattern.compile("\\{[A-Za-z][A-Za-z0-9_]*}"); + private static final Pattern COLOR_CODE = Pattern.compile("(?i)(?:§|&)[0-9A-FK-ORX]"); + private static final Pattern MINI_MESSAGE_TAG = Pattern.compile("<[^<>\\n]+>"); + private static final Pattern URL = Pattern.compile("\\b[a-z][a-z0-9+.-]*://\\S+"); + private static final Pattern COMMAND = Pattern.compile( + "/iris(?:\\s|$).*?(?=(?:\\s+(?:to|for|from|when|or)\\s+)|(?:\\s+(?:first|again)\\b)|[.;,)\\n]|$)" + + "|/execute(?:\\s|$)[^.;,)\\n]*" + ); + private static final Pattern IDENTIFIER = Pattern.compile( + "\\b[a-z][a-z0-9_]*:[a-z0-9_./{}-]+\\b" + + "|(?:\\*/)?(?:plugins|world|objects|dimensions|structures|jigsaw-pieces|jigsaw-pools|packs|dump|config|assets|data)(?:/[A-Za-z0-9_*{}.-]*[A-Za-z0-9_*{}-])+/?" + + "|\\b[A-Za-z0-9_*{}.-]+\\.(?:json|toml|ya?ml|jar|nbt|iob|properties|log|zip)\\b" + ); + private static final Pattern PROPER_NAME = Pattern.compile( + "\\b(?:IrisDimensions|Iris|Minecraft|CraftBukkit|Bukkit|Paper|Folia|Fabric|NeoForge|Forge|Modrinth|GitHub|VSCode|Brigadier|Mantle|MiniMessage|Adventure|Sentry|NMS|NBT|JSON|TOML|YAML|GUI|HUD|TPS|MSPT|FPS|CPU|GPU|RAM|JAR|API|UUID|BUD|ETA|HD|LQ|ms)\\b" + ); + private static final List IRIS_PRODUCT_NAMES = List.of( + "Iris Vision", + "Object Studio", + "Noise Explorer", + "Volmit Software", + "WorldEdit", + "ResourceManager", + "GoldenHash", + "IGenData", + "Sentry", + "TectonicPlates" + ); + private static final Pattern MARKER_DEBRIS = Pattern.compile("(?:⟬|⟭|\\b(?:XQ|QZ)[A-Z0-9_]*\\b|[\\uE000-\\uF8FF])"); + private static final Pattern MOJIBAKE = Pattern.compile("(?:Ã[©¨ªº§³´¼¶¢£¥]|Â[©®°±·«» ]|â(?:€|€™|€œ|€|€“|€”|€¦)|ðŸ)"); + private static final Pattern CONTROL_CHARACTER = Pattern.compile("[\\p{Cc}&&[^\\n\\r\\t]]"); + private static final Pattern WORD = Pattern.compile( + "[\\p{L}\\p{N}_]+" + ); + private static final List REQUIRED_LITERAL_PATTERNS = List.of( + MINI_MESSAGE_TAG, + URL, + COMMAND, + IDENTIFIER, + PROPER_NAME + ); + private static final Map FORBIDDEN_TRANSLATION_ARTIFACTS = Map.ofEntries( + Map.entry("es_ES", Pattern.compile("(?iu)\\b(?:Pónganse|sdatapackImports|TectonicPlates Conde|Iris World Director|FED 7)\\b")), + Map.entry("fr_FR", Pattern.compile("(?iu)\\b(?:sentinelle|groupe électrogène|Iris Directeur mondial|FED 7)\\b")), + Map.entry("he_IL", Pattern.compile("וניל")), + Map.entry("it_IT", Pattern.compile("(?iu)\\bMonolocale\\b")), + Map.entry("ja-JP", Pattern.compile("お問い合わせ|返品について|データパックの摂取|構成されたdatapackの輸入|§a通信|§7ログイン|包装次元|バリアフリー Iris|第一次世界|サイトマップ|コンタクトサポート|新着情報|生物医学|プレジェント|パユース|ドーワン|フィードバック|簡体中文|ジャグジー")), + Map.entry("ko_KR", Pattern.compile("회사연혁|사이트맵|뚱 베어|페이스 북|스페인 사람|이름 \\*|관련 기사|지원하다|이 모수|내 계정|세계 가족|스타트 낙하|견적 요청|포장 차원|세계 시장|제품\\s*정보|기타\\s*제품|₢")), + Map.entry("lt_LT", Pattern.compile("(?iu)\\b(?:vanilė|vanilės)\\b")), + Map.entry("fi_FI", Pattern.compile("(?iu)\\bYksiö\\b")), + Map.entry("nl_NL", Pattern.compile("(?iu)\\b(?:StudioName|Vanille)\\b")), + Map.entry("pl_PL", Pattern.compile("(?iu)\\bwanili[\\p{L}]*\\b")), + Map.entry("ru_RU", Pattern.compile("(?iu)\\bванил[\\p{L}]*\\b")), + Map.entry("tr_TR", Pattern.compile("(?iu)Studio\\s+Stüdyo|\\bvanilya\\b")), + Map.entry("zh_CN", Pattern.compile("香草|虹膜|艾里斯|爱丽丝|地幔|包装|发电机|装入|卸货|包子|快跑 /iris")), + Map.entry("zh_TW", Pattern.compile("香草|虹膜|艾里斯|愛麗絲|地幔|包裝|包装|發電機|发电机|裝入|装入|卸貨|卸货|解除安裝|包子|快跑 /iris")) + ); + private static final String STRUCTURAL_CHARACTERS = "%\\[]{}<>\n"; + + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + private File dataFolder; + + @Before + public void setUp() throws Exception { + dataFolder = temporaryFolder.newFolder(); + assertTrue(IrisLanguage.reload(dataFolder, "en_US")); + } + + @After + public void tearDown() { + assertTrue(IrisLanguage.reload(dataFolder, "en_US")); + } + + @Test + public void usesCodeOwnedEnglishWithoutLocaleFile() { + String rendered = IrisLanguage.plain( + IrisMessages.COMMAND_PERMISSION_DENIED, + MessageArgument.untrusted("permission", "iris.all") + ); + + assertEquals("You lack the permission 'iris.all'", rendered); + assertEquals("en_US", IrisLanguage.activeLocale()); + } + + @Test + public void appliesExternalOverlayAndFallsBackPerKey() throws Exception { + writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.command.permission_denied": "Fehlende Berechtigung: {permission}" + } + } + """); + + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + assertEquals( + "Fehlende Berechtigung: iris.all", + IrisLanguage.plain( + IrisMessages.COMMAND_PERMISSION_DENIED, + MessageArgument.untrusted("permission", "iris.all") + ) + ); + assertFalse("Unknown Iris command".equals(IrisLanguage.plain(IrisMessages.COMMAND_UNKNOWN))); + } + + @Test + public void bundledLocalesMatchSharedManifestAndCoverEntireCatalog() throws Exception { + assertEquals(17, VolmitLocales.nonEnglish().size()); + for (String locale : VolmitLocales.nonEnglish()) { + LocaleOverlay overlay = IrisLanguage.loadBundledOverlay(locale); + assertEquals(locale, overlay.locale()); + assertEquals(IrisLanguage.catalog().ids(), overlay.values().keySet()); + + LocalizationValidationResult validation = LocalizationValidator.validate( + IrisLanguage.catalog(), + List.of(overlay) + ); + assertTrue(locale + " errors: " + validation.errors(), validation.errors().isEmpty()); + assertTrue(locale + " warnings: " + validation.warnings(), validation.warnings().isEmpty()); + + int translated = 0; + for (MessageKey key : IrisLanguage.catalog().keys()) { + if (!key.englishValue().equals(overlay.value(key.id()))) { + translated++; + } + assertValueIntegrity(locale, key.id(), key.englishValue(), overlay.value(key.id())); + } + assertTrue(locale + " contains too many English placeholder values", translated >= 1050); + } + } + + @Test + public void bundledServerResourcesExactlyMatchNonEnglishManifest() throws Exception { + Set expected = VolmitLocales.nonEnglish().stream() + .map(locale -> locale + ".json") + .collect(Collectors.toUnmodifiableSet()); + + assertEquals(expected, resourceFiles("languages")); + assertFalse(expected.contains(VolmitLocales.ENGLISH + ".json")); + } + + @Test + public void bundledLocalesPreserveReservedWorldNames() throws Exception { + for (String locale : VolmitLocales.nonEnglish()) { + LocaleOverlay overlay = IrisLanguage.loadBundledOverlay(locale); + TextValue irisName = (TextValue) overlay.value( + BukkitCommandMessagesExtended.COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_IRIS_CREATING_WORLDS_AS_IRIS.id() + ); + TextValue benchmarkName = (TextValue) overlay.value( + BukkitCommandMessagesExtended.COMMAND_IRIS_YOU_CANNOT_USE_WORLD_NAME_BENCHMARK_CREATING_WORLDS_AS_IRIS.id() + ); + + assertTrue(locale + " must preserve the reserved iris world name", irisName.template().contains("\"iris\"")); + assertTrue(locale + " must preserve the reserved benchmark world name", benchmarkName.template().contains("\"benchmark\"")); + } + } + + @Test + public void bundledLocaleLoadsWithoutUserOverride() { + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + assertEquals("de_DE", IrisLanguage.activeLocale()); + assertFalse("Unknown Iris command".equals(IrisLanguage.plain(IrisMessages.COMMAND_UNKNOWN))); + } + + @Test + public void rejectsUnknownKeysAndPlaceholderShapeWhileRetainingLastGood() throws Exception { + writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.command.permission_denied": "Erlaubnis {permission} fehlt" + } + } + """); + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + + writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.command.permission_denied": "Erlaubnis fehlt", + "iris.command.not_real": "Unbekannt" + } + } + """); + + assertFalse(IrisLanguage.reload(dataFolder, "de_DE")); + assertEquals( + "Erlaubnis iris.all fehlt", + IrisLanguage.plain( + IrisMessages.COMMAND_PERMISSION_DENIED, + MessageArgument.untrusted("permission", "iris.all") + ) + ); + } + + @Test + public void untrustedArgumentsCannotInjectLegacyOrMiniMessageFormatting() throws Exception { + writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.command.permission_denied": "&aWert: {permission}" + } + } + """); + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + + String rendered = IrisLanguage.text( + IrisMessages.COMMAND_PERMISSION_DENIED, + MessageArgument.untrusted("permission", "&cBad\u00a74Name") + ); + + assertTrue(rendered.startsWith("\u00a7aWert: ")); + assertTrue(rendered.endsWith("&c‹red›BadName")); + assertFalse(rendered.contains("\u00a7c")); + assertFalse(rendered.contains("\u00a74")); + } + + @Test + public void argumentValuesCannotCascadeIntoLaterPlaceholderSentinels() { + String rendered = IrisLanguage.plain( + IrisMessages.COMMAND_RELOAD_FAILED, + MessageArgument.untrusted("locale", "\uE0001\uE001"), + MessageArgument.untrusted("activeLocale", "en_US") + ); + + assertEquals( + "Settings were reloaded, but locale \uE0001\uE001 was rejected; continuing with en_US.", + rendered + ); + } + + @Test + public void lookupsUseImmutableSnapshotWithoutReadingTheOverrideAgain() throws Exception { + File override = writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.command.unknown": "Unbekannter Iris-Befehl" + } + } + """); + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + Files.delete(override.toPath()); + + assertEquals("Unbekannter Iris-Befehl", IrisLanguage.plain(IrisMessages.COMMAND_UNKNOWN)); + } + + @Test + public void plainRenderingPreservesCommandSyntaxPlaceholders() { + assertEquals( + "Use /iris download branch= to download manually.", + IrisLanguage.plain(BukkitRuntimeMessages.STUDIO_S_V_C_USE_IRIS_DOWNLOAD_PACK_BRANCH_BRANCH_DOWNLOAD_MANUALLY) + ); + } + + @Test + public void appliesLineAndPluralOverlayShapes() throws Exception { + writeOverride("de_DE", """ + { + "locale": "de_DE", + "messages": { + "iris.bukkit.runtime.commanddeveloper.update_world_warning": [ + "Sicherung erstellen.", + "Mögliche Probleme:", + " - Beschädigte Chunks", + " - Neu generierte Chunks", + " - Fehlende Strukturen", + " - Nicht verbundene Höhlen", + " - Nicht verbundene Geländeschichten", + "Risiken bestätigt.", + "Welt {world}, Paket {pack}" + ], + "iris.bukkit.runtime.commandpack.more_warning_s": { + "one": "Noch {count} Warnung.", + "other": "Noch {count} Warnungen." + } + } + } + """); + + assertTrue(IrisLanguage.reload(dataFolder, "de_DE")); + assertEquals( + "Sicherung erstellen.\n" + + "Mögliche Probleme:\n" + + " - Beschädigte Chunks\n" + + " - Neu generierte Chunks\n" + + " - Fehlende Strukturen\n" + + " - Nicht verbundene Höhlen\n" + + " - Nicht verbundene Geländeschichten\n" + + "Risiken bestätigt.\n" + + "Welt world, Paket pack", + IrisLanguage.plain( + BukkitRuntimeMessages.COMMAND_DEVELOPER_UPDATE_WORLD_WARNING, + MessageArgument.untrusted("world", "world"), + MessageArgument.untrusted("pack", "pack") + ) + ); + assertEquals( + "Noch 1 Warnung.", + IrisLanguage.plain( + BukkitRuntimeMessages.COMMAND_PACK_MORE_WARNING_S, + MessageArgument.trusted("count", 1) + ) + ); + assertEquals( + "Noch 3 Warnungen.", + IrisLanguage.plain( + BukkitRuntimeMessages.COMMAND_PACK_MORE_WARNING_S, + MessageArgument.trusted("count", 3) + ) + ); + } + + private File writeOverride(String locale, String json) throws Exception { + File file = new File(dataFolder, "languages/overrides/" + locale + ".json"); + Files.createDirectories(file.toPath().getParent()); + Files.writeString(file.toPath(), json, StandardCharsets.UTF_8); + return file; + } + + private void assertValueIntegrity(String locale, String key, MessageValue english, MessageValue translated) { + if (english instanceof TextValue englishText && translated instanceof TextValue translatedText) { + assertTemplateIntegrity(locale, key, englishText.template(), translatedText.template()); + return; + } + if (english instanceof LinesValue englishLines && translated instanceof LinesValue translatedLines) { + assertEquals(locale + ": " + key + " line count", englishLines.lines().size(), translatedLines.lines().size()); + for (int index = 0; index < englishLines.lines().size(); index++) { + assertTemplateIntegrity( + locale, + key + "[" + index + "]", + englishLines.lines().get(index), + translatedLines.lines().get(index) + ); + } + return; + } + if (english instanceof PluralValue englishPlural && translated instanceof PluralValue translatedPlural) { + assertEquals(locale + ": " + key + " plural forms", englishPlural.forms().keySet(), translatedPlural.forms().keySet()); + for (String form : englishPlural.forms().keySet()) { + assertTemplateIntegrity( + locale, + key + "." + form, + englishPlural.forms().get(form), + translatedPlural.forms().get(form) + ); + } + return; + } + throw new AssertionError(locale + ": " + key + " has mismatched message value types"); + } + + private void assertTemplateIntegrity(String locale, String key, String english, String translated) { + String context = locale + ": " + key; + assertEquals(context + " color codes", matches(COLOR_CODE, english), matches(COLOR_CODE, translated)); + for (int index = 0; index < STRUCTURAL_CHARACTERS.length(); index++) { + char character = STRUCTURAL_CHARACTERS.charAt(index); + assertEquals( + context + " structural character " + character, + countCharacter(english, character), + countCharacter(translated, character) + ); + } + for (Pattern pattern : REQUIRED_LITERAL_PATTERNS) { + Map required = frequencies(matches(pattern, english)); + for (Map.Entry entry : required.entrySet()) { + assertTrue( + context + " lost literal " + entry.getKey(), + countLiteral(translated, entry.getKey()) >= entry.getValue() + ); + } + } + assertFalse(context + " contains translation marker debris", MARKER_DEBRIS.matcher(translated).find()); + assertFalse(context + " contains an encoded ampersand", translated.contains("&")); + assertFalse(context + " contains a replacement character", translated.contains("�")); + assertFalse(context + " contains mojibake", MOJIBAKE.matcher(translated).find()); + assertFalse(context + " contains a control character", CONTROL_CHARACTER.matcher(translated).find()); + Pattern forbiddenArtifacts = FORBIDDEN_TRANSLATION_ARTIFACTS.get(locale); + if (forbiddenArtifacts != null) { + assertFalse(context + " contains a known translation artifact", forbiddenArtifacts.matcher(translated).find()); + } + assertTechnicalTermIntegrity(locale, context, english, translated); + assertTrue( + context + " is pathologically longer than English", + translated.length() <= Math.max(120, english.length() * 4 + 60) + ); + assertFalse( + context + " contains pathological repetition", + hasPathologicalRepetition(translated) && !hasPathologicalRepetition(english) + ); + } + + private void assertTechnicalTermIntegrity(String locale, String context, String english, String translated) { + if (!locale.equals("es_ES") && !locale.equals("fr_FR")) { + return; + } + + String source = PLACEHOLDER.matcher(english).replaceAll(""); + String target = PLACEHOLDER.matcher(translated).replaceAll(""); + for (String productName : IRIS_PRODUCT_NAMES) { + if (source.contains(productName)) { + assertTrue(context + " must preserve product name " + productName, target.contains(productName)); + } + } + if (containsWord(source, "chunks?")) { + assertTrue(context + " must preserve the Minecraft term chunk", containsWord(target, "chunks?")); + assertFalse(context + " mistranslates chunk", artifact(locale, target, "pedazos?|trozos?|porciones?|tontos?|idiotas?|gorros?", "morceaux?|choux?")); + } + if (containsWord(source, "mantle")) { + assertTrue(context + " must preserve Mantle", target.contains("Mantle")); + assertFalse(context + " mistranslates Mantle", artifact(locale, target, "mantos?|manteles?", "manteaux?")); + } + String sourceWithoutDataPack = source.replaceAll("(?iu)\\bdata\\s+packs?\\b", "datapack"); + if (containsWord(sourceWithoutDataPack, "packs?")) { + assertTrue(context + " must preserve the Iris term pack", containsWord(target, "packs?")); + assertFalse(context + " mistranslates pack", artifact(locale, target, "paquetes?|embalajes?|envases?", "paquets?|boîtes?|boites?|emballages?|colis")); + } + if (containsWord(source, "vanilla")) { + assertTrue(context + " must preserve the Minecraft term vanilla", containsWord(target, "vanilla")); + assertFalse(context + " mistranslates vanilla", artifact(locale, target, "vainilla", "vanille")); + } + if (containsWord(source, "studio")) { + assertTrue(context + " must preserve Studio", containsWord(target, "Studio")); + } + if (containsWord(source, "pastes?")) { + assertFalse(context + " mistranslates paste", artifact(locale, target, "pastas?|sabores?", "pâtes?|saveurs?")); + } + if (containsWord(source, "unloads?|unloaded|unloading")) { + assertFalse(context + " confuses unload with download", artifact(locale, target, "descarg(?:ar|a|ado|ando)", "télécharg(?:er|é|ement)")); + } + if (containsWord(source, "downloads?|downloaded|downloading")) { + assertFalse(context + " confuses download with unload", artifact(locale, target, "retir(?:ar|ado|ando).{0,20}memoria", "décharg(?:er|é|ement)")); + } + if (containsWord(source, "spawns?|spawned|spawning")) { + assertFalse(context + " mistranslates spawn", artifact(locale, target, "desov(?:ar|a|ado)|escup(?:ir|e|ido)", "fray(?:er|é|age)")); + } + if (containsWord(source, "benchmarks?|benchmarked|benchmarking")) { + assertTrue(context + " must preserve benchmark", containsWord(target, "benchmarks?")); + } + if (locale.equals("fr_FR") && containsWord(source, "generators?")) { + assertFalse(context + " uses the electrical sense of generator", containsWord(target, "groupes?\\s+électrogènes?")); + } + if (locale.equals("fr_FR") && containsWord(source, "caves?")) { + assertFalse(context + " uses the cellar sense of cave", containsWord(target, "caves?")); + } + if (containsWord(source, "saves?|saved|saving")) { + assertFalse(context + " uses the rescue sense of save", artifact(locale, target, "salv(?:ar|a|ado|ando)", "sauv(?:er|é)")); + } + } + + private boolean artifact(String locale, String value, String spanish, String french) { + return containsWord(value, locale.equals("es_ES") ? spanish : french); + } + + private boolean containsWord(String value, String expression) { + return Pattern.compile("(?iuU)\\b(?:" + expression + ")\\b").matcher(value).find(); + } + + private boolean hasPathologicalRepetition(String value) { + String withoutPlaceholders = PLACEHOLDER.matcher(value).replaceAll(""); + List words = new ArrayList<>(); + Matcher matcher = WORD.matcher(withoutPlaceholders); + while (matcher.find()) { + words.add(matcher.group().toLowerCase(Locale.ROOT)); + } + for (int index = 0; index + 2 < words.size(); index++) { + if (words.get(index).equals(words.get(index + 1)) + && words.get(index).equals(words.get(index + 2))) { + return true; + } + } + for (int size = 2; size <= 4; size++) { + for (int index = 0; index + size * 3 <= words.size(); index++) { + if (words.subList(index, index + size).equals(words.subList(index + size, index + size * 2)) + && words.subList(index, index + size).equals(words.subList(index + size * 2, index + size * 3))) { + return true; + } + } + } + return false; + } + + private Set resourceFiles(String directory) throws Exception { + URL resource = IrisLanguageTest.class.getClassLoader().getResource(directory); + assertNotNull("Missing resource directory: " + directory, resource); + assertEquals("file", resource.getProtocol()); + try (Stream paths = Files.list(Path.of(resource.toURI()))) { + return paths + .filter(Files::isRegularFile) + .map(path -> path.getFileName().toString()) + .collect(Collectors.toUnmodifiableSet()); + } + } + + private List matches(Pattern pattern, String value) { + List matches = new ArrayList<>(); + Matcher matcher = pattern.matcher(value); + while (matcher.find()) { + matches.add(matcher.group()); + } + return matches; + } + + private Map frequencies(List values) { + Map frequencies = new LinkedHashMap<>(); + for (String value : values) { + frequencies.merge(value, 1, Integer::sum); + } + return frequencies; + } + + private int countCharacter(String value, char character) { + int count = 0; + for (int index = 0; index < value.length(); index++) { + if (value.charAt(index) == character) { + count++; + } + } + return count; + } + + private int countLiteral(String value, String literal) { + int count = 0; + int index = 0; + while ((index = value.indexOf(literal, index)) >= 0) { + count++; + index += literal.length(); + } + return count; + } +} diff --git a/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java b/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java index 716179bac..5c5065883 100644 --- a/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java +++ b/core/src/test/java/art/arcane/iris/core/runtime/GoldenHashEngineTest.java @@ -149,7 +149,7 @@ public class GoldenHashEngineTest { GoldenHashEngine hashEngine = new GoldenHashEngine(engine, request(GoldenHashEngine.Mode.AUTO), goldenDir, broken, feedback, progress()); assertFalse(hashEngine.run()); assertFalse(new File(goldenDir, "testdim-s1234-c0x0-r0.hashes").exists()); - assertTrue(feedback.fail.stream().anyMatch((String line) -> line.startsWith("GoldenHash aborted: 1 chunk(s)"))); + assertTrue(feedback.fail.stream().anyMatch((String line) -> line.startsWith("GoldenHash aborted: 1 chunk"))); } private GoldenHashEngine.Request request(GoldenHashEngine.Mode mode) { diff --git a/core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderMiniMessageEscapeTest.java b/core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderMiniMessageEscapeTest.java deleted file mode 100644 index ba385e950..000000000 --- a/core/src/test/java/art/arcane/iris/util/common/plugin/VolmitSenderMiniMessageEscapeTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package art.arcane.iris.util.common.plugin; - -import net.kyori.adventure.text.minimessage.MiniMessage; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class VolmitSenderMiniMessageEscapeTest { - @Test - public void escapesApostrophesForQuotedHoverText() { - String escaped = VolmitSender.escapeMiniMessageQuotedText("This world's dimension config"); - - assertEquals("This world\\'s dimension config", escaped); - MiniMessage.miniMessage().deserialize("ok"); - } - - @Test - public void escapesBackslashesBeforeQuotedHoverText() { - String escaped = VolmitSender.escapeMiniMessageQuotedText("Path \\\\ data"); - - assertEquals("Path \\\\\\\\ data", escaped); - MiniMessage.miniMessage().deserialize("ok"); - } -}