From eb7c6df42af24976baea8519a781777cdd9b502e Mon Sep 17 00:00:00 2001 From: boy0001 Date: Tue, 21 Apr 2015 22:48:18 +1000 Subject: [PATCH] Working on fixing plot setup --- .../plot/PlotSquared.java | 11 +- .../plot/commands/Setup.java | 70 ++++- .../intellectualcrafters/plot/config/C.java | 2 +- .../plot/object/PlotGenerator.java | 3 +- .../plot/object/SetupObject.java | 45 ++- .../plot/util/SetBlockQueue.java | 198 ++++++++++++++ .../plot/util/SetupUtils.java | 6 +- .../plot/util/bukkit/BukkitSetupUtils.java | 23 +- PlotSquared/src/main/resources/german.yml | 233 ++++++++++++++++ PlotSquared/src/main/resources/s_chinese.yml | 257 ++++++++++++++++++ .../main/resources/s_chinese_unescaped.yml | 257 ++++++++++++++++++ 11 files changed, 1074 insertions(+), 31 deletions(-) create mode 100644 PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetBlockQueue.java create mode 100644 PlotSquared/src/main/resources/german.yml create mode 100644 PlotSquared/src/main/resources/s_chinese.yml create mode 100644 PlotSquared/src/main/resources/s_chinese_unescaped.yml diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java index 0205052d4..70b848e1c 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java @@ -564,19 +564,22 @@ public class PlotSquared { } // Copy files - copyFile("town.template"); - copyFile("skyblock.template"); + copyFile("town.template", "templates"); + copyFile("skyblock.template", "templates"); + copyFile("german.yml", "translations"); + copyFile("s_chinese_unescaped.yml", "translations"); + copyFile("s_chinese.yml", "translations"); showDebug(); } - public void copyFile(String file) { + public void copyFile(String file, String folder) { try { byte[] buffer = new byte[2048]; File output = PlotSquared.IMP.getDirectory(); if (!output.exists()) { output.mkdirs(); } - File newFile = new File((output + File.separator + "templates" + File.separator + file)); + File newFile = new File((output + File.separator + folder + File.separator + file)); if (newFile.exists()) { return; } diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Setup.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Setup.java index d93203c31..f55dc2513 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Setup.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Setup.java @@ -20,14 +20,19 @@ //////////////////////////////////////////////////////////////////////////////////////////////////// package com.intellectualcrafters.plot.commands; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map.Entry; import org.apache.commons.lang.StringUtils; +import org.bukkit.generator.ChunkGenerator; import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.ConfigurationNode; import com.intellectualcrafters.plot.config.Settings; +import com.intellectualcrafters.plot.generator.HybridGen; +import com.intellectualcrafters.plot.object.PlotGenerator; import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.SetupObject; import com.intellectualcrafters.plot.util.BlockManager; @@ -38,6 +43,25 @@ public class Setup extends SubCommand { public Setup() { super("setup", "plots.admin.command.setup", "Plotworld setup command", "setup", "create", CommandCategory.ACTIONS, true); } + + public void displayGenerators(PlotPlayer plr) { + MainUtil.sendMessage(plr, "&6What generator do you want?"); + for (Entry entry : SetupUtils.generators.entrySet()) { +// + prefix + StringUtils.join(SetupUtils.generators.keySet(), prefix).replaceAll("PlotSquared", "&2PlotSquared") + if (entry.getKey().equals("PlotSquared")) { + MainUtil.sendMessage(plr, "\n&8 - &2" + entry.getKey() + "(Hybrid Generator)"); + } + else if (entry.getValue() instanceof HybridGen) { + MainUtil.sendMessage(plr, "\n&8 - &7" + entry.getKey() + "(Hybrid Generator)"); + } + else if (entry.getValue() instanceof PlotGenerator) { + MainUtil.sendMessage(plr, "\n&8 - &7" + entry.getKey() + "(Plot Generator)"); + } + else { + MainUtil.sendMessage(plr, "\n&8 - &7" + entry.getKey() + "(Unknown structure)"); + } + } + } @Override public boolean execute(final PlotPlayer plr, final String... args) { @@ -47,9 +71,8 @@ public class Setup extends SubCommand { final SetupObject object = new SetupObject(); SetupUtils.setupMap.put(name, object); SetupUtils.manager.updateGenerators(); - final String prefix = "\n&8 - &7"; sendMessage(plr, C.SETUP_INIT); - MainUtil.sendMessage(plr, "&6What generator do you want?" + prefix + StringUtils.join(SetupUtils.generators.keySet(), prefix).replaceAll("PlotSquared", "&2PlotSquared")); + displayGenerators(plr); return false; } if (args.length == 1) { @@ -80,28 +103,49 @@ public class Setup extends SubCommand { sendMessage(plr, C.SETUP_INIT); return false; } - object.generator = args[0]; + object.setupGenerator = args[0]; object.current++; final String partial = Settings.ENABLE_CLUSTERS ? "\n&8 - &7PARTIAL&8 - &7Vanilla with clusters of plots" : ""; MainUtil.sendMessage(plr, "&6What world type do you want?" + "\n&8 - &2DEFAULT&8 - &7Standard plot generation" + "\n&8 - &7AUGMENTED&8 - &7Plot generation with terrain" + partial); break; } case 1: { // choose world type - List types; + List allTypes = Arrays.asList(new String[] { "default", "augmented", "partial" }); + ArrayList types = new ArrayList<>(); + if (SetupUtils.generators.get(object.setupGenerator) instanceof PlotGenerator) { + types.add("default"); + } + types.add("augmented"); if (Settings.ENABLE_CLUSTERS) { - types = Arrays.asList(new String[] { "default", "augmented", "partial" }); - } else { - types = Arrays.asList(new String[] { "default", "augmented" }); + types.add("partial"); } if ((args.length != 1) || !types.contains(args[0].toLowerCase())) { MainUtil.sendMessage(plr, "&cYou must choose a world type!" + "\n&8 - &2DEFAULT&8 - &7Standard plot generation" + "\n&8 - &7AUGMENTED&8 - &7Plot generation with terrain" + "\n&8 - &7PARTIAL&8 - &7Vanilla with clusters of plots"); return false; } - object.type = types.indexOf(args[0].toLowerCase()); + object.type = allTypes.indexOf(args[0].toLowerCase()); if (object.type == 0) { object.current++; if (object.step == null) { - object.step = SetupUtils.generators.get(object.generator).getNewPlotWorld(null).getSettingNodes(); + ChunkGenerator gen = SetupUtils.generators.get(object.setupGenerator); + if (gen instanceof PlotGenerator) { + object.plotManager = object.setupGenerator; + object.step = ((PlotGenerator) SetupUtils.generators.get(object.setupGenerator)).getNewPlotWorld(null).getSettingNodes(); + ((PlotGenerator) gen).processSetup(object, plr); + } + else { + + + MainUtil.sendMessage(plr, "&c[WARNING] The specified generator does not identify as PlotGenerator"); + MainUtil.sendMessage(plr, "&7Searching for a configuration script..."); + + boolean script = false; + // TODO allow external configuration scripts + + MainUtil.sendMessage(plr, "&cNo script has been found:"); + MainUtil.sendMessage(plr, "&7 - You may need to manually configure the other plugin"); + object.step = ((PlotGenerator) SetupUtils.generators.get("PlotSquared")).getNewPlotWorld(null).getSettingNodes(); + } } final ConfigurationNode step = object.step[object.setup_index]; sendMessage(plr, C.SETUP_STEP, object.setup_index + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + ""); @@ -166,7 +210,13 @@ public class Setup extends SubCommand { } object.world = args[0]; SetupUtils.setupMap.remove(plr.getName()); - final String world = SetupUtils.manager.setupWorld(object); + final String world; + if (object.manager == null) { + world = SetupUtils.manager.setupWorld(object); + } + else { + + } try { plr.teleport(BlockManager.manager.getSpawn(world)); } catch (final Exception e) { diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/config/C.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/config/C.java index 7539ad60f..7458b41d2 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/config/C.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/config/C.java @@ -187,7 +187,7 @@ public enum C { /* * Core Stuff */ - PREFIX("$3[$1P\u00B2$3] "), + PREFIX("$3[$1P2$3] "), ENABLED("$1PlotSquared is now enabled"), EXAMPLE_MESSAGE("$2This is an example message &k!!!"), /* diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/PlotGenerator.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/PlotGenerator.java index 9bff22155..368e15eee 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/PlotGenerator.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/PlotGenerator.java @@ -177,5 +177,6 @@ public abstract class PlotGenerator extends ChunkGenerator { public abstract PlotWorld getNewPlotWorld(final String world); public abstract PlotManager getPlotManager(); - + + public void processSetup(SetupObject object, PlotPlayer player) {}; } diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/SetupObject.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/SetupObject.java index f809c99ef..6e8cdbacd 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/SetupObject.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/object/SetupObject.java @@ -1,13 +1,52 @@ package com.intellectualcrafters.plot.object; import com.intellectualcrafters.plot.config.ConfigurationNode; +import com.intellectualcrafters.plot.util.SetupUtils; public class SetupObject { + + /** + * Specify a SetupUtils object here to override the existing + */ + public SetupUtils setupManager; + + /** + * The current state + */ public int current = 0; + + /** + * The index in generator specific settings + */ public int setup_index = 0; + + /** + * The name of the world + */ public String world = null; - public String generator = null; - public int type = 0; - public int terrain = 0; + + /** + * The name of the plot manager + */ + public String plotManager = null; + + /** + * The name of the generator to use for world creation + */ + public String setupGenerator = null; + + /** + * The management type + */ + public int type; + + /** + * The terrain type + */ + public int terrain; + + /** + * Generator specific configuration steps + */ public ConfigurationNode[] step = null; } diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetBlockQueue.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetBlockQueue.java new file mode 100644 index 000000000..0a89424dc --- /dev/null +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetBlockQueue.java @@ -0,0 +1,198 @@ +package com.intellectualcrafters.plot.util; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map.Entry; + +import com.intellectualcrafters.plot.PlotSquared; +import com.intellectualcrafters.plot.object.PlotBlock; +import com.intellectualcrafters.plot.util.TaskManager; + +public class SetBlockQueue { + + private volatile static HashMap blocks; + private volatile static int allocate = 50; + private volatile static boolean running = false; + private volatile static boolean locked = false; + private volatile static HashSet runnables; + + public synchronized static void allocate(int t) { + allocate = t; + } + + public synchronized static void addNotify(Runnable whenDone) { + if (runnables == null) { + TaskManager.runTask(whenDone); + } + else { + runnables.add(whenDone); + } + } + + public synchronized static void init() { + if (blocks == null) { + blocks = new HashMap<>(); + runnables = new HashSet<>(); + } + if (!running) { + TaskManager.index.increment(); + final int current = TaskManager.index.intValue(); + int task = TaskManager.runTaskRepeat(new Runnable() { + @Override + public void run() { + if (locked) { + return; + } + if (blocks.size() == 0) { + PlotSquared.TASK.cancelTask(TaskManager.tasks.get(current)); + for (Runnable runnable : runnables) { + TaskManager.runTask(runnable); + } + runnables = null; + blocks = null; + running = false; + return; + } + long start = System.currentTimeMillis() + allocate; + Iterator> i = blocks.entrySet().iterator(); + while (System.currentTimeMillis() < start && i.hasNext()) { + if (locked) { + return; + } + Entry n = i.next(); + i.remove(); + ChunkWrapper chunk = n.getKey(); + int X = chunk.x << 4; + int Z = chunk.z << 4; + PlotBlock[][] blocks = n.getValue(); + String world = chunk.world; + for (int j = 0; j < blocks.length; j++) { + PlotBlock[] blocksj = blocks[j]; + if (blocksj != null) { + for (int k = 0; k < blocksj.length; k++) { + PlotBlock block = blocksj[k]; + if (block != null) { + final int y = (j << 4) + (k >> 8); + final int a = (k - ((y & 0xF) << 8)); + final int z = (a >> 4); + final int x = a - (z << 4); + BlockManager.manager.functionSetBlock(world, X + x, y, Z + z, block.id, block.data); + } + } + } + } + } + } + }, 5); + TaskManager.tasks.put(current, task); + running = true; + } + } + + public static void setBlock(final String world, int x, final int y, int z, final PlotBlock block) { + locked = true; + if (!running) { + init(); + } + int X = x >> 4; + int Z = z >> 4; + x -= X << 4; + z -= Z << 4; + + ChunkWrapper wrap = new ChunkWrapper(world, X, Z); + PlotBlock[][] result = blocks.get(wrap); + if (!blocks.containsKey(wrap)) { + result = new PlotBlock[16][]; + blocks.put(wrap, result); + } + if (result[y >> 4] == null) { + result[y >> 4] = new PlotBlock[4096]; + } + result[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = block; + locked = false; + } + + private static int lastInt = 0; + private static PlotBlock lastBlock = new PlotBlock((short) 0, (byte) 0); + + public static void setBlock(final String world, int x, final int y, int z, final int id) { + locked = true; + if (!running) { + init(); + } + int X = x >> 4; + int Z = z >> 4; + x -= X << 4; + z -= Z << 4; + + ChunkWrapper wrap = new ChunkWrapper(world, X, Z); + PlotBlock[][] result = blocks.get(wrap); + if (!blocks.containsKey(wrap)) { + result = new PlotBlock[16][]; + blocks.put(wrap, result); + } + if (result[y >> 4] == null) { + result[y >> 4] = new PlotBlock[4096]; + } + if (id == lastInt) { + result[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = lastBlock; + } + else { + lastInt = id; + lastBlock = new PlotBlock((short) id, (byte) 0); + } + result[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = lastBlock; + locked = false; + } + + public static class ChunkWrapper { + final int x; + final int z; + final String world; + + public ChunkWrapper(String world, int x, int z) { + this.world = world; + this.x = x; + this.z = z; + } + + @Override + public int hashCode() { + int result; + if (this.x >= 0) { + if (this.z >= 0) { + result = (this.x * this.x) + (3 * this.x) + (2 * this.x * this.z) + this.z + (this.z * this.z); + } else { + final int y1 = -this.z; + result = (this.x * this.x) + (3 * this.x) + (2 * this.x * y1) + y1 + (y1 * y1) + 1; + } + } else { + final int x1 = -this.x; + if (this.z >= 0) { + result = -((x1 * x1) + (3 * x1) + (2 * x1 * this.z) + this.z + (this.z * this.z)); + } else { + final int y1 = -this.z; + result = -((x1 * x1) + (3 * x1) + (2 * x1 * y1) + y1 + (y1 * y1) + 1); + } + } + result = result * 31 + world.hashCode(); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ChunkWrapper other = (ChunkWrapper) obj; + return ((this.x == other.x) && (this.z == other.z) && (this.world.equals(other.world))); + } + } +} diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetupUtils.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetupUtils.java index f93617e8c..3d02bd779 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetupUtils.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/SetupUtils.java @@ -3,6 +3,8 @@ package com.intellectualcrafters.plot.util; import java.util.HashMap; import java.util.Map; +import org.bukkit.generator.ChunkGenerator; + import com.intellectualcrafters.plot.object.PlotGenerator; import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.SetupObject; @@ -10,9 +12,9 @@ import com.intellectualcrafters.plot.object.SetupObject; public abstract class SetupUtils { public static SetupUtils manager; - + public final static Map setupMap = new HashMap<>(); - public static HashMap generators = new HashMap<>(); + public static HashMap generators = new HashMap<>(); public abstract void updateGenerators(); diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/bukkit/BukkitSetupUtils.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/bukkit/BukkitSetupUtils.java index 727593950..b908b1c81 100644 --- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/bukkit/BukkitSetupUtils.java +++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/util/bukkit/BukkitSetupUtils.java @@ -31,12 +31,12 @@ public class BukkitSetupUtils extends SetupUtils { if (generator != null) { PlotSquared.removePlotWorld(testWorld); final String name = plugin.getDescription().getName(); - if (generator instanceof PlotGenerator) { - final PlotGenerator pgen = (PlotGenerator) generator; +// if (generator instanceof PlotGenerator) { +// final PlotGenerator pgen = (PlotGenerator) generator; // if (pgen.getPlotManager() instanceof SquarePlotManager) { - SetupUtils.generators.put(name, pgen); + SetupUtils.generators.put(name, generator); // } - } +// } } } } @@ -52,22 +52,25 @@ public class BukkitSetupUtils extends SetupUtils { if (object.type != 0) { PlotSquared.config.set("worlds." + world + "." + "generator.type", object.type); PlotSquared.config.set("worlds." + world + "." + "generator.terrain", object.terrain); - PlotSquared.config.set("worlds." + world + "." + "generator.plugin", object.generator); + PlotSquared.config.set("worlds." + world + "." + "generator.plugin", object.plotManager); + if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) { + PlotSquared.config.set("worlds." + world + "." + "generator.init", object.setupGenerator); + } } try { PlotSquared.config.save(PlotSquared.configFile); } catch (final IOException e) { e.printStackTrace(); } - if (object.type == 0) { + if (object.setupGenerator != null) { if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) { - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv create " + world + " normal -g " + object.generator); + Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv create " + world + " normal -g " + object.setupGenerator); } else { if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) { - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + world + " plugin:" + object.generator); + Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + world + " plugin:" + object.setupGenerator); } else { final WorldCreator wc = new WorldCreator(object.world); - wc.generator(object.generator); + wc.generator(object.setupGenerator); wc.environment(Environment.NORMAL); Bukkit.createWorld(wc); } @@ -99,7 +102,7 @@ public class BukkitSetupUtils extends SetupUtils { if (!(generator instanceof PlotGenerator)) { return null; } - for (Entry entry : generators.entrySet()) { + for (Entry entry : generators.entrySet()) { if (entry.getValue().getClass().getName().equals(generator.getClass().getName())) { return entry.getKey(); } diff --git a/PlotSquared/src/main/resources/german.yml b/PlotSquared/src/main/resources/german.yml new file mode 100644 index 000000000..34f1bf5f1 --- /dev/null +++ b/PlotSquared/src/main/resources/german.yml @@ -0,0 +1,233 @@ +### TEMPLATE ### +# Translated by: Krauti2 / EvilOlaf +# +### TEMPLATE ### +FAILED_CONFIRM: "$2Es gibt keine zur Bestätigung ausstehenden Befehle!" +REQUIRES_CONFIRM: "$2Bist du sicher, dass du diesen Befehl ausführen willst: $1%s$2?n$2Die Änderung ist unwiderruflich! Wenn du sicher bist: $1/plot confirm" +MOVE_SUCCESS: "$4Plot erfolgreich verschoben." +REQUIRES_UNOWNED: "$2Der angegebene Ort ist bereits belegt." +COMPASS_TARGET: "$4Plot erfolgreich mit dem Kompass anvisiert." +CLUSTER_AVAILABLE_ARGS: "$1Die folgenden Parameter sind verfügbar: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4helpers$2, $4info$2, $4tp$2, $4sethome" +CLUSTER_LIST_HEADING: "$2Es gibt $1%s$2 Cluster in dieser Welt." +CLUSTER_LIST_ELEMENT: "$2 - $1%sn" +CLUSTER_INTERSECTION: "$2Der vorgeschlagene Bereich überlappt mit $1%s$2 existierendem/n Cluster/n" +CLUSTER_ADDED: "$4Cluster erfolgreich erstellt." +CLUSTER_DELETED: "$4Cluster erfolgreich gelöscht." +CLUSTER_RESIZED: "$4Größe des Clusters wurde erfolgreich geändert." +CLUSTER_ADDED_USER: "$4Spieler erfolgreich zum Cluster hinzugefügt." +CANNOT_KICK_PLAYER: "$2Du kannst diesen Spieler nicht kicken." +CLUSTER_INVITED: "$1Du wurdest in folgenden Cluster eingeladen: $2%s" +CLUSTER_REMOVED: "$1Du wurdest aus folgendem Cluster enfernt: $2%s" +CLUSTER_KICKED_USER: "$4Spieler erfolgreich gekickt." +INVALID_CLUSTER: "$1Clustername ungültig: $2%s" +CLUSTER_NOT_ADDED: "$2Dieser Spieler war nicht zum Cluster hinzugefügt." +CLUSTER_CANNOT_LEAVE: "$1Du musst deinen Besitz löschen oder transferieren bevor du gehen kannst." +CLUSTER_ADDED_HELPER: "$4Helfer erfolgreich hinzugefügt." +CLUSTER_REMOVED_HELPER: "$4Helfer erfolgreich vom Cluster entfernt." +CLUSTER_REGENERATED: "$4Clusterregeneration erfolgreich gestartet" +CLUSTER_TELEPORTING: "$4Teleportiere..." +CLUSTER_INFO: "$1Aktueller Cluster: $2%id%n$1Name: $2%name%n$1Besitzer: $2%owner%n$1Größe: $2%size%n$1Rechte: $2%rights%" +CLUSTER_CURRENT_PLOTID: "$1Aktueller Plot: $2%s" +BORDER: "$2Du befindest dich ausserhalb der aktuellen Weltengrenze" +UNCLAIM_SUCCESS: "$4Dieser Plot gehört dir jetzt nicht mehr." +REQUIRE_SELECTION_IN_MASK: "$2%s deiner Selektion befindet sich nicht innerhalb deines Plots. Du kannst Änderungen nur innerhalb deines Plots vornehmen." +RECORD_PLAY: "$2%player $2startete Spielaufzeichnung $1%name" +NOTIFY_ENTER: "$2%player $2betritt deinen Plot ($1%plot$2)" +NOTIFY_LEAVE: "$2%player $2verlies deinen Plot ($1%plot$2)" +SWAP_SYNTAX: "$2/plots swap " +SWAP_SUCCESS: "$4Plots erfolgreich getauscht" +COMMENT_SYNTAX: "$2Syntax: /plots comment " +INVALID_INBOX: "$2Dieses Postfach ist ungültig.n$1Akzeptierte Werte: %s" +COMMENT_REMOVED: "$4Erfolgreich gelöscht: %s." +COMMENT_ADDED: "$4Ein Kommentar wurde hinterlassen." +NOT_CONSOLE: "$2Aus Sicherheitsgründen kann dieser Befehl nur von der Konsole ausgeführt werden." +IS_CONSOLE: "$2Dieser Befehl kann nur von einem Spieler ausgeführt werden." +CLIPBOARD_SET: "$2Der aktuelle Plot wird in die Zwischenablage kopiert. Benutze $1/plot paste$2 um ihn einzufügen." +PASTED: "$4Die Plotauswahl wurde erfolgreich eingefügt. Die Zwischenablage wurde geleert." +PASTE_FAILED: "$2Einfügen fehlgeschlagen: $2%s" +NO_CLIPBOARD: "$2Deine Zwischenablage ist leer." +CLIPBOARD_INFO: "$2Aktuelle Auswahl - Plot ID: $1%id$2, Breite: $1%width$2, Anzahl Blöcke: $1%total$2" +RATING_NOT_VALID: "$2Wähle eine Zahl zwischen 1 und 10" +RATING_ALREADY_EXISTS: "$2Du hast diesen Plot bereits bewertet: $2%s" +RATING_APPLIED: "$4Du hast diesen Plot erfolgreich bewertet: $2%s" +RATING_NOT_YOUR_OWN: "$2Du kannst deinen eigenen Plot nicht selbst bewerten." +RATING_NOT_OWNED: "$2Plots ohne Besitzer können nicht bewertet werden." +ECON_DISABLED: "$2Ökonomie ist nicht aktiviert." +CANNOT_AFFORD_PLOT: "$2Du kannst dir diesen Plot nicht leisten. Er kostet $1%s" +NOT_FOR_SALE: "$2Dieser Plot steht nicht zum Verkauf." +CANNOT_BUY_OWN: "$2Du kannst deinen eigenen Plot nicht kaufen." +PLOT_SOLD: "$4Dein Plot $1%s$4, wurde an $1%s$4 für $1$%s$4 verkauft." +CANNOT_AFFORD_MERGE: "$2Du kannst dir das Zusammenfügen der Plots nicht leisten. Es kostet $1%s" +ADDED_BALANCE: "$1%s $2wurden deinem Guthaben hinzugefügt." +REMOVED_BALANCE: "$1%s $2wurden von deinem Guthaben abgezogen." +SETUP_INIT: "$1Verwendung: $2/plot setup " +SETUP_STEP: "$3[$1Schritt %s$3] $1%s $2- $1Erwarte: $2%s $1Standard: $2%s" +SETUP_INVALID_ARG: "$2%s ist kein gültiger Wer für Schritt %s. Um Setup abzubrechen verwende: $1/plot setup cancel" +SETUP_VALID_ARG: "$2Wert $1%s $2gesetzt auf %s" +SETUP_FINISHED: "$3Falls du MULTIVERSE oder MULTIWORLD verwendest sollte die Welt generiert worden sein. Andernfalls musst du die Welt manuell über bukkit.yml hinzufügen." +SETUP_WORLD_TAKEN: "$2%s ist bereits eine bekannte Plotwelt" +SETUP_MISSING_WORLD: "$2Du musst einen Namen für die Welt vergeben ($1/plot setup &l$1 $2)n$1Zusätzliche Befehle:n$2 - $1/plot setup n$2 - $1/plot setup backn$2 - $1/plot setup cancel" +SETUP_MISSING_GENERATOR: "$2Du musst einen Generator angeben ($1/plot setup &l&r$2)n$1Zusätzliche Befehle:n$2 - $1/plot setup n$2 - $1/plot setup backn$2 - $1/plot setup cancel" +SETUP_INVALID_GENERATOR: "$2Ungültiger Generarator. Mögliche Optionen: %s" +SCHEMATIC_MISSING_ARG: "$2Du musst einen Wert angeben. Gültige Werte: $1test $2 , $1save$2 , $1paste $2, $1exportall" +SCHEMATIC_INVALID: "$2Diese Schematic ist ungültig: $2%s" +SCHEMATIC_VALID: "$2Diese Schematic ist gültig." +SCHEMATIC_PASTE_FAILED: "$2Einfügen der Schematic fehlgeschlagen" +SCHEMATIC_PASTE_SUCCESS: "$4Einfügen der Schematic erfolgreich." +TITLE_ENTERED_PLOT: "Du betrittst Plot %world%;%x%;%z%" +TITLE_ENTERED_PLOT_COLOR: "GOLD" +TITLE_ENTERED_PLOT_SUB: "Besitzer: %s" +TITLE_ENTERED_PLOT_SUB_COLOR: "RED" +TITLE_LEFT_PLOT: "Du verlässt Plot %s" +TITLE_LEFT_PLOT_COLOR: "GOLD" +TITLE_LEFT_PLOT_SUB: "Besitzer: %s" +TITLE_LEFT_PLOT_SUB_COLOR: "RED" +PREFIX_GREETING: "$1%id%$2> " +PREFIX_FAREWELL: "$1%id%$2> " +PREFIX: "$3[$1P²$3] " +ENABLED: "$1PlotSquared wurde aktiviert" +EXAMPLE_MESSAGE: "$2Das ist eine Beispielnachricht &k!!!" +RELOADED_CONFIGS: "$1Übersetzungen und Welteneinstellungen wurden neu geladen" +RELOAD_FAILED: "$2Erneutes Laden der Konfiguration fehlgeschlagen" +BOSSBAR_CLEARING: "$2Leere Plot: $1%id%" +ALIAS_SET_TO: "$2Plot Alias geseztt auf $1%alias%" +MISSING_ALIAS: "$2Du musst ein Alias angeben" +ALIAS_TOO_LONG: "$2Der Alias darf nicht länger als 50 Zeichen sein" +ALIAS_IS_TAKEN: "$2Dieser Alias wird bereits verwendet" +MISSING_POSITION: "$2Du musst eine Position angeben. Mögliche Werte: $1none" +POSITION_SET: "$1Die Position wurde auf deinen aktuellen Standort gesetzt" +HOME_ARGUMENT: "$2Verwende /plot set home [none]" +INVALID_POSITION: "$2That is not a valid position value" +TIME_FORMAT: "$1%hours%, %min%, %sec%" +NO_SCHEMATIC_PERMISSION: "$2Du hast keine Berechtigung Schmatics zu verwenden: $1%s" +NO_PERMISSION: "$2Dir fehlt folgende Berechtigung: $1%s" +NO_PLOT_PERMS: "$2Diese Aktion kann nur der Besitzer des Plots" +CANT_CLAIM_MORE_PLOTS: "$2Du kannst keine weiteren Plots besitzen." +CANT_CLAIM_MORE_PLOTS_NUM: "$2Du kannst nicht mehr als $1%s $2Plots auf einmal einnehmen." +YOU_BE_DENIED: "$2Es ist dir nicht gestattet diesen Plot zu betreten." +NO_PERM_MERGE: "$2Du bist nicht Besitzer des Plots $1%plot%" +UNLINK_REQUIRED: "$2Die Plots müssen vorher getrennt (unlink) werden." +UNLINK_IMPOSSIBLE: "$2Die Trennung (unlink) funktioniert nur auf Megaplots." +UNLINK_SUCCESS: "$2Trennung erfolgreich." +NO_MERGE_TO_MEGA: "$2Füge einzelne Plots deinem Megaplot hinzu, nicht anders herum." +NOT_VALID_SUBCOMMAND: "$2Das ist kein gültiger Parameter." +DID_YOU_MEAN: "$2Meinst du: $1%s" +NAME_LITTLE: "$2%s Name ist zu kurz, $1%s$2<$1%s" +NO_COMMANDS: "$2Du hast für keinen Befehl eine Berechtigung." +SUBCOMMAND_SET_OPTIONS_HEADER: "$2Mögliche Werte: " +COMMAND_SYNTAX: "$1Verwendung: $2%s" +INVALID_PLAYER: "$2Spieler nicht gefunden: $1%s." +COMMAND_WENT_WRONG: "$2Beim ausführen des Befehls ging etwas schief..." +PURGE_SYNTAX: "Verwende /plot purge " +PURGE_SUCCESS: "$4%s Plots erfolgreich gelöscht." +TRIM_SYNTAX: "Verwende /plot trim " +TRIM_START: "Starte Weltenbeschneidung..." +TRIM_IN_PROGRESS: "Die Weltenbeschneidung ist bereits gestartet!" +NOT_VALID_HYBRID_PLOT_WORLD: "Hybrid Plot Manager wird für diese Aktion benötigt." +NO_FREE_PLOTS: "$2Es sind keine freien Plots verfügbar." +NOT_IN_PLOT: "$2Du befindest dich nicht auf einem Plot." +NOT_IN_CLUSTER: "$2Du musst dich innerhalb eines Plot Clusters befinden um das zu tun." +NOT_IN_PLOT_WORLD: "$2Du befindest dich nicht in einer Plotwelt." +NOT_VALID_WORLD: "$2Das ist keine gültige Welt (Groß- / Kleinschreibung beachten)" +NOT_VALID_PLOT_WORLD: "$2Das ist keine gültige Plotwelt (Groß- / Kleinschreibung beachten)" +NO_PLOTS: "$2Du hast keine Plots" +NOT_VALID_BLOCK_LIST_HEADER: "$2Das ist kein gültiger Block. Gültige Blöcke sind:\n" +BLOCK_LIST_ITEM: " $1%mat%$2," +BLOCK_LIST_SEPARATER: "$1,$2 " +NEED_BIOME: "$2Du musst ein Biom angeben." +BIOME_SET_TO: "$2Plot biome gesetzt: $2" +TELEPORTED_TO_PLOT: "$1Du wurdest teleportiert." +TELEPORTED_TO_ROAD: "$2Du wurdest auf die Straße teleportiert." +TELEPORT_IN_SECONDS: "$1Teleportiere in %s Sekunden. Bewege dich nicht..." +TELEPORT_FAILED: "$2Teleportation wurde wegen einer Bewegen or Schaden abgebrochen." +SET_BLOCK_ACTION_FINISHED: "$1The last setblock action is now finished." +DEUBG_HEADER: "$1Debug Information\n" +DEBUG_SECTION: "$2>> $1&l%val%" +DEBUG_LINE: "$2>> $1%var%$2:$1 %val%\n" +NOT_VALID_DATA: "$2Das ist kein gültiger Datenwert." +NOT_VALID_BLOCK: "$2Das ist kein gültiger Block." +NOT_VALID_NUMBER: "$2Das ist keine gültige Zahl." +NOT_VALID_PLOT_ID: "$2Das ist keine gültige Plot-ID." +PLOT_ID_FORM: "$2Die Plot-ID muss wie folgt angegeben werden: $1X;Y $2z.B. $1-5;7" +NOT_YOUR_PLOT: "$2Das ist nicht dein Plot." +NO_SUCH_PLOT: "$2Ein solcher Plot existiert nicht." +PLAYER_HAS_NOT_BEEN_ON: "$2Dieser Spieler war nicht in der Plotwelt." +FOUND_NO_PLOTS: "$2Dein Suchmuster ergab keine Treffer." +CAMERA_STARTED: "$2Du verwendest den Kameramodus für Plot $1%s" +CAMERA_STOPPED: "$2Der Kameramodus wurde abeschaltet." +NEED_PLOT_NUMBER: "$2Du musst eine Plotnummer oder einen Alias angeben." +NEED_BLOCK: "$2Du musst einen Block angeben." +NEED_PLOT_ID: "$2Du musst eine Plot-ID angeben." +NEED_PLOT_WORLD: "$2Du musst eine Plotwelt angeben." +NEED_USER: "$2Du musst einen Spielernamen angeben." +PLOT_UNOWNED: "$2Für diese Aktion muss dieser Plot einen Besitzer aufweisen." +PLOT_INFO_UNCLAIMED: "$2Plot $1%s$2 hat bisher keinen Besitzer." +PLOT_INFO_HEADER: "$3====== $1INFO $3======" +PLOT_INFO: "$1ID: $2%id%$1n$1Alias: $2%alias%$1n$1Besitzer: $2%owner%$1n$1Biom: $2%biome%$1n$1Baurechte: $2%build%$1n$1Wertung: $2%rating%$1/$210$1n$1Helfer: $2%helpers%$1n$1Vertraut: $2%trusted%$1n$1Verboten: $2%denied%$1n$1Flags: $2%flags%" +PLOT_INFO_HELPERS: "$1Helfer:$2 %helpers%" +PLOT_INFO_TRUSTED: "$1Vertraute:$2 %trusted%" +PLOT_INFO_DENIED: "$1Verboten:$2 %denied%" +PLOT_INFO_FLAGS: "$1Flags:$2 %flags%" +PLOT_INFO_BIOME: "$1Biom:$2 %biome%" +PLOT_INFO_RATING: "$1Wertung:$2 %rating%" +PLOT_INFO_OWNER: "$1Besitzer:$2 %owner%" +PLOT_INFO_ID: "$1ID:$2 %id%" +PLOT_INFO_ALIAS: "$1Alias:$2 %alias%" +PLOT_INFO_SIZE: "$1Größe:$2 %size%" +PLOT_USER_LIST: " $1%user%$2," +INFO_SYNTAX_CONSOLE: "$2/plot info X;Y" +GENERATING_COMPONENT: "$1Die Generierung wurde gemäß deiner Einstellungen gestartet." +CLEARING_PLOT: "$2Plot wird asyncron geleert." +CLEARING_DONE: "$4Erfolgreich geleert. Dauerte %sms." +PLOT_NOT_CLAIMED: "$2Dieser Plot hat keinen Besitzer" +PLOT_IS_CLAIMED: "$2Dieser Plot hat bereits einen Besitzer." +CLAIMED: "$4Plot erfolgreich in Besitz genommen." +PLOT_LIST_HEADER_PAGED: "$2(Seite $1%von$2/$1%max$2) $1Liste Plots nach %word%" +PLOT_LIST_HEADER: "$1Liste aller %word% Plots" +PLOT_LIST_ITEM: "$2>> $1%id$2:$1%Welt $2- $1%owner" +PLOT_LIST_ITEM_ORDERED: "$2[$1%in$2] >> $1%id$2:$1%Welt $2- $1%owner" +PLOT_LIST_FOOTER: "$2>> $1%word% umfasst insgesamt $2%num% $1Plots %plot%." +LEFT_PLOT: "$2Du hast einen Plot verlassen." +NOT_USING_PLOTME: "$2Dieser Server verwendet das $1PlotSquared $2Plotmanagement System. Verwende stattdessen $1/plots" +WAIT_FOR_TIMER: "$2Ein zeitgeber wurde an den Plot oder an dich gebunden. Bitte warte bis die Zeit abgelaufen." +PLOT_CHAT_FORMAT: "$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%" +DENIED_REMOVED: "$4Der Spieler darf diesen Plot wieder betreten." +DENIED_ADDED: "$4Der Spieler darf diesen Plot nicht mehr betreten." +DENIED_NEED_ARGUMENT: "$2Argumente fehlen. $1/plot denied add $2oder $1/plot helpers remove " +WAS_NOT_DENIED: "$2Der Spieler durfte diesen Plot bereits betreten." +NEED_ON_OFF: "$2Du musst einen Wert angeben. Mögliche Werte: $1on$2, $1off" +SETTING_UPDATED: "$4Einstellungen erfolgreich aktualisiert." +FLAG_KEY: "$2Schlüssel: %s" +FLAG_TYPE: "$2Typ: %s" +FLAG_DESC: "$2Beschreibung: %s" +NEED_KEY: "$2Mögliche Werte: $1%values%" +NOT_VALID_FLAG: "$2Ungültige Flag" +NOT_VALID_VALUE: "$2Wert der Flag muss alphanumerisch angegeben werden." +FLAG_NOT_IN_PLOT: "$2Diese Flag wurde in diesem Plot nicht gesetzt." +FLAG_NOT_REMOVED: "$2Die Flag konnte nicht entfernt werden." +FLAG_NOT_ADDED: "$2Flag konnte nicht gesetzt werden." +FLAG_REMOVED: "$4Flag erfolgreich entfernt." +FLAG_ADDED: "$4Successfully added flag" +HELPER_ADDED: "$4Helfer erfolgreich zu diesem Plot hinzugefügt." +HELPER_REMOVED: "$4Helfer erfolgreich von diesem Plot enfernt." +HELPER_NEED_ARGUMENT: "$2Argumente fehlen. $1/plot helpers add $2oder $1/plot helpers remove " +WAS_NOT_ADDED: "$2Dieser Spieler war bisher kein Helfer auf diesem Plot." +PLOT_REMOVED_HELPER: "$1Plot %s auf dem du Helfer warst wurde wegen Inaktivität des Besitzers gelöscht." +ALREADY_OWNER: "$2Dieser Spieler ist bereits Besitzer des Plots." +ALREADY_ADDED: "$2Dieser Spieler ist bereits in dieser Kategorie." +TRUSTED_ADDED: "$4Spieler erfolgreich in diesem Plot vertraut." +TRUSTED_REMOVED: "$1Diesem Spieler wird auf diesem Plot nicht mehr vertraut." +TRUSTED_NEED_ARGUMENT: "$2Argumente fehlen. $1/plot trusted add $2oder $1/plot trusted remove " +T_WAS_NOT_ADDED: "$2Diesem Spieler wurde bisher nicht vertraut." +SET_OWNER: "$4lotbesitzer erfolgreich gesetzt." +OWNER_SIGN_LINE_1: "$1ID: $1%id%" +OWNER_SIGN_LINE_2: "$1Besitzer:" +OWNER_SIGN_LINE_3: "$2%plr%" +OWNER_SIGN_LINE_4: "$3in Besitz" +HELP_HEADER: "$3====== $1Plot² Hilfe $3======" +HELP_CATEGORY: "$1Kategorie: $2%category%$2,$1 Seite: $2%currentt%$3/$2%max%$2,$1 Zeige: $2%dis%$3/$2%total%" +HELP_INFO: "$3====== $1Wähle eine Kategorie $3======" +HELP_INFO_ITEM: "$1/plots help %category% $3- $2%category_desc%" +HELP_ITEM: "$1%usage% [%alias%]n $3- $2%desc%n" +DIRECTION: "$1Aktuelle Himmelsrichtung: %dir%" +CUSTOM_STRING: "-" \ No newline at end of file diff --git a/PlotSquared/src/main/resources/s_chinese.yml b/PlotSquared/src/main/resources/s_chinese.yml new file mode 100644 index 000000000..aaa691123 --- /dev/null +++ b/PlotSquared/src/main/resources/s_chinese.yml @@ -0,0 +1,257 @@ +### TEMPLATE ### +# Translated by: Liouftgoo/Mayomi9 +# UTF-8 ESCAPE USING: http://www.rapidmonkey.com/unicodeconverter/ +### TEMPLATE ### +camera_started: "$2\u4F60\u8FDB\u5165\u4E86\u5730\u76AE $1%s \u7684\u6444\u50CF\u673A\u6A21\u5F0F" +command_syntax: "$1\u7528\u6CD5: $2%s" +not_valid_flag: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u6807\u8BC6" +setup_world_taken: "$2%s \u5DF2\u7ECF\u662F\u5730\u76AE\u4E16\u754C\u4E86" +plot_list_item: "$2>> $1%id$2:$1%world $2- $1%owner" +schematic_invalid: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u5EFA\u7B51\u6587\u4EF6. \u539F\u56E0: $2%s" +not_valid_inbox_index: "$2\u9875\u6570 %s \u6CA1\u6709\u7559\u8A00" +setup_invalid_generator: "$2\u65E0\u6548\u7684\u751F\u6210\u53C2\u6570. \u53EF\u9009: %s" +teleported_to_road: "$2\u4F60\u4F20\u9001\u5230\u4E86\u8DEF\u4E2D" +debug_section: "$2>> $1&l%val%" +plot_id_form: "$2\u5730\u76AEID\u7684\u683C\u5F0F\u5FC5\u987B\u4E3A: $1X;Y $2\u4F8B\u5982: $1-5;7" +invalid_position: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4F4D\u7F6E" +worldedit_unsafe: "$2\u8BE5\u6307\u4EE4\u5DF2\u7ECF\u88AB\u7981\u6B62\u4F7F\u7528" +not_in_plot_world: "$2\u4F60\u4E0D\u5728\u5730\u76AE\u4E16\u754C\u4E2D" +cannot_buy_own: "$2\u4F60\u4E0D\u80FD\u4E70\u4F60\u81EA\u5DF1\u7684\u5730\u76AE" +help_item: "$1%usage% [%alias%]&- $3- $2sc%&-" +not_valid_world: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4E16\u754C (\u6CE8\u610F\u5927\u5C0F\u5199)" +home_argument: "$2\u7528\u6CD5 /plot set home [\u53EF\u4E0D\u586B]" +title_left_plot_color: "GOLD" +merge_not_valid: "$2\u5408\u5E76\u8BF7\u6C42\u5DF2\u5931\u6548." +debug_line: "$2>> $1%var%$2:$1 %val% " +comment_added: "$4\u6DFB\u52A0\u4E86\u4E00\u6761\u65B0\u7684\u7559\u8A00" +alias_is_taken: "$2\u8FD9\u4E2A\u522B\u540D\u5DF2\u88AB\u522B\u4EBA\u4F7F\u7528" +setup_missing_generator: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u751F\u6210\u53C2\u6570 ($1/plot setup <\u4E16\u754C\u540D\u79F0> &l<\u751F\u6210\u53C2\u6570>&r$2)&-$1\u9644\u52A0\u6307\u4EE4:&-$2 - $1/plot setup <\u53C2\u6570>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" +block_list_separater: "$1,$2 " +alias_set_to: "$2\u5730\u76AE\u7684\u522B\u540D\u8BBE\u7F6E\u4E3A $1%alias%" +did_you_mean: "$2\u4F60\u7684\u610F\u601D\u662F $1%s $2\u5417?" +cluster_not_added: "$2\u8FD9\u4E2A\u73A9\u5BB6\u672A\u88AB\u52A0\u5165\u5730\u76AE\u7EC4\u7FA4\u4E2D" +success_merge: "$2\u5730\u76AE\u6210\u529F\u88AB\u5408\u5E76!" +position_set: "$1\u5728\u4F60\u5F53\u524D\u7684\u4F4D\u7F6E\u8BBE\u7F6E\u5BB6" +cluster_regenerated: "$4\u6210\u529F\u5F00\u59CB\u7FA4\u7EC4\u91CD\u5EFA" +not_valid_data: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u53C2\u6570\u503C." +not_for_sale: "$2\u8FD9\u5757\u5730\u76AE\u5E76\u4E0D\u51FA\u552E" +not_in_cluster: "$2\u4F60\u5FC5\u987B\u5728\u4E00\u4E2A\u5730\u76AE\u7EC4\u7FA4\u4E2D\u624D\u80FD\u8FDB\u884C\u6B64\u64CD\u4F5C" +schematic_paste_success: "$4\u5EFA\u7B51\u6587\u4EF6\u7C98\u8D34\u6210\u529F" +set_block_action_finished: "$1\u6700\u540E\u4E00\u4E2A\u65B9\u5757\u8BBE\u7F6E\u5DF2\u5B8C\u6210." +missing_alias: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u522B\u540D" +paste_failed: "$2\u7C98\u8D34\u65F6\u53D1\u751F\u9519\u8BEF. \u539F\u56E0: $2%s" +invalid_player: "$2\u672A\u627E\u5230\u73A9\u5BB6 $1%s." +plot_info_helpers: "$1\u5E2E\u624B:$2 %helpers%" +cluster_added: "$4\u6210\u529F\u521B\u5EFA\u7EC4\u7FA4." +setup_init: "$1\u7528\u6CD5: $2/plot setup <\u53C2\u6570>" +bossbar_clearing: "$2\u6B63\u5728\u6E05\u7406\u5730\u76AE $1%id%" +title_entered_plot_sub_color: "RED" +prefix_greeting: "$1%id%$2> " +not_your_plot: "$2\u8FD9\u4E0D\u662F\u4F60\u7684\u5730\u76AE." +worldedit_volume: "$2\u4F60\u65E0\u6CD5\u9009\u62E9 %current% \u7684\u7A7A\u95F4. \u6700\u5927\u7A7A\u95F4\u53EF\u4EE5\u8BBE\u7F6E\u4E3A %max%." +not_valid_plot_id: "$2\u8FD9\u4E0D\u662F\u6709\u6548\u7684\u5730\u76AEID." +unclaim_success: "$4\u4F60\u653E\u5F03\u4E86\u8FD9\u5757\u5730\u76AE." +teleport_failed: "$2\u56E0\u4E3A\u53D7\u5230\u4F24\u5BB3\u800C\u88AB\u53D6\u6D88\u4F20\u9001" +need_plot_world: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u5730\u76AE\u4E16\u754C." +plot_not_claimed: "$2\u5730\u76AE\u672A\u88AB\u9886\u53D6" +title_entered_plot_color: "GOLD" +denied_removed: "$4\u4F60\u89E3\u9664\u4E86\u8FD9\u4E2A\u5730\u76AE\u5BF9\u73A9\u5BB6\u7684\u9ED1\u540D\u5355" +plot_removed_helper: "$1\u4F60\u52A0\u5165\u7684\u5730\u76AE %s \u56E0\u4E3A\u62E5\u6709\u8005\u4E0D\u6D3B\u8DC3\u800C\u88AB\u5220\u9664\u4E86" +plotworld_incompatible: "$2\u4E24\u4E2A\u4E16\u754C\u5FC5\u987B\u76F8\u4E92\u517C\u5BB9" +generating_component: "$1\u5F00\u59CB\u6839\u636E\u4F60\u7684\u8BBE\u5B9A\u751F\u6210" +not_valid_block_list_header: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u65B9\u5757. \u6709\u6548\u7684\u65B9\u5757: " +alias_too_long: "$2\u522B\u540D\u7684\u957F\u5EA6\u5FC5\u987B\u5C0F\u4E8E50\u4E2A\u5B57\u7B26" +move_success: "$4\u6210\u529F\u79FB\u9664\u5730\u76AE." +no_plot_perms: "$2\u4F60\u5FC5\u987B\u662F\u5730\u76AE\u62E5\u6709\u8005\u624D\u80FD\u6267\u884C\u8FD9\u4E2A\u64CD\u4F5C" +command_went_wrong: "$2\u6267\u884C\u547D\u4EE4\u65F6\u53D1\u751F\u4E86\u9519\u8BEF..." +helper_added: "$4\u4F60\u6210\u529F\u4E3A\u5730\u76AE\u52A0\u5165\u4E86\u5E2E\u624B" +schematic_paste_failed: "$2\u7C98\u8D34\u5EFA\u7B51\u6587\u4EF6\u5931\u8D25" +removed_balance: "$2\u4ECE\u4F60\u7684\u8D26\u6237\u4E2D\u6263\u9664\u4E86 $1%s" +setup_step: "$3[$1\u6B65\u9AA4 - %s$3] $1%s $2- $1\u7C7B\u578B: $2%s $1\u9ED8\u8BA4\u503C: $2%s" +schematic_valid: "$2\u8FD9\u662F\u4E00\u4E2A\u6709\u6548\u7684\u5EFA\u7B51\u6587\u4EF6" +owner_sign_line_4: "$3\u5DF2\u9886\u53D6" +cluster_added_helper: "$4\u6210\u529F\u4E3A\u7EC4\u7FA4\u52A0\u5165\u5E2E\u624B" +owner_sign_line_3: "$2%plr%" +already_owner: "$2\u8FD9\u4E2A\u73A9\u5BB6\u5DF2\u7ECF\u62E5\u6709\u5730\u76AE\u4E86." +owner_sign_line_2: "$1\u62E5\u6709\u8005:" +owner_sign_line_1: "$1ID: $1%id%" +not_valid_subcommand: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u5B50\u547D\u4EE4" +subcommand_set_options_header: "$2\u53EF\u7528\u7684\u53C2\u6570: " +requires_unowned: "$2\u8BE5\u4F4D\u7F6E\u5DF2\u88AB\u5360\u7528." +plot_unowned: "$2\u4F60\u5FC5\u987B\u662F\u5730\u76AE\u62E5\u6709\u8005\u624D\u80FD\u6267\u884C\u8FD9\u4E2A\u64CD\u4F5C" +inbox_item: "$2 - $4%s" +cannot_kick_player: "$2\u4F60\u4E0D\u80FD\u8E22\u51FA\u8BE5\u73A9\u5BB6" +clearing_done: "$4\u6E05\u7406\u5B8C\u6210! \u8017\u65F6 %s\u6BEB\u79D2." +setup_valid_arg: "$2\u53C2\u6570 $1%s $2\u8BBE\u7F6E\u4E3A %s" +camera_stopped: "$2\u4F60\u53D6\u6D88\u4E86\u6444\u50CF\u673A\u6A21\u5F0F" +flag_type: "$2\u7C7B\u578B: %s" +pasted: "$4\u88AB\u9009\u62E9\u7684\u5730\u76AE\u6210\u529F\u7C98\u8D34." +cluster_info: "$1\u5F53\u524D\u7EC4\u7FA4: $2%id%&-$1\u540D\u79F0: $2%name%&-$1\u62E5\u6709\u8005: $2%owner%&-$1\u5927\u5C0F: $2%size%&-$1\u6743\u9650: $2%rights%" +cluster_cannot_leave: "$1\u5728\u9000\u51FA\u4E4B\u524D\u5148\u8F6C\u79FB\u6240\u6709\u6743" +help_header: "$3====== $1\u5730\u76AE\u5E2E\u52A9\u83DC\u5355 $3======" +cannot_afford_merge: "$2\u4F60\u6CA1\u6709\u8DB3\u591F\u7684\u91D1\u94B1\u5408\u5E76\u5730\u76AE. \u9700\u8981\u82B1\u8D39 $1%s" +setting_updated: "$4\u4F60\u66F4\u65B0\u4E86\u4F60\u7684\u8BBE\u5B9A" +need_key: "$2\u53EF\u7528\u53C2\u6570: $1%values%" +merge_requested: "$2\u6210\u529F\u53D1\u9001\u5408\u5E76\u8BF7\u6C42" +compass_target: "$4S\u6210\u529F\u4F20\u9001\u5230\u76EE\u6807\u5730\u76AE" +flag_not_added: "$2\u8BE5\u6807\u8BC6\u65E0\u6CD5\u88AB\u6DFB\u52A0" +no_plots: "$2\u4F60\u6CA1\u6709\u989D\u5916\u7684\u5730\u76AE\u4E86" +need_plot_id: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u5730\u76AEID." +flag_not_removed: "$2\u8BE5\u6807\u8BC6\u65E0\u6CD5\u88AB\u79FB\u9664" +trusted_removed: "$1\u4F60\u4ECE\u5730\u76AE\u4E2D\u79FB\u9664\u4E86\u4E00\u540D\u53EF\u4FE1\u73A9\u5BB6" +comment_header: "$2====== \u7559\u8A00\u677F ======" +flag_removed: "$4\u6210\u529F\u79FB\u9664\u6807\u8BC6" +rating_applied: "$4\u4F60\u4E3A\u5730\u76AE $2%s $4\u6253\u5206\u4E86" +requires_confirm: "$2\u4F60\u662F\u5426\u6267\u884C: $1%s$2?&-$2\u8BE5\u64CD\u4F5C\u4E0D\u53EF\u9006! \u5982\u679C\u786E\u5B9A\u8BF7\u8F93\u5165: $1/plot confirm" +flag_added: "$4\u6210\u529F\u6DFB\u52A0\u6807\u8BC6" +econ_disabled: "$2\u7ECF\u6D4E\u529F\u80FD\u672A\u542F\u7528" +not_valid_hybrid_plot_world: "The hybrid plot manager is required to perform this action" +no_commands: "$2\u4F60\u6CA1\u6709\u6743\u9650\u4F7F\u7528\u4EFB\u4F55\u6307\u4EE4." +missing_position: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u4F4D\u7F6E. \u53EF\u7528\u7684\u53C2\u6570: $1none" +record_play: "$2%player $2\u5F00\u59CB\u64AD\u653ECD $1%name" +no_perm_inbox_modify: "$2\u4F60\u6CA1\u6709\u6743\u9650\u4FEE\u6539" +unlink_required: "$2\u5982\u679C\u9700\u8981\u53D6\u6D88\u5408\u5E76\u5730\u76AE." +denied_need_argument: "$2\u7F3A\u5C11\u53C2\u6570. $1/plot denied add <\u73A9\u5BB6\u540D\u79F0> $2\u6216 $1/plot denied remove <\u73A9\u5BB6\u540D\u79F0>" +added_balance: "$2\u5411\u4F60\u7684\u8D26\u6237\u4E2D\u52A0\u5165\u4E86 $1%s" +not_using_plotme: "$2\u8FD9\u4E2A\u670D\u52A1\u5668\u4F7F\u7528\u4E86 $1PlotSquared $2\u5730\u76AE\u7BA1\u7406\u7CFB\u7EDF. \u8BF7\u8F93\u5165 $1/ps $2\u6216 $1/p2 $2\u6216 $1/plots $2\u6765\u4EE3\u66FF" +player_has_not_been_on: "$2\u8FD9\u4E2A\u73A9\u5BB6\u8FD8\u6CA1\u62E5\u6709\u5730\u76AE" +plot_list_footer: "$2>> $1%word% \u6709 $2%num% $1\u88AB\u9886\u53D6\u7684 %plot%." +trim_in_progress: "\u5730\u76AE\u6E05\u7406\u4EFB\u52A1\u6B63\u5728\u8FDB\u884C!" +cluster_deleted: "$4\u6210\u529F\u5220\u9664\u7EC4\u7FA4." +cant_claim_more_plots: "$2\u4F60\u4E0D\u80FD\u9886\u53D6\u66F4\u591A\u7684\u5730\u76AE\u4E86." +unlink_success: "$2\u6210\u529F\u53D6\u6D88\u5730\u76AE\u5408\u5E76." +no_perm_inbox: "$2\u4F60\u6CA1\u6709\u6743\u9650\u8FD9\u6837\u505A" +worldedit_bypass: "$2&o\u8DF3\u8FC7\u6743\u9650\u8BF7\u8F93\u5165 $3/plot wea" +prefix: "$3[$1\u5730\u76AE$3] " +claimed: "$4\u4F60\u6210\u529F\u9886\u53D6\u4E86\u5730\u76AE" +failed_confirm: "$2\u4E0B\u4E00\u6B65\u65F6\u53D1\u751F\u4E86\u9519\u8BEF!" +copy_success: "$4\u4F60\u6210\u529F\u590D\u5236\u4E86\u5730\u76AE." +cluster_available_args: "$1\u53EF\u7528\u7684\u7EC4\u7FA4\u6307\u4EE4: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4helpers$2, $4info$2, $4tp$2, $4sethome" +cluster_list_heading: "$2\u8BE5\u4E16\u754C\u4E2D\u6709 $1%s$2 \u4E2A\u7EC4\u7FA4" +cluster_list_element: "$2 - $1%s&-" +cluster_intersection: "$2\u8BE5\u5730\u533A\u6709\u91CD\u53E0\u7684 $1%s$2 \u4E2A\u7EC4\u7FA4" +cluster_resized: "$4\u6210\u529F\u8C03\u6574\u4E86\u7EC4\u7FA4\u7684\u5927\u5C0F." +cluster_added_user: "$4\u6210\u529F\u52A0\u5165\u73A9\u5BB6\u5230\u7EC4\u7FA4\u4E2D." +cluster_invited: "$1\u4F60\u88AB\u9080\u8BF7\u5230\u7EC4\u7FA4: $2%s" +cluster_removed: "$1\u4F60\u88AB\u7EC4\u7FA4 $2%s \u8E22\u51FA\u4E86" +cluster_kicked_user: "$4\u6210\u529F\u8E22\u51FA\u73A9\u5BB6" +invalid_cluster: "$1\u65E0\u6548\u7684\u7EC4\u7FA4\u540D\u79F0: $2%s" +cluster_removed_helper: "$4\u6210\u529F\u79FB\u9664\u4E86\u7EC4\u7FA4\u7684\u5E2E\u624B" +cluster_teleporting: "$4\u4F20\u9001\u4E2D..." +cluster_current_plotid: "$1\u5F53\u524D\u5730\u76AE: $2%s" +border: "$2\u4F60\u8D70\u5230\u4E86\u5730\u56FE\u8FB9\u5883" +require_selection_in_mask: "$2\u4F60\u9009\u62E9\u7684\u5730\u76AE %s \u4E0D\u662F\u4F60\u7684. \u4F60\u53EA\u80FD\u5728\u4F60\u7684\u5730\u76AE\u4E2D\u5EFA\u7B51." +worldedit_iterations: "$2\u4F60\u4E0D\u80FD\u91CD\u590D %current% \u6B21. \u6700\u5927\u91CD\u590D\u6B21\u6570\u4E3A %max%." +worldedit_unmasked: "$1\u4F60\u7684WE\u529F\u80FD\u6CA1\u6709\u9650\u5236." +worldedit_restricted: "$1\u4F60\u7684WE\u529F\u80FD\u88AB\u9650\u5236." +notify_enter: "$2%player $2\u8FDB\u5165\u4E86\u4F60\u7684\u5730\u76AE ($1%plot$2)" +notify_leave: "$2%player $2\u79BB\u5F00\u4E86\u4F60\u7684\u5730\u76AE ($1%plot$2)" +swap_overlap: "$2\u8BE5\u533A\u57DF\u4E0D\u5141\u8BB8\u8986\u76D6" +swap_dimensions: "$2\u8BE5\u533A\u57DF\u9700\u8981\u540C\u6837\u5927\u5C0F\u7684\u5C3A\u5BF8" +swap_syntax: "$2/plots swap <\u5730\u76AEID>" +swap_success: "$4\u6210\u529F\u4EA4\u6362\u5730\u76AE" +started_swap: "$2\u5F00\u59CB\u5730\u76AE\u4EA4\u6362. \u4EA4\u6362\u5C31\u7EEA\u540E\u4F1A\u901A\u77E5\u4F60" +comment_syntax: "$2\u7528\u6CD5 /plots comment [X;Z] <%s> <\u7559\u8A00>" +invalid_inbox: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u9875\u6570.&-$1\u53EF\u7528\u7684\u53C2\u6570: %s" +no_plot_inbox: "$2\u8FD9\u4E0D\u662F\u6709\u6548\u7684\u5730\u76AE\u9875\u6570" +comment_removed: "$4\u6210\u529F\u5220\u9664\u5730\u76AE\u7559\u8A00/s:n$2 - \'$3%s$2\'" +not_console: "$\u8BE5\u6307\u4EE4\u4EC5\u9650\u63A7\u5236\u53F0\u8F93\u5165." +is_console: "$2\u8BE5\u6307\u4EE4\u4EC5\u9650\u73A9\u5BB6\u8F93\u5165." +clipboard_set: "$2\u5F53\u524D\u5730\u76AE\u5DF2\u7ECF\u88AB\u590D\u5236\u5230\u4E86\u526A\u5207\u677F, \u4F7F\u7528 $1/plot paste$2 \u6765\u7C98\u8D34\u5B83" +no_clipboard: "$2\u4F60\u6CA1\u6709\u9009\u62E9\u526A\u5207\u677F" +clipboard_info: "$2\u5F53\u524D\u9009\u62E9 - \u5730\u76AE ID: $1%id$2, \u5BBD\u5EA6: $1%width$2, \u65B9\u5757\u6570\u91CF: $1%total$2" +rating_not_valid: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A1~10\u4E4B\u95F4\u7684\u6570" +rating_already_exists: "$2\u4F60\u5DF2\u7ECF\u4E3A\u5730\u76AE $2%s \u8BC4\u8FC7\u5206\u4E86" +rating_not_your_own: "$2\u4F60\u4E0D\u80FD\u4E3A\u81EA\u5DF1\u5730\u76AE\u8BC4\u5206" +rating_not_owned: "$2\u4F60\u4E0D\u80FD\u4E3A\u95F2\u7F6E\u5730\u76AE\u8BC4\u5206" +cannot_afford_plot: "$2\u4F60\u6CA1\u6709\u8DB3\u591F\u7684\u91D1\u94B1\u8D2D\u4E70\u5730\u76AE. \u9700\u8981\u82B1\u8D39 $1%s" +plot_sold: "$4\u4F60\u7684\u5730\u76AE; $1%s$4, \u5DF2\u5356\u7ED9\u4E86 $1%s$4 \u4EF7\u683C\u4E3A $1$%s" +setup_invalid_arg: "$2%s\u4E0D\u662F\u6B65\u9AA4 %s \u7684\u6709\u6548\u53C2\u6570. \u53D6\u6D88\u6784\u5EFA\u8F93\u5165: $1/plot setup cancel" +setup_finished: "$3\u5982\u679C\u4F7F\u7528\u4E86 MULTIVERSE \u6216 MULTIWORLD \u63D2\u4EF6\u4E16\u754C\u7684\u914D\u7F6E\u4F1A\u81EA\u52A8\u5199\u5165. \u5426\u5219\u4F60\u9700\u8981\u624B\u52A8\u5199\u5165\u6587\u4EF6 bukkit.yml" +setup_missing_world: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u4E16\u754C\u540D\u79F0 ($1/plot setup &l<\u4E16\u754C\u540D\u79F0>$1 <\u751F\u6210\u53C2\u6570>$2)&-$1\u9644\u52A0\u6307\u4EE4:&-$2 - $1/plot setup <\u53C2\u6570>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" +schematic_missing_arg: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u53C2\u6570. \u53EF\u7528\u7684\u53C2\u6570: $1test <\u540D\u79F0>$2 , $1save$2 , $1paste $2, $1exportall" +title_entered_plot: "\u5730\u76AE\u4F4D\u7F6E: %world%;%x%;%z%" +title_entered_plot_sub: "\u62E5\u6709\u8005 %s" +title_left_plot: "\u4F60\u79BB\u5F00\u4E86 %s" +title_left_plot_sub: "\u62E5\u6709\u8005 %s" +title_left_plot_sub_color: "RED" +prefix_farewell: "$1%id%$2> " +enabled: "$1PlotSquared \u5DF2\u542F\u7528" +example_message: "$2\u8FD9\u662F\u4E00\u6761\u6F14\u793A\u6D88\u606F &k!!!" +reloaded_configs: "$1\u6587\u4EF6\u4E0E\u8BBE\u5B9A\u88AB\u91CD\u65B0\u8BFB\u53D6" +reload_failed: "$2\u91CD\u65B0\u8BFB\u53D6\u5931\u8D25\u4E86" +time_format: "$1%hours%, %min%, %sec%" +no_schematic_permission: "$2\u4F60\u6CA1\u6709\u6743\u9650\u4F7F\u7528\u5EFA\u7B51\u6587\u4EF6 $1%s" +no_permission: "$2\u4F60\u7F3A\u5C11\u4E86\u6743\u9650: $1%s" +cant_transfer_more_plots: "$2\u4F60\u4E0D\u80FD\u53D1\u51FA\u66F4\u591A\u7684\u5730\u76AE\u9080\u8BF7\u4E86" +cant_claim_more_plots_num: "$2\u4F60\u4E0D\u80FD\u4E00\u6B21\u9886\u53D6 $1%s $2\u5757\u5730\u76AE" +you_be_denied: "$2\u4F60\u4E0D\u80FD\u8FDB\u5165\u8FD9\u5757\u5730\u76AE" +no_perm_merge: "$2\u4F60\u4E0D\u662F\u8FD9\u5757\u5730\u76AE $1%plot% $2\u7684\u62E5\u6709\u8005" +unlink_impossible: "$2\u4F60\u53EA\u80FD\u53D6\u6D88\u5408\u5E76\u8D85\u7EA7\u5730\u76AE" +no_merge_to_mega: "$2\u8D85\u7EA7\u5730\u76AE\u65E0\u6CD5\u88AB\u5408\u5E76." +merge_accepted: "$2\u5408\u5E76\u8BF7\u6C42\u5DF2\u88AB\u63A5\u53D7" +merge_request_confirm: "\u6536\u5230\u4E86 %s \u7684\u5408\u5E76\u8BF7\u6C42" +name_little: "$2%s \u540D\u5B57\u592A\u77ED\u4E86, $1%s$2<$1%s" +purge_syntax: "\u7528\u6CD5 /plot purge <\u4E16\u754C\u540D\u79F0>" +purge_success: "$4\u6210\u529F\u6E05\u7406\u4E86 %s \u5757\u5730\u76AE" +trim_syntax: "\u7528\u6CD5 /plot trim <\u4E16\u754C\u540D\u79F0>" +trim_start: "\u5F00\u59CB\u5730\u76AE\u6574\u7406..." +no_free_plots: "$2\u6CA1\u6709\u514D\u8D39\u7684\u5730\u76AE\u53EF\u7528" +not_in_plot: "$2\u4F60\u4E0D\u5728\u5730\u76AE\u4E0A" +not_valid_plot_world: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4E16\u754C (\u6CE8\u610F\u5927\u5C0F\u5199)" +block_list_item: " $1%mat%$2," +need_biome: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u751F\u7269\u7FA4\u843D" +biome_set_to: "$2\u5730\u76AE\u7684\u751F\u7269\u7FA4\u843D\u8BBE\u7F6E\u4E3A $2" +teleported_to_plot: "$2\u4F60\u4F20\u9001\u5230\u4E86\u5730\u76AE\u4E2D" +teleport_in_seconds: "$1\u5C06\u5728 %s \u79D2\u5185\u4F20\u9001. \u8BF7\u52FF\u79FB\u52A8..." +deubg_header: "$1\u8C03\u8BD5\u4FE1\u606F" +not_valid_block: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u65B9\u5757." +not_valid_number: "$2\u8FD9\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u6570\u5B57" +no_such_plot: "$2\u6CA1\u6709\u8BE5\u7C7B\u578B\u7684\u5730\u76AE" +found_no_plots: "$2\u65E0\u6CD5\u6839\u636E\u8BE5\u8981\u6C42\u67E5\u627E\u5730\u76AE" +need_plot_number: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u5730\u76AEID\u6216\u522B\u540D" +need_block: "$\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u79CD\u65B9\u5757" +need_user: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u73A9\u5BB6" +plot_info_unclaimed: "$2\u5730\u76AE $1%s$2 \u8FD8\u672A\u88AB\u9886\u53D6" +plot_info_header: "$3====== $1INFO $3======" +plot_info: "$1ID: $2%id%$1&-$1\u522B\u540D: $2%alias%$1&-$1\u62E5\u6709\u8005: $2%owner%$1&-$1\u751F\u7269\u7FA4\u843D: $2%biome%$1&-$1\u53EF\u5426\u5EFA\u7B51: $2%build%$1&-$1\u8BC4\u5206: $2%rating%$1/$210$1&-$1\u5E2E\u624B: $2%helpers%$1&-$1\u53EF\u4FE1\u73A9\u5BB6: $2%trusted%$1&-$1\u9ED1\u540D\u5355: $2nied%$1&-$1\u6807\u8BC6: $2%flags%" +plot_info_trusted: "$1\u53EF\u4FE1\u73A9\u5BB6:$2 %trusted%" +plot_info_denied: "$1\u9ED1\u540D\u5355\u73A9\u5BB6:$2 nied%" +plot_info_flags: "$1\u6807\u8BC6:$2 %flags%" +plot_info_biome: "$1\u751F\u7269\u7FA4\u843D:$2 %biome%" +plot_info_rating: "$1\u8BC4\u5206:$2 %rating%" +plot_info_owner: "$1\u62E5\u6709\u8005:$2 %owner%" +plot_info_id: "$1ID:$2 %id%" +plot_info_alias: "$1\u522B\u540D:$2 %alias%" +plot_info_size: "$1\u5927\u5C0F:$2 %size%" +plot_user_list: " $1%user%$2," +info_syntax_console: "$2/plot info <\u4E16\u754C\u540D\u79F0> X;Y" +clearing_plot: "$2\u6E05\u7406\u5730\u76AE\u4E2D." +plot_is_claimed: "$2\u8FD9\u5757\u5730\u76AE\u5DF2\u88AB\u9886\u53D6" +plot_list_header_paged: "$2(\u9875\u6570 $1%cur$2/$1%max$2) $1\u5217\u51FA\u4E86 %word% \u5757\u5730\u76AE" +plot_list_header: "$11\u5217\u51FA\u4E86 %word% \u5757\u5730\u76AE" +plot_list_item_ordered: "$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner" +left_plot: "$2\u4F60\u79BB\u5F00\u4E86\u5730\u76AE" +wait_for_timer: "$2\u8BBE\u7F6E\u65B9\u5757\u8BA1\u65F6\u5668\u5DF2\u542F\u7528. \u8BF7\u7A0D\u540E..." +plot_chat_format: "$2[$1\u5730\u76AE\u804A\u5929$2][$1%plot_id%$2] $1%sender%$2: $1%msg%" +denied_added: "$4\u4F60\u6210\u529F\u4E3A\u5730\u76AE\u52A0\u5165\u4E86\u9ED1\u540D\u5355\u73A9\u5BB6" +was_not_denied: "$2\u4F60\u8FD9\u73A9\u5BB6\u4E0D\u5728\u9ED1\u540D\u5355\u4E2D" +need_on_off: "$2\u4F60\u9700\u8981\u6307\u5B9A\u4E00\u4E2A\u53C2\u6570. \u53EF\u7528\u7684\u53C2\u6570: $1on$2, $1off" +flag_key: "$2\u5173\u952E\u5B57: %s" +flag_desc: "$2\u63CF\u8FF0: %s" +not_valid_value: "$2\u6807\u8BC6\u7684\u53C2\u6570\u5FC5\u987B\u4E3A\u6570\u5B57" +flag_not_in_plot: "$2\u8FD9\u5757\u5730\u76AE\u8FD8\u6CA1\u6709\u8BBE\u7F6E\u6807\u8BC6 26" +helper_removed: "$4\u4F60\u6210\u529F\u4E3A\u5730\u76AE\u79FB\u9664\u4E86\u5E2E\u624B" +helper_need_argument: "$2\u7F3A\u5C11\u53C2\u6570. $1/plot helpers add <\u73A9\u5BB6\u540D\u79F0> $2\u6216 $1/plot helpers remove <\u73A9\u5BB6\u540D\u79F0>" +was_not_added: "$2\u8FD9\u4E2A\u73A9\u5BB6\u8FD8\u6CA1\u6709\u6210\u4E3A\u8BE5\u5730\u76AE\u7684\u5E2E\u624B" +already_added: "$2\u8FD9\u4E2A\u73A9\u5BB6\u5DF2\u7ECF\u52A0\u5165\u4E86\u8BE5\u5206\u7EC4." +trusted_added: "$4\u4F60\u6210\u529F\u4E3A\u5730\u76AE\u52A0\u5165\u4E86\u53EF\u4FE1\u73A9\u5BB6" +trusted_need_argument: "$2\u7F3A\u5C11\u53C2\u6570. $1/plot trusted add <\u73A9\u5BB6\u540D\u79F0> $2\u6216 $1/plot trusted remove <\u73A9\u5BB6\u540D\u79F0>" +t_was_not_added: "$2\u8FD9\u4E2A\u73A9\u5BB6\u8FD8\u6CA1\u6709\u6210\u4E3A\u8BE5\u5730\u76AE\u7684\u53EF\u4FE1\u73A9\u5BB6" +set_owner: "$4\u4F60\u6210\u529F\u4E3A\u5730\u76AE\u8BBE\u7F6E\u4E86\u62E5\u6709\u8005" +now_owner: "$4\u4F60\u73B0\u5728\u6210\u4E3A\u5730\u76AE %s \u7684\u62E5\u6709\u8005\u4E86" +help_category: "$1\u5206\u7C7B: $2tegory%$2,$1 \u9875\u6570: $2%current%$3/$2%max%$2,$1 \u5DF2\u663E\u793A: $2%dis%$3/$2%total%" +help_info: "$3====== $1\u9009\u62E9\u4E00\u4E2A\u5206\u7C7B $3======" +help_info_item: "$1/plots help tegory% $3- $2tegory_desc%" +direction: "$1\u5F53\u524D\u65B9\u5411: %dir%" +custom_string: "-" \ No newline at end of file diff --git a/PlotSquared/src/main/resources/s_chinese_unescaped.yml b/PlotSquared/src/main/resources/s_chinese_unescaped.yml new file mode 100644 index 000000000..52c2c25ea --- /dev/null +++ b/PlotSquared/src/main/resources/s_chinese_unescaped.yml @@ -0,0 +1,257 @@ +### UNESCAPED TEMPLATE ### +# Translated by: Liouftgoo/Mayomi9 +# UTF-8 ESCAPE USING: http://www.rapidmonkey.com/unicodeconverter/ +### UNESCAPED TEMPLATE ### +camera_started: "$2Äã½øÈëÁ˵ØƤ $1%s µÄÉãÏñ»úģʽ" +command_syntax: "$1Ó÷¨: $2%s" +not_valid_flag: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ±êʶ" +setup_world_taken: "$2%s ÒѾ­ÊǵØƤÊÀ½çÁË" +plot_list_item: "$2>> $1%id$2:$1%world $2- $1%owner" +schematic_invalid: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ½¨ÖþÎļþ. Ô­Òò: $2%s" +not_valid_inbox_index: "$2Ò³Êý %s ûÓÐÁôÑÔ" +setup_invalid_generator: "$2ÎÞЧµÄÉú³É²ÎÊý. ¿ÉÑ¡: %s" +teleported_to_road: "$2Äã´«Ë͵½ÁË·ÖÐ" +debug_section: "$2>> $1&l%val%" +plot_id_form: "$2µØƤIDµÄ¸ñʽ±ØÐëΪ: $1X;Y $2ÀýÈç: $1-5;7" +invalid_position: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄλÖÃ" +worldedit_unsafe: "$2¸ÃÖ¸ÁîÒѾ­±»½ûֹʹÓÃ" +not_in_plot_world: "$2Äã²»ÔÚµØƤÊÀ½çÖÐ" +cannot_buy_own: "$2Äã²»ÄÜÂòÄã×Ô¼ºµÄµØƤ" +help_item: "$1%usage% [%alias%]&- $3- $2%desc%&-" +not_valid_world: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄÊÀ½ç (×¢Òâ´óСд)" +home_argument: "$2Ó÷¨ /plot set home [¿É²»Ìî]" +title_left_plot_color: "GOLD" +merge_not_valid: "$2ºÏ²¢ÇëÇóÒÑʧЧ." +debug_line: "$2>> $1%var%$2:$1 %val% " +comment_added: "$4Ìí¼ÓÁËÒ»ÌõеÄÁôÑÔ" +alias_is_taken: "$2Õâ¸ö±ðÃûÒѱ»±ðÈËʹÓÃ" +setup_missing_generator: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öÉú³É²ÎÊý ($1/plot setup <ÊÀ½çÃû³Æ> &l<Éú³É²ÎÊý>&r$2)&-$1¸½¼ÓÖ¸Áî:&-$2 - $1/plot setup <²ÎÊý>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" +block_list_separater: "$1,$2 " +alias_set_to: "$2µØƤµÄ±ðÃûÉèÖÃΪ $1%alias%" +did_you_mean: "$2ÄãµÄÒâ˼ÊÇ $1%s $2Âð?" +cluster_not_added: "$2Õâ¸öÍæ¼Òδ±»¼ÓÈëµØƤ×éȺÖÐ" +success_merge: "$2µØƤ³É¹¦±»ºÏ²¢!" +position_set: "$1ÔÚÄ㵱ǰµÄλÖÃÉèÖüÒ" +cluster_regenerated: "$4³É¹¦¿ªÊ¼Èº×éÖؽ¨" +not_valid_data: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ²ÎÊýÖµ." +not_for_sale: "$2Õâ¿éµØƤ²¢²»³öÊÛ" +not_in_cluster: "$2Äã±ØÐëÔÚÒ»¸öµØƤ×éȺÖвÅÄܽøÐд˲Ù×÷" +schematic_paste_success: "$4½¨ÖþÎļþÕ³Ìù³É¹¦" +set_block_action_finished: "$1×îºóÒ»¸ö·½¿éÉèÖÃÒÑÍê³É." +missing_alias: "$2ÄãÐèÒªÖ¸¶¨Ò»¸ö±ðÃû" +paste_failed: "$2Õ³Ìùʱ·¢Éú´íÎó. Ô­Òò: $2%s" +invalid_player: "$2δÕÒµ½Íæ¼Ò $1%s." +plot_info_helpers: "$1°ïÊÖ:$2 %helpers%" +cluster_added: "$4³É¹¦´´½¨×éȺ." +setup_init: "$1Ó÷¨: $2/plot setup <²ÎÊý>" +bossbar_clearing: "$2ÕýÔÚÇåÀíµØƤ $1%id%" +title_entered_plot_sub_color: "RED" +prefix_greeting: "$1%id%$2> " +not_your_plot: "$2Õâ²»ÊÇÄãµÄµØƤ." +worldedit_volume: "$2ÄãÎÞ·¨Ñ¡Ôñ %current% µÄ¿Õ¼ä. ×î´ó¿Õ¼ä¿ÉÒÔÉèÖÃΪ %max%." +not_valid_plot_id: "$2Õâ²»ÊÇÓÐЧµÄµØƤID." +unclaim_success: "$4Äã·ÅÆúÁËÕâ¿éµØƤ." +teleport_failed: "$2ÒòΪÊܵ½É˺¦¶ø±»È¡Ïû´«ËÍ" +need_plot_world: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öµØƤÊÀ½ç." +plot_not_claimed: "$2µØƤδ±»ÁìÈ¡" +title_entered_plot_color: "GOLD" +denied_removed: "$4Äã½â³ýÁËÕâ¸öµØƤ¶ÔÍæ¼ÒµÄºÚÃûµ¥" +plot_removed_helper: "$1Äã¼ÓÈëµÄµØƤ %s ÒòΪӵÓÐÕß²»»îÔ¾¶ø±»É¾³ýÁË" +plotworld_incompatible: "$2Á½¸öÊÀ½ç±ØÐëÏ໥¼æÈÝ" +generating_component: "$1¿ªÊ¼¸ù¾ÝÄãµÄÉ趨Éú³É" +not_valid_block_list_header: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ·½¿é. ÓÐЧµÄ·½¿é: " +alias_too_long: "$2±ðÃûµÄ³¤¶È±ØÐëСÓÚ50¸ö×Ö·û" +move_success: "$4³É¹¦ÒƳýµØƤ." +no_plot_perms: "$2Äã±ØÐëÊǵØƤӵÓÐÕß²ÅÄÜÖ´ÐÐÕâ¸ö²Ù×÷" +command_went_wrong: "$2Ö´ÐÐÃüÁîʱ·¢ÉúÁË´íÎó..." +helper_added: "$4Äã³É¹¦ÎªµØƤ¼ÓÈëÁË°ïÊÖ" +schematic_paste_failed: "$2Õ³Ìù½¨ÖþÎļþʧ°Ü" +removed_balance: "$2´ÓÄãµÄÕË»§Öп۳ýÁË $1%s" +setup_step: "$3[$1²½Öè - %s$3] $1%s $2- $1ÀàÐÍ: $2%s $1ĬÈÏÖµ: $2%s" +schematic_valid: "$2ÕâÊÇÒ»¸öÓÐЧµÄ½¨ÖþÎļþ" +owner_sign_line_4: "$3ÒÑÁìÈ¡" +cluster_added_helper: "$4³É¹¦Îª×éȺ¼ÓÈë°ïÊÖ" +owner_sign_line_3: "$2%plr%" +already_owner: "$2Õâ¸öÍæ¼ÒÒѾ­ÓµÓеØƤÁË." +owner_sign_line_2: "$1ÓµÓÐÕß:" +owner_sign_line_1: "$1ID: $1%id%" +not_valid_subcommand: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ×ÓÃüÁî" +subcommand_set_options_header: "$2¿ÉÓõIJÎÊý: " +requires_unowned: "$2¸ÃλÖÃÒѱ»Õ¼ÓÃ." +plot_unowned: "$2Äã±ØÐëÊǵØƤӵÓÐÕß²ÅÄÜÖ´ÐÐÕâ¸ö²Ù×÷" +inbox_item: "$2 - $4%s" +cannot_kick_player: "$2Äã²»ÄÜÌß³ö¸ÃÍæ¼Ò" +clearing_done: "$4ÇåÀíÍê³É! ºÄʱ %sºÁÃë." +setup_valid_arg: "$2²ÎÊý $1%s $2ÉèÖÃΪ %s" +camera_stopped: "$2ÄãÈ¡ÏûÁËÉãÏñ»úģʽ" +flag_type: "$2ÀàÐÍ: %s" +pasted: "$4±»Ñ¡ÔñµÄµØƤ³É¹¦Õ³Ìù." +cluster_info: "$1µ±Ç°×éȺ: $2%id%&-$1Ãû³Æ: $2%name%&-$1ÓµÓÐÕß: $2%owner%&-$1´óС: $2%size%&-$1ȨÏÞ: $2%rights%" +cluster_cannot_leave: "$1ÔÚÍ˳ö֮ǰÏÈתÒÆËùÓÐȨ" +help_header: "$3====== $1µØƤ°ïÖú²Ëµ¥ $3======" +cannot_afford_merge: "$2ÄãûÓÐ×ã¹»µÄ½ðÇ®ºÏ²¢µØƤ. ÐèÒª»¨·Ñ $1%s" +setting_updated: "$4Äã¸üÐÂÁËÄãµÄÉ趨" +need_key: "$2¿ÉÓòÎÊý: $1%values%" +merge_requested: "$2³É¹¦·¢Ëͺϲ¢ÇëÇó" +compass_target: "$4S³É¹¦´«Ë͵½Ä¿±êµØƤ" +flag_not_added: "$2¸Ã±êʶÎÞ·¨±»Ìí¼Ó" +no_plots: "$2ÄãûÓжîÍâµÄµØƤÁË" +need_plot_id: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öµØƤID." +flag_not_removed: "$2¸Ã±êʶÎÞ·¨±»ÒƳý" +trusted_removed: "$1Äã´ÓµØƤÖÐÒƳýÁËÒ»Ãû¿ÉÐÅÍæ¼Ò" +comment_header: "$2====== ÁôÑÔ°å ======" +flag_removed: "$4³É¹¦ÒƳý±êʶ" +rating_applied: "$4ÄãΪµØƤ $2%s $4´ò·ÖÁË" +requires_confirm: "$2ÄãÊÇ·ñÖ´ÐÐ: $1%s$2?&-$2¸Ã²Ù×÷²»¿ÉÄæ! Èç¹ûÈ·¶¨ÇëÊäÈë: $1/plot confirm" +flag_added: "$4³É¹¦Ìí¼Ó±êʶ" +econ_disabled: "$2¾­¼Ã¹¦ÄÜδÆôÓÃ" +not_valid_hybrid_plot_world: "The hybrid plot manager is required to perform this action" +no_commands: "$2ÄãûÓÐȨÏÞʹÓÃÈκÎÖ¸Áî." +missing_position: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öλÖÃ. ¿ÉÓõIJÎÊý: $1none" +record_play: "$2%player $2¿ªÊ¼²¥·ÅCD $1%name" +no_perm_inbox_modify: "$2ÄãûÓÐȨÏÞÐÞ¸Ä" +unlink_required: "$2Èç¹ûÐèҪȡÏûºÏ²¢µØƤ." +denied_need_argument: "$2ȱÉÙ²ÎÊý. $1/plot denied add <Íæ¼ÒÃû³Æ> $2»ò $1/plot denied remove <Íæ¼ÒÃû³Æ>" +added_balance: "$2ÏòÄãµÄÕË»§ÖмÓÈëÁË $1%s" +not_using_plotme: "$2Õâ¸ö·þÎñÆ÷ʹÓÃÁË $1PlotSquared $2µØƤ¹ÜÀíϵͳ. ÇëÊäÈë $1/ps $2»ò $1/p2 $2»ò $1/plots $2À´´úÌæ" +player_has_not_been_on: "$2Õâ¸öÍæ¼Ò»¹Ã»ÓµÓеØƤ" +plot_list_footer: "$2>> $1%word% ÓÐ $2%num% $1±»ÁìÈ¡µÄ %plot%." +trim_in_progress: "µØƤÇåÀíÈÎÎñÕýÔÚ½øÐÐ!" +cluster_deleted: "$4³É¹¦É¾³ý×éȺ." +cant_claim_more_plots: "$2Äã²»ÄÜÁìÈ¡¸ü¶àµÄµØƤÁË." +unlink_success: "$2³É¹¦È¡ÏûµØƤºÏ²¢." +no_perm_inbox: "$2ÄãûÓÐȨÏÞÕâÑù×ö" +worldedit_bypass: "$2&oÌø¹ýȨÏÞÇëÊäÈë $3/plot wea" +prefix: "$3[$1µØƤ$3] " +claimed: "$4Äã³É¹¦ÁìÈ¡Á˵ØƤ" +failed_confirm: "$2ÏÂÒ»²½Ê±·¢ÉúÁË´íÎó!" +copy_success: "$4Äã³É¹¦¸´ÖÆÁ˵ØƤ." +cluster_available_args: "$1¿ÉÓõÄ×éȺָÁî: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4helpers$2, $4info$2, $4tp$2, $4sethome" +cluster_list_heading: "$2¸ÃÊÀ½çÖÐÓÐ $1%s$2 ¸ö×éȺ" +cluster_list_element: "$2 - $1%s&-" +cluster_intersection: "$2¸ÃµØÇøÓÐÖصþµÄ $1%s$2 ¸ö×éȺ" +cluster_resized: "$4³É¹¦µ÷ÕûÁË×éȺµÄ´óС." +cluster_added_user: "$4³É¹¦¼ÓÈëÍæ¼Òµ½×éȺÖÐ." +cluster_invited: "$1Äã±»ÑûÇëµ½×éȺ: $2%s" +cluster_removed: "$1Äã±»×éȺ $2%s Ìß³öÁË" +cluster_kicked_user: "$4³É¹¦Ìß³öÍæ¼Ò" +invalid_cluster: "$1ÎÞЧµÄ×éȺÃû³Æ: $2%s" +cluster_removed_helper: "$4³É¹¦ÒƳýÁË×éȺµÄ°ïÊÖ" +cluster_teleporting: "$4´«ËÍÖÐ..." +cluster_current_plotid: "$1µ±Ç°µØƤ: $2%s" +border: "$2Äã×ßµ½Á˵Øͼ±ß¾³" +require_selection_in_mask: "$2ÄãÑ¡ÔñµÄµØƤ %s ²»ÊÇÄãµÄ. ÄãÖ»ÄÜÔÚÄãµÄµØƤÖн¨Öþ." +worldedit_iterations: "$2Äã²»ÄÜÖظ´ %current% ´Î. ×î´óÖظ´´ÎÊýΪ %max%." +worldedit_unmasked: "$1ÄãµÄWE¹¦ÄÜûÓÐÏÞÖÆ." +worldedit_restricted: "$1ÄãµÄWE¹¦Äܱ»ÏÞÖÆ." +notify_enter: "$2%player $2½øÈëÁËÄãµÄµØƤ ($1%plot$2)" +notify_leave: "$2%player $2À뿪ÁËÄãµÄµØƤ ($1%plot$2)" +swap_overlap: "$2¸ÃÇøÓò²»ÔÊÐí¸²¸Ç" +swap_dimensions: "$2¸ÃÇøÓòÐèҪͬÑù´óСµÄ³ß´ç" +swap_syntax: "$2/plots swap <µØƤID>" +swap_success: "$4³É¹¦½»»»µØƤ" +started_swap: "$2¿ªÊ¼µØƤ½»»». ½»»»¾ÍÐ÷ºó»á֪ͨÄã" +comment_syntax: "$2Ó÷¨ /plots comment [X;Z] <%s> <ÁôÑÔ>" +invalid_inbox: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄÒ³Êý.&-$1¿ÉÓõIJÎÊý: %s" +no_plot_inbox: "$2Õâ²»ÊÇÓÐЧµÄµØƤҳÊý" +comment_removed: "$4³É¹¦É¾³ýµØƤÁôÑÔ/s:n$2 - '$3%s$2'" +not_console: "$¸ÃÖ¸Áî½öÏÞ¿ØÖÆ̨ÊäÈë." +is_console: "$2¸ÃÖ¸Áî½öÏÞÍæ¼ÒÊäÈë." +clipboard_set: "$2µ±Ç°µØƤÒѾ­±»¸´ÖƵ½Á˼ôÇаå, ʹÓà $1/plot paste$2 À´Õ³ÌùËü" +no_clipboard: "$2ÄãûÓÐÑ¡Ôñ¼ôÇаå" +clipboard_info: "$2µ±Ç°Ñ¡Ôñ - µØƤ ID: $1%id$2, ¿í¶È: $1%width$2, ·½¿éÊýÁ¿: $1%total$2" +rating_not_valid: "$2ÄãÐèÒªÖ¸¶¨Ò»¸ö1~10Ö®¼äµÄÊý" +rating_already_exists: "$2ÄãÒѾ­ÎªµØƤ $2%s ÆÀ¹ý·ÖÁË" +rating_not_your_own: "$2Äã²»ÄÜΪ×Ô¼ºµØƤÆÀ·Ö" +rating_not_owned: "$2Äã²»ÄÜΪÏÐÖõØƤÆÀ·Ö" +cannot_afford_plot: "$2ÄãûÓÐ×ã¹»µÄ½ðÇ®¹ºÂòµØƤ. ÐèÒª»¨·Ñ $1%s" +plot_sold: "$4ÄãµÄµØƤ; $1%s$4, ÒÑÂô¸øÁË $1%s$4 ¼Û¸ñΪ $1$%s" +setup_invalid_arg: "$2%s²»ÊDz½Öè %s µÄÓÐЧ²ÎÊý. È¡Ïû¹¹½¨ÊäÈë: $1/plot setup cancel" +setup_finished: "$3Èç¹ûʹÓÃÁË MULTIVERSE »ò MULTIWORLD ²å¼þÊÀ½çµÄÅäÖûá×Ô¶¯Ð´Èë. ·ñÔòÄãÐèÒªÊÖ¶¯Ð´ÈëÎļþ bukkit.yml" +setup_missing_world: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öÊÀ½çÃû³Æ ($1/plot setup &l<ÊÀ½çÃû³Æ>$1 <Éú³É²ÎÊý>$2)&-$1¸½¼ÓÖ¸Áî:&-$2 - $1/plot setup <²ÎÊý>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" +schematic_missing_arg: "$2ÄãÐèÒªÖ¸¶¨Ò»¸ö²ÎÊý. ¿ÉÓõIJÎÊý: $1test <Ãû³Æ>$2 , $1save$2 , $1paste $2, $1exportall" +title_entered_plot: "µØƤλÖÃ: %world%;%x%;%z%" +title_entered_plot_sub: "ÓµÓÐÕß %s" +title_left_plot: "ÄãÀ뿪ÁË %s" +title_left_plot_sub: "ÓµÓÐÕß %s" +title_left_plot_sub_color: "RED" +prefix_farewell: "$1%id%$2> " +enabled: "$1PlotSquared ÒÑÆôÓÃ" +example_message: "$2ÕâÊÇÒ»ÌõÑÝʾÏûÏ¢ &k!!!" +reloaded_configs: "$1ÎļþÓëÉ趨±»ÖØжÁÈ¡" +reload_failed: "$2ÖØжÁȡʧ°ÜÁË" +time_format: "$1%hours%, %min%, %sec%" +no_schematic_permission: "$2ÄãûÓÐȨÏÞʹÓý¨ÖþÎļþ $1%s" +no_permission: "$2ÄãȱÉÙÁËȨÏÞ: $1%s" +cant_transfer_more_plots: "$2Äã²»ÄÜ·¢³ö¸ü¶àµÄµØƤÑûÇëÁË" +cant_claim_more_plots_num: "$2Äã²»ÄÜÒ»´ÎÁìÈ¡ $1%s $2¿éµØƤ" +you_be_denied: "$2Äã²»ÄܽøÈëÕâ¿éµØƤ" +no_perm_merge: "$2Äã²»ÊÇÕâ¿éµØƤ $1%plot% $2µÄÓµÓÐÕß" +unlink_impossible: "$2ÄãÖ»ÄÜÈ¡ÏûºÏ²¢³¬¼¶µØƤ" +no_merge_to_mega: "$2³¬¼¶µØƤÎÞ·¨±»ºÏ²¢." +merge_accepted: "$2ºÏ²¢ÇëÇóÒѱ»½ÓÊÜ" +merge_request_confirm: "ÊÕµ½ÁË %s µÄºÏ²¢ÇëÇó" +name_little: "$2%s Ãû×ÖÌ«¶ÌÁË, $1%s$2<$1%s" +purge_syntax: "Ó÷¨ /plot purge <ÊÀ½çÃû³Æ>" +purge_success: "$4³É¹¦ÇåÀíÁË %s ¿éµØƤ" +trim_syntax: "Ó÷¨ /plot trim <ÊÀ½çÃû³Æ>" +trim_start: "¿ªÊ¼µØƤÕûÀí..." +no_free_plots: "$2ûÓÐÃâ·ÑµÄµØƤ¿ÉÓÃ" +not_in_plot: "$2Äã²»ÔÚµØƤÉÏ" +not_valid_plot_world: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄÊÀ½ç (×¢Òâ´óСд)" +block_list_item: " $1%mat%$2," +need_biome: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öÉúÎïȺÂä" +biome_set_to: "$2µØƤµÄÉúÎïȺÂäÉèÖÃΪ $2" +teleported_to_plot: "$2Äã´«Ë͵½Á˵ØƤÖÐ" +teleport_in_seconds: "$1½«ÔÚ %s ÃëÄÚ´«ËÍ. ÇëÎðÒƶ¯..." +deubg_header: "$1µ÷ÊÔÐÅÏ¢" +not_valid_block: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄ·½¿é." +not_valid_number: "$2Õâ²»ÊÇÒ»¸öÓÐЧµÄÊý×Ö" +no_such_plot: "$2ûÓиÃÀàÐ͵ĵØƤ" +found_no_plots: "$2ÎÞ·¨¸ù¾Ý¸ÃÒªÇó²éÕÒµØƤ" +need_plot_number: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öµØƤID»ò±ðÃû" +need_block: "$ÄãÐèÒªÖ¸¶¨Ò»ÖÖ·½¿é" +need_user: "$2ÄãÐèÒªÖ¸¶¨Ò»¸öÍæ¼Ò" +plot_info_unclaimed: "$2µØƤ $1%s$2 »¹Î´±»ÁìÈ¡" +plot_info_header: "$3====== $1INFO $3======" +plot_info: "$1ID: $2%id%$1&-$1±ðÃû: $2%alias%$1&-$1ÓµÓÐÕß: $2%owner%$1&-$1ÉúÎïȺÂä: $2%biome%$1&-$1¿É·ñ½¨Öþ: $2%build%$1&-$1ÆÀ·Ö: $2%rating%$1/$210$1&-$1°ïÊÖ: $2%helpers%$1&-$1¿ÉÐÅÍæ¼Ò: $2%trusted%$1&-$1ºÚÃûµ¥: $2%denied%$1&-$1±êʶ: $2%flags%" +plot_info_trusted: "$1¿ÉÐÅÍæ¼Ò:$2 %trusted%" +plot_info_denied: "$1ºÚÃûµ¥Íæ¼Ò:$2 %denied%" +plot_info_flags: "$1±êʶ:$2 %flags%" +plot_info_biome: "$1ÉúÎïȺÂä:$2 %biome%" +plot_info_rating: "$1ÆÀ·Ö:$2 %rating%" +plot_info_owner: "$1ÓµÓÐÕß:$2 %owner%" +plot_info_id: "$1ID:$2 %id%" +plot_info_alias: "$1±ðÃû:$2 %alias%" +plot_info_size: "$1´óС:$2 %size%" +plot_user_list: " $1%user%$2," +info_syntax_console: "$2/plot info <ÊÀ½çÃû³Æ> X;Y" +clearing_plot: "$2ÇåÀíµØƤÖÐ." +plot_is_claimed: "$2Õâ¿éµØƤÒѱ»ÁìÈ¡" +plot_list_header_paged: "$2(Ò³Êý $1%cur$2/$1%max$2) $1ÁгöÁË %word% ¿éµØƤ" +plot_list_header: "$11ÁгöÁË %word% ¿éµØƤ" +plot_list_item_ordered: "$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner" +left_plot: "$2ÄãÀ뿪Á˵ØƤ" +wait_for_timer: "$2ÉèÖ÷½¿é¼ÆʱÆ÷ÒÑÆôÓÃ. ÇëÉÔºó..." +plot_chat_format: "$2[$1µØƤÁÄÌì$2][$1%plot_id%$2] $1%sender%$2: $1%msg%" +denied_added: "$4Äã³É¹¦ÎªµØƤ¼ÓÈëÁ˺ÚÃûµ¥Íæ¼Ò" +was_not_denied: "$2ÄãÕâÍæ¼Ò²»ÔÚºÚÃûµ¥ÖÐ" +need_on_off: "$2ÄãÐèÒªÖ¸¶¨Ò»¸ö²ÎÊý. ¿ÉÓõIJÎÊý: $1on$2, $1off" +flag_key: "$2¹Ø¼ü×Ö: %s" +flag_desc: "$2ÃèÊö: %s" +not_valid_value: "$2±êʶµÄ²ÎÊý±ØÐëΪÊý×Ö" +flag_not_in_plot: "$2Õâ¿éµØƤ»¹Ã»ÓÐÉèÖñêʶ 26" +helper_removed: "$4Äã³É¹¦ÎªµØƤÒƳýÁË°ïÊÖ" +helper_need_argument: "$2ȱÉÙ²ÎÊý. $1/plot helpers add <Íæ¼ÒÃû³Æ> $2»ò $1/plot helpers remove <Íæ¼ÒÃû³Æ>" +was_not_added: "$2Õâ¸öÍæ¼Ò»¹Ã»ÓгÉΪ¸ÃµØƤµÄ°ïÊÖ" +already_added: "$2Õâ¸öÍæ¼ÒÒѾ­¼ÓÈëÁ˸÷Ö×é." +trusted_added: "$4Äã³É¹¦ÎªµØƤ¼ÓÈëÁË¿ÉÐÅÍæ¼Ò" +trusted_need_argument: "$2ȱÉÙ²ÎÊý. $1/plot trusted add <Íæ¼ÒÃû³Æ> $2»ò $1/plot trusted remove <Íæ¼ÒÃû³Æ>" +t_was_not_added: "$2Õâ¸öÍæ¼Ò»¹Ã»ÓгÉΪ¸ÃµØƤµÄ¿ÉÐÅÍæ¼Ò" +set_owner: "$4Äã³É¹¦ÎªµØƤÉèÖÃÁËÓµÓÐÕß" +now_owner: "$4ÄãÏÖÔÚ³ÉΪµØƤ %s µÄÓµÓÐÕßÁË" +help_category: "$1·ÖÀà: $2%category%$2,$1 Ò³Êý: $2%current%$3/$2%max%$2,$1 ÒÑÏÔʾ: $2%dis%$3/$2%total%" +help_info: "$3====== $1Ñ¡ÔñÒ»¸ö·ÖÀà $3======" +help_info_item: "$1/plots help %category% $3- $2%category_desc%" +direction: "$1µ±Ç°·½Ïò: %dir%" +custom_string: "-" \ No newline at end of file