Various translation bugfixes

git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1499 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
snowleo 2011-05-16 08:40:28 +00:00
parent a4fc756f1e
commit 62fe52ee13
6 changed files with 357 additions and 24 deletions

View File

@ -200,6 +200,8 @@ public class Essentials extends JavaPlugin
{
iConf.reloadConfig();
}
Util.updateLocale(settings.getLocale(), this.getDataFolder());
for (User user : users.values())
{

View File

@ -3,7 +3,6 @@ package com.earth2me.essentials;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
@ -15,8 +14,11 @@ import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
@ -29,6 +31,8 @@ import org.bukkit.block.Block;
public class Util
{
private final static Logger logger = Logger.getLogger("Minecraft");
public static String sanitizeFileName(String name)
{
return name.toLowerCase().replaceAll("[^a-z0-9]", "_");
@ -110,13 +114,13 @@ public class Util
public static long parseDateDiff(String time, boolean future) throws Exception
{
Pattern timePattern = Pattern.compile(
"(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE);
"(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?"
+ "(?:([0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE);
Matcher m = timePattern.matcher(time);
int years = 0;
int months = 0;
@ -279,9 +283,10 @@ public class Util
public static String formatCurrency(double value)
{
String str = Essentials.getStatic().getSettings().getCurrencySymbol()+df.format(value);
if (str.endsWith(".00")) {
str = str.substring(0, str.length()-3);
String str = Essentials.getStatic().getSettings().getCurrencySymbol() + df.format(value);
if (str.endsWith(".00"))
{
str = str.substring(0, str.length() - 3);
}
return str;
}
@ -338,8 +343,9 @@ public class Util
BufferedReader br = new BufferedReader(new FileReader(file));
String version = br.readLine();
br.close();
if (version == null || !version.equals("#version: "+Essentials.getStatic().getDescription().getVersion())) {
Logger.getLogger("Minecraft").log(Level.WARNING, "Translation file "+file+" is not updated for Essentials version. Will use default.");
if (version == null || !version.equals("#version: " + Essentials.getStatic().getDescription().getVersion()))
{
logger.log(Level.WARNING, String.format("Translation file %s is not updated for Essentials version. Will use default.", file));
return cl.getResourceAsStream(string);
}
return new FileInputStream(file);
@ -385,10 +391,18 @@ public class Util
private static final Locale defaultLocale = Locale.getDefault();
public static Locale currentLocale = defaultLocale;
private static ResourceBundle bundle = ResourceBundle.getBundle("messages", defaultLocale);
private static ResourceBundle defaultBundle = ResourceBundle.getBundle("messages", Locale.US);
public static String i18n(String string)
{
return bundle.getString(string);
try {
return bundle.getString(string);
}
catch (MissingResourceException ex)
{
logger.log(Level.WARNING, String.format("Missing translation key \"%s\" in translation file %s", ex.getKey(), bundle.getLocale().toString()));
return defaultBundle.getString(string);
}
}
public static String format(String string, Object... objects)
@ -403,7 +417,7 @@ public class Util
{
return;
}
String[] parts = loc.split("_");
String[] parts = loc.split("[_\\.]");
if (parts.length == 1)
{
currentLocale = new Locale(parts[0]);
@ -412,6 +426,14 @@ public class Util
{
currentLocale = new Locale(parts[0], parts[1]);
}
if (parts.length == 3)
{
currentLocale = new Locale(parts[0], parts[1], parts[2]);
}
logger.log(Level.INFO, String.format("Using locale %s", currentLocale.toString()));
bundle = ResourceBundle.getBundle("messages", currentLocale, new ConfigClassLoader(dataFolder, Util.class.getClassLoader()));
if (!bundle.keySet().containsAll(defaultBundle.keySet())) {
logger.log(Level.WARNING, String.format("Translation file %s does not contain all translation keys.", currentLocale.toString()));
}
}
}

View File

@ -5,7 +5,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.Server;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
import java.util.GregorianCalendar;
@ -40,7 +39,7 @@ public class Commandkit extends EssentialsCommand
}
if (list.length() > 0)
{
user.sendMessage("§7Kits:" + list.toString());
user.sendMessage(Util.format("kits", list.toString()));
}
else
{

View File

@ -1,4 +1,5 @@
#version: TeamCity
# Single quotes have to be doubled: ''
# Translations start here
loadinfo = Loaded {0} build {1} by {2}
markedAsNotAway = \u00a77You are no longer marked as away.
@ -96,7 +97,7 @@ cooldownWithMessage = \u00a7cCooldown: {0}
warpingTo = \u00a77Warping to {0}.
timeBeforeTeleport = Time before next teleport: {0}
pendingTeleportCancelled = \u00a7cPending teleportation request cancelled.
dontMoveMessage = \u00a77Teleportation will commence in {0}. Don't move.
dontMoveMessage = \u00a77Teleportation will commence in {0}. Don''t move.
noHomeSet = You have not set a home.
noHomeSetPlayer = Player has not set a home.
timeBeforeHeal = Time before next heal: {0}
@ -132,7 +133,7 @@ questionFormat = \u00a77[Question]\u00a7f {0}
notAllowedToQuestion = \u00a7cYou are not authorized to use question.
localFormat = Local: <{0}> {1}
geoipJoinFormat = Player {0} comes from {1}
cantFindGeoIpDB = Can't find GeoIP database!
cantFindGeoIpDB = Can''t find GeoIP database!
cantReadGeoIpDB = Failed to read GeoIP database!
geoIpUrlEmpty = GeoIP download url is empty.
downloadingGeoIp = Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
@ -172,7 +173,7 @@ invSee = You see the inventory of {0}.
invSeeHelp = Use /invsee to restore your inventory.
cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0}
itemSpawn = \u00a77Giving {0} of {1}
jumpError = That would hurt your computer's brain.
jumpError = That would hurt your computer''s brain.
kickDefault = Kicked from server
kill = \u00a77Killed {0}.
noKits = \u00a77There are no kits available yet
@ -180,7 +181,7 @@ kitError = \u00a7cThere are no valid kits.
kitError2 = \u00a7cThat kit does not exist or is improperly defined.
kitErrorHelp = \u00a7cPerhaps an item is missing a quantity in the configuration?
noKitPermission = \u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
kitTimed = \u00a7cYou can't use that kit again for another {0}
kitTimed = \u00a7cYou can''t use that kit again for another {0}.
kitInvFull = \u00a7cYour inventory was full, placing kit on the floor
kitGive = \u00a77Giving kit {0}.
lightningUse = \u00a77Smiting {0}
@ -205,7 +206,7 @@ nickInUse = \u00a7cThat name is already in use.
nickSet = \u00a77Your nickname is now \u00a7c{0}
nickChanged = Nickname changed.
pong = Pong!
powerToolAir = Command can't be attached to air.
powerToolAir = Command can''t be attached to air.
powerToolAttach = Command assigned to {0}
powerToolRemove = Command removed from {0}
foreverAlone = \u00a7cYou have nobody to whom you can reply.
@ -301,4 +302,5 @@ unignorePlayer = You are not ignoring player {0} anymore.
ignorePlayer = You ignore player {0} from now on.
illegalDate = Illegal date format.
timePattern = (?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
msgFormat = [{0} -> {1}\u00a7f] {2}
msgFormat = [{0} -> {1}\u00a7f] {2}
kits = \u00a77Kits: {0}

View File

@ -1,4 +1,5 @@
#version: TeamCity
# Single quotes have to be doubled: ''
# Translations start here
loadinfo = Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo
markedAsNotAway = \u00a77Du wirst nicht mehr als abwesend angezeigt.
@ -301,4 +302,5 @@ unignorePlayer = Du ignorierst Spieler {0} nicht mehr.
ignorePlayer = Du ignorierst ab jetzt Spieler {0}.
illegalDate = Ung\u00fcltiges Datumsformat.
timePattern = (?:([0-9]+)\\s*[yj][a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[dt][a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:h|st)[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
msgFormat = [{0} -> {1}\u00a7f] {2}
msgFormat = [{0} -> {1}\u00a7f] {2}
kits = \u00a77Ausr\u00fcstungen: {0}

View File

@ -0,0 +1,306 @@
#version: TeamCity
# Single quotes have to be doubled: ''
# Translations start here
loadinfo = Loaded {0} build {1} by {2}
markedAsNotAway = \u00a77You are no longer marked as away.
markedAsAway = \u00a77You are now marked as away.
userIsNotAway = {0} is no longer AFK
userIsAway = {0} is now AFK
backupStarted = Backup started
backupFinished = Backup finished
invalidServer = Invalid server!
usingTempFolderForTesting = Using temp folder for testing:
versionMismatch = Version mismatch! Please update {0} to the same version.
notRecommendedBukkit = Bukkit version is not the recommended build for Essentials.
bukkitFormatChanged = Bukkit version format changed. Version not checked.
itemsCsvNotLoaded = Could not load items.csv.
corruptNodeInConfig = \u00a74Notice: Your configuration file has a corrupt {0} node.
youHaveNewMail = \u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
commandNotLoaded = \u00a7cCommand {0} is improperly loaded.
deniedAccessCommand = {0} was denied access to command.
noAccessCommand = \u00a7cYou do not have access to that command.
errorCallingCommand = Error calling command /{0}
commandFailed = Command {0} failed:
bannedPlayersFileNotFound = banned-players.txt not found
bannedPlayersFileError = Error reading banned-players.txt
bannedIpsFileNotFound = banned-ips.txt not found
bannedIpsFileError = Error reading banned-ips.txt
noDestroyPermission = \u00a7cYou do not have permission to destroy that {0}.
noAccessPermission = \u00a7cYou do not have permission to access that {0}.
moreThanZero = Quantities must be greater than 0.
errorWithMessage = \u00a7cError: {0}
creatingConfigFromTemplate = Creating config from template: {0}
creatingEmptyConfig = Creating empty config: {0}
failedToCreateConfig = Failed to create config {0}
couldNotFindTemplate = Could not find template {0}
failedToWriteConfig = Failed to write config {0}
failedToCloseConfig = Failed to close config {0}
notEnoughMoney = You do not have sufficient funds.
missingItems = You do not have {0}x {1}.
tradeSignEmpty = The trade sign does not have enough supply left.
tradeCompleted = \u00a77Trade completed.
backAfterDeath = \u00a77Use the /back command to return to your death point.
mutedUserSpeaks = {0} tried to speak, but is muted.
userCreatedPortal = {0} used a portal and generated an exit portal.
generatingPortal = \u00a77Generating an exit portal.
userUsedPortal = {0} used an existing exit portal.
usingPortal = \u00a77Teleporting via portal to an existing portal.
teleportingPortal = \u00a77Teleporting via portal.
freedMemory = Freed {0} MB.
defaultBanReason = The Ban Hammer has spoken!
noNewMail = \u00a77You have no new mail.
serverFull = Server is full
returnPlayerToJailError = Error occured when trying to return player to jail.
jailMessage = \u00a7cYou do the crime, you do the time.
homeSetToBed = \u00a77Your home is now set to this bed.
moneyTaken = {0} taken from your bank account.
youAreHealed = \u00a77You have been healed.
markMailAsRead = \u00a7cTo mark your mail as read, type /mail clear
balance = \u00a77Balance: {0}
backUsageMsg = \u00a77Returning to previous location.
playerBanned = \u00a7cPlayer {0} banned
banIpAddress = \u00a77Banned IP address
bigTreeSuccess = \u00a77Big tree spawned.
bigTreeFailure = \u00a7cBig tree generation failure. Try again on grass or dirt.
broadcast = [\u00a7cBroadcast\u00a7f]\u00a7a {0}
burnMsg = \u00a77You set {0} on fire for {1} seconds.
playerNotFound = \u00a7cPlayer not found.
inventoryCleared = \u00a77Inventory Cleared.
inventoryClearedOthers = \u00a77Inventory of \u00a7c{0}\u00a77 cleared.
compassBearing = \u00a77Bearing: {0} ({1} degrees).
deleteJail = \u00a77Jail {0} has been removed.
deleteWarp = \u00a77Warp {0} has been removed.
depth = \u00a77You are at sea level.
depthAboveSea = \u00a77You are {0} block(s) above sea level.
depthBelowSea = \u00a77You are {0} block(s) below sea level.
extinguish = \u00a77You extinguished yourself.
extinguishOthers = \u00a77You extinguished {0}.
canTalkAgain = \u00a77You can talk again
haveBeenReleased = \u00a77You have been released
upgradingFilesError = Error while upgrading the files
configFileMoveError = Failed to move config.yml to backup location.
configFileRenameError = Failed to rename temp file to config.yml
fileRenameError = Renaming file {0} failed
userdataMoveError = Failed to move userdata/{0} to userdata/{1}.tmp
duplicatedUserdata = Duplicated userdata: {0} and {1}
userdataMoveBackError = Failed to move userdata/{0}.tmp to userdata/{1}
parseError = Error parsing {0} on line {1}
unknownItemName = Unknown item name: {0}
unknownItemId = Unknown item id: {0}
jailNotExist = That jail does not exist.
unableToSpawnMob = Unable to spawn mob.
creatingPortal = Creating portal at {0},{1},{2}.
notSupportedYet = Not supported yet.
unknownItemInList = Unknown item {0} in {1} list.
teleportationCommencing = \u00a77Teleportation commencing...
cooldownWithMessage = \u00a7cCooldown: {0}
warpingTo = \u00a77Warping to {0}.
timeBeforeTeleport = Time before next teleport: {0}
pendingTeleportCancelled = \u00a7cPending teleportation request cancelled.
dontMoveMessage = \u00a77Teleportation will commence in {0}. Don''t move.
noHomeSet = You have not set a home.
noHomeSetPlayer = Player has not set a home.
timeBeforeHeal = Time before next heal: {0}
addedToAccount = \u00a7a{0} has been added to your account.
moneySentTo = \u00a7a{0} has been sent to {1}
moneyRecievedFrom = \u00a7a{0} has been recieved from {1}
takenFromAccount = \u00a7c{0} has been taken from your account.
emptyWorldName = Set Home: World name is null or empty.
now = now
year = year
years = years
month = month
months = months
day = day
days = days
hour = hour
hours = hours
minute = minute
minutes = minutes
second = second
seconds = seconds
destinationNotSet = Destination not set
holeInFloor = Hole in floor
warpNotExist = That warp does not exist.
similarWarpExist = A warp with a similar name already exists.
warpDeleteError = Problem deleting the warp file.
versionMismatchAll = Version mismatch! Please update all Essentials jars to the same version.
missingPrefixSuffix = Missing a prefix or suffix for {0}
permissionsError = Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
shoutFormat = \u00a77[Shout]\u00a7f {0}
notAllowedToShout = \u00a7cYou are not authorized to shout.
questionFormat = \u00a77[Question]\u00a7f {0}
notAllowedToQuestion = \u00a7cYou are not authorized to use question.
localFormat = Local: <{0}> {1}
geoipJoinFormat = Player {0} comes from {1}
cantFindGeoIpDB = Can''t find GeoIP database!
cantReadGeoIpDB = Failed to read GeoIP database!
geoIpUrlEmpty = GeoIP download url is empty.
downloadingGeoIp = Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
geoIpUrlInvalid = GeoIP download url is invalid.
connectionFailed = Failed to open connection.
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
alertPlaced = placed:
alertBroke = broke:
alertUsed = used:
buildAlert = \u00a7cYou are not permitted to build
protectionOwner = \u00a76[EssentialsProtect] Protection owner: {0}
spawnSet = \u00a77Spawn location set for group {0}.
teleportNewPlayerError = Failed to teleport new player
essentialsReload = \u00a77Essentials Reloaded {0}
gcmax = Maximum memory: {0} MB
gcmin = Minimum memory: {0} MB
gcchunks = chunks,
gcentities = entities
godMode = \u00a77God mode {0}.
enabled = enabled
disabled = disabled
godEnabledFor = enabled for {0}
godDisabledFor = disabled for {0}
heal = \u00a77You have been healed.
healOther = \u00a77Healed {0}.
helpPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
helpConsole = To view help from the console, type ?.
helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
infoFileDoesNotExist = File info.txt does not exist. Creating one for you.
infoPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
infoChapter = Select chapter:
infoUnknownChapter = Unknown chapter.
infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
invBigger = The other users inventory is bigger than yours.
invRestored = Your inventory has been restored.
invSee = You see the inventory of {0}.
invSeeHelp = Use /invsee to restore your inventory.
cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0}
itemSpawn = \u00a77Giving {0} of {1}
jumpError = That would hurt your computer''s brain.
kickDefault = Kicked from server
kill = \u00a77Killed {0}.
noKits = \u00a77There are no kits available yet
kitError = \u00a7cThere are no valid kits.
kitError2 = \u00a7cThat kit does not exist or is improperly defined.
kitErrorHelp = \u00a7cPerhaps an item is missing a quantity in the configuration?
noKitPermission = \u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
kitTimed = \u00a7cYou can''t use that kit again for another {0}.
kitInvFull = \u00a7cYour inventory was full, placing kit on the floor
kitGive = \u00a77Giving kit {0}.
lightningUse = \u00a77Smiting {0}
lightningSmited = \u00a77You have just been smited
connectedPlayers = Connected players:
noMail = You do not have any mail
mailClear = \u00a7cTo mark your mail as read, type /mail clear
noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c permission.
playerNeverOnServer = \u00a7cPlayer {0} was never on this server.
mailSent = \u00a77Mail sent!
mailCleared = \u00a77Mail Cleared!
voiceSilenced = \u00a77Your voice has been silenced
noMotd = \u00a7cThere is no message of the day."
me = me
mutedPlayerFor = Player {0} muted for {1}.
mutedPlayer = Player {0} muted.
unmutedPlayer = Player {0} unmuted.
nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others
nickNoMore = \u00a7You no longer have a nickname.
nickNamesAlpha = \u00a7cNicknames must be alphanumeric.
nickInUse = \u00a7cThat name is already in use.
nickSet = \u00a77Your nickname is now \u00a7c{0}
nickChanged = Nickname changed.
pong = Pong!
powerToolAir = Command can''t be attached to air.
powerToolAttach = Command assigned to {0}
powerToolRemove = Command removed from {0}
foreverAlone = \u00a7cYou have nobody to whom you can reply.
is = is
reloadAllPlugins = \u00a77Reloaded all plugins.
noRules = \u00a7cThere are no rules specified yet.
seenOnline = Player {0} is online since {1}
seenOffline = Player {0} is offline since {1}
itemCannotBeSold = That item cannot be sold to the server.
itemMustBeStacked = Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
itemNotEnough1 = \u00a7cYou do not have enough of that item to sell.
itemNotEnough2 = \u00a77If you meant to sell all of your items of that type, use /sell itemname
itemNotEnough3 = \u00a77/sell itemname -1 will sell all but one item, etc.
itemSold = \u00a77Sold for \u00a7c {0} \u00a77 ({1} items at {2} each)
itemSoldConsole = {0} sold {1} for \u00a77 {2} \u00a77 ({3} items at {4} each)
itemSellAir = You really tried to sell Air? Put an item in your hand.
homeSet = \u00a77Home set.
jailSet = \u00a77Jail {0} has been set
warpSet = \u00a77Warp {0} set.
worthSet = Worth value set
mobSpawnTarget = Target block must be a mob spawner.
mobSpawnError = Error while changing mob spawner.
invalidMob = Invalid mob type.
unableToSpawnMob = Unable to spawn mob.
mobSpawnLimit = Mob quantity limited to server limit
soloMob = That mob likes to be alone
numberRequired = A number goes there, silly.
spawned = spawned
slimeMalformedSize = Malformed size.
sheepMalformedColor = Malformed color.
suicideMessage = \u00a77Goodbye Cruel World...
suicideSuccess = \u00a77{0} took their own life
tempBanned = Temporarily banned from server for {0}
thunderDuration = You {0} thunder in your world for {1} seconds.
thunder = You {0} thunder in your world
deleteFileError = Could not delete file: {0}
userDoesNotExist = The user {0} does not exist.
negativeBalanceError = User is not allowed to have a negative balance.
timeSet = Time set in all worlds.
onlyDayNight = /time only supports day/night.
mayNotJail = \u00a7cYou may not jail that person
userJailed = \u00a77You have been jailed
playerJailed = \u00a77Player {0} jailed.
playerJailedFor = \u00a77Player {0} jailed for {1}.
playerInJail = \u00a7cPlayer is already in jail {0}.
teleportTop = \u00a77Teleporting to top.
teleporting = \u00a77Teleporting...
teleportDisabled = {0} has teleportation disabled.
needTpohere = You need access to /tpohere to teleport other players.
teleportAtoB = \u00a77{0}\u00a77 teleported you to {1}\u00a77.
teleportRequest = \u00a7c{0}\u00a7c has requested to teleport to you.
typeTpaccept = \u00a77To teleport, type \u00a7c/tpaccept\u00a77.
typeTpdeny = \u00a77To deny this request, type \u00a7c/tpdeny\u00a77.
requestSent = \u00a77Request sent to {0}\u00a77.
teleportHereRequest = \u00a7c{0}\u00a7c has requested that you teleport to him/her.
teleportAll = \u00a77Teleporting all players...
noPendingRequest = You do not have a pending request.
requestDenied = \u00a77Teleport request denied.
requestAccepted = \u00a77Teleport request accepted.
teleportationEnabled = \u00a77Teleportation enabled.
teleportationDisabled = \u00a77Teleportation disabled.
treeSpawned = \u00a77Tree spawned.
treeFailure = \u00a7cTree generation failure. Try again on grass or dirt.
unbannedPlayer = Unbanned player.
unbannedIP = Unbanned IP address.
unlimitedItems = Unlimited items:
none = none
unlimitedItemPermission = \u00a7cNo permission for unlimited item {0}.
disableUnlimited = \u00a77Disable unlimited placing of {0} for {1}.
enableUnlimited = \u00a77Giving unlimited amount of {0} to {1}.
warpListPermission = \u00a7cYou do not have Permission to list that warps.
noWarpsDefined = No warps defined
warpUsePermission = \u00a7cYou do not have Permission to use that warp.
weatherSunFor = \u00a77You set the weather to sun in your world for {0} seconds
weatherSun = \u00a77You set the weather to sun in your world
weatherStormFor = \u00a77You set the weather to storm in your world for {0} seconds
weatherStorm = \u00a77You set the weather to storm in your world
whoisIs = {0} is {1}
whoisHealth = \u00a79 - Health: {0}/20
whoisLocation = \u00a79 - Location: ({0}, {1}, {2}, {3})
whoisMoney = \u00a79 - Money: {0}
whoisStatusAway = \u00a79 - Status: \u00a7cAway\u00a7f
whoisStatusAvailable = \u00a79 - Status: Available
whoisIPAddress = \u00a79 - IP Address: {0}
whoisGeoLocation = \u00a79 - Location: {0}
invalidWorld = \u00a7cInvalid world.
possibleWorlds = \u00a77Possible worlds are the numbers 0 through {0}.
typeWorldName = \u00a77You can also type the name of a specific world.
worth = \u00a77Stack of {0} worth \u00a7c{1}\u00a77 ({2} item(s) at {3} each)
worthMeta = \u00a77Stack of {0} with metadata of {1} worth \u00a7c{2}\u00a77 ({3} item(s) at {4} each)
onlyPlayers = Only in-game players can use {0}.
unignorePlayer = You are not ignoring player {0} anymore.
ignorePlayer = You ignore player {0} from now on.
illegalDate = Illegal date format.
timePattern = (?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
msgFormat = [{0} -> {1}\u00a7f] {2}
kits = \u00a77Kits: {0}