mirror of
https://github.com/sekwah41/Advanced-Portals.git
synced 2024-11-18 00:25:33 +01:00
feat: add list command & update translation colors
This commit is contained in:
parent
c14afa79ed
commit
a9f2c532b8
@ -88,6 +88,7 @@ public class AdvancedPortalsCore {
|
||||
this.portalCommand.registerSubCommand("endgatewayblock", new EndGatewayBlockSubCommand());
|
||||
this.portalCommand.registerSubCommand("create", new CreatePortalSubCommand());
|
||||
this.portalCommand.registerSubCommand("remove", new RemoveSubCommand());
|
||||
this.portalCommand.registerSubCommand("list", new ListSubCommand());
|
||||
|
||||
commandRegister.registerCommand("portal", this.portalCommand);
|
||||
}
|
||||
|
@ -23,14 +23,6 @@ public class CoreListeners {
|
||||
|
||||
public void playerJoin(PlayerContainer player) {
|
||||
this.portalTempDataServices.activateCooldown(player);
|
||||
if(player.isOp()) {
|
||||
if(!Lang.translate("translatedata.lastchange").equals(AdvancedPortalsCore.lastTranslationUpdate)) {
|
||||
player.sendMessage(Lang.translate("messageprefix.negative")
|
||||
+ Lang.translateInsertVariables("translatedata.translationsoutdated", configRepository.getTranslation()));
|
||||
player.sendMessage(Lang.translate("messageprefix.negative")
|
||||
+ Lang.translate("translatedata.replacecommand"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void teleportEvent(PlayerContainer player) {
|
||||
|
@ -4,14 +4,24 @@ import com.google.inject.Inject;
|
||||
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
|
||||
import com.sekwah.advancedportals.core.commands.SubCommand;
|
||||
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
|
||||
import com.sekwah.advancedportals.core.repository.ConfigRepository;
|
||||
import com.sekwah.advancedportals.core.util.Lang;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class LangUpdateSubCommand implements SubCommand {
|
||||
|
||||
@Inject
|
||||
private AdvancedPortalsCore portalsCore;
|
||||
@Inject
|
||||
private ConfigRepository configRepository;
|
||||
|
||||
public LangUpdateSubCommand() {
|
||||
}
|
||||
@ -19,11 +29,44 @@ public class LangUpdateSubCommand implements SubCommand {
|
||||
@Override
|
||||
public void onCommand(CommandSenderContainer sender, String[] args) {
|
||||
if(args.length > 1 && args[1].equalsIgnoreCase("overwrite")) {
|
||||
this.portalsCore.getDataStorage().copyDefaultFile("lang/en_GB.lang", true);
|
||||
this.portalsCore.getDataStorage().copyDefaultFile("lang/" + configRepository.getTranslation() + ".lang", true);
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("translatedata.replaced"));
|
||||
Lang.loadLanguage(configRepository.getTranslation());
|
||||
} else {
|
||||
this.portalsCore.getDataStorage().copyDefaultFile("lang/en_GB.lang", "lang/en_GB-new.lang", true);
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("translatedata.replaced") + Lang.translate("translatedata.overwrite"));
|
||||
// TODO check what keys are missing and append them to the end of the file, check the translation first then GB
|
||||
Lang lang = Lang.instance;
|
||||
Map<String, String> internalTranslation = lang.getInternalLanguageMap(Lang.DEFAULT_LANG);
|
||||
internalTranslation.putAll(lang.getInternalLanguageMap(configRepository.getTranslation()));
|
||||
|
||||
Map<String, String> currentTranslation = lang.getLanguageMap(configRepository.getTranslation());
|
||||
// Remove everything to leave just the missing keys
|
||||
for(Map.Entry<String, String> entry : currentTranslation.entrySet()) {
|
||||
internalTranslation.remove(entry.getKey());
|
||||
}
|
||||
|
||||
List<String> newTranslations = new ArrayList<>();
|
||||
for(Map.Entry<String, String> entry : internalTranslation.entrySet()) {
|
||||
newTranslations.add(entry.getKey() + "=" + entry.getValue());
|
||||
}
|
||||
|
||||
String appendText = String.join("\n", newTranslations);
|
||||
|
||||
InputStream translationFile = this.portalsCore.getDataStorage().loadResource("lang/" + configRepository.getTranslation() + ".lang");
|
||||
String result = new BufferedReader(new InputStreamReader(translationFile))
|
||||
.lines().collect(Collectors.joining("\n"));
|
||||
InputStream withExtras = new ByteArrayInputStream(result.concat("\n").concat(appendText).getBytes());
|
||||
this.portalsCore.getDataStorage().writeResource(withExtras, "lang/" + configRepository.getTranslation() + ".lang");
|
||||
|
||||
Lang.loadLanguage(configRepository.getTranslation());
|
||||
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translateInsertVariables("translatedata.updated", newTranslations.size()));
|
||||
|
||||
/*if(!configRepository.getTranslation().equals("en_GB")) {
|
||||
// Copy this just to allow people to check the new translations.
|
||||
this.portalsCore.getDataStorage().copyDefaultFile("lang/en_GB.lang", "lang/en_GB-new.lang", true);
|
||||
}
|
||||
this.portalsCore.getDataStorage().copyDefaultFile("lang/" + configRepository.getTranslation() + ".lang", "lang/" + configRepository.getTranslation() + "-new.lang", true);
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("translatedata.replaced") + Lang.translate("translatedata.overwrite"));*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,40 @@
|
||||
package com.sekwah.advancedportals.core.commands.subcommands.portal;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.sekwah.advancedportals.core.commands.SubCommand;
|
||||
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
|
||||
import com.sekwah.advancedportals.core.services.PortalServices;
|
||||
import com.sekwah.advancedportals.core.util.Lang;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ListSubCommand implements SubCommand {
|
||||
|
||||
@Inject
|
||||
PortalServices portalServices;
|
||||
|
||||
@Override
|
||||
public void onCommand(CommandSenderContainer sender, String[] args) {
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.list"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(CommandSenderContainer sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSenderContainer sender, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBasicHelpText() {
|
||||
return Lang.translate("command.list.help");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDetailedHelpText() {
|
||||
return Lang.translate("command.list.help");
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@ import com.google.inject.Inject;
|
||||
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
|
||||
import com.sekwah.advancedportals.core.commands.SubCommand;
|
||||
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
|
||||
import com.sekwah.advancedportals.core.repository.ConfigRepository;
|
||||
import com.sekwah.advancedportals.core.services.DestinationServices;
|
||||
import com.sekwah.advancedportals.core.services.PortalServices;
|
||||
import com.sekwah.advancedportals.core.util.Lang;
|
||||
@ -21,11 +22,15 @@ public class ReloadSubCommand implements SubCommand {
|
||||
@Inject
|
||||
DestinationServices destinationServices;
|
||||
|
||||
@Inject
|
||||
ConfigRepository configRepository;
|
||||
|
||||
@Override
|
||||
public void onCommand(CommandSenderContainer sender, String[] args) {
|
||||
portalsCore.loadPortalConfig();
|
||||
portalServices.loadPortals();
|
||||
destinationServices.loadDestinations();
|
||||
Lang.loadLanguage(configRepository.getTranslation());
|
||||
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.reload.reloaded"));
|
||||
}
|
||||
|
||||
|
@ -105,15 +105,7 @@ public class DataStorage {
|
||||
return false;
|
||||
}
|
||||
|
||||
FileOutputStream outStream = new FileOutputStream(outFile);
|
||||
|
||||
byte[] buf = new byte[1024];
|
||||
int len;
|
||||
while ((len = inputStream.read(buf)) > 0) {
|
||||
outStream.write(buf, 0, len);
|
||||
}
|
||||
inputStream.close();
|
||||
outStream.close();
|
||||
writeToFile(inputStream, outFile);
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
this.infoLogger.logWarning("Could not load " + sourceLoc + ". The file does" +
|
||||
@ -157,4 +149,24 @@ public class DataStorage {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void writeResource(InputStream inputStream, String location) {
|
||||
File outFile = new File(dataFolder, location);
|
||||
try {
|
||||
writeToFile(inputStream, outFile);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void writeToFile(InputStream inputStream, File outFile) throws IOException {
|
||||
FileOutputStream outStream = new FileOutputStream(outFile);
|
||||
byte[] buf = new byte[1024];
|
||||
int len;
|
||||
while ((len = inputStream.read(buf)) > 0) {
|
||||
outStream.write(buf, 0, len);
|
||||
}
|
||||
inputStream.close();
|
||||
outStream.close();
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ import com.sekwah.advancedportals.core.data.DataStorage;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
@ -34,20 +36,19 @@ public class Lang {
|
||||
@Inject
|
||||
private InfoLogger infoLogger;
|
||||
|
||||
//private final String DEFAULT_LANG = "en_GB";
|
||||
|
||||
/*public Lang() {
|
||||
injectTranslations(this, DEFAULT_LANG);
|
||||
}*/
|
||||
public static final String DEFAULT_LANG = "en_GB";
|
||||
|
||||
public static void loadLanguage(String fileName) {
|
||||
if(!DEFAULT_LANG.equals(fileName)) {
|
||||
instance.injectTranslations(instance, DEFAULT_LANG);
|
||||
}
|
||||
instance.injectTranslations(instance, fileName);
|
||||
}
|
||||
|
||||
public static String translate(String s) {
|
||||
if (instance.languageMap.containsKey(s)) {
|
||||
String translation = instance.languageMap.get(s);
|
||||
translation = translation.replaceAll("\\\\u00A7", "\u00A7");
|
||||
translation = translation.replaceAll("&([0-9a-frk-o])", "\u00A7$1");
|
||||
return translation;
|
||||
} else {
|
||||
return s;
|
||||
@ -62,35 +63,50 @@ public class Lang {
|
||||
return translation;
|
||||
}
|
||||
|
||||
private void injectTranslations(Lang lang, String fileName) {
|
||||
try {
|
||||
//URL url = lang.getClass().getClassLoader().getResource("lang/" + fileName + ".lang");
|
||||
//System.out.println(url);
|
||||
//Map<String, String> newLangMap = lang.parseLang(url.openStream());
|
||||
InputStream stream = this.dataStorage.loadResource("lang/" + fileName + ".lang");
|
||||
if (stream != null) {
|
||||
Map<String, String> newLangMap = lang.parseLang(stream);
|
||||
if (newLangMap != null) {
|
||||
lang.languageMap.putAll(newLangMap);
|
||||
}
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
this.infoLogger.logWarning("Could not load " + fileName + ".lang The file does" +
|
||||
"not exist or there has been an error reading the file. Canceled loading language file.");
|
||||
public Map<String, String> getLanguageMap(String fileName) {
|
||||
InputStream stream = this.dataStorage.loadResource("lang/" + fileName + ".lang");
|
||||
if (stream != null) {
|
||||
return Lang.parseLang(stream);
|
||||
}
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
private Map<String, String> parseLang(InputStream inputStream) {
|
||||
public Map<String, String> getInternalLanguageMap(String fileName) {
|
||||
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("lang/" + fileName + ".lang");
|
||||
if (stream != null) {
|
||||
return Lang.parseLang(stream);
|
||||
}
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
private void injectTranslations(Lang lang, String fileName) {
|
||||
try {
|
||||
URL url = lang.getClass().getClassLoader().getResource("lang/" + fileName + ".lang");
|
||||
if (url != null) {
|
||||
Map<String, String> initialMap = Lang.parseLang(url.openStream());
|
||||
lang.languageMap.putAll(initialMap);
|
||||
} else {
|
||||
this.infoLogger.logWarning("Could not load " + fileName + ".lang from within Advanced Portals as it doesn't exist.");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
this.infoLogger.logWarning("Could not load " + fileName + ".lang from within Advanced Portals.");
|
||||
}
|
||||
|
||||
Map<String, String> newLangMap = this.getLanguageMap("lang/" + fileName + ".lang");
|
||||
lang.languageMap.putAll(newLangMap);
|
||||
}
|
||||
|
||||
public static Map<String, String> parseLang(InputStream inputStream) {
|
||||
Scanner scanner = new Scanner(inputStream, "UTF-8");
|
||||
String line = getNextLine(scanner);
|
||||
HashMap<String, String> newMap = new HashMap<>();
|
||||
while (scanner != null && line != null) {
|
||||
while (line != null) {
|
||||
//System.out.println(line);
|
||||
if (!line.startsWith("#") && line.indexOf('=') > -1) {
|
||||
int split = line.indexOf('=');
|
||||
String key = line.substring(0, split);
|
||||
String value = line.substring(split + 1, line.length());
|
||||
String value = line.substring(split + 1);
|
||||
newMap.put(key, value);
|
||||
}
|
||||
line = getNextLine(scanner);
|
||||
@ -103,7 +119,7 @@ public class Lang {
|
||||
return newMap;
|
||||
}
|
||||
|
||||
private String getNextLine(Scanner scanner) {
|
||||
private static String getNextLine(Scanner scanner) {
|
||||
if (scanner.hasNextLine()) {
|
||||
return scanner.nextLine();
|
||||
}
|
||||
|
@ -6,32 +6,52 @@
|
||||
# The format of included strings is %(number of argument)$s (starts at 1 not 0)
|
||||
# So the order of variables being inserted into the string is not a set order. Just like minecraft
|
||||
#
|
||||
# For colors use \u00A7 or § (can be entered by holding alt and pressing 2 then 1 on the numpad)
|
||||
# http://minecraft.gamepedia.com/Formatting_codes
|
||||
# For colors use & or §
|
||||
# &0 Black
|
||||
# &1 Dark Blue
|
||||
# &2 Dark Green
|
||||
# &3 Dark Aqua
|
||||
# &4 Dark Red
|
||||
# &5 Dark Purple
|
||||
# &6 Gold
|
||||
# &7 Gray
|
||||
# &8 Dark Gray
|
||||
# &9 Blue
|
||||
# &a Green
|
||||
# &b Aqua
|
||||
# &c Red
|
||||
# &d Light Purple
|
||||
# &e Yellow
|
||||
# &f White
|
||||
# &k Obfuscated
|
||||
# &l Bold
|
||||
# &m Strikethrough
|
||||
# &n Underline
|
||||
# &o Italic
|
||||
# &r Reset
|
||||
#
|
||||
# Also note that some debug messages may not be listed here for translation.
|
||||
#
|
||||
# German - Translation by enterih from Minecityelan.net
|
||||
# Falls ihr ein Fehler oder Unschönheit findet meldet es auf Github und markiert mich mit @Sprungente
|
||||
#
|
||||
translatedata.lastchange=1.0.0
|
||||
translatedata.translationsoutdated= Einige Übersetzungen von \u00A7e%1$s\u00A7c sind nicht aktuell.
|
||||
translatedata.replacecommand= Verwende \u00A7e/portal transupdate\u00A7c um eine standard \u00A7ede_DE\u00A7c Datei zu erstellen.
|
||||
translatedata.replaced= Eine neue \u00A7ede_DE\u00A7a wurde in den ordner kopiert.
|
||||
|
||||
messageprefix.positive=\u00A7a[\u00A7eAdvancedPortals\u00A7a]
|
||||
messageprefix.negative=\u00A7c[\u00A77AdvancedPortals\u00A7c]
|
||||
translatedata.translationsoutdated= Einige Übersetzungen von &e%1$s&c sind nicht aktuell.
|
||||
translatedata.replacecommand= Verwende &e/portal transupdate&c um eine standard &ede_DE&c Datei zu erstellen.
|
||||
translatedata.replaced= Eine neue &ede_DE&a wurde in den ordner kopiert.
|
||||
|
||||
messageprefix.positive=&a[&eAdvancedPortals&a]
|
||||
messageprefix.negative=&c[&7AdvancedPortals&c]
|
||||
|
||||
logger.pluginenable=Advanced Portals wurde erfolgreich aktiviert!
|
||||
logger.plugindisable=Advanced portals wurde deaktiviert!
|
||||
logger.plugincrafterror=Diese Version von Craftbukkit/Spigot wird derzeit nicht unterstützt oder etwas ist schief gelaufen. Bitte melde die diese Nachricht mit der Versionnummer mit dem Log in unserem Github (auf Englisch) v:%1$s
|
||||
|
||||
command.noargs= Du musst einen Sub-Command angeben. Bitte benutze \u00A7e/%1$s help \u00A7c. Falls du eine Liste von möglichen Sub_Command willst.
|
||||
command.noargs= Du musst einen Sub-Command angeben. Bitte benutze &e/%1$s help &c. Falls du eine Liste von möglichen Sub_Command willst.
|
||||
command.subcommand.invalid= Das ist ein ungültiger Sub-Command.
|
||||
|
||||
command.help.header=\u00A7e--------------- \u00A7a%1$s Hilfe - Seite %2$s of %3$s\u00A7e ---------------
|
||||
command.help.subcommandheader=\u00A7e--------- \u00A7a%1$s Hilfe - %2$s\u00A7e ---------
|
||||
command.help.invalidhelp= \u00A7e%1$s\u00A7c ist keine gültige Seitennummer oder Sub-Command.
|
||||
command.help.header=&e--------------- &a%1$s Hilfe - Seite %2$s of %3$s&e ---------------
|
||||
command.help.subcommandheader=&e--------- &a%1$s Hilfe - %2$s&e ---------
|
||||
command.help.invalidhelp= &e%1$s&c ist keine gültige Seitennummer oder Sub-Command.
|
||||
|
||||
command.reload.help=Ladet die Portal-Dateien neu
|
||||
command.reload.detailedhelp=Lade alle Portal-Dateien von den Dateien im Dateiordner neu.
|
||||
@ -49,7 +69,7 @@ command.createdesti.console= Du kannst keine Destination erstellen. Überprüfe
|
||||
command.createdesti.detailedhelp= Das Format ist /desti create (name) [tag:tagvalue] .Liste die einzelnen Tags nach Create im Format tag:Wert. Wenn dein Wert Leerzeichen benötigt, dann verwende tag:"Wert mit Leerzeichen
|
||||
command.createdesti.complete= Die Destination wurde erfolgreich erstellt.
|
||||
|
||||
command.create.tags=\u00A7aTags:
|
||||
command.create.tags=&aTags:
|
||||
|
||||
command.playeronly= Dieser Befehl muss von einem Spieler ausgeführt werden.
|
||||
|
||||
@ -64,17 +84,17 @@ command.selector= Du hast den Portal-Selektor bekommen.
|
||||
command.selector.help= Gibt dir eine Portal-Selektor
|
||||
command.selector.detailedhelp= Gibt dir einen Portal-Selektor um Portalregionen auszuwählen.
|
||||
|
||||
command.portalblock= Du hast dir einen \u00A7ePortal Block\u00A7a gegeben!
|
||||
command.portalblock= Du hast dir einen &ePortal Block&a gegeben!
|
||||
|
||||
command.endportalblock= Du hast dir einen \u00A78End Portal Block Placer\u00A7a gegeben!
|
||||
command.endportalblock= Du hast dir einen &8End Portal Block Placer&a gegeben!
|
||||
|
||||
command.gatewayblock= Du hast dir einen \u00A78Gateway Block Placer\u00A7a gegeben!
|
||||
command.gatewayblock= Du hast dir einen &8Gateway Block Placer&a gegeben!
|
||||
|
||||
portal.error.invalidselection=Du beide pos1 und pos2 ausgewählt haben. Ansonsten kannst kein Portal erstellen.
|
||||
portal.error.takenname=Ein anderes Portal trägt bereits diesen Namen.
|
||||
portal.error.selection.differentworlds= Die ausgewählten Positionen müssen in der gleichen Welt sein.
|
||||
|
||||
desti.info.noargs=\u00A7cEs wurde kein tag angegeben
|
||||
desti.info.noargs=&cEs wurde kein tag angegeben
|
||||
|
||||
command.error.noname= Es wurde kein Name angegeben.
|
||||
|
||||
@ -82,10 +102,10 @@ desti.error.takenname= Der Namen, den du dem Portal geben möchtes, ist bereits
|
||||
|
||||
error.notplayer=Nur Spieler können das machen.
|
||||
|
||||
portal.selector.poschange=\u00A7eDu hast pos%1$s X:%2$s Y:%3$s Z:%4$s ausgewählt
|
||||
portal.selector.poschange=&eDu hast pos%1$s X:%2$s Y:%3$s Z:%4$s ausgewählt
|
||||
|
||||
command.trans.help=Kopiere die Übersetzung, um die Standardeinstellungen wiederherzustellen
|
||||
|
||||
command.version.help=Sagt dir die aktuelle Version von Advanced Portals
|
||||
|
||||
command.subcommand.nopermission= Du hast dafür keine Berechigung. Verwende \u00A7e/%1$s help \u00A7c wenn du eine Liste von möglichen Befehlen sehen möchtest.
|
||||
command.subcommand.nopermission= Du hast dafür keine Berechigung. Verwende &e/%1$s help &c wenn du eine Liste von möglichen Befehlen sehen möchtest.
|
||||
|
@ -6,30 +6,51 @@
|
||||
# The format of included strings is %(number of argument)$s (starts at 1 not 0)
|
||||
# So the order of variables being inserted into the string is not a set order. Just like minecraft
|
||||
#
|
||||
# For colors use \u00A7 or § (can be entered by holding alt and pressing 2 then 1 on the numpad)
|
||||
# http://minecraft.gamepedia.com/Formatting_codes
|
||||
# For colors use & or §
|
||||
# &0 Black
|
||||
# &1 Dark Blue
|
||||
# &2 Dark Green
|
||||
# &3 Dark Aqua
|
||||
# &4 Dark Red
|
||||
# &5 Dark Purple
|
||||
# &6 Gold
|
||||
# &7 Gray
|
||||
# &8 Dark Gray
|
||||
# &9 Blue
|
||||
# &a Green
|
||||
# &b Aqua
|
||||
# &c Red
|
||||
# &d Light Purple
|
||||
# &e Yellow
|
||||
# &f White
|
||||
# &k Obfuscated
|
||||
# &l Bold
|
||||
# &m Strikethrough
|
||||
# &n Underline
|
||||
# &o Italic
|
||||
# &r Reset
|
||||
#
|
||||
# Also note that some debug messages may not be listed here for translation.
|
||||
#
|
||||
translatedata.lastchange=1.0.0
|
||||
translatedata.translationsoutdated= Some of the translations from the current translation file \u00A7e%1$s\u00A7c are out of date.
|
||||
translatedata.replacecommand= Use \u00A7e/portal langupdate\u00A7c to copy out a new default \u00A7een_GB\u00A7c file.
|
||||
translatedata.replaced= A new \u00A7een_GB\u00A7a file has been copied to the data folder.
|
||||
translatedata.overwrite= Please use "\u00A7elangupdate overwrite\u00A7a" to replace the original file.
|
||||
# Some debug messages may not be listed here for translation.
|
||||
|
||||
messageprefix.positive=\u00A7a[\u00A7eAdvancedPortals\u00A7a]
|
||||
messageprefix.negative=\u00A7c[\u00A77AdvancedPortals\u00A7c]
|
||||
translatedata.translationsoutdated= Some of the translations from the current translation file &e%1$s&c are out of date.
|
||||
translatedata.replacecommand= Use &e/portal langupdate&c to copy out a new default &een_GB&c file.
|
||||
translatedata.replaced= A new &een_GB&a file has been copied to the data folder.
|
||||
translatedata.overwrite= Please use "&elangupdate overwrite&a" to replace the original file.
|
||||
translatedata.updated= &e%1$s &atranslations have been added to the lang file.
|
||||
|
||||
messageprefix.positive=&a[&eAdvancedPortals&a]
|
||||
messageprefix.negative=&c[&7AdvancedPortals&c]
|
||||
|
||||
logger.pluginenable=Advanced portals have been enabled!
|
||||
logger.plugindisable=Advanced portals are being disabled!
|
||||
logger.plugincrafterror=This version of craftbukkit is not yet supported or something went wrong, please post this message with the version number and the above stacktrace in an issue on GitHub v:%1$s
|
||||
|
||||
command.noargs= Sorry but you need to specify a sub command, please use \u00A7e/%1$s help \u00A7cif you would like a list of possible subcommands.
|
||||
command.noargs= Sorry but you need to specify a sub command, please use &e/%1$s help &cif you would like a list of possible subcommands.
|
||||
command.subcommand.invalid= Sorry but that is not a valid sub command.
|
||||
|
||||
command.help.header=\u00A7e--------------- \u00A7a%1$s Help - Page %2$s of %3$s\u00A7e ---------------
|
||||
command.help.subcommandheader=\u00A7e--------- \u00A7a%1$s Help - %2$s\u00A7e ---------
|
||||
command.help.invalidhelp= Sorry but \u00A7e%1$s\u00A7c is not a valid page number or sub command.
|
||||
command.help.header=&e--------------- &a%1$s Help - Page %2$s of %3$s&e ---------------
|
||||
command.help.subcommandheader=&e--------- &a%1$s Help - %2$s&e ---------
|
||||
command.help.invalidhelp= Sorry but &e%1$s&c is not a valid page number or sub command.
|
||||
|
||||
command.reload.help=Reloads portal data
|
||||
command.reload.detailedhelp=Reloads all portal data from files in the data folder
|
||||
@ -47,7 +68,7 @@ command.createdesti.console= You cannot create a destination using the console.
|
||||
command.createdesti.detailedhelp=Format is /desti create (name) [tag:tagvalue] List tags after create in the format tag:value, if your value needs spaces use the format tag:"value with spaces"
|
||||
command.createdesti.complete= The destination has been successfully created.
|
||||
|
||||
command.create.tags=\u00A7aTags:
|
||||
command.create.tags=&aTags:
|
||||
|
||||
command.playeronly= Sorry but that command can only be run by a player.
|
||||
|
||||
@ -58,21 +79,24 @@ command.remove.invalidselection=The portal selection you had is no longer valid
|
||||
command.remove.noselection=You don't have a portal selected
|
||||
command.remove.complete= The portal has been successfully removed.
|
||||
|
||||
command.list.help=Lists portals
|
||||
command.list=&7 Portals&e:
|
||||
|
||||
command.selector= You have been given a portal selector.
|
||||
command.selector.help=Gives you a portal region selector
|
||||
command.selector.detailedhelp=Gives you a portal selector to select the regions for making portals.
|
||||
|
||||
command.portalblock= You have been given a \u00A7ePortal Block\u00A7a!
|
||||
command.portalblock= You have been given a &ePortal Block&a!
|
||||
|
||||
command.endportalblock= You have been given a \u00A78End Portal Block Placer\u00A7a!
|
||||
command.endportalblock= You have been given a &8End Portal Block Placer&a!
|
||||
|
||||
command.gatewayblock= You have been given a \u00A78Gateway Block Placer\u00A7a!
|
||||
command.gatewayblock= You have been given a &8Gateway Block Placer&a!
|
||||
|
||||
portal.error.invalidselection=You must have both pos1 and pos2 selected to create a portal.
|
||||
portal.error.takenname=The name given for the portal is already taken.
|
||||
portal.error.selection.differentworlds=Both the selected points need to be in the same world.
|
||||
|
||||
desti.info.noargs=\u00A7cNo tags were given
|
||||
desti.info.noargs=&cNo tags were given
|
||||
|
||||
command.error.noname= No name has been given.
|
||||
|
||||
@ -80,11 +104,10 @@ desti.error.takenname=The name given for the portal is already taken.
|
||||
|
||||
error.notplayer=Only players can do that.
|
||||
|
||||
portal.selector.poschange=\u00A7eYou have selected pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
portal.selector.poschange=&eYou have selected pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
|
||||
command.trans.help=Copy translation new default translation file
|
||||
|
||||
command.version.help=Returns the current version of the plugin
|
||||
|
||||
command.subcommand.nopermission= Sorry but you don't have permission for that, please use \u00A7e/%1$s help \u00A7cif you would like a list of possible sub commands.
|
||||
|
||||
command.subcommand.nopermission= Sorry but you don't have permission for that, please use &e/%1$s help &cif you would like a list of possible sub commands.
|
||||
|
@ -6,29 +6,49 @@
|
||||
# The format of included strings is %(number of argument)$s (starts at 1 not 0)
|
||||
# So the order of variables being inserted into the string is not a set order. Just like minecraft
|
||||
#
|
||||
# For colors use \u00A7 or § (can be entered by holding alt and pressing 2 then 1 on the numpad)
|
||||
# http://minecraft.gamepedia.com/Formatting_codes
|
||||
# For colors use & or §
|
||||
# &0 Black
|
||||
# &1 Dark Blue
|
||||
# &2 Dark Green
|
||||
# &3 Dark Aqua
|
||||
# &4 Dark Red
|
||||
# &5 Dark Purple
|
||||
# &6 Gold
|
||||
# &7 Gray
|
||||
# &8 Dark Gray
|
||||
# &9 Blue
|
||||
# &a Green
|
||||
# &b Aqua
|
||||
# &c Red
|
||||
# &d Light Purple
|
||||
# &e Yellow
|
||||
# &f White
|
||||
# &k Obfuscated
|
||||
# &l Bold
|
||||
# &m Strikethrough
|
||||
# &n Underline
|
||||
# &o Italic
|
||||
# &r Reset
|
||||
#
|
||||
# Also note that some debug messages may not be listed here for translation.
|
||||
#
|
||||
translatedata.lastchange=1.0.0
|
||||
translatedata.translationsoutdated=Certaines des traductions du fichier de traduction actuel \u00A7e%1$s\u00A7c sont dépassées.
|
||||
translatedata.replacecommand= Utilisez \u00A7e/portal transupdate\u00A7c pour copier un nouveau fichier par défaut de traduction \u00A7een_GB\u00A7c.
|
||||
translatedata.replaced= Un nouveau fichier \u00A7een_GB\u00A7a a bien été enregistré.
|
||||
# Some debug messages may not be listed here for translation.
|
||||
|
||||
messageprefix.positive=\u00A7c[\u00A77AdvancedPortals\u00A7c]
|
||||
messageprefix.negative=\u00A7c[\u00A77AdvancedPortals\u00A7c]
|
||||
translatedata.translationsoutdated=Certaines des traductions du fichier de traduction actuel &e%1$s&c sont dépassées.
|
||||
translatedata.replacecommand= Utilisez &e/portal transupdate&c pour copier un nouveau fichier par défaut de traduction &een_GB&c.
|
||||
translatedata.replaced= Un nouveau fichier &een_GB&a a bien été enregistré.
|
||||
|
||||
messageprefix.positive=&c[&7AdvancedPortals&c]
|
||||
messageprefix.negative=&c[&7AdvancedPortals&c]
|
||||
|
||||
logger.pluginenable=Advanced portals a bien été activé !
|
||||
logger.plugindisable=Advanced portals a bien été désactivé !
|
||||
logger.plugincrafterror=Cette version craftbukkit n'est pas supportée, veuillez poster ce message avec le numéro de version et la pile ci-dessus dans un numéro sur GitHub: v:%1$s
|
||||
|
||||
command.noargs= Vous devez spécifier une sous commande, utilisez \u00A7e/%1$s help \u00A7cpour avoir la liste des commandes possibles.
|
||||
command.noargs= Vous devez spécifier une sous commande, utilisez &e/%1$s help &cpour avoir la liste des commandes possibles.
|
||||
command.subcommand.invalid= Ce n'est pas une sous commande.
|
||||
|
||||
command.help.header=\u00A7e--------------- \u00A7a%1$s Aide - Page %2$s sur %3$s\u00A7e ---------------
|
||||
command.help.subcommandheader=\u00A7e--------- \u00A7a%1$s Aide - %2$s\u00A7e ---------
|
||||
command.help.invalidhelp= Désolé mais \u00A7e%1$s\u00A7c n'est pas une page ou sous commande valide.
|
||||
command.help.header=&e--------------- &a%1$s Aide - Page %2$s sur %3$s&e ---------------
|
||||
command.help.subcommandheader=&e--------- &a%1$s Aide - %2$s&e ---------
|
||||
command.help.invalidhelp= Désolé mais &e%1$s&c n'est pas une page ou sous commande valide.
|
||||
|
||||
command.reload.help=Recharge les fichiers
|
||||
command.reload.detailedhelp=Recharge toutes les données du portail à partir des fichiers du dossier de données.
|
||||
@ -46,7 +66,7 @@ command.createdesti.console= Vous ne pouvez pas créer une destination en utilis
|
||||
command.createdesti.detailedhelp=Le format est /desti create (name) [tag:tagvalue]
|
||||
command.createdesti.complete= La destination a bien été créée.
|
||||
|
||||
command.create.tags=\u00A7aTags:
|
||||
command.create.tags=&aTags:
|
||||
|
||||
command.playeronly= Seul un joueur peut effectuer cette commande.
|
||||
|
||||
@ -61,17 +81,17 @@ command.selector= Vous avez bien reçu un sélecteur.
|
||||
command.selector.help= Vous donne le sélecteur.
|
||||
command.selector.detailedhelp= Vous donne l'outil de sélection pour créer un portail.
|
||||
|
||||
command.portalblock= Vous avez bien reçu un \u00A7ePortal Block\u00A7a!
|
||||
command.portalblock= Vous avez bien reçu un &ePortal Block&a!
|
||||
|
||||
command.endportalblock= Vous avez bien reçu un \u00A78End Portal Block Placer\u00A7a!
|
||||
command.endportalblock= Vous avez bien reçu un &8End Portal Block Placer&a!
|
||||
|
||||
command.gatewayblock= Vous avez bien reçu un \u00A78Gateway Block Placer\u00A7a!
|
||||
command.gatewayblock= Vous avez bien reçu un &8Gateway Block Placer&a!
|
||||
|
||||
portal.error.invalidselection=Vous devez avoir sélectionné deux positions pour créer un portail.
|
||||
portal.error.takenname=Un portail du même nom existe déjà.
|
||||
portal.error.selection.differentworlds=Les deux sélections doivent être dans le même monde.
|
||||
|
||||
desti.info.noargs=\u00A7cAucune variable n'a été précisée.
|
||||
desti.info.noargs=&cAucune variable n'a été précisée.
|
||||
|
||||
command.error.noname= Aucun nom n'a été précisé.
|
||||
|
||||
@ -79,7 +99,7 @@ desti.error.takenname=Une destination du même nom existe déjà.
|
||||
|
||||
error.notplayer=Seuls les joueurs peuvent faire cela.
|
||||
|
||||
portal.selector.poschange=\u00A7eVous avez sélectionné pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
portal.selector.poschange=&eVous avez sélectionné pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
|
||||
command.trans.help=Copy translation new default translation file
|
||||
|
||||
|
@ -6,29 +6,49 @@
|
||||
# A mellékelt karakterek formátuma %(argumentum száma)$s (kezdődik 1 nem 0)
|
||||
# Tehát a változók sorrendje a stringbe nem egy sorrend. Csakúgy, mint a minecraft
|
||||
#
|
||||
# A színek használata \u00A7 vagy § (az alt megtartásával írható be, majd a számbillentyű lenyomásával 2 majd 1)
|
||||
# http://minecraft.gamepedia.com/Formatting_codes
|
||||
# For colors use & or §
|
||||
# &0 Black
|
||||
# &1 Dark Blue
|
||||
# &2 Dark Green
|
||||
# &3 Dark Aqua
|
||||
# &4 Dark Red
|
||||
# &5 Dark Purple
|
||||
# &6 Gold
|
||||
# &7 Gray
|
||||
# &8 Dark Gray
|
||||
# &9 Blue
|
||||
# &a Green
|
||||
# &b Aqua
|
||||
# &c Red
|
||||
# &d Light Purple
|
||||
# &e Yellow
|
||||
# &f White
|
||||
# &k Obfuscated
|
||||
# &l Bold
|
||||
# &m Strikethrough
|
||||
# &n Underline
|
||||
# &o Italic
|
||||
# &r Reset
|
||||
#
|
||||
# Vegye figyelembe, hogy néhány hibaelhárító üzenet itt nem szerepel a fordításban.
|
||||
#
|
||||
translatedata.lastchange=1.0.0
|
||||
translatedata.translationsoutdated= Néhány fordítás a jelenlegi fordítási fájlból \u00A7e%1$s\u00A7c elavultak.
|
||||
translatedata.replacecommand= Használat \u00A7e/portal transupdate\u00A7c hogy új alapértelmezést másoljon ki az \u00A7een_GB\u00A7c fájlból.
|
||||
translatedata.replaced= Az új \u00A7een_GB\u00A7a fájlt másolva az adatmappába.
|
||||
translatedata.translationsoutdated= Néhány fordítás a jelenlegi fordítási fájlból &e%1$s&c elavultak.
|
||||
translatedata.replacecommand= Használat &e/portal transupdate&c hogy új alapértelmezést másoljon ki az &een_GB&c fájlból.
|
||||
translatedata.replaced= Az új &een_GB&a fájlt másolva az adatmappába.
|
||||
|
||||
messageprefix.positive=\u00A7a[\u00A7eAdvancedPortals\u00A7a]
|
||||
messageprefix.negative=\u00A7c[\u00A77AdvancedPortals\u00A7c]
|
||||
messageprefix.positive=&a[&eAdvancedPortals&a]
|
||||
messageprefix.negative=&c[&7AdvancedPortals&c]
|
||||
|
||||
logger.pluginenable=Advanced portals sikeresen engedélyezve!
|
||||
logger.plugindisable=Advanced portals letiltva!
|
||||
logger.plugincrafterror=A craftbukkit ezen verziója még nem támogatott, vagy valami hibás, kérlek, írd be ezt az üzenetet a verziószámmal és a fenti stacktrace-szal a GitHub kiadásában v:%1$s
|
||||
|
||||
command.noargs= Sajnálom, de meg kell adni egy al parancsot, kérlek, használd \u00A7e/%1$s help \u00A7cha a lehetséges al parancsok listáját szeretnéd látni.
|
||||
command.noargs= Sajnálom, de meg kell adni egy al parancsot, kérlek, használd &e/%1$s help &cha a lehetséges al parancsok listáját szeretnéd látni.
|
||||
command.subcommand.invalid= Sajnáljuk, de ez nem érvényes al parancs.
|
||||
|
||||
command.help.header=\u00A7e--------------- \u00A7a%1$s Segítség - Oldal %2$s %3$s\u00A7e-ból/-ből ---------------
|
||||
command.help.subcommandheader=\u00A7e--------- \u00A7a%1$s Segítség - %2$s\u00A7e ---------
|
||||
command.help.invalidhelp= Sajnálom, de \u00A7e%1$s\u00A7c nem érvényes oldalszám vagy al parancs.
|
||||
command.help.header=&e--------------- &a%1$s Segítség - Oldal %2$s %3$s&e-ból/-ből ---------------
|
||||
command.help.subcommandheader=&e--------- &a%1$s Segítség - %2$s&e ---------
|
||||
command.help.invalidhelp= Sajnálom, de &e%1$s&c nem érvényes oldalszám vagy al parancs.
|
||||
|
||||
command.reload.help=Portál adat újratöltése
|
||||
command.reload.detailedhelp=Újratölt minden portáladatot az adatmappában található fájlokból
|
||||
@ -46,7 +66,7 @@ command.createdesti.console= Nem hozhatsz létre célállomást a konzol segíts
|
||||
command.createdesti.detailedhelp=A formátum /desti create (név) [tag:tagvalue] Megadja a címkéket a létrehozás után a formátum tag:calue, ha az értéknek szóközre van szüksége, használja a formátum tag:"érték a szóközökkel"
|
||||
command.createdesti.complete= A célállomás sikeresen létrehozva.
|
||||
|
||||
command.create.tags=\u00A7aCímkék:
|
||||
command.create.tags=&aCímkék:
|
||||
|
||||
command.playeronly= Sajnáljuk, de ezt a parancsot csak egy játékos futtathatja.
|
||||
|
||||
@ -61,17 +81,17 @@ command.selector= Kaptál egy portálválasztót.
|
||||
command.selector.help=Ad egy portál régió kiválasztót
|
||||
command.selector.detailedhelp=Portál választót ad a portálok létrehozásának régiói számára.
|
||||
|
||||
command.portalblock= Kaptál egy \u00A7ePortál blokk\u00A7aot!
|
||||
command.portalblock= Kaptál egy &ePortál blokk&aot!
|
||||
|
||||
command.endportalblock= Kaptál egy \u00A78Végzet portál blokk helyező\u00A7at!
|
||||
command.endportalblock= Kaptál egy &8Végzet portál blokk helyező&at!
|
||||
|
||||
command.gatewayblock= Kaptál egy \u00A78Kapubejáró blokk helyező\u00A7at!
|
||||
command.gatewayblock= Kaptál egy &8Kapubejáró blokk helyező&at!
|
||||
|
||||
portal.error.invalidselection=A portál létrehozásához mind a pos1, mind a pos2 szükséges.
|
||||
portal.error.takenname=A portálra megadott név már megtörtént.
|
||||
portal.error.selection.differentworlds=Mindkét kiválasztott pontnak ugyanabban a világban kell lennie.
|
||||
|
||||
desti.info.noargs=\u00A7cNincsenek címkék megadva
|
||||
desti.info.noargs=&cNincsenek címkék megadva
|
||||
|
||||
command.error.noname= Nincs név megadva.
|
||||
|
||||
@ -79,10 +99,10 @@ desti.error.takenname=A portálra megadott név már megtörtént.
|
||||
|
||||
error.notplayer=Csak a játékosok tehetik ezt.
|
||||
|
||||
portal.selector.poschange=\u00A7eKiválasztottad a pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
portal.selector.poschange=&eKiválasztottad a pos%1$s X:%2$s Y:%3$s Z:%4$s
|
||||
|
||||
command.trans.help=Fordítás másolása fordítás új alapértelmezett fordítási fájl
|
||||
|
||||
command.version.help=Visszaadja a plugin jelenlegi verzióját
|
||||
|
||||
command.subcommand.nopermission= Sajnálom, de erre nincs jogod, kérlek, használd \u00A7e/%1$s help \u00A7cha a lehetséges al parancsok listáját szeretnéd látni.
|
||||
command.subcommand.nopermission= Sajnálom, de erre nincs jogod, kérlek, használd &e/%1$s help &cha a lehetséges al parancsok listáját szeretnéd látni.
|
||||
|
Loading…
Reference in New Issue
Block a user