feat: add list command & update translation colors

This commit is contained in:
Sekwah 2023-04-12 11:14:57 +01:00
parent c14afa79ed
commit a9f2c532b8
No known key found for this signature in database
GPG Key ID: 9E0D654FC942286D
11 changed files with 320 additions and 128 deletions

View File

@ -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);
}

View File

@ -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) {

View File

@ -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"));*/
}
}

View File

@ -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");
}
}

View File

@ -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"));
}

View File

@ -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();
}
}

View File

@ -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();
}

View File

@ -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.

View File

@ -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.

View File

@ -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

View 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.