mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into enhancement/notify-display
This commit is contained in:
commit
9fa53c2c1a
@ -11,6 +11,7 @@ docker-compose.yml.example
|
||||
.gitlab/
|
||||
.gitignore
|
||||
.gitlab-ci.yml
|
||||
lang_sort_log.txt
|
||||
|
||||
# root
|
||||
.editorconfig
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -18,6 +18,7 @@ env.bak/
|
||||
venv.bak/
|
||||
|
||||
.idea/
|
||||
/import/
|
||||
/imports/
|
||||
/servers/
|
||||
/app/frontend/static/assets/images/auth/custom/
|
||||
@ -35,3 +36,4 @@ default.json
|
||||
app/config/
|
||||
docker/*
|
||||
!docker/docker-compose.yml
|
||||
lang_sort_log.txt
|
||||
|
77
.gitlab/scripts/lang_sort.sh
Normal file
77
.gitlab/scripts/lang_sort.sh
Normal file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get the script's own path
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Log file path
|
||||
LOGFILE="${SCRIPT_DIR}/lang_sort_log.txt"
|
||||
|
||||
# Redirect stdout and stderr to the logfile
|
||||
exec > "${LOGFILE}" 2>&1
|
||||
|
||||
# Check if jq is installed
|
||||
if ! command -v jq &> /dev/null
|
||||
then
|
||||
echo "jq could not be found, please install jq first."
|
||||
exit
|
||||
fi
|
||||
|
||||
# Check for directory argument
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 /path/to/translations"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Directory containing the JSON files to sort
|
||||
DIR="$1"
|
||||
|
||||
# Check if en_EN.json exists in the directory
|
||||
if [[ ! -f "${DIR}/en_EN.json" ]]; then
|
||||
echo "The file en_EN.json does not exist in ${DIR}.Ensure you have the right directory, Exiting."
|
||||
exit
|
||||
fi
|
||||
|
||||
# Ensure locale is set to C for predictable sorting
|
||||
export LC_ALL=C
|
||||
export LC_COLLATE=C
|
||||
|
||||
# Sort keys of the en_EN.json file with 4-space indentation and overwrite it
|
||||
jq -S --indent 4 '.' "${DIR}/en_EN.json" > "${DIR}/en_EN.json.tmp" && mv "${DIR}/en_EN.json.tmp" "${DIR}/en_EN.json"
|
||||
|
||||
# Function to recursively find all keys in a JSON object
|
||||
function get_keys {
|
||||
jq -r 'paths(scalars) | join("/")' "$1"
|
||||
}
|
||||
|
||||
# Get keys and subkeys from en_EN.json
|
||||
ref_keys=$(mktemp)
|
||||
get_keys "${DIR}/en_EN.json" | sort > "${ref_keys}"
|
||||
|
||||
# Iterate over each .json file in the directory
|
||||
for file in "${DIR}"/*.json; do
|
||||
# Check if file is a regular file and not en_EN.json
|
||||
if [[ -f "${file}" && "${file}" != "${DIR}/en_EN.json" ]]; then
|
||||
|
||||
# Get keys and subkeys from the current file
|
||||
current_keys=$(mktemp)
|
||||
get_keys "${file}" | sort > "${current_keys}"
|
||||
|
||||
# Display keys present in en_EN.json but not in the current file
|
||||
missing_keys=$(comm -23 "${ref_keys}" "${current_keys}")
|
||||
if [[ -n "${missing_keys}" ]]; then
|
||||
echo -e "\nKeys/subkeys present in en_EN.json but missing in $(basename "${file}"): "
|
||||
echo "${missing_keys}"
|
||||
fi
|
||||
|
||||
# Sort keys of the JSON file and overwrite the original file
|
||||
jq -S --indent 4 '.' "${file}" > "${file}.tmp" && mv "${file}.tmp" "${file}"
|
||||
|
||||
# Remove the temporary file
|
||||
rm -f "${current_keys}"
|
||||
fi
|
||||
done
|
||||
|
||||
# Remove the temporary file
|
||||
rm -f "${ref_keys}"
|
||||
|
||||
echo -e "\n\nComparison and sorting complete!"
|
@ -3,6 +3,7 @@
|
||||
### New features
|
||||
- Finish and Activate Arcadia notification backend ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/621) | [Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/626) | [Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/632))
|
||||
- Add initial Webhook Notification (Discord, Mattermost, Slack, Teams) ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/594))
|
||||
- Implementation of OpenMetrics endpoints, for use with services such as Prometheus ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/624))
|
||||
### Bug fixes
|
||||
- PWA: Removed the custom offline page in favour of browser default ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/607))
|
||||
- Fix hidden servers appearing visible on public mobile status page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/612))
|
||||
@ -15,6 +16,8 @@
|
||||
- Fix Backup Restore/Schedules, Backup button function on `remote-comms2` ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/634))
|
||||
- Add a wait to the call for the directory so we can make sure the wait dialogue has time to show up first ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/637))
|
||||
- Fix bug where a reaction loop could be created, but would be cut short by an error when the loop occurred ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/636))
|
||||
- Use controller on update user call ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/640))
|
||||
- Move `imports` to `import/upload` in bind mount to better serve users on unraid with limited vdisk storage ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/642))
|
||||
### Refactor
|
||||
- Consolidate remaining frontend functions into API V2, and remove ajax internal API ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/585))
|
||||
- Replace bleach with nh3 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/628))
|
||||
@ -29,6 +32,7 @@
|
||||
- Add additional logging for server bootstrap & moves unnecessary logging to `debug` for improved log clarity ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/635))
|
||||
- Bump orjson to 3.9.7 for python 3.12 support ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/638))
|
||||
- Bump all Crafty required python dependancies, maintaining minimum 3.9 support ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/639))
|
||||
- Better optimize and refactor docker launcher sh ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/642))
|
||||
### Lang
|
||||
TBD
|
||||
<br><br>
|
||||
|
@ -1,6 +1,8 @@
|
||||
import logging
|
||||
import queue
|
||||
|
||||
from prometheus_client import CollectorRegistry, Gauge
|
||||
|
||||
from app.classes.models.management import HelpersManagement, HelpersWebhooks
|
||||
from app.classes.models.servers import HelperServers
|
||||
|
||||
@ -11,6 +13,8 @@ class ManagementController:
|
||||
def __init__(self, management_helper):
|
||||
self.management_helper = management_helper
|
||||
self.command_queue = queue.Queue()
|
||||
self.host_registry = CollectorRegistry()
|
||||
self.init_host_registries()
|
||||
|
||||
# **********************************************************************************
|
||||
# Config Methods
|
||||
@ -54,6 +58,19 @@ class ManagementController:
|
||||
def add_crafty_row():
|
||||
HelpersManagement.create_crafty_row()
|
||||
|
||||
def init_host_registries(self):
|
||||
# REGISTRY Entries for Server Stats functions
|
||||
self.cpu_usage = Gauge(
|
||||
name="CPU_Usage",
|
||||
documentation="The CPU usage of the server",
|
||||
registry=self.host_registry,
|
||||
)
|
||||
self.mem_usage_percent = Gauge(
|
||||
name="Mem_Usage",
|
||||
documentation="The Memory usage of the server",
|
||||
registry=self.host_registry,
|
||||
)
|
||||
|
||||
# **********************************************************************************
|
||||
# Commands Methods
|
||||
# **********************************************************************************
|
||||
|
@ -8,6 +8,7 @@ from app.classes.shared.helpers import Helpers
|
||||
from app.classes.shared.main_models import DatabaseShortcuts
|
||||
from app.classes.shared.migration import MigrationManager
|
||||
|
||||
|
||||
try:
|
||||
from peewee import (
|
||||
SqliteDatabase,
|
||||
|
@ -21,6 +21,9 @@ from tzlocal import get_localzone
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from apscheduler.jobstores.base import JobLookupError, ConflictingIdError
|
||||
|
||||
# OpenMetrics/Prometheus Imports
|
||||
from prometheus_client import CollectorRegistry, Gauge, Info
|
||||
|
||||
from app.classes.minecraft.stats import Stats
|
||||
from app.classes.minecraft.mc_ping import ping, ping_bedrock
|
||||
from app.classes.models.servers import HelperServers, Servers
|
||||
@ -175,6 +178,8 @@ class ServerInstance:
|
||||
self.server_object = HelperServers.get_server_obj(self.server_id)
|
||||
self.stats_helper = HelperServerStats(self.server_id)
|
||||
self.last_backup_failed = False
|
||||
self.server_registry = CollectorRegistry()
|
||||
|
||||
try:
|
||||
with open(
|
||||
os.path.join(self.server_object.path, "db_stats", "players_cache.json"),
|
||||
@ -194,6 +199,7 @@ class ServerInstance:
|
||||
self.tz = ZoneInfo("Europe/London")
|
||||
self.server_scheduler = BackgroundScheduler(timezone=str(self.tz))
|
||||
self.dir_scheduler = BackgroundScheduler(timezone=str(self.tz))
|
||||
self.init_registries()
|
||||
self.server_scheduler.start()
|
||||
self.dir_scheduler.start()
|
||||
self.start_dir_calc_task()
|
||||
@ -1850,6 +1856,15 @@ class ServerInstance:
|
||||
server_stats = self.get_servers_stats()
|
||||
self.stats_helper.insert_server_stats(server_stats)
|
||||
|
||||
self.cpu_usage.labels(f"{self.server_id}").set(server_stats.get("cpu"))
|
||||
self.mem_usage_percent.labels(f"{self.server_id}").set(
|
||||
server_stats.get("mem_percent")
|
||||
)
|
||||
self.minecraft_version.labels(f"{self.server_id}").info(
|
||||
{"version": f"{server_stats.get('version')}"}
|
||||
)
|
||||
self.online_players.labels(f"{self.server_id}").set(server_stats.get("online"))
|
||||
|
||||
# delete old data
|
||||
max_age = self.helper.get_setting("history_max_age")
|
||||
now = datetime.datetime.now()
|
||||
@ -1857,6 +1872,34 @@ class ServerInstance:
|
||||
|
||||
self.stats_helper.remove_old_stats(minimum_to_exist)
|
||||
|
||||
def init_registries(self):
|
||||
# REGISTRY Entries for Server Stats functions
|
||||
self.cpu_usage = Gauge(
|
||||
name="CPU_Usage",
|
||||
documentation="The CPU usage of the server",
|
||||
labelnames=["server_id"],
|
||||
registry=self.server_registry,
|
||||
)
|
||||
self.mem_usage_percent = Gauge(
|
||||
name="Mem_Usage",
|
||||
documentation="The Memory usage of the server",
|
||||
labelnames=["server_id"],
|
||||
registry=self.server_registry,
|
||||
)
|
||||
self.minecraft_version = Info(
|
||||
name="Minecraft_Version",
|
||||
documentation="The version of the minecraft of this server",
|
||||
labelnames=["server_id"],
|
||||
registry=self.server_registry,
|
||||
)
|
||||
|
||||
self.online_players = Gauge(
|
||||
name="online_players",
|
||||
documentation="The number of players online for a server",
|
||||
labelnames=["server_id"],
|
||||
registry=self.server_registry,
|
||||
)
|
||||
|
||||
def get_server_history(self):
|
||||
history = self.stats_helper.get_history_stats(self.server_id, 1)
|
||||
return history
|
||||
|
@ -696,6 +696,12 @@ class TasksManager:
|
||||
# Stats are different
|
||||
|
||||
host_stats = HelpersManagement.get_latest_hosts_stats()
|
||||
|
||||
self.controller.management.cpu_usage.set(host_stats.get("cpu_usage"))
|
||||
self.controller.management.mem_usage_percent.set(
|
||||
host_stats.get("mem_percent")
|
||||
)
|
||||
|
||||
if len(WebSocketManager().clients) > 0:
|
||||
# There are clients
|
||||
try:
|
||||
@ -757,11 +763,13 @@ class TasksManager:
|
||||
)
|
||||
# Search for old files in imports
|
||||
self.helper.ensure_dir_exists(
|
||||
os.path.join(self.controller.project_root, "imports")
|
||||
os.path.join(self.controller.project_root, "import", "upload")
|
||||
)
|
||||
for file in os.listdir(os.path.join(self.controller.project_root, "imports")):
|
||||
for file in os.listdir(
|
||||
os.path.join(self.controller.project_root, "import", "upload")
|
||||
):
|
||||
if self.helper.is_file_older_than_x_days(
|
||||
os.path.join(self.controller.project_root, "imports", file)
|
||||
os.path.join(self.controller.project_root, "import", "upload", file)
|
||||
):
|
||||
try:
|
||||
os.remove(os.path.join(file))
|
||||
|
@ -11,7 +11,7 @@ from app.classes.shared.helpers import Helpers
|
||||
from app.classes.shared.file_helpers import FileHelpers
|
||||
from app.classes.shared.main_controller import Controller
|
||||
from app.classes.shared.translation import Translation
|
||||
from app.classes.models.management import DatabaseShortcuts
|
||||
from app.classes.shared.main_models import DatabaseShortcuts
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
53
app/classes/web/metrics_handler.py
Normal file
53
app/classes/web/metrics_handler.py
Normal file
@ -0,0 +1,53 @@
|
||||
import logging
|
||||
import typing as t
|
||||
|
||||
from prometheus_client import REGISTRY, CollectorRegistry
|
||||
from prometheus_client.exposition import _bake_output
|
||||
from prometheus_client.exposition import parse_qs, urlparse
|
||||
|
||||
from app.classes.web.base_api_handler import BaseApiHandler
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BaseMetricsHandler(BaseApiHandler):
|
||||
"""HTTP handler that gives metrics from ``REGISTRY``."""
|
||||
|
||||
registry: CollectorRegistry = REGISTRY
|
||||
# registry.unregister(GC_COLLECTOR)
|
||||
# registry.unregister(PLATFORM_COLLECTOR)
|
||||
# registry.unregister(PROCESS_COLLECTOR)
|
||||
|
||||
def get_registry(self) -> None:
|
||||
# Prepare parameters
|
||||
registry = self.registry
|
||||
accept_header = self.request.headers.get("Accept")
|
||||
accept_encoding_header = self.request.headers.get("Accept-Encoding")
|
||||
params = parse_qs(urlparse(self.request.path).query)
|
||||
# Bake output
|
||||
status, headers, output = _bake_output(
|
||||
registry, accept_header, accept_encoding_header, params, False
|
||||
)
|
||||
# Return output
|
||||
self.finish_metrics(int(status.split(" ", maxsplit=1)[0]), headers, output)
|
||||
|
||||
@classmethod
|
||||
def factory(cls, registry: CollectorRegistry) -> type:
|
||||
"""Returns a dynamic MetricsHandler class tied
|
||||
to the passed registry.
|
||||
"""
|
||||
# This implementation relies on MetricsHandler.registry
|
||||
# (defined above and defaulted to REGISTRY).
|
||||
|
||||
# As we have unicode_literals, we need to create a str()
|
||||
# object for type().
|
||||
cls_name = str(cls.__name__)
|
||||
MyMetricsHandler = type(cls_name, (cls, object), {"registry": registry})
|
||||
return MyMetricsHandler
|
||||
|
||||
def finish_metrics(self, status: int, headers, data: t.Dict[str, t.Any]):
|
||||
self.set_status(status)
|
||||
self.set_header("Content-Type", "text/plain")
|
||||
for header in headers:
|
||||
self.set_header(*header)
|
||||
self.finish(data)
|
@ -64,7 +64,9 @@ class ApiImportFilesIndexHandler(BaseApiHandler):
|
||||
# JSON we need to remove this and just send
|
||||
# the path.
|
||||
if data["upload"]:
|
||||
folder = os.path.join(self.controller.project_root, "imports", folder)
|
||||
folder = os.path.join(
|
||||
self.controller.project_root, "import", "upload", folder
|
||||
)
|
||||
if Helpers.check_file_exists(folder):
|
||||
folder = self.file_helper.unzip_server(folder, user_id)
|
||||
root_path = True
|
||||
|
@ -280,7 +280,7 @@ class ApiUsersUserIndexHandler(BaseApiHandler):
|
||||
if key == "password":
|
||||
value = self.helper.encode_pass(value)
|
||||
setattr(user_obj, key, value)
|
||||
user_obj.save()
|
||||
self.controller.users.update_user(auth_data[4]["user_id"], data)
|
||||
|
||||
self.controller.management.add_to_audit_log(
|
||||
user["user_id"],
|
||||
|
31
app/classes/web/routes/metrics/host.py
Normal file
31
app/classes/web/routes/metrics/host.py
Normal file
@ -0,0 +1,31 @@
|
||||
from prometheus_client.exposition import _bake_output
|
||||
from prometheus_client.exposition import parse_qs, urlparse
|
||||
|
||||
from app.classes.web.metrics_handler import BaseMetricsHandler
|
||||
|
||||
|
||||
# Decorate function with metric.
|
||||
class ApiOpenMetricsCraftyHandler(BaseMetricsHandler):
|
||||
def get(self):
|
||||
auth_data = self.authenticate_user()
|
||||
if not auth_data:
|
||||
return
|
||||
|
||||
if not auth_data[3]:
|
||||
# if the user doesn't have access to the server, return an error
|
||||
return self.finish_json(400, {"status": "error", "error": "NOT_AUTHORIZED"})
|
||||
|
||||
self.get_registry()
|
||||
|
||||
def get_registry(self) -> None:
|
||||
# Prepare parameters
|
||||
registry = self.controller.management.host_registry
|
||||
accept_header = self.request.headers.get("Accept")
|
||||
accept_encoding_header = self.request.headers.get("Accept-Encoding")
|
||||
params = parse_qs(urlparse(self.request.path).query)
|
||||
# Bake output
|
||||
status, headers, output = _bake_output(
|
||||
registry, accept_header, accept_encoding_header, params, False
|
||||
)
|
||||
# Return output
|
||||
self.finish_metrics(int(status.split(" ", maxsplit=1)[0]), headers, output)
|
21
app/classes/web/routes/metrics/index.py
Normal file
21
app/classes/web/routes/metrics/index.py
Normal file
@ -0,0 +1,21 @@
|
||||
from prometheus_client import Info
|
||||
from app.classes.web.metrics_handler import BaseMetricsHandler
|
||||
|
||||
CRAFTY_INFO = Info("Crafty_Controller", "Infos of this Crafty Instance")
|
||||
|
||||
|
||||
# Decorate function with metric.
|
||||
class ApiOpenMetricsIndexHandler(BaseMetricsHandler):
|
||||
def get(self):
|
||||
auth_data = self.authenticate_user()
|
||||
if not auth_data:
|
||||
return
|
||||
|
||||
version = f"{self.helper.get_version().get('major')} \
|
||||
.{self.helper.get_version().get('minor')} \
|
||||
.{self.helper.get_version().get('sub')}"
|
||||
CRAFTY_INFO.info(
|
||||
{"version": version, "docker": f"{self.helper.is_env_docker()}"}
|
||||
)
|
||||
|
||||
self.get_registry()
|
24
app/classes/web/routes/metrics/metrics_handlers.py
Normal file
24
app/classes/web/routes/metrics/metrics_handlers.py
Normal file
@ -0,0 +1,24 @@
|
||||
from app.classes.web.routes.metrics.index import ApiOpenMetricsIndexHandler
|
||||
from app.classes.web.routes.metrics.host import ApiOpenMetricsCraftyHandler
|
||||
from app.classes.web.routes.metrics.servers import ApiOpenMetricsServersHandler
|
||||
|
||||
|
||||
def metrics_handlers(handler_args):
|
||||
return [
|
||||
# OpenMetrics routes
|
||||
(
|
||||
r"/metrics/?",
|
||||
ApiOpenMetricsIndexHandler,
|
||||
handler_args,
|
||||
),
|
||||
(
|
||||
r"/metrics/host/?",
|
||||
ApiOpenMetricsCraftyHandler,
|
||||
handler_args,
|
||||
),
|
||||
(
|
||||
r"/metrics/servers/([0-9]+)/?",
|
||||
ApiOpenMetricsServersHandler,
|
||||
handler_args,
|
||||
),
|
||||
]
|
37
app/classes/web/routes/metrics/servers.py
Normal file
37
app/classes/web/routes/metrics/servers.py
Normal file
@ -0,0 +1,37 @@
|
||||
from prometheus_client.exposition import _bake_output
|
||||
from prometheus_client.exposition import parse_qs, urlparse
|
||||
|
||||
from app.classes.web.metrics_handler import BaseMetricsHandler
|
||||
from app.classes.controllers.servers_controller import ServersController
|
||||
|
||||
|
||||
# Decorate function with metric.
|
||||
class ApiOpenMetricsServersHandler(BaseMetricsHandler):
|
||||
def get(self, server_id: str):
|
||||
auth_data = self.authenticate_user()
|
||||
if not auth_data:
|
||||
return
|
||||
|
||||
if server_id not in [str(x["server_id"]) for x in auth_data[0]]:
|
||||
# if the user doesn't have access to the server, return an error
|
||||
return self.finish_json(400, {"status": "error", "error": "NOT_AUTHORIZED"})
|
||||
|
||||
self.get_registry(server_id)
|
||||
|
||||
def get_registry(self, server_id=None) -> None:
|
||||
if server_id is None:
|
||||
return self.finish_json(500, {"status": "error", "error": "UNKNOWN_SERVER"})
|
||||
|
||||
# Prepare parameters
|
||||
registry = (
|
||||
ServersController().get_server_instance_by_id(server_id).server_registry
|
||||
)
|
||||
accept_header = self.request.headers.get("Accept")
|
||||
accept_encoding_header = self.request.headers.get("Accept-Encoding")
|
||||
params = parse_qs(urlparse(self.request.path).query)
|
||||
# Bake output
|
||||
status, headers, output = _bake_output(
|
||||
registry, accept_header, accept_encoding_header, params, False
|
||||
)
|
||||
# Return output
|
||||
self.finish_metrics(int(status.split(" ", maxsplit=1)[0]), headers, output)
|
@ -20,6 +20,7 @@ from app.classes.web.public_handler import PublicHandler
|
||||
from app.classes.web.panel_handler import PanelHandler
|
||||
from app.classes.web.default_handler import DefaultHandler
|
||||
from app.classes.web.routes.api.api_handlers import api_handlers
|
||||
from app.classes.web.routes.metrics.metrics_handlers import metrics_handlers
|
||||
from app.classes.web.server_handler import ServerHandler
|
||||
from app.classes.web.api_handler import (
|
||||
ServersStats,
|
||||
@ -174,6 +175,8 @@ class Webserver:
|
||||
(r"/api/v1/users/delete_user", DeleteUser, handler_args),
|
||||
# API Routes V2
|
||||
*api_handlers(handler_args),
|
||||
# API Routes OpenMetrics
|
||||
*metrics_handlers(handler_args),
|
||||
# Using this one at the end
|
||||
# to catch all the other requests to Public Handler
|
||||
(r"/(.*)", PublicHandler, handler_args),
|
||||
|
@ -102,7 +102,8 @@ class UploadHandler(BaseHandler):
|
||||
)
|
||||
self.do_upload = False
|
||||
|
||||
path = os.path.join(self.controller.project_root, "imports")
|
||||
path = os.path.join(self.controller.project_root, "import", "upload")
|
||||
self.helper.ensure_dir_exists(path)
|
||||
# Delete existing files
|
||||
if len(os.listdir(path)) > 0:
|
||||
for item in os.listdir():
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Tlačítka",
|
||||
"config": "Nastavení",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Vytvořen",
|
||||
"createNew": "Vytvořit nový token API",
|
||||
"created": "Vytvořen",
|
||||
"deleteKeyConfirmation": "Chcete tento API klíč odstranit? Tuto akci nelze vrátit zpět.",
|
||||
"deleteKeyConfirmationTitle": "Odstranit klíč API ${keyId}?",
|
||||
"getToken": "Získat token",
|
||||
@ -75,6 +75,7 @@
|
||||
"dashboard": "Ovládací panel",
|
||||
"delay-explained": "Služba/agent byla nedávno spuštěna a zpožďuje spuštění instance minecraft serveru.",
|
||||
"host": "Hostitel",
|
||||
"installing": "Instalace...",
|
||||
"kill": "Zabít proces",
|
||||
"killing": "Zabíjím proces...",
|
||||
"lastBackup": "Poslední:",
|
||||
@ -97,8 +98,7 @@
|
||||
"status": "Stav",
|
||||
"stop": "Zastavit",
|
||||
"version": "Verze",
|
||||
"welcome": "Vítejte v Crafty Controlleru",
|
||||
"installing": "Instalace..."
|
||||
"welcome": "Vítejte v Crafty Controlleru"
|
||||
},
|
||||
"datatables": {
|
||||
"i18n": {
|
||||
@ -123,11 +123,11 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"-1": "Zobrazit všechny řádky",
|
||||
"1": "Zobrazit 1 řádek",
|
||||
"2": "Zobrazit 2 řádky",
|
||||
"3": "Zobrazit 3 řádky",
|
||||
"4": "Zobrazit 4 řádky",
|
||||
"-1": "Zobrazit všechny řádky",
|
||||
"_": "Zobrazit %d řádků"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -180,15 +180,15 @@
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"agree": "Souhlasím",
|
||||
"cancel": "Zrušit",
|
||||
"contact": "Kontaktujte podporu Crafty přes Discord",
|
||||
"embarassing": "Ach jo, no, to je trapné.",
|
||||
"error": "Chyba!",
|
||||
"eulaAgree": "Souhlasíte?",
|
||||
"eulaMsg": "Musíte souhlasit s ",
|
||||
"privMsg": "a ",
|
||||
"eulaTitle": "Souhlas s EULA",
|
||||
"agree": "Souhlasím",
|
||||
"cancel": "Zrušit",
|
||||
"fileError": "Typ souboru musí být obrázek.",
|
||||
"fileTooLarge": "Odeslání se nezdařilo. Příliš velký nahraný soubor. Obraťte se na správce systému.",
|
||||
"hereIsTheError": "Zde je chyba",
|
||||
"internet": "Zjistili jsme, že počítač se spuštěným programem Crafty není připojen k internetu. Připojení klientů k serveru může být omezeno.",
|
||||
@ -196,10 +196,10 @@
|
||||
"noJava": "Server {} se nepodařilo spustit s kódem chyby: Zjistili jsme, že Java není nainstalována. Nainstalujte prosím Javu a poté spusťte server.",
|
||||
"not-downloaded": "Zdá se, že nemůžeme najít váš spustitelný soubor. Bylo jeho stahování dokončeno? Jsou oprávnění nastavena na spustitelný soubor?",
|
||||
"portReminder": "Zjistili jsme, že server {} byl spuštěn poprvé. Ujistěte se, že jste přesměrovali port {} přes váš směrovač/firewall, aby byl tento port vzdáleně přístupný z internetu.",
|
||||
"privMsg": "a ",
|
||||
"start-error": "Server {} se nepodařilo spustit s kódem chyby: {}",
|
||||
"terribleFailure": "Jaké strašné selhání!",
|
||||
"superError": "Pro dokončení této akce musíte být super uživatel.",
|
||||
"fileError": "Typ souboru musí být obrázek."
|
||||
"terribleFailure": "Jaké strašné selhání!"
|
||||
},
|
||||
"footer": {
|
||||
"allRightsReserved": "Všechna práva vyhrazena",
|
||||
@ -226,29 +226,29 @@
|
||||
"adminControls": "Ovládání správce",
|
||||
"allowedServers": "Povolené servery",
|
||||
"assignedRoles": "Přidělené role",
|
||||
"backgroundUpload": "Nahrání pozadí",
|
||||
"cancel": "Zrušit",
|
||||
"clearComms": "Vymazat nevykonané příkazy",
|
||||
"delete": "Smazat",
|
||||
"edit": "Upravit",
|
||||
"enabled": "Zapnuto",
|
||||
"loginBackground": "Přihlašovací obrázek na pozadí",
|
||||
"loginImage": "Nahrajte obrázek na pozadí přihlašovací obrazovky.",
|
||||
"match": "Hesla musí být stejná",
|
||||
"newRole": "Přidat novou roli",
|
||||
"newUser": "Přidat nového uživatele",
|
||||
"pageTitle": "Nastavení panelu",
|
||||
"preview": "Náhled",
|
||||
"role": "Role",
|
||||
"roles": "Role",
|
||||
"roleUsers": "Uživatelé s rolí",
|
||||
"roles": "Role",
|
||||
"save": "Uložit",
|
||||
"select": "Vyberte",
|
||||
"selectImage": "Vyberte obrázek",
|
||||
"superConfirm": "Postupujte pouze v případě, že chcete, aby měl tento uživatel přístup ke VŠEM (ke všem uživatelským účtům, serverům, nastavení panelu atd.). Může vám dokonce odebrat práva superuživatele.",
|
||||
"superConfirmTitle": "Povolit superuživatele? Jste si jisti?",
|
||||
"user": "Uživatel",
|
||||
"users": "Uživatelé",
|
||||
"loginImage": "Nahrajte obrázek na pozadí přihlašovací obrazovky.",
|
||||
"backgroundUpload": "Nahrání pozadí",
|
||||
"loginBackground": "Přihlašovací obrázek na pozadí",
|
||||
"select": "Vyberte",
|
||||
"selectImage": "Vyberte obrázek",
|
||||
"preview": "Náhled"
|
||||
"users": "Uživatelé"
|
||||
},
|
||||
"rolesConfig": {
|
||||
"config": "Nastavení role",
|
||||
@ -270,10 +270,10 @@
|
||||
"roleTitle": "Nastavení rolí",
|
||||
"roleUserName": "Uživatelské jméno",
|
||||
"roleUsers": "Uživatelé role: ",
|
||||
"selectManager": "Výběr manažera pro tuto roli",
|
||||
"serverAccess": "Přístup?",
|
||||
"serverName": "Název serveru",
|
||||
"serversDesc": "servery, ke kterým má tato role přístup",
|
||||
"selectManager": "Výběr manažera pro tuto roli"
|
||||
"serversDesc": "servery, ke kterým má tato role přístup"
|
||||
},
|
||||
"serverBackups": {
|
||||
"backupAtMidnight": "Automatické zálohování o půlnoci?",
|
||||
@ -349,13 +349,13 @@
|
||||
"serverStopCommand": "Příkaz pro zastavení serveru",
|
||||
"serverStopCommandDesc": "Příkaz k odeslání programu pro jeho zastavení",
|
||||
"showStatus": "Zobrazit na veřejné stavové stránce",
|
||||
"shutdownTimeout": "Časový limit pro vypnutí",
|
||||
"stopBeforeDeleting": "Před odstraněním serveru jej prosím zastavte",
|
||||
"timeoutExplain1": "Jak dlouho bude Crafty čekat na vypnutí serveru po provedení příkazu",
|
||||
"timeoutExplain2": "než proces ukončí.",
|
||||
"update": "Aktualizovat spustitelný soubor",
|
||||
"yesDelete": "Ano, smazat",
|
||||
"yesDeleteFiles": "Ano, smazat soubory",
|
||||
"shutdownTimeout": "Časový limit pro vypnutí",
|
||||
"timeoutExplain1": "Jak dlouho bude Crafty čekat na vypnutí serveru po provedení příkazu",
|
||||
"timeoutExplain2": "než proces ukončí."
|
||||
"yesDeleteFiles": "Ano, smazat soubory"
|
||||
},
|
||||
"serverConfigHelp": {
|
||||
"desc": "Zde můžete změnit konfiguraci serveru.",
|
||||
@ -378,15 +378,15 @@
|
||||
"backup": "Záloha",
|
||||
"config": "Nastavení",
|
||||
"files": "Soubory",
|
||||
"filter": "Filtrovat protokoly",
|
||||
"filterList": "Filtrovaná slova",
|
||||
"logs": "Protokoly",
|
||||
"metrics": "Metrika",
|
||||
"playerControls": "Správa hráčů",
|
||||
"reset": "Obnovit posuvník",
|
||||
"schedule": "Harmonogram",
|
||||
"serverDetails": "Podrobnosti o serveru",
|
||||
"terminal": "Terminál",
|
||||
"metrics": "Metrika",
|
||||
"reset": "Obnovit posuvník",
|
||||
"filter": "Filtrovat protokoly",
|
||||
"filterList": "Filtrovaná slova"
|
||||
"terminal": "Terminál"
|
||||
},
|
||||
"serverFiles": {
|
||||
"clickUpload": "Klikněte sem a vyberte své soubory",
|
||||
@ -420,6 +420,11 @@
|
||||
"waitUpload": "Počkejte prosím, než se vaše soubory nahrají... To může chvíli trvat.",
|
||||
"yesDelete": "Ano, chápu následky"
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "Chcete-li graf přiblížit, podržte klávesu Shift a poté použijte kolečko myši.",
|
||||
"zoomHint2": "Případně můžete podržet klávesu Shift a kliknout a přetáhnout oblast, kterou chcete přiblížit."
|
||||
},
|
||||
"serverPlayerManagement": {
|
||||
"bannedPlayers": "Zabanovaní hráči",
|
||||
"loadingBannedPlayers": "Načítání zabanovaných hráčů",
|
||||
@ -427,7 +432,6 @@
|
||||
},
|
||||
"serverScheduleConfig": {
|
||||
"backup": "Zálohovat server",
|
||||
"select": "Základní / Cron / Řetězová reakce",
|
||||
"basic": "Základní",
|
||||
"children": "Propojené dětské úlohy:",
|
||||
"command": "Příkaz",
|
||||
@ -448,35 +452,36 @@
|
||||
"parent-explain": "Který plán by měl spustit tento?",
|
||||
"reaction": "Reakce",
|
||||
"restart": "Restartovat server",
|
||||
"select": "Základní / Cron / Řetězová reakce",
|
||||
"start": "Spustit server",
|
||||
"stop": "Vypnout server",
|
||||
"time": "Čas",
|
||||
"time-explain": "V kolik hodin chcete, aby byl váš plán spuštěn?"
|
||||
},
|
||||
"serverSchedules": {
|
||||
"scheduledTasks": "Naplánované úlohy",
|
||||
"create": "Vytvořit nový plán",
|
||||
"name": "Název",
|
||||
"action": "Akce",
|
||||
"command": "Příkaz",
|
||||
"interval": "Interval",
|
||||
"nextRun": "Příští spuštění",
|
||||
"enabled": "Zapnuto",
|
||||
"edit": "Upravit",
|
||||
"every": "Každý",
|
||||
"yes": "Ano",
|
||||
"no": "Ne",
|
||||
"cron": "Řetězec Crong",
|
||||
"details": "Podrobnosti o plánu",
|
||||
"child": "Dítě plánu s ID",
|
||||
"areYouSure": "Odstranění naplánované úlohy?",
|
||||
"close": "Zavřít",
|
||||
"delete": "Odstranit",
|
||||
"cancel": "Zrušit",
|
||||
"cannotSee": "Nevidíte všechno?",
|
||||
"cannotSeeOnMobile": "Kliknutím na naplánovanou úlohu získáte podrobné informace.",
|
||||
"child": "Dítě plánu s ID",
|
||||
"close": "Zavřít",
|
||||
"command": "Příkaz",
|
||||
"confirm": "Potvrdit",
|
||||
"confirmDelete": "Chcete tuto naplánovanou úlohu odstranit? Tuto akci nelze vrátit zpět."
|
||||
"confirmDelete": "Chcete tuto naplánovanou úlohu odstranit? Tuto akci nelze vrátit zpět.",
|
||||
"create": "Vytvořit nový plán",
|
||||
"cron": "Řetězec Crong",
|
||||
"delete": "Odstranit",
|
||||
"details": "Podrobnosti o plánu",
|
||||
"edit": "Upravit",
|
||||
"enabled": "Zapnuto",
|
||||
"every": "Každý",
|
||||
"interval": "Interval",
|
||||
"name": "Název",
|
||||
"nextRun": "Příští spuštění",
|
||||
"no": "Ne",
|
||||
"scheduledTasks": "Naplánované úlohy",
|
||||
"yes": "Ano"
|
||||
},
|
||||
"serverStats": {
|
||||
"cpuUsage": "Využití CPU",
|
||||
@ -499,19 +504,14 @@
|
||||
"commandInput": "Zadejte příkaz",
|
||||
"delay-explained": "Služba/agent byla nedávno spuštěna a zpožďuje spuštění instance minecraft serveru.",
|
||||
"importing": "Importování...",
|
||||
"installing": "Instalace...",
|
||||
"restart": "Restartovat",
|
||||
"sendCommand": "Odeslat příkaz",
|
||||
"start": "Spustit",
|
||||
"starting": "Zpožděný start",
|
||||
"stop": "Zastavit",
|
||||
"stopScroll": "Zastavit automatické posouvání",
|
||||
"updating": "Aktualizace...",
|
||||
"installing": "Instalace..."
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "Chcete-li graf přiblížit, podržte klávesu Shift a poté použijte kolečko myši.",
|
||||
"zoomHint2": "Případně můžete podržet klávesu Shift a kliknout a přetáhnout oblast, kterou chcete přiblížit."
|
||||
"updating": "Aktualizace..."
|
||||
},
|
||||
"serverWizard": {
|
||||
"absoluteServerPath": "Absolutní cesta k serveru",
|
||||
@ -525,11 +525,10 @@
|
||||
"defaultPort": "25565 výchozí hodnota",
|
||||
"downloading": "Stahování serveru...",
|
||||
"explainRoot": "Klikněte na tlačítko níže a vyberte kořenový adresář vašeho serveru z archivu.",
|
||||
"importing": "Importování serveru...",
|
||||
"importServer": "Importování existujícího serveru",
|
||||
"importServerButton": "Importovat server!",
|
||||
"importZip": "Imporovat ze souboru Zip",
|
||||
"uploadZip": "Nahrání souboru Zip pro importování serveru",
|
||||
"importing": "Importování serveru...",
|
||||
"maxMem": "Maximální paměť",
|
||||
"minMem": "Minimální paměť",
|
||||
"myNewServer": "Nový server",
|
||||
@ -540,18 +539,19 @@
|
||||
"save": "Uložit",
|
||||
"selectRole": "Vyberte roli(e)",
|
||||
"selectRoot": "Vyberte kořenový adresář archivu",
|
||||
"selectType": "Typ serveru (Vanilla, Servery, Modované atd.)",
|
||||
"selectServer": "Vyberte server",
|
||||
"selectType": "Typ serveru (Vanilla, Servery, Modované atd.)",
|
||||
"selectVersion": "Vyberte verzi",
|
||||
"selectZipDir": "Vyberte adresář v archivu, ze kterého mají být soubory rozbaleny.",
|
||||
"serverJar": "Soubor spustitelný serverem",
|
||||
"serverName": "Název serveru",
|
||||
"serverPath": "Cesta k serveru",
|
||||
"serverPort": "Port serveru",
|
||||
"serverType": "Typ serveru",
|
||||
"serverSelect": "Výběr serveru",
|
||||
"serverType": "Typ serveru",
|
||||
"serverVersion": "Verze serveru",
|
||||
"sizeInGB": "Velikost v GB",
|
||||
"uploadZip": "Nahrání souboru Zip pro importování serveru",
|
||||
"zipPath": "Cesta k serveru"
|
||||
},
|
||||
"sidebar": {
|
||||
@ -573,9 +573,9 @@
|
||||
"craftyPermDesc": "Oprávnění tohoto uživatele ",
|
||||
"craftyPerms": "Oprávnění: ",
|
||||
"created": "Vytvořeno: ",
|
||||
"delSuper": "Super uživatele nelze odstranit",
|
||||
"deleteUser": "Smazat uživatele: ",
|
||||
"deleteUserB": "Smazat uživatele",
|
||||
"delSuper": "Super uživatele nelze odstranit",
|
||||
"enabled": "Povolen",
|
||||
"gravDesc": "Tento e-mail je určen výhradně pro použití se službou Gravatar™. Crafty nebude v žádném případě používat tento e-mail k ničemu jinému než k vyhledávání vašeho Gravataru™.",
|
||||
"gravEmail": "Gravatar™ E-mail",
|
||||
@ -583,6 +583,7 @@
|
||||
"lastLogin": "Poslední přihlášení: ",
|
||||
"lastUpdate": "Poslední aktualizace: ",
|
||||
"leaveBlank": "Chcete-li upravit uživatele beze změny hesla, ponechte pole prázdné.",
|
||||
"manager": "Správce",
|
||||
"member": "Člen?",
|
||||
"notExist": "Nemůžete odstranit něco, co neexistuje!",
|
||||
"pageTitle": "Upravit uživatele",
|
||||
@ -591,16 +592,15 @@
|
||||
"permName": "Název povolení",
|
||||
"repeat": "Zopakujte heslo",
|
||||
"roleName": "Název role",
|
||||
"selectManager": "Vyberte Správce pro uživatele",
|
||||
"super": "Super uživatel",
|
||||
"userLang": "Jazyk uživatele",
|
||||
"userTheme": "Motiv UI",
|
||||
"userName": "Uživatelské jméno",
|
||||
"userNameDesc": "Jak chcete aby se tento uživatel jmenoval?",
|
||||
"userRoles": "Role uživatele",
|
||||
"userRolesDesc": "Role, jejichž je tento uživatel členem.",
|
||||
"userSettings": "Nastavení uživatele",
|
||||
"uses": "Počet povolených použití (-1==bez omezení)",
|
||||
"manager": "Správce",
|
||||
"selectManager": "Vyberte Správce pro uživatele"
|
||||
"userTheme": "Motiv UI",
|
||||
"uses": "Počet povolených použití (-1==bez omezení)"
|
||||
}
|
||||
}
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Knöpfe",
|
||||
"config": "Konfiguration",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Erstellt",
|
||||
"createNew": "Neuen API Schlüssel erstellen",
|
||||
"created": "Erstellt",
|
||||
"deleteKeyConfirmation": "Möchten Sie diesen API Schlüssel löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"deleteKeyConfirmationTitle": "Folgenden API Schlüssel löschen: ${keyId}?",
|
||||
"getToken": "Schlüssel erhalten",
|
||||
@ -40,12 +40,12 @@
|
||||
"pageDescription": "Ohne diese Menschen würde Crafty nicht existieren",
|
||||
"pageTitle": "Mitwirkende",
|
||||
"patreonDesc": "an unsere Patreon/Ko-fi-Unterstützer!",
|
||||
"subscriptionLevel": "Unterstützer-Level",
|
||||
"subscriberName": "Name",
|
||||
"patreonOther": "Andere",
|
||||
"patreonSupporter": "Patreon / Ko-fi Unterstützer",
|
||||
"patreonUpdate": "Letzte Aktualisierung:",
|
||||
"retiredStaff": "Ehemalige Helfer",
|
||||
"subscriberName": "Name",
|
||||
"subscriptionLevel": "Unterstützer-Level",
|
||||
"supportTeam": "Support- und Dokumentationsteam",
|
||||
"thankYou": "DANKESCHÖN",
|
||||
"translationDesc": "an unsere Community, die übersetzt!",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "1 Zeile anzeigen",
|
||||
"-1": "Alle Zeilen anzeigen",
|
||||
"1": "1 Zeile anzeigen",
|
||||
"_": "%d Zeilen anzeigen"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -170,6 +170,7 @@
|
||||
"eulaAgree": "Stimmen Sie zu?",
|
||||
"eulaMsg": "Sie müssen der EULA zustimmen. Eine Kopie der Minecraft EULA ist unter dieser Nachricht verlinkt.",
|
||||
"eulaTitle": "Der EULA zustimmen",
|
||||
"fileTooLarge": "Hochladen fehlgeschlagen. Datei ist zu groß. Wenden Sie sich an Ihren Systemadministrator für weitere Unterstütung.",
|
||||
"hereIsTheError": "Das ist der Fehler",
|
||||
"internet": "Wir haben festgestellt, dass der Rechner, auf dem Crafty läuft, keine Verbindung zum Internet hat. Client-Verbindungen zum Server können dadurch eingeschränkt sein.",
|
||||
"no-file": "Crafty kann die Datei nicht öffnen. Bitte den angegebenen Pfad überprüfen. Hat Crafty die nötigen Berechtigungen?",
|
||||
@ -177,8 +178,7 @@
|
||||
"not-downloaded": "Crafty kann die auszuführende Datei nicht finden. Ist der Download abgeschlossen? Sind die Berechtigungen für Crafty korrekt?",
|
||||
"portReminder": "Wir haben festgestellt, dass dies das erste Mal ist, dass {} ausgeführt wurde. Stellen Sie sicher, dass Sie Port {} durch Ihren Router/Firewall weiterleiten, um den Fernzugriff aus dem Internet zu ermöglichen.",
|
||||
"start-error": "Der Server {} konnte wegen dem Fehlercode: {} nicht gestartet werden",
|
||||
"terribleFailure": "Was für ein furchtbarer Fehler!",
|
||||
"fileTooLarge": "Hochladen fehlgeschlagen. Datei ist zu groß. Wenden Sie sich an Ihren Systemadministrator für weitere Unterstütung."
|
||||
"terribleFailure": "Was für ein furchtbarer Fehler!"
|
||||
},
|
||||
"footer": {
|
||||
"allRightsReserved": "Alle Rechte vorbehalten",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "Neuen Benutzer hinzufügen",
|
||||
"pageTitle": "Panel Konfiguration",
|
||||
"role": "Rolle",
|
||||
"roles": "Rollen",
|
||||
"roleUsers": "Rollen-Benutzer",
|
||||
"roles": "Rollen",
|
||||
"save": "Speichern",
|
||||
"superConfirm": "Nur fortfahren, wenn dieser Nutzer Zugang zu ALLEM haben soll (alle Benutzerkonten, Server, Panel-Konfiguration etc.). Er kann allen Benutzern die Super-Benutzer-Rechte entziehen.",
|
||||
"superConfirmTitle": "Super-Benutzer Berechtigung erteilen? Sicher, dass diese Aktion ausgeführt werden soll?",
|
||||
@ -270,10 +270,10 @@
|
||||
"restore": "Wiederherstellen",
|
||||
"restoring": "Backup wiederherstellen. Dies kann eine Weile dauern.",
|
||||
"save": "Speichern",
|
||||
"shutdown": "Server für die Dauer des Backups stoppen",
|
||||
"size": "Größe",
|
||||
"storageLocation": "Speicherort",
|
||||
"storageLocationDesc": "Wo wollen Sie die Backups speichern?",
|
||||
"shutdown": "Server für die Dauer des Backups stoppen"
|
||||
"storageLocationDesc": "Wo wollen Sie die Backups speichern?"
|
||||
},
|
||||
"serverConfig": {
|
||||
"bePatientDelete": "Bitte haben Sie etwas Geduld, während wir Ihren Server aus dem Crafty-Panel entfernen. Dieser Bildschirm wird in wenigen Augenblicken geschlossen.",
|
||||
@ -289,6 +289,9 @@
|
||||
"deleteServerQuestionMessage": "Sind Sie sicher, dass Sie diesen Server löschen wollen? Danach gibt es kein Zurück mehr...",
|
||||
"exeUpdateURL": "Ausführbare Server Update URL",
|
||||
"exeUpdateURLDesc": "Direkte Download-URL für Updates.",
|
||||
"javaNoChange": "Nicht überschreiben",
|
||||
"javaVersion": "Aktuelle Java Version überschreiben",
|
||||
"javaVersionDesc": "Wenn Sie die Java-Version überschreiben möchten: Stellen Sie sicher, dass der 'auszuführende Befehl' in Anführungszeichen geschrieben ist (Ausgenommen die Standard-'java'-Variable)",
|
||||
"noDelete": "Nein, zurück",
|
||||
"noDeleteFiles": "Nein, nur aus dem Panel entfernen",
|
||||
"removeOldLogsAfter": "Alte Logs entfernen nach",
|
||||
@ -302,9 +305,6 @@
|
||||
"serverCrashDetection": "Erkennung von Serverabstürzen",
|
||||
"serverExecutable": "Ausführbare Server Datei",
|
||||
"serverExecutableDesc": "Die ausführbare Datei des Servers",
|
||||
"javaVersion": "Aktuelle Java Version überschreiben",
|
||||
"javaVersionDesc": "Wenn Sie die Java-Version überschreiben möchten: Stellen Sie sicher, dass der 'auszuführende Befehl' in Anführungszeichen geschrieben ist (Ausgenommen die Standard-'java'-Variable)",
|
||||
"javaNoChange": "Nicht überschreiben",
|
||||
"serverExecutionCommand": "Server Ausführungsbefehl",
|
||||
"serverExecutionCommandDesc": "Was wird in einer versteckten Konsole gestartet",
|
||||
"serverIP": "Server IP",
|
||||
@ -373,8 +373,8 @@
|
||||
"noscript": "Der Dateimanager funktioniert nicht ohne JavaScript",
|
||||
"rename": "Umbenennen",
|
||||
"renameItemQuestion": "Wie soll der neue Name lauten?",
|
||||
"size": "Editorgröße umschalten",
|
||||
"save": "Speichern",
|
||||
"size": "Editorgröße umschalten",
|
||||
"stayHere": "VERLASSEN SIE DIESE SEITE NICHT!",
|
||||
"unsupportedLanguage": "Warnung: Dies ist ein nicht unterstützter Dateityp",
|
||||
"unzip": "Entpacken",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 (Standard)",
|
||||
"downloading": "Server herunterladen...",
|
||||
"explainRoot": "Bitte klicken Sie auf die Schaltfläche unterhalb, um das Stammverzeichnis Ihres Servers innerhalb des Archivs auszuwählen",
|
||||
"importing": "Server importieren...",
|
||||
"importServer": "Existierenden Server importieren",
|
||||
"importServerButton": "Server importieren!",
|
||||
"importZip": "Aus einer Zip-Archiv importieren",
|
||||
"importing": "Server importieren...",
|
||||
"maxMem": "Maximaler RAM",
|
||||
"minMem": "Minimaler RAM",
|
||||
"myNewServer": "Mein neuer Server",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "Crafty Berechtigungen die dieser Benutzer hat ",
|
||||
"craftyPerms": "Crafty Berechtigungen: ",
|
||||
"created": "Erstellt: ",
|
||||
"delSuper": "Super Benutzer können nicht gelöscht werden",
|
||||
"deleteUser": "Benutzer löschen: ",
|
||||
"deleteUserB": "Benutzer löschen",
|
||||
"delSuper": "Super Benutzer können nicht gelöscht werden",
|
||||
"enabled": "Aktiviert",
|
||||
"gravDesc": "Diese E-Mail ist ausschließlich für die Verwendung mit Gravatar™ bestimmt. Crafty wird diese E-Mail unter keinen Umständen für etwas anderes als die Suche nach Ihrem Gravatar™ verwenden.",
|
||||
"gravEmail": "Gravatar™ E-Mail",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Buttons",
|
||||
"config": "Config",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Created",
|
||||
"createNew": "Create new API Token",
|
||||
"created": "Created",
|
||||
"deleteKeyConfirmation": "Do you want to delete this API key? This cannot be undone.",
|
||||
"deleteKeyConfirmationTitle": "Remove API key ${keyId}?",
|
||||
"getToken": "Get A Token",
|
||||
@ -53,6 +53,20 @@
|
||||
"translationTitle": "Language Translation",
|
||||
"translator": "Translators"
|
||||
},
|
||||
"customLogin": {
|
||||
"apply": "Apply",
|
||||
"backgroundUpload": "Background Upload",
|
||||
"customLoginPage": "Customise the Login Page",
|
||||
"delete": "Delete",
|
||||
"labelLoginImage": "Choose your Login Background",
|
||||
"loginBackground": "Login Background Image",
|
||||
"loginImage": "Upload a background image for the login screen.",
|
||||
"loginOpacity": "Select the Login Window Opacity",
|
||||
"pageTitle": "Custom Login Page",
|
||||
"preview": "Preview",
|
||||
"select": "Select",
|
||||
"selectImage": "Select an image"
|
||||
},
|
||||
"dashboard": {
|
||||
"actions": "Actions",
|
||||
"allServers": "All Servers",
|
||||
@ -75,6 +89,7 @@
|
||||
"dashboard": "Dashboard",
|
||||
"delay-explained": "The service/agent has recently started and is delaying the start of the minecraft server instance",
|
||||
"host": "Host",
|
||||
"installing": "Installing...",
|
||||
"kill": "Kill Process",
|
||||
"killing": "Killing process...",
|
||||
"lastBackup": "Last:",
|
||||
@ -97,8 +112,7 @@
|
||||
"status": "Status",
|
||||
"stop": "Stop",
|
||||
"version": "Version",
|
||||
"welcome": "Welcome to Crafty Controller",
|
||||
"installing": "Installing..."
|
||||
"welcome": "Welcome to Crafty Controller"
|
||||
},
|
||||
"datatables": {
|
||||
"i18n": {
|
||||
@ -120,8 +134,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Show 1 row",
|
||||
"-1": "Show all rows",
|
||||
"1": "Show 1 row",
|
||||
"_": "Show %d rows"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -165,34 +179,34 @@
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"agree": "Agree",
|
||||
"bedrockError": "Bedrock downloads unavailable. Please check",
|
||||
"cancel": "Cancel",
|
||||
"contact": "Contact Crafty Control Support via Discord",
|
||||
"craftyStatus": "Crafty's status page",
|
||||
"cronFormat": "Invalid Cron format detected",
|
||||
"embarassing": "Oh my, well, this is embarrassing.",
|
||||
"error": "Error!",
|
||||
"eulaAgree": "Do you agree?",
|
||||
"eulaMsg": "You must agree to the ",
|
||||
"privMsg": "and the ",
|
||||
"eulaTitle": "Agree To EULA",
|
||||
"agree": "Agree",
|
||||
"cancel": "Cancel",
|
||||
"fileError": "File type must be an image.",
|
||||
"fileTooLarge": "Upload failed. File upload too large. Contact system administrator for assistance.",
|
||||
"hereIsTheError": "Here is the error",
|
||||
"internet": "We have detected the machine running Crafty has no connection to the internet. Client connections to the server may be limited.",
|
||||
"no-file": "We can't seem to locate the requested file. Double check the path. Does Crafty have proper permissions?",
|
||||
"noJava": "Server {} failed to start with error code: We have detected Java is not installed. Please install java then start the server.",
|
||||
"installerJava": "Failed to install {} : Forge Server Installs require Java. We have detected Java is not installed. Please install java then install the server.",
|
||||
"internet": "We have detected the machine running Crafty has no connection to the internet. Client connections to the server may be limited.",
|
||||
"migration": "Crafty's main server storage is being mirgated to a new location. All server starts have been suspended during this time. Please wait while we finish this migration",
|
||||
"no-file": "We can't seem to locate the requested file. Double check the path. Does Crafty have proper permissions?",
|
||||
"noInternet": "Crafty is having trouble accessing the internet. Server Creation has been disabled. Please check your internet connection and refresh this page.",
|
||||
"noJava": "Server {} failed to start with error code: We have detected Java is not installed. Please install java then start the server.",
|
||||
"not-downloaded": "We can't seem to find your executable file. Has it finished downloading? Are the permissions set to executable?",
|
||||
"portReminder": "We have detected this is the first time {} has been run. Make sure to forward port {} through your router/firewall to make this remotely accessible from the internet.",
|
||||
"start-error": "Server {} failed to start with error code: {}",
|
||||
"terribleFailure": "What a Terrible Failure!",
|
||||
"superError": "You must be a super user to complete this action.",
|
||||
"fileError": "File type must be an image.",
|
||||
"migration": "Crafty's main server storage is being mirgated to a new location. All server starts have been suspended during this time. Please wait while we finish this migration",
|
||||
"privMsg": "and the ",
|
||||
"serverJars1": "Server JARs API unreachable. Please check",
|
||||
"bedrockError": "Bedrock downloads unavailable. Please check",
|
||||
"craftyStatus": "Crafty's status page",
|
||||
"serverJars2": "for the most up to date information.",
|
||||
"cronFormat": "Invalid Cron format detected",
|
||||
"noInternet": "Crafty is having trouble accessing the internet. Server Creation has been disabled. Please check your internet connection and refresh this page."
|
||||
"start-error": "Server {} failed to start with error code: {}",
|
||||
"superError": "You must be a super user to complete this action.",
|
||||
"terribleFailure": "What a Terrible Failure!"
|
||||
},
|
||||
"footer": {
|
||||
"allRightsReserved": "All rights reserved",
|
||||
@ -223,47 +237,33 @@
|
||||
"panelConfig": {
|
||||
"adminControls": "Admin Controls",
|
||||
"allowedServers": "Allowed Servers",
|
||||
"apply": "Apply",
|
||||
"assignedRoles": "Assigned Roles",
|
||||
"cancel": "Cancel",
|
||||
"clearComms": "Clear Un-executed Commands",
|
||||
"select": "Select",
|
||||
"apply": "Apply",
|
||||
"custom": "Customize Crafty",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"enableLang": "Enable All Languages",
|
||||
"enabled": "Enabled",
|
||||
"globalExplain": "Where Crafty stores all your server files. (We will append the path with /servers/[uuid of server])",
|
||||
"globalServer": "Global Servers Directory",
|
||||
"json": "Config.json",
|
||||
"match": "Passwords must match",
|
||||
"newRole": "Add New Role",
|
||||
"newUser": "Add New User",
|
||||
"noMounts": "Show no Mounts on Dash",
|
||||
"pageTitle": "Panel Config",
|
||||
"json": "Config.json",
|
||||
"custom": "Customize Crafty",
|
||||
"role": "Role",
|
||||
"roles": "Roles",
|
||||
"roleUsers": "Role Users",
|
||||
"roles": "Roles",
|
||||
"save": "Save",
|
||||
"select": "Select",
|
||||
"superConfirm": "Proceed only if you want this user to have access to EVERYTHING (all user accounts, servers, panel settings, etc.). They can even revoke your superuser rights.",
|
||||
"superConfirmTitle": "Enable superuser? Are you sure?",
|
||||
"user": "User",
|
||||
"users": "Users",
|
||||
"title": "Crafty Configuration",
|
||||
"enableLang": "Enable All Languages",
|
||||
"noMounts": "Show no Mounts on Dash",
|
||||
"globalServer": "Global Servers Directory",
|
||||
"globalExplain": "Where Crafty stores all your server files. (We will append the path with /servers/[uuid of server])"
|
||||
},
|
||||
"customLogin": {
|
||||
"customLoginPage": "Customise the Login Page",
|
||||
"loginImage": "Upload a background image for the login screen.",
|
||||
"labelLoginImage": "Choose your Login Background",
|
||||
"backgroundUpload": "Background Upload",
|
||||
"loginBackground": "Login Background Image",
|
||||
"loginOpacity": "Select the Login Window Opacity",
|
||||
"select": "Select",
|
||||
"apply": "Apply",
|
||||
"delete": "Delete",
|
||||
"selectImage": "Select an image",
|
||||
"preview": "Preview",
|
||||
"pageTitle": "Custom Login Page"
|
||||
"user": "User",
|
||||
"users": "Users"
|
||||
},
|
||||
"rolesConfig": {
|
||||
"config": "Role Config",
|
||||
@ -285,15 +285,17 @@
|
||||
"roleTitle": "Roles Settings",
|
||||
"roleUserName": "User Name",
|
||||
"roleUsers": "Role Users: ",
|
||||
"selectManager": "Select a manager for this Role",
|
||||
"serverAccess": "Access?",
|
||||
"serverName": "Server Name",
|
||||
"serversDesc": "servers this role is allowed to access",
|
||||
"selectManager": "Select a manager for this Role"
|
||||
"serversDesc": "servers this role is allowed to access"
|
||||
},
|
||||
"serverBackups": {
|
||||
"after": "Run command after backup",
|
||||
"backupAtMidnight": "Auto-backup at midnight?",
|
||||
"backupNow": "Backup Now!",
|
||||
"backupTask": "A backup task has been started.",
|
||||
"before": "Run command before backup",
|
||||
"cancel": "Cancel",
|
||||
"clickExclude": "Click to select Exclusions",
|
||||
"compress": "Compress Backup",
|
||||
@ -317,9 +319,7 @@
|
||||
"shutdown": "Shutdown server for duration of backup",
|
||||
"size": "Size",
|
||||
"storageLocation": "Storage Location",
|
||||
"storageLocationDesc": "Where do you want to store backups?",
|
||||
"before": "Run command before backup",
|
||||
"after": "Run command after backup"
|
||||
"storageLocationDesc": "Where do you want to store backups?"
|
||||
},
|
||||
"serverConfig": {
|
||||
"bePatientDelete": "Please be patient while we remove your server from the Crafty panel. This screen will close in a few moments.",
|
||||
@ -335,6 +335,8 @@
|
||||
"deleteServerQuestionMessage": "Are you sure you want to delete this server? After this there is no going back...",
|
||||
"exeUpdateURL": "Server Executable Update URL",
|
||||
"exeUpdateURLDesc": "Direct Download URL for updates.",
|
||||
"ignoredExits": "Ignored Crash Exit Codes",
|
||||
"ignoredExitsExplain": "Exit codes Crafty's Crash detection should ignore as a normal 'stop' (separated by commas)",
|
||||
"javaNoChange": "Do Not Override",
|
||||
"javaVersion": "Override current Java Version",
|
||||
"javaVersionDesc": "If you're going to override Java, make sure your current Java path in 'execution command' is wrapped in quotes (default 'java' variable excluded)",
|
||||
@ -366,17 +368,15 @@
|
||||
"serverStopCommand": "Server Stop Command",
|
||||
"serverStopCommandDesc": "Command to send the program to stop it",
|
||||
"showStatus": "Show On Public Status Page",
|
||||
"stopBeforeDeleting": "Please stop the server before deleting it",
|
||||
"update": "Update Executable",
|
||||
"yesDelete": "Yes, delete",
|
||||
"yesDeleteFiles": "Yes, delete files",
|
||||
"shutdownTimeout": "Shutdown Timeout",
|
||||
"timeoutExplain1": "How long Crafty will wait for your server to shutdown after executing the",
|
||||
"timeoutExplain2": "command before it forces the process down.",
|
||||
"statsHint1": "The port your server is running on should go here. This is just how Crafty opens a connection to your server for stats.",
|
||||
"statsHint2": "This does not change the port of your server. You must still change the port in your server config file.",
|
||||
"ignoredExits": "Ignored Crash Exit Codes",
|
||||
"ignoredExitsExplain": "Exit codes Crafty's Crash detection should ignore as a normal 'stop' (separated by commas)"
|
||||
"stopBeforeDeleting": "Please stop the server before deleting it",
|
||||
"timeoutExplain1": "How long Crafty will wait for your server to shutdown after executing the",
|
||||
"timeoutExplain2": "command before it forces the process down.",
|
||||
"update": "Update Executable",
|
||||
"yesDelete": "Yes, delete",
|
||||
"yesDeleteFiles": "Yes, delete files"
|
||||
},
|
||||
"serverConfigHelp": {
|
||||
"desc": "Here is where you can change the configuration of your server",
|
||||
@ -399,15 +399,15 @@
|
||||
"backup": "Backup",
|
||||
"config": "Config",
|
||||
"files": "Files",
|
||||
"filter": "Filter Logs",
|
||||
"filterList": "Filtered Words",
|
||||
"logs": "Logs",
|
||||
"metrics": "Metrics",
|
||||
"playerControls": "Player Management",
|
||||
"reset": "Reset Scroll",
|
||||
"schedule": "Schedule",
|
||||
"serverDetails": "Server Details",
|
||||
"terminal": "Terminal",
|
||||
"metrics": "Metrics",
|
||||
"reset": "Reset Scroll",
|
||||
"filter": "Filter Logs",
|
||||
"filterList": "Filtered Words"
|
||||
"terminal": "Terminal"
|
||||
},
|
||||
"serverFiles": {
|
||||
"clickUpload": "Click here to select your files",
|
||||
@ -441,6 +441,11 @@
|
||||
"waitUpload": "Please wait while we upload your files... This may take a while.",
|
||||
"yesDelete": "Yes, I understand the consequences"
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "To zoom on the graph hold your shift key then use your scroll wheel.",
|
||||
"zoomHint2": "Alternatively hold the shift key then click and drag the area you'd like to zoom in on."
|
||||
},
|
||||
"serverPlayerManagement": {
|
||||
"bannedPlayers": "Banned Players",
|
||||
"loadingBannedPlayers": "Loading Banned Players",
|
||||
@ -448,7 +453,6 @@
|
||||
},
|
||||
"serverScheduleConfig": {
|
||||
"backup": "Backup Server",
|
||||
"select": "Basic / Cron / Chain Reaction Select",
|
||||
"basic": "Basic",
|
||||
"children": "Linked Child Tasks: ",
|
||||
"command": "Command",
|
||||
@ -469,35 +473,36 @@
|
||||
"parent-explain": "Which schedule should trigger this one?",
|
||||
"reaction": "Reaction",
|
||||
"restart": "Restart Server",
|
||||
"select": "Basic / Cron / Chain Reaction Select",
|
||||
"start": "Start Server",
|
||||
"stop": "Shutdown Server",
|
||||
"time": "Time",
|
||||
"time-explain": "What time do you want your schedule to execute?"
|
||||
},
|
||||
"serverSchedules": {
|
||||
"scheduledTasks": "Scheduled Tasks",
|
||||
"create": "Create New Schedule",
|
||||
"name": "Name",
|
||||
"action": "Action",
|
||||
"command": "Command",
|
||||
"interval": "Interval",
|
||||
"nextRun": "Next Run",
|
||||
"enabled": "Enabled",
|
||||
"edit": "Edit",
|
||||
"every": "Every",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"cron": "Crong String",
|
||||
"details": "Schedule Details",
|
||||
"child": "Child of schedule with ID ",
|
||||
"areYouSure": "Delete Scheduled Task?",
|
||||
"close": "Close",
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"cannotSee": "Not seeing everything?",
|
||||
"cannotSeeOnMobile": "Try clicking on a scheduled task for full details.",
|
||||
"child": "Child of schedule with ID ",
|
||||
"close": "Close",
|
||||
"command": "Command",
|
||||
"confirm": "Confirm",
|
||||
"confirmDelete": "Do you want to delete this scheduled task? This cannot be undone."
|
||||
"confirmDelete": "Do you want to delete this scheduled task? This cannot be undone.",
|
||||
"create": "Create New Schedule",
|
||||
"cron": "Crong String",
|
||||
"delete": "Delete",
|
||||
"details": "Schedule Details",
|
||||
"edit": "Edit",
|
||||
"enabled": "Enabled",
|
||||
"every": "Every",
|
||||
"interval": "Interval",
|
||||
"name": "Name",
|
||||
"nextRun": "Next Run",
|
||||
"no": "No",
|
||||
"scheduledTasks": "Scheduled Tasks",
|
||||
"yes": "Yes"
|
||||
},
|
||||
"serverStats": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
@ -520,19 +525,14 @@
|
||||
"commandInput": "Enter your command",
|
||||
"delay-explained": "The service/agent has recently started and is delaying the start of the minecraft server instance",
|
||||
"importing": "Importing...",
|
||||
"installing": "Installing...",
|
||||
"restart": "Restart",
|
||||
"sendCommand": "Send command",
|
||||
"start": "Start",
|
||||
"starting": "Delayed-Start",
|
||||
"stop": "Stop",
|
||||
"stopScroll": "Stop Auto Scrolling",
|
||||
"updating": "Updating...",
|
||||
"installing": "Installing..."
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "To zoom on the graph hold your shift key then use your scroll wheel.",
|
||||
"zoomHint2": "Alternatively hold the shift key then click and drag the area you'd like to zoom in on."
|
||||
"updating": "Updating..."
|
||||
},
|
||||
"serverWizard": {
|
||||
"absoluteServerPath": "Absolute path to your server",
|
||||
@ -546,11 +546,10 @@
|
||||
"defaultPort": "25565 default",
|
||||
"downloading": "Downloading Server...",
|
||||
"explainRoot": "Please click the button below to select your server's root dir inside of the archive",
|
||||
"importing": "Importing Server...",
|
||||
"importServer": "Import an Existing Server",
|
||||
"importServerButton": "Import Server!",
|
||||
"importZip": "Import from a Zip File",
|
||||
"uploadZip": "Upload Zip File For Server Import",
|
||||
"importing": "Importing Server...",
|
||||
"labelZipFile": "Choose your Zip File",
|
||||
"maxMem": "Maximum Memory",
|
||||
"minMem": "Minimum Memory",
|
||||
@ -562,20 +561,21 @@
|
||||
"save": "Save",
|
||||
"selectRole": "Select Role(s)",
|
||||
"selectRoot": "Select Archive Root Dir",
|
||||
"selectType": "Server Type (Vanilla, Servers, Modded, etc.)",
|
||||
"selectServer": "Select a Server",
|
||||
"selectType": "Server Type (Vanilla, Servers, Modded, etc.)",
|
||||
"selectVersion": "Select a Version",
|
||||
"selectZipDir": "Select the directory in the archive you want us to unzip files from",
|
||||
"serverJar": "Server Executable File",
|
||||
"serverName": "Server Name",
|
||||
"serverPath": "Server Path",
|
||||
"serverPort": "Server Port",
|
||||
"serverType": "Server Type",
|
||||
"serverSelect": "Server Select",
|
||||
"serverVersion": "Server Version",
|
||||
"serverType": "Server Type",
|
||||
"serverUpload": "Upload Zipped Server",
|
||||
"serverVersion": "Server Version",
|
||||
"sizeInGB": "Size in GB",
|
||||
"uploadButton": "Upload",
|
||||
"uploadZip": "Upload Zip File For Server Import",
|
||||
"zipPath": "Server Path"
|
||||
},
|
||||
"sidebar": {
|
||||
@ -583,10 +583,10 @@
|
||||
"credits": "Credits",
|
||||
"dashboard": "Dashboard",
|
||||
"documentation": "Documentation",
|
||||
"inApp": "In App Docs",
|
||||
"navigation": "Navigation",
|
||||
"newServer": "Create New Server",
|
||||
"servers": "Servers",
|
||||
"inApp": "In App Docs"
|
||||
"servers": "Servers"
|
||||
},
|
||||
"userConfig": {
|
||||
"apiKey": "API Keys",
|
||||
@ -598,9 +598,9 @@
|
||||
"craftyPermDesc": "Crafty permissions this user has ",
|
||||
"craftyPerms": "Crafty Permissons: ",
|
||||
"created": "Created: ",
|
||||
"delSuper": "You cannot delete a super user",
|
||||
"deleteUser": "Delete user: ",
|
||||
"deleteUserB": "Delete User",
|
||||
"delSuper": "You cannot delete a super user",
|
||||
"enabled": "Enabled",
|
||||
"gravDesc": "This email is strictly for use with Gravatar™. Crafty will not, under any circumstance make use of this email for anything other than looking up your Gravatar™",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
@ -608,6 +608,7 @@
|
||||
"lastLogin": "Last Login: ",
|
||||
"lastUpdate": "Last Update: ",
|
||||
"leaveBlank": "To edit user without changing password leave it blank.",
|
||||
"manager": "Manager",
|
||||
"member": "Member?",
|
||||
"notExist": "You cannot delete something that doesn't exist!",
|
||||
"pageTitle": "Edit User",
|
||||
@ -616,39 +617,38 @@
|
||||
"permName": "Permission Name",
|
||||
"repeat": "Repeat Password",
|
||||
"roleName": "Role Name",
|
||||
"selectManager": "Select Manager for User",
|
||||
"super": "Super User",
|
||||
"userLang": "User Language",
|
||||
"userTheme": "UI Theme",
|
||||
"userName": "User Name",
|
||||
"userNameDesc": "What do you want to call this user?",
|
||||
"userRoles": "User Roles",
|
||||
"userRolesDesc": "Roles this user is a member of.",
|
||||
"userSettings": "User Settings",
|
||||
"uses": "Number of uses allowed (-1==No Limit)",
|
||||
"manager": "Manager",
|
||||
"selectManager": "Select Manager for User"
|
||||
"userTheme": "UI Theme",
|
||||
"uses": "Number of uses allowed (-1==No Limit)"
|
||||
},
|
||||
"webhooks": {
|
||||
"webhooks": "Webhooks",
|
||||
"name": "Name",
|
||||
"type": "Webhook Type",
|
||||
"trigger": "Trigger",
|
||||
"enabled": "Enabled",
|
||||
"url": "Webhook URL",
|
||||
"bot_name": "Bot Name",
|
||||
"webhook_body": "Webhook Body",
|
||||
"color": "Select Color Accent",
|
||||
"areYouSureDel": "Are you sure you want to delete this webhook?",
|
||||
"areYouSureRun": "Are you sure you want to test this webhook?",
|
||||
"backup_server": "Server Backup Completed",
|
||||
"bot_name": "Bot Name",
|
||||
"color": "Select Color Accent",
|
||||
"crash_detected": "Server Crashed",
|
||||
"edit": "Edit",
|
||||
"run": "Test Run Webhook",
|
||||
"enabled": "Enabled",
|
||||
"jar_update": "Server Executable Updated",
|
||||
"kill": "Server Killed",
|
||||
"name": "Name",
|
||||
"new": "New Webhook",
|
||||
"run": "Test Run Webhook",
|
||||
"send_command": "Server Command Received",
|
||||
"start_server": "Server Started",
|
||||
"stop_server": "Server Stopped",
|
||||
"crash_detected": "Server Crashed",
|
||||
"jar_update": "Server Executable Updated",
|
||||
"backup_server": "Server Backup Completed",
|
||||
"send_command": "Server Command Received",
|
||||
"kill": "Server Killed"
|
||||
"trigger": "Trigger",
|
||||
"type": "Webhook Type",
|
||||
"url": "Webhook URL",
|
||||
"webhook_body": "Webhook Body",
|
||||
"webhooks": "Webhooks"
|
||||
}
|
||||
}
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Botones",
|
||||
"config": "Configuración",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Creado",
|
||||
"createNew": "Crear un nuevo Token de API",
|
||||
"created": "Creado",
|
||||
"deleteKeyConfirmation": "¿Quieres eliminar esta clave de API? Esto no se puede deshacer.",
|
||||
"deleteKeyConfirmationTitle": "¿Eliminar la clave API ${keyId}?",
|
||||
"getToken": "Conseguir un Token",
|
||||
@ -53,6 +53,20 @@
|
||||
"translationTitle": "Traduccion de Idiomas",
|
||||
"translator": "Traductores"
|
||||
},
|
||||
"customLogin": {
|
||||
"apply": "Aplicar",
|
||||
"backgroundUpload": "Subir imagen de fondo",
|
||||
"customLoginPage": "Personalizar la página de logueo",
|
||||
"delete": "Eliminar",
|
||||
"labelLoginImage": "Elige tu fondo para la pantalla de logueo",
|
||||
"loginBackground": "Imagen de fondo de logueo",
|
||||
"loginImage": "Subir una imagen de fondo para la pantalla de logueo.",
|
||||
"loginOpacity": "Seleccionar la opacidad de la ventana de logueo",
|
||||
"pageTitle": "Página de logueo personalizada",
|
||||
"preview": "Previsualizar",
|
||||
"select": "Seleccionar",
|
||||
"selectImage": "Seleccionar una imagen"
|
||||
},
|
||||
"dashboard": {
|
||||
"actions": "Acciones",
|
||||
"allServers": "Todos los servidores",
|
||||
@ -75,6 +89,7 @@
|
||||
"dashboard": "Panel de control",
|
||||
"delay-explained": "El agente/servicio inicio recientemente y está retrasando el inicio de la instancia del servidor de Minecraft.",
|
||||
"host": "Host",
|
||||
"installing": "Instalando...",
|
||||
"kill": "Matar Proceso",
|
||||
"killing": "Cerrando el proceso...",
|
||||
"lastBackup": "Último:",
|
||||
@ -97,10 +112,9 @@
|
||||
"status": "Estado",
|
||||
"stop": "Detener",
|
||||
"version": "Versión",
|
||||
"welcome": "Bienvenido a Crafty Controller",
|
||||
"installing": "Instalando..."
|
||||
"welcome": "Bienvenido a Crafty Controller"
|
||||
},
|
||||
"datatables": {
|
||||
"datatables": {
|
||||
"i18n": {
|
||||
"aria": {
|
||||
"sortAscending": ": activar para ordenar las columnas de manera ascendente",
|
||||
@ -120,8 +134,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Mostrar 1 fila",
|
||||
"-1": "Mostrar todas las filas",
|
||||
"1": "Mostrar 1 fila",
|
||||
"_": "Mostrar %d filas"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -165,35 +179,35 @@
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"agree": "Aceptar",
|
||||
"bedrockError": "Descargas de Bedrock no disponibles. por favor, compruebe",
|
||||
"cancel": "Cancelar",
|
||||
"contact": "Contacta el soporte de Crafty Control desde Discord",
|
||||
"craftyStatus": "Página de estados de Crafty",
|
||||
"cronFormat": "Detectado formato CRON invalido",
|
||||
"embarassing": "¡Oh cielos! Esto es embarazoso.",
|
||||
"error": "Error!",
|
||||
"eulaAgree": "¿Estás de acuerdo?",
|
||||
"eulaMsg": "Debes aceptar el ",
|
||||
"privMsg": "y el ",
|
||||
"eulaTitle": "Aceptar EULA",
|
||||
"agree": "Aceptar",
|
||||
"cancel": "Cancelar",
|
||||
"fileError": "El tipo de archivo debe ser una imagen.",
|
||||
"fileTooLarge": "Subida fallida. El archivo es demasiado grande. Contacte al administrador del sistema para obtener asistencia.",
|
||||
"hereIsTheError": "Aquí está el error.",
|
||||
"internet": "Hemos detectado que la máquina ejecutando Crafty no tiene acceso a internet. Las conexiones de cliente al servidor podrían ser limitadas.",
|
||||
"no-file": "No se puede encontrar el archivo solicitado. Verifique la dirección. ¿Quizas Crafty no tiene los permisos adecuados?",
|
||||
"noJava": "Servidor {} no pudo iniciarse: Detectamos que Java no está instalado, Por favor instale java e inicie el servidor.",
|
||||
"installerJava": "Fallo al instalar {} : La instalación de Forge requiere Java. Detectamos que Java no está instalado. Por favor instale java e inicie el servidor.",
|
||||
"not-downloaded": "No podemos encontrar el archivo ejecutable. ¿Ha terminado de descargarse? ¿Están los permisos puestos como ejecutable?",
|
||||
"portReminder": "Detectamos que es la primera vez que se inicia {}. Asegúrese de configurar el puerto {} a través de su router/firewall para hacer el servidor accesible por Internet.",
|
||||
"start-error": "Servidor {} fallo al iniciar con código de error: {}",
|
||||
"terribleFailure": "¡Un terrible error!",
|
||||
"superError": "Debes ser un super usuario para completar esta acción.",
|
||||
"fileError": "El tipo de archivo debe ser una imagen.",
|
||||
"internet": "Hemos detectado que la máquina ejecutando Crafty no tiene acceso a internet. Las conexiones de cliente al servidor podrían ser limitadas.",
|
||||
"migration": "El almacenamiento del servidor principal de Crafty se está migrando a una nueva ubicación. El inicio de servidores se han suspendido durante este periodo. Espere mientras finalizamos esta migración.",
|
||||
"no-file": "No se puede encontrar el archivo solicitado. Verifique la dirección. ¿Quizas Crafty no tiene los permisos adecuados?",
|
||||
"noInternet": "Crafty tiene problemas para acceder a Internet. La creación del servidor ha sido deshabilitada. Verifique su conexión a Internet y actualice esta página.Crafty tiene problemas para acceder a Internet. La creación del servidor ha sido deshabilitada. Verifique su conexión a Internet y actualice esta página.",
|
||||
"noJava": "Servidor {} no pudo iniciarse: Detectamos que Java no está instalado, Por favor instale java e inicie el servidor.",
|
||||
"not-downloaded": "No podemos encontrar el archivo ejecutable. ¿Ha terminado de descargarse? ¿Están los permisos puestos como ejecutable?",
|
||||
"portReminder": "Detectamos que es la primera vez que se inicia {}. Asegúrese de configurar el puerto {} a través de su router/firewall para hacer el servidor accesible por Internet.",
|
||||
"privMsg": "y el ",
|
||||
"serverJars1": "API de Servidor JAR no disponible. por favor, compruebe",
|
||||
"bedrockError": "Descargas de Bedrock no disponibles. por favor, compruebe",
|
||||
"craftyStatus": "Página de estados de Crafty",
|
||||
"serverJars2": "para la información más actualizada.",
|
||||
"cronFormat": "Detectado formato CRON invalido",
|
||||
"noInternet": "Crafty tiene problemas para acceder a Internet. La creación del servidor ha sido deshabilitada. Verifique su conexión a Internet y actualice esta página.Crafty tiene problemas para acceder a Internet. La creación del servidor ha sido deshabilitada. Verifique su conexión a Internet y actualice esta página."
|
||||
},
|
||||
"start-error": "Servidor {} fallo al iniciar con código de error: {}",
|
||||
"superError": "Debes ser un super usuario para completar esta acción.",
|
||||
"terribleFailure": "¡Un terrible error!"
|
||||
},
|
||||
"footer": {
|
||||
"allRightsReserved": "Todos los derechos reservados",
|
||||
"copyright": "Copyright",
|
||||
@ -222,45 +236,31 @@
|
||||
"panelConfig": {
|
||||
"adminControls": "Controles de administrador",
|
||||
"allowedServers": "Servidores Permitidos",
|
||||
"apply": "Aplicar",
|
||||
"assignedRoles": "Grupos asignados",
|
||||
"cancel": "Cancelar",
|
||||
"clearComms": "Limpiar comandos sin ejecutar.",
|
||||
"select": "Seleccionar",
|
||||
"apply": "Aplicar",
|
||||
"delete": "Eliminar",
|
||||
"edit": "Editar",
|
||||
"enableLang": "Activar todos los Idiomas",
|
||||
"enabled": "Habilitado",
|
||||
"match": "Las contraseñas deben coincidir",
|
||||
"globalExplain": "Donde Crafty almacena todos los archivos de tu servidor. (Juntaremos la ruta con /servers/[uuid de servidor])",
|
||||
"globalServer": "Directorio Global de Servidores",
|
||||
"match": "Las contraseñas deben coincidir",
|
||||
"newRole": "Agregar nuevo Grupo",
|
||||
"newUser": "Agregar nuevo Usuario",
|
||||
"noMounts": "No mostrar Montajes en panel de Control",
|
||||
"pageTitle": "Configuración del panel",
|
||||
"role": "Grupo",
|
||||
"roles": "Grupos",
|
||||
"roleUsers": "Usuarios del Grupo",
|
||||
"roles": "Grupos",
|
||||
"save": "Guardar",
|
||||
"select": "Seleccionar",
|
||||
"superConfirm": "Proceder solamente si quieres que este usuario tenga acceso a TODO (todas las cuentas de usuarios, servidores, configuración del panel, etc.) Hasta puede quitarte tu permiso de super usuario.",
|
||||
"superConfirmTitle": "¿Activar super usuario? ¿Seguro?",
|
||||
"user": "Usuario",
|
||||
"users": "Usuarios",
|
||||
"title": "Configuración de Crafty",
|
||||
"enableLang": "Activar todos los Idiomas",
|
||||
"noMounts": "No mostrar Montajes en panel de Control",
|
||||
"globalServer": "Directorio Global de Servidores",
|
||||
"globalExplain": "Donde Crafty almacena todos los archivos de tu servidor. (Juntaremos la ruta con /servers/[uuid de servidor])"
|
||||
},
|
||||
"customLogin": {
|
||||
"customLoginPage": "Personalizar la página de logueo",
|
||||
"loginImage": "Subir una imagen de fondo para la pantalla de logueo.",
|
||||
"labelLoginImage": "Elige tu fondo para la pantalla de logueo",
|
||||
"backgroundUpload": "Subir imagen de fondo",
|
||||
"loginBackground": "Imagen de fondo de logueo",
|
||||
"loginOpacity": "Seleccionar la opacidad de la ventana de logueo",
|
||||
"select": "Seleccionar",
|
||||
"apply": "Aplicar",
|
||||
"delete": "Eliminar",
|
||||
"selectImage": "Seleccionar una imagen",
|
||||
"preview": "Previsualizar",
|
||||
"pageTitle": "Página de logueo personalizada"
|
||||
"user": "Usuario",
|
||||
"users": "Usuarios"
|
||||
},
|
||||
"rolesConfig": {
|
||||
"config": "Configuración de grupos",
|
||||
@ -287,9 +287,11 @@
|
||||
"serversDesc": "Servidores a los que este grupo puede acceder"
|
||||
},
|
||||
"serverBackups": {
|
||||
"after": "Comando ejecutado después del respaldo",
|
||||
"backupAtMidnight": "¿Copia de seguridad automática a medianoche?",
|
||||
"backupNow": "¡Respalde ahora!",
|
||||
"backupTask": "Se ha iniciado una tarea de copia de seguridad.",
|
||||
"before": "Comando ejecutado antes del respaldo",
|
||||
"cancel": "Cancelar",
|
||||
"clickExclude": "Click para seleccionar las Exclusiones",
|
||||
"compress": "Comprimir la copia",
|
||||
@ -313,15 +315,13 @@
|
||||
"shutdown": "Apagar el servidor durante la duración de la copia del respaldo.",
|
||||
"size": "Tamaño",
|
||||
"storageLocation": "Ubicación de almacenamiento",
|
||||
"storageLocationDesc": "¿Dónde quieres almacenar las copias de seguridad?",
|
||||
"before": "Comando ejecutado antes del respaldo",
|
||||
"after": "Comando ejecutado después del respaldo"
|
||||
},
|
||||
"storageLocationDesc": "¿Dónde quieres almacenar las copias de seguridad?"
|
||||
},
|
||||
"serverConfig": {
|
||||
"bePatientDelete": "Tenga paciencia mientras eliminamos su servidor del panel de Crafty. Esta pantalla se cerrará en unos momentos.",
|
||||
"bePatientDeleteFiles": "Tenga paciencia mientras eliminamos su servidor del panel de Crafty y eliminamos todos los archivos. Esta pantalla se cerrará en unos momentos.",
|
||||
"bePatientUpdate": "Tenga paciencia mientras actualizamos el servidor. El tiempo de descarga puede variar según la velocidad del Internet...<br /> Esta pantalla se actualizará en unos momentos.",
|
||||
"cancel": "Cancelar",
|
||||
"cancel": "Cancelar",
|
||||
"crashTime": "Tiempo de espera por crasheo",
|
||||
"crashTimeDesc": "¿Cuanto tiempo esperar para considerar el servidor como crasheado?",
|
||||
"deleteFilesQuestion": "¿Eliminar archivos del servidor del host?",
|
||||
@ -331,6 +331,8 @@
|
||||
"deleteServerQuestionMessage": "¿Estás seguro de que desea eliminar este servidor? Después de esto no hay vuelta atrás...",
|
||||
"exeUpdateURL": "URL de actualización para el ejecutable del Servidor",
|
||||
"exeUpdateURLDesc": "URL de descarga directa para actualizaciones.",
|
||||
"ignoredExits": "Codigos de salida al crashear ignorados",
|
||||
"ignoredExitsExplain": "Codigos de salida que Crafty deberia ignorar como un 'apagado' normal (separarados por comas)",
|
||||
"javaNoChange": "No sobrescribir",
|
||||
"javaVersion": "Sobrescribir versión de Java.",
|
||||
"javaVersionDesc": "Si vas a sobrescribir la versión de Java, Asegúrese de rodear la ubicación con comillas. (Variable predeterminada 'java' excluida)",
|
||||
@ -360,19 +362,17 @@
|
||||
"serverPort": "Puerto del Servidor",
|
||||
"serverPortDesc": "Puerto al que Crafty debería conectarse para obtener estadísticas",
|
||||
"serverStopCommand": "Comando de detención del Servidor",
|
||||
"serverStopCommandDesc": "Comando que enviar al programa para detener el servidor.",
|
||||
"serverStopCommandDesc": "Comando que enviar al programa para detener el servidor.",
|
||||
"showStatus": "Mostrar en la pagina de estados publicos",
|
||||
"stopBeforeDeleting": "Por favor, detenga el servidor antes de eliminarlo.",
|
||||
"update": "Actualizar Ejecutable",
|
||||
"yesDelete": "Sí, borralo.",
|
||||
"yesDeleteFiles": "Sí, borra los archivos.",
|
||||
"shutdownTimeout": "Tiempo de espera al apagar",
|
||||
"timeoutExplain1": "Cuánto tiempo esperará Crafty a que su servidor se apague después de ejecutar el",
|
||||
"timeoutExplain2": "comando antes de forzar cerrar el proceso.",
|
||||
"shutdownTimeout": "Tiempo de espera al apagar",
|
||||
"statsHint1": "El puerto que ejecuta su servidor debe ir aquí. Crafty abre una conexión a su servidor para obtener estadísticas.",
|
||||
"statsHint2": "Esto no cambia el puerto de su servidor. Aún debe cambiar el puerto en el archivo de configuración de su servidor.",
|
||||
"ignoredExits": "Codigos de salida al crashear ignorados",
|
||||
"ignoredExitsExplain": "Codigos de salida que Crafty deberia ignorar como un 'apagado' normal (separarados por comas)"
|
||||
"stopBeforeDeleting": "Por favor, detenga el servidor antes de eliminarlo.",
|
||||
"timeoutExplain1": "Cuánto tiempo esperará Crafty a que su servidor se apague después de ejecutar el",
|
||||
"timeoutExplain2": "comando antes de forzar cerrar el proceso.",
|
||||
"update": "Actualizar Ejecutable",
|
||||
"yesDelete": "Sí, borralo.",
|
||||
"yesDeleteFiles": "Sí, borra los archivos."
|
||||
},
|
||||
"serverConfigHelp": {
|
||||
"desc": "Aquí es donde puede cambiar la configuración de su servidor",
|
||||
@ -395,15 +395,15 @@
|
||||
"backup": "Respaldos",
|
||||
"config": "Configuración",
|
||||
"files": "Archivos",
|
||||
"filter": "Filtrar Registros",
|
||||
"filterList": "Palabras filtradas",
|
||||
"logs": "Registros",
|
||||
"metrics": "Métricas",
|
||||
"playerControls": "Gestionar jugadores",
|
||||
"reset": "Reiniciar Desplazamiento",
|
||||
"schedule": "Programar Tareas",
|
||||
"serverDetails": "Detalles del Servidor",
|
||||
"terminal": "Terminal",
|
||||
"metrics": "Métricas",
|
||||
"reset": "Reiniciar Desplazamiento",
|
||||
"filter": "Filtrar Registros",
|
||||
"filterList": "Palabras filtradas"
|
||||
"terminal": "Terminal"
|
||||
},
|
||||
"serverFiles": {
|
||||
"clickUpload": "Click aquí para seleccionar tus archivos",
|
||||
@ -437,6 +437,11 @@
|
||||
"waitUpload": "Espera mientras subimos tus archivos... Esto puede tomar un tiempo.",
|
||||
"yesDelete": "Sí, entiendo las consecuencias"
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reiniciar Zoom",
|
||||
"zoomHint1": "Para hacer zoom en el gráfico, mantén presionada la tecla shift y luego usa la rueda de desplazamiento.",
|
||||
"zoomHint2": "Alternativamente, mantén presionada la tecla shift, luego haz click y arrastra el área en la que deseas hacer zoom."
|
||||
},
|
||||
"serverPlayerManagement": {
|
||||
"bannedPlayers": "Jugadores Baneados",
|
||||
"loadingBannedPlayers": "Cargando jugadores baneados",
|
||||
@ -444,7 +449,6 @@
|
||||
},
|
||||
"serverScheduleConfig": {
|
||||
"backup": "Respaldar Servidor",
|
||||
"select": "Básico, / Cron / En cadena",
|
||||
"basic": "Básico",
|
||||
"children": "Tareas 'hijos' enlazados: ",
|
||||
"command": "Comando",
|
||||
@ -465,35 +469,36 @@
|
||||
"parent-explain": "¿Qué tarea programada debería activar esta?",
|
||||
"reaction": "Reacción",
|
||||
"restart": "Reiniciar el Servidor",
|
||||
"select": "Básico, / Cron / En cadena",
|
||||
"start": "Iniciar el Servidor",
|
||||
"stop": "Apagar el Servidor",
|
||||
"time": "Horario",
|
||||
"time-explain": "¿A que hora quiere que la tarea programada se ejecute?"
|
||||
},
|
||||
"serverSchedules": {
|
||||
"scheduledTasks": "Tareas programadas",
|
||||
"create": "Crear nueva tarea programada",
|
||||
"name": "Nombre",
|
||||
"action": "Acción",
|
||||
"command": "Comando",
|
||||
"interval": "Intervalo",
|
||||
"nextRun": "Siguiente ejecución",
|
||||
"enabled": "Habilitado",
|
||||
"edit": "Editar",
|
||||
"every": "Cada",
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"cron": "Cadena CRON",
|
||||
"details": "Detalles de la tarea",
|
||||
"child": "Tarea hija con ID ",
|
||||
"areYouSure": "¿Borrar tarea programada?",
|
||||
"close": "Cerrar",
|
||||
"delete": "Eliminar",
|
||||
"cancel": "Cancelar",
|
||||
"cannotSee": "¿No puede ver todo?",
|
||||
"cannotSeeOnMobile": "Intente hacer click en una tarea programada para obtener todos los detalles.",
|
||||
"child": "Tarea hija con ID ",
|
||||
"close": "Cerrar",
|
||||
"command": "Comando",
|
||||
"confirm": "Confirmar",
|
||||
"confirmDelete": "¿De verdad desea eliminar esta tarea programada? Esto no se puede deshacer."
|
||||
"confirmDelete": "¿De verdad desea eliminar esta tarea programada? Esto no se puede deshacer.",
|
||||
"create": "Crear nueva tarea programada",
|
||||
"cron": "Cadena CRON",
|
||||
"delete": "Eliminar",
|
||||
"details": "Detalles de la tarea",
|
||||
"edit": "Editar",
|
||||
"enabled": "Habilitado",
|
||||
"every": "Cada",
|
||||
"interval": "Intervalo",
|
||||
"name": "Nombre",
|
||||
"nextRun": "Siguiente ejecución",
|
||||
"no": "No",
|
||||
"scheduledTasks": "Tareas programadas",
|
||||
"yes": "Sí"
|
||||
},
|
||||
"serverStats": {
|
||||
"cpuUsage": "Uso de CPU",
|
||||
@ -516,19 +521,14 @@
|
||||
"commandInput": "Introducir tu comando",
|
||||
"delay-explained": "El agente/servicio se inicio recientemente y está retrasando iniciar la instancia del servidor de Minecraft.",
|
||||
"downloading": "Descargando...",
|
||||
"installing": "Instalando...",
|
||||
"restart": "Reiniciar",
|
||||
"sendCommand": "Enviar comando",
|
||||
"start": "Iniciar",
|
||||
"starting": "Inicio-retrasado",
|
||||
"stop": "Detener",
|
||||
"stopScroll": "Detener Desplazamiento automático",
|
||||
"updating": "Actualizando...",
|
||||
"installing": "Instalando..."
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reiniciar Zoom",
|
||||
"zoomHint1": "Para hacer zoom en el gráfico, mantén presionada la tecla shift y luego usa la rueda de desplazamiento.",
|
||||
"zoomHint2": "Alternativamente, mantén presionada la tecla shift, luego haz click y arrastra el área en la que deseas hacer zoom."
|
||||
"updating": "Actualizando..."
|
||||
},
|
||||
"serverWizard": {
|
||||
"absoluteServerPath": "Ruta absoluta del servidor",
|
||||
@ -542,13 +542,12 @@
|
||||
"defaultPort": "25565 (Por defecto)",
|
||||
"downloading": "Descargando Servidor...",
|
||||
"explainRoot": "Por favor, haga click en el botón debajo para seleccionar el directorio raíz de su servidor.",
|
||||
"importing": "Importando Servidor...",
|
||||
"importServer": "Importar Servidor existente",
|
||||
"importServerButton": "¡Importar Servidor!",
|
||||
"importZip": "Importar desde archivo Zip",
|
||||
"uploadZip": "Subir archivo Zip para importar servidor",
|
||||
"importing": "Importando Servidor...",
|
||||
"labelZipFile": "Elige tu archivo Zip",
|
||||
"maxMem": "Memoria máxima",
|
||||
"maxMem": "Memoria máxima",
|
||||
"minMem": "Memoria mínima",
|
||||
"myNewServer": "Mi nuevo Servidor",
|
||||
"newServer": "Crear Servidor",
|
||||
@ -566,10 +565,11 @@
|
||||
"serverPath": "Ruta del servidor",
|
||||
"serverPort": "Puerto del servidor",
|
||||
"serverType": "Tipo de servidor",
|
||||
"serverVersion": "Versión del servidor",
|
||||
"serverUpload": "Subir servidor comprimido",
|
||||
"serverVersion": "Versión del servidor",
|
||||
"sizeInGB": "Tamaño en GB",
|
||||
"uploadButton": "Subir",
|
||||
"uploadZip": "Subir archivo Zip para importar servidor",
|
||||
"zipPath": "Ruta del servidor"
|
||||
},
|
||||
"sidebar": {
|
||||
@ -577,10 +577,10 @@
|
||||
"credits": "Créditos",
|
||||
"dashboard": "Panel de control",
|
||||
"documentation": "Documentación",
|
||||
"inApp": "Documentación de la Aplicación",
|
||||
"navigation": "Navegación",
|
||||
"newServer": "Crear nuevo Servidor",
|
||||
"servers": "Servidores",
|
||||
"inApp": "Documentación de la Aplicación"
|
||||
"servers": "Servidores"
|
||||
},
|
||||
"userConfig": {
|
||||
"apiKey": "Claves API",
|
||||
@ -592,9 +592,9 @@
|
||||
"craftyPermDesc": "Permisos de Crafty que tiene este usuario.",
|
||||
"craftyPerms": "Permisos de Crafty: ",
|
||||
"created": "Creado: ",
|
||||
"delSuper": "No puedes eliminar un super usuario",
|
||||
"deleteUser": "Eliminar Usuario: ",
|
||||
"deleteUserB": "Eliminar Usuario",
|
||||
"delSuper": "No puedes eliminar un super usuario",
|
||||
"enabled": "Habilitado",
|
||||
"gravDesc": "Este mail será utilizado únicamente para obtener el Gravatar. Crafty no utilizará esta información bajo otra circunstancia aparte de obtener el Gravatar™",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
@ -602,6 +602,7 @@
|
||||
"lastLogin": "Última Sesión: ",
|
||||
"lastUpdate": "Última Actualización: ",
|
||||
"leaveBlank": "Para editar el usuario sin cambiar la contraseña, dejar en blanco.",
|
||||
"manager": "Administrador",
|
||||
"member": "¿Miembro?",
|
||||
"notExist": "¡No se puede eliminar algo que no existe!",
|
||||
"pageTitle": "Editar Usuario.",
|
||||
@ -610,16 +611,15 @@
|
||||
"permName": "Nombre del Permiso",
|
||||
"repeat": "Repita la contraseña.",
|
||||
"roleName": "Nombre del grupo.",
|
||||
"selectManager": "Seleccionar Administrador para Usuario",
|
||||
"super": "Super Usuario",
|
||||
"userLang": "Idioma del usuario.",
|
||||
"userTheme": "Tema de Interfaz",
|
||||
"userName": "Nombre de usuario.",
|
||||
"userNameDesc": "¿Como quieres llamar a este usuario?",
|
||||
"userRoles": "Grupos del usuario.",
|
||||
"userRolesDesc": "Grupos a los que este usuario pertenece.",
|
||||
"userSettings": "Configuración de Usuario.",
|
||||
"uses": "Número de usos permitidos. (Sin límite: -1)",
|
||||
"manager": "Administrador",
|
||||
"selectManager": "Seleccionar Administrador para Usuario"
|
||||
"userTheme": "Tema de Interfaz",
|
||||
"uses": "Número de usos permitidos. (Sin límite: -1)"
|
||||
}
|
||||
}
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Painikkeet",
|
||||
"config": "Asetukset",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Luotu",
|
||||
"createNew": "Luo uusi API-avain",
|
||||
"created": "Luotu",
|
||||
"deleteKeyConfirmation": "Haluatko varmasti poistaa tämän API-avaimen? Tämä on peruuttamaton toimenpide!",
|
||||
"deleteKeyConfirmationTitle": "Poistetaanko API-avain ${keyId}?",
|
||||
"getToken": "Hanki API-avain",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Näytä yksi rivi",
|
||||
"-1": "Näytä kaikki rivit",
|
||||
"1": "Näytä yksi rivi",
|
||||
"_": "Näytä %d riviä"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -238,8 +238,8 @@
|
||||
"newUser": "Luo uusi käyttäjä",
|
||||
"pageTitle": "Paneelin asetukset",
|
||||
"role": "Rooli",
|
||||
"roles": "Roolit",
|
||||
"roleUsers": "Roolin käyttäjät",
|
||||
"roles": "Roolit",
|
||||
"save": "Tallenna",
|
||||
"superConfirm": "Jatka vain, jos haluat, että tällä käyttäjällä on pääsy KAIKKEEN (kaikki käyttäjätilit, palvelimet, paneelin asetukset jne.). Hän voi jopa poistaa sinun järjestelmänvalvojan oikeutesi.",
|
||||
"superConfirmTitle": "Otetaanko järjestelmänvalvojan oikeudet käyttöön? Oletko varma?",
|
||||
@ -488,10 +488,10 @@
|
||||
"defaultPort": "Oletusarvo 25565",
|
||||
"downloading": "Lataamme palvelinta...",
|
||||
"explainRoot": "Napsauta alla olevaa painiketta valitaksesi palvelimesi juurihakemiston arkistosta",
|
||||
"importing": "Tuomme palvelinta...",
|
||||
"importServer": "Tuo olemassa oleva palvelin",
|
||||
"importServerButton": "Tuo palvelin!",
|
||||
"importZip": "Tuo zip-tiedostosta",
|
||||
"importing": "Tuomme palvelinta...",
|
||||
"maxMem": "Maximi Muisti",
|
||||
"minMem": "Minimi Muisti",
|
||||
"myNewServer": "Minun uusi palvelin",
|
||||
@ -533,9 +533,9 @@
|
||||
"craftyPermDesc": "Craftyn oikeuksia, joita tällä käyttäjällä on",
|
||||
"craftyPerms": "Craftyn oikeudet: ",
|
||||
"created": "Luotu: ",
|
||||
"delSuper": "Et voi poistaa järjestelmänvalvojaa!",
|
||||
"deleteUser": "Poista käyttäjä: ",
|
||||
"deleteUserB": "Poista käyttäjä",
|
||||
"delSuper": "Et voi poistaa järjestelmänvalvojaa!",
|
||||
"enabled": "Päällä",
|
||||
"gravDesc": "Tämä shäköposti on vain Gravatar™-palvelun käyttöön. Crafty ei missään olosuhteissa käytä tätä sähköpostia muuhun kuin Gravatar™-tietojesi etsimiseen",
|
||||
"gravEmail": "Gravatar™ Sähköposti",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Boutons",
|
||||
"config": "Configuration",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Crée",
|
||||
"createNew": "Créer un nouveau Jeton d'API",
|
||||
"created": "Crée",
|
||||
"deleteKeyConfirmation": "Es-tu sûr de vouloir supprimer cette clé API? Tu ne pourras plus revenir en arrière.",
|
||||
"deleteKeyConfirmationTitle": "Supprimer la clé API ${keyId}?",
|
||||
"getToken": "Obtenir un Jeton",
|
||||
@ -75,6 +75,7 @@
|
||||
"dashboard": "Tableau de Bord",
|
||||
"delay-explained": "Le service/agent a récemment démarré et retarde le démarrage de l'instance du serveur minecraft",
|
||||
"host": "Hôte",
|
||||
"installing": "Installation ...",
|
||||
"kill": "Tuer le processus",
|
||||
"killing": "Processus de mise à mort...",
|
||||
"lastBackup": "Dernier:",
|
||||
@ -97,8 +98,7 @@
|
||||
"status": "Statut",
|
||||
"stop": "Arrêter",
|
||||
"version": "Version",
|
||||
"welcome": "Bienvenue sur Crafty Controller",
|
||||
"installing": "Installation ..."
|
||||
"welcome": "Bienvenue sur Crafty Controller"
|
||||
},
|
||||
"datatables": {
|
||||
"i18n": {
|
||||
@ -120,8 +120,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Afficher 1 ligne",
|
||||
"-1": "Afficher toutes les lignes",
|
||||
"1": "Afficher 1 ligne",
|
||||
"_": "Afficher %d lignes"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -215,8 +215,8 @@
|
||||
"newUser": "Ajouter un Nouvel Utilisateur",
|
||||
"pageTitle": "Panneau de Configuration",
|
||||
"role": "Rôle",
|
||||
"roles": "Roles",
|
||||
"roleUsers": "Rôles Utilisteurs",
|
||||
"roles": "Roles",
|
||||
"save": "Enregister",
|
||||
"superConfirm": "Utiliser seulement si tu veux que cet utilisateur ait accès à ABSOLUMENT TOUT (tous les comptes, tous les serveurs, panneau de configuration, etc). Ils peuvent même supprimer tes droits superuser.",
|
||||
"superConfirmTitle": "Activer le superuser ? Es-tu sûr ?",
|
||||
@ -384,6 +384,11 @@
|
||||
"waitUpload": "Merci de patienter pendant que nous téléversons tes fichiers... Cela peut prendre un certain temps.",
|
||||
"yesDelete": "Oui, je comprends les conséquences"
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "Pour zoomer le graphique, maintenir la touche SHIFT et utiliser la molette de la souris.",
|
||||
"zoomHint2": "Il est aussi possible de maintenir la touche SHIFT puis de clicker et déplacer la zone sur laquelle zoomer."
|
||||
},
|
||||
"serverPlayerManagement": {
|
||||
"bannedPlayers": "Joueurs Bannins",
|
||||
"loadingBannedPlayers": "Chargement des Joueurs Bannis",
|
||||
@ -445,19 +450,14 @@
|
||||
"commandInput": "Entre ta commande",
|
||||
"delay-explained": "Le service/agent a récemment démarré et retarde le démarrage de l'instance du serveur minecraft",
|
||||
"downloading": "Téléchargement ...",
|
||||
"installing": "Installation ...",
|
||||
"restart": "Redémarrer",
|
||||
"sendCommand": "Envoiyer commande",
|
||||
"start": "Démarrer",
|
||||
"starting": "Démarrage retardé",
|
||||
"stop": "Arrêter",
|
||||
"stopScroll": "Stopper l'Auto Défilement",
|
||||
"updating": "Mise à Jour ...",
|
||||
"installing": "Installation ..."
|
||||
},
|
||||
"serverMetrics": {
|
||||
"resetZoom": "Reset Zoom",
|
||||
"zoomHint1": "Pour zoomer le graphique, maintenir la touche SHIFT et utiliser la molette de la souris.",
|
||||
"zoomHint2": "Il est aussi possible de maintenir la touche SHIFT puis de clicker et déplacer la zone sur laquelle zoomer."
|
||||
"updating": "Mise à Jour ..."
|
||||
},
|
||||
"serverWizard": {
|
||||
"absoluteServerPath": "Chemin absolu de Votre Serveur",
|
||||
@ -471,10 +471,10 @@
|
||||
"defaultPort": "25565 par défaut",
|
||||
"downloading": "Téléchargement du Serveur ...",
|
||||
"explainRoot": "Merci de clicker sur le bouton ci-dessous pour sélectionner le dossier du server contenu dans l'Archive",
|
||||
"importing": "Importation du Serveur ...",
|
||||
"importServer": "Importer un Serveur Existant",
|
||||
"importServerButton": "Importer Serveur !",
|
||||
"importZip": "Importer depuis un Fichier Zip",
|
||||
"importing": "Importation du Serveur ...",
|
||||
"maxMem": "Mémoire Maximum",
|
||||
"minMem": "Mémoire Minimum",
|
||||
"myNewServer": "Mon Nouveau Serveur",
|
||||
@ -516,9 +516,9 @@
|
||||
"craftyPermDesc": "Les permisisons de l'Utilisateur pour Crafty ",
|
||||
"craftyPerms": "Permissions de Crafty : ",
|
||||
"created": "Crée le : ",
|
||||
"delSuper": "Tu ne peux pas supprimer un Super Utilisateur",
|
||||
"deleteUser": "Supprimer Utilisateur : ",
|
||||
"deleteUserB": "Supprimer l'Utilisateur",
|
||||
"delSuper": "Tu ne peux pas supprimer un Super Utilisateur",
|
||||
"enabled": "Activé",
|
||||
"gravDesc": "Cet email est strictement réservé pour être utiliser avec Gravatar™. En aucune circonstances Crafty n'utilisera cet email pour autre chose que trouver ton Gravatar™",
|
||||
"gravEmail": "Email Gravatar™",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Knoppen",
|
||||
"config": "Konfiguraasje",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Oanmakke",
|
||||
"createNew": "Meitsje nij API-token",
|
||||
"created": "Oanmakke",
|
||||
"deleteKeyConfirmation": "Wolle jo dizze API-kaai wiskje? Dit kin net ûngedien makke wurde.",
|
||||
"deleteKeyConfirmationTitle": "API-kaai ${keyId} wiskje?",
|
||||
"getToken": "Krije in token",
|
||||
@ -40,12 +40,12 @@
|
||||
"pageDescription": "Sûnder dizze minsken soene jo Crafty net hawwe",
|
||||
"pageTitle": "Credits",
|
||||
"patreonDesc": "oan ús Patreon / Ko-fi-supporters!",
|
||||
"subscriptionLevel": "Nivel",
|
||||
"subscriberName": "Namme",
|
||||
"patreonOther": "Oare",
|
||||
"patreonSupporter": "Patreon / Ko-fi Supporters",
|
||||
"patreonUpdate": "Lêste update:",
|
||||
"retiredStaff": "Pensionearre staff",
|
||||
"subscriberName": "Namme",
|
||||
"subscriptionLevel": "Nivel",
|
||||
"supportTeam": "Support- en dokumintaasjeteam",
|
||||
"thankYou": "TANK JOU",
|
||||
"translationDesc": "oan ús mienskip dy't oerset!",
|
||||
@ -118,8 +118,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Lit 1 rigel sjen",
|
||||
"-1": "Lit alle rigels sjen",
|
||||
"1": "Lit 1 rigel sjen",
|
||||
"_": "%d rigels sjen litte"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -212,8 +212,8 @@
|
||||
"newUser": "Nije brûker tafoegje",
|
||||
"pageTitle": "Paneelkonfiguraasje",
|
||||
"role": "Rol",
|
||||
"roles": "Rollen",
|
||||
"roleUsers": "Rol brûkers",
|
||||
"roles": "Rollen",
|
||||
"save": "Opslaan",
|
||||
"superConfirm": "Gean allinich troch as jo wolle dat dizze brûker tagong hat ta ALLES (alle brûkersakkounts, servers, panielynstellingen, ensfh.). Se kinne sels jo superuser-rjochten ynlûke.",
|
||||
"superConfirmTitle": "Superbrûker ynskeakelje? Binne jo wis?",
|
||||
@ -457,10 +457,10 @@
|
||||
"defaultPort": "25565 standert",
|
||||
"downloading": "Server ynlade...",
|
||||
"explainRoot": "Klikje asjebleaft op de knop hjirûnder om de root-map fan jo server yn it argyf te selektearjen",
|
||||
"importing": "Server ymportearje...",
|
||||
"importServer": "Ymportearje in besteande server",
|
||||
"importServerButton": "Server ymportearje!",
|
||||
"importZip": "Ymportearje út in zip-bestân",
|
||||
"importing": "Server ymportearje...",
|
||||
"maxMem": "Maksimum memory",
|
||||
"minMem": "Minimum memory",
|
||||
"myNewServer": "Myn nije server",
|
||||
@ -502,9 +502,9 @@
|
||||
"craftyPermDesc": "Crafty tastimmingen dizze brûker hat ",
|
||||
"craftyPerms": "Crafty tastimmingen: ",
|
||||
"created": "Oanmakke: ",
|
||||
"delSuper": "Jo kinne in superbrûker net wiskje",
|
||||
"deleteUser": "Wiskje brûker: ",
|
||||
"deleteUserB": "Wiskje brûker",
|
||||
"delSuper": "Jo kinne in superbrûker net wiskje",
|
||||
"enabled": "Ynskeakele",
|
||||
"gravDesc": "Dizze e-post is strikt foar gebrûk mei Gravatar™. Crafty sil dizze e-post ûnder gjin inkelde omstannichheid brûke foar wat oars as it opsykjen fan jo Gravatar™",
|
||||
"gravEmail": "Gravatar™ e-post",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "כפתורים",
|
||||
"config": "הגדרה",
|
||||
"crafty": "קראפטי: ",
|
||||
"created": "נוצר",
|
||||
"createNew": "חדש API צור מפתח",
|
||||
"created": "נוצר",
|
||||
"deleteKeyConfirmation": "האם ברצונך למחוק מפתח API זה? אי אפשר לבטל את זה.",
|
||||
"deleteKeyConfirmationTitle": "? ${keyId} API-להסיר את מפתח ה",
|
||||
"getToken": "קבלת אסימון",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "הצגת שורה אחת",
|
||||
"-1": "הצגת כל השורות",
|
||||
"1": "הצגת שורה אחת",
|
||||
"_": "הצג %d שורות"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "הוספת משתמש חדש",
|
||||
"pageTitle": "הגדרת פאנל",
|
||||
"role": "תפקיד",
|
||||
"roles": "תפקידים",
|
||||
"roleUsers": "תפקידי משתמשים",
|
||||
"roles": "תפקידים",
|
||||
"save": "שמירה",
|
||||
"superConfirm": "המשיכו רק אם אתם רוצים שלמשתמש זה תהיה גישה להכל (כל חשבונות המשתמש, השרתים, הגדרות הפאנל וכו'). הם יכולים אפילו למחוק את זכויות משתמש העל שלך.",
|
||||
"superConfirmTitle": "להפעיל משתמש-על? האם אתם בטוחים?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 ברירת מחדל",
|
||||
"downloading": "מוריד שרת...",
|
||||
"explainRoot": "אנא לחץ על הלחצן למטה כדי לבחור את ה-root dir של השרת שלך בתוך הארכיון",
|
||||
"importing": "מייבא שרת...",
|
||||
"importServer": "ייבוא שרת קיים",
|
||||
"importServerButton": "ייבוא שרת!",
|
||||
"importZip": "ייבוא מקובץ Zip",
|
||||
"importing": "מייבא שרת...",
|
||||
"maxMem": "מקסימום זיכרון",
|
||||
"minMem": "מינימום זיכרון",
|
||||
"myNewServer": "השרת החדש שלי",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "הרשאות קראפטי יש למשתמש הזה ",
|
||||
"craftyPerms": "הרשאות קראפטי: ",
|
||||
"created": "נוצר: ",
|
||||
"delSuper": "אינך יכול למחוק משתמש-על",
|
||||
"deleteUser": "מחק משתמש: ",
|
||||
"deleteUserB": "מחק משתמש",
|
||||
"delSuper": "אינך יכול למחוק משתמש-על",
|
||||
"enabled": "מופעל",
|
||||
"gravDesc": "אימייל זה מיועד אך ורק לשימוש עם Gravatar™. קראפטי לא תשתמש בשום מקרה באימייל זה לשום דבר מלבד חיפוש Gravatar™ שלך",
|
||||
"gravEmail": "אימייל Gravatar™",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Tipke",
|
||||
"config": "Konfiguracija",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Stvoreno",
|
||||
"createNew": "Stvori novi API token",
|
||||
"created": "Stvoreno",
|
||||
"deleteKeyConfirmation": "Želite li izbrisati ovaj API ključ? Ova radnja je nepovratna.",
|
||||
"deleteKeyConfirmationTitle": "Ukloniti API ključ ${keyId}?",
|
||||
"getToken": "Nabavi token",
|
||||
@ -40,12 +40,12 @@
|
||||
"pageDescription": "Bez ovih ljudi ne biste imali Crafty",
|
||||
"pageTitle": "Zasluge",
|
||||
"patreonDesc": "našim Patreon / Ko-fi donorima!",
|
||||
"subscriptionLevel": "Razina",
|
||||
"subscriberName": "Ime",
|
||||
"patreonOther": "Ostalo",
|
||||
"patreonSupporter": "Patreon / Ko-fi donorima",
|
||||
"patreonUpdate": "Zadnje ažuriranje:",
|
||||
"retiredStaff": "Umirovljeno osoblje",
|
||||
"subscriberName": "Ime",
|
||||
"subscriptionLevel": "Razina",
|
||||
"supportTeam": "Tim za podršku i dokumentaciju",
|
||||
"thankYou": "HVALA",
|
||||
"translationDesc": "našoj zajednici koja prevodi!",
|
||||
@ -118,8 +118,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Prikaži 1 red",
|
||||
"-1": "Prikaži sve retke",
|
||||
"1": "Prikaži 1 red",
|
||||
"_": "Prikaži %d redaka"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -212,8 +212,8 @@
|
||||
"newUser": "Dodaj novog korisnika",
|
||||
"pageTitle": "Konfiguracija panela",
|
||||
"role": "Uloga",
|
||||
"roles": "Uloge",
|
||||
"roleUsers": "Uloge korisnika",
|
||||
"roles": "Uloge",
|
||||
"save": "Spremi",
|
||||
"superConfirm": "Nastavite samo ako želite da ovaj korisnik ima pristup SVEMU (svim korisničkim računima, poslužiteljima, postavkama panela, itd.). Oni čak mogu i opozvati Vaša prava superkorisnika.",
|
||||
"superConfirmTitle": "Omogućiti superkorisnika? Jeste li sigurni?",
|
||||
@ -457,10 +457,10 @@
|
||||
"defaultPort": "25565 zadano",
|
||||
"downloading": "Preuzimanje poslužitelja...",
|
||||
"explainRoot": "Kliknite donji gumb za odabir izvornog direktorija Vašeg poslužitelja unutar arhive",
|
||||
"importing": "Uvoz poslužitelja...",
|
||||
"importServer": "Uvezite postojeći poslužitelj",
|
||||
"importServerButton": "Uvezite poslužitelj!",
|
||||
"importZip": "Uvoz iz Zip datoteke",
|
||||
"importing": "Uvoz poslužitelja...",
|
||||
"maxMem": "Maksimalna memorija",
|
||||
"minMem": "Minimalna memorija",
|
||||
"myNewServer": "Moj novi poslužitelj",
|
||||
@ -502,9 +502,9 @@
|
||||
"craftyPermDesc": "Crafty dopuštenja ovog korisnika ",
|
||||
"craftyPerms": "Crafty dopuštenja: ",
|
||||
"created": "Stvoreno: ",
|
||||
"delSuper": "Ne možete izbrisati superkorisnika",
|
||||
"deleteUser": "Izbriši korisnika: ",
|
||||
"deleteUserB": "Izbriši korisnika",
|
||||
"delSuper": "Ne možete izbrisati superkorisnika",
|
||||
"enabled": "Omogućeno",
|
||||
"gravDesc": "Ova e-pošta je isključivo za korištenje s Gravatar™-om. Crafty ni pod kojim okolnostima neće koristiti ovu e-poštu za bilo što osim traženja vašeg Gravatar™-a.",
|
||||
"gravEmail": "Gravatar™ E-pošta",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Tombol",
|
||||
"config": "Configurasi",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Dibuat",
|
||||
"createNew": "Buat Token API baru",
|
||||
"created": "Dibuat",
|
||||
"deleteKeyConfirmation": "Apakah Anda ingin menghapus kunci API ini? Ini tidak dapat dibatalkan.",
|
||||
"deleteKeyConfirmationTitle": "Menghapus Kunci API ${keyId}?",
|
||||
"getToken": "Dapatkan Token",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Tampilkan 1 Baris",
|
||||
"-1": "Tampilkan semua baris",
|
||||
"1": "Tampilkan 1 Baris",
|
||||
"_": "Tampilkan %d baris"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "Tambahkan Pengguna Baru",
|
||||
"pageTitle": "Configurasi",
|
||||
"role": "Peran",
|
||||
"roles": "Peran",
|
||||
"roleUsers": "Peran Pengguna",
|
||||
"roles": "Peran",
|
||||
"save": "Simpan",
|
||||
"superConfirm": "Lanjutkan hanya jika Anda ingin pengguna ini memiliki akses ke EVERYTHING (semua akun pengguna, server, pengaturan panel, dll.).Mereka bahkan dapat mencabut hak superuser Anda.",
|
||||
"superConfirmTitle": "Aktifkan superuser? Kamu yakin?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 bawaan",
|
||||
"downloading": "Mendownload Server...",
|
||||
"explainRoot": "Silakan klik tombol di bawah ini untuk memilih dir root server Anda di dalam arsip",
|
||||
"importing": "Mengimpor Server!...",
|
||||
"importServer": "Impor Server yang Ada",
|
||||
"importServerButton": "Impor Server!",
|
||||
"importZip": "Impor dari File Zip",
|
||||
"importing": "Mengimpor Server!...",
|
||||
"maxMem": "Maksimal Memory",
|
||||
"minMem": "Minimal Memory",
|
||||
"myNewServer": "Server baru ku",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "Izin Crafty yang dimiliki pengguna ini ",
|
||||
"craftyPerms": "Izin Crafty: ",
|
||||
"created": "Dibuat: ",
|
||||
"delSuper": "kamu tidak dapat menghapus super user",
|
||||
"deleteUser": "Hapus Pengguna: ",
|
||||
"deleteUserB": "Hapus Pengguna",
|
||||
"delSuper": "kamu tidak dapat menghapus super user",
|
||||
"enabled": "Diaktifkan",
|
||||
"gravDesc": "Email ini benar-benar untuk digunakan dengan Gravatar™.Crafty tidak akan, dalam keadaan apapun menggunakan email ini untuk apa pun selain mencari Gravatar™ Anda",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"404": {
|
||||
"contact": "Contatta il supporto di Crafty Control tramite Discord",
|
||||
"unableToFind": "Non siamo riusciti a trovare la pagina che cercavi. Per favore prova di nuovo, oppure torna indietro e riprova.",
|
||||
"notFound": "Pagina non trovata"
|
||||
"notFound": "Pagina non trovata",
|
||||
"unableToFind": "Non siamo riusciti a trovare la pagina che cercavi. Per favore prova di nuovo, oppure torna indietro e riprova."
|
||||
},
|
||||
"accessDenied": {
|
||||
"accessDenied": "Accesso negato",
|
||||
@ -16,8 +16,8 @@
|
||||
"buttons": "Pulsanti",
|
||||
"config": "Configura",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Creato",
|
||||
"createNew": "Crea un nuovo Token API",
|
||||
"created": "Creato",
|
||||
"deleteKeyConfirmation": "Vuoi cancellare questa chiave API? Non puoi tornare indietro.",
|
||||
"deleteKeyConfirmationTitle": "Rimuovere la chiave API ${keyId}?",
|
||||
"getToken": "Prendi un Token",
|
||||
@ -40,12 +40,12 @@
|
||||
"pageDescription": "Senza queste persone, non avremmo Crafty",
|
||||
"pageTitle": "Crediti",
|
||||
"patreonDesc": "ai nostri supporter di Patreon / Ko-fi!",
|
||||
"subscriptionLevel": "Livello",
|
||||
"subscriberName": "Nome",
|
||||
"patreonOther": "Altro",
|
||||
"patreonSupporter": "Supporter Patreon / Ko-fi",
|
||||
"patreonUpdate": "Ultimo aggiornamento:",
|
||||
"retiredStaff": "Staff ritirato",
|
||||
"subscriberName": "Nome",
|
||||
"subscriptionLevel": "Livello",
|
||||
"supportTeam": "Squadra di supporto e documentazione",
|
||||
"thankYou": "GRAZIE",
|
||||
"translationDesc": "alla nostra community di traduttori!",
|
||||
@ -54,76 +54,58 @@
|
||||
"translator": "Traduttori"
|
||||
},
|
||||
"dashboard": {
|
||||
"dashboard": "Pannello di Controllo",
|
||||
"memUsage": "Utilizzo della memoria",
|
||||
"cpuUsage": "Utilizzo del Processore",
|
||||
"host": "Host",
|
||||
"players": "Giocatori",
|
||||
"backups": "Backups",
|
||||
"newServer": "Crea un Nuovo Server",
|
||||
"allServers": "Tutti i Server",
|
||||
"server": "Server",
|
||||
"actions": "Azioni",
|
||||
"size": "Dimensioni della Cartella del Server",
|
||||
"motd": "MOTD",
|
||||
"version": "Versione",
|
||||
"status": "Stato",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"lastBackup": "Ultimo:",
|
||||
"nextBackup": "Prossimo:",
|
||||
"servers": "Servers",
|
||||
"cannotSeeOnMobile": "Non vedi nulla da mobile?",
|
||||
"cannotSee": "Non vedi qualcosa?",
|
||||
"cannotSeeOnMobile2": "Prova a scorrere la tabella orizzontalmente.",
|
||||
"max": "Massimo",
|
||||
"allServers": "Tutti i Server",
|
||||
"avg": "Media",
|
||||
"backups": "Backups",
|
||||
"bePatientClone": "Per favore sii paziente mentre cloniamo il server.<br /> Questa schermata si aggiornerà a breve",
|
||||
"bePatientRestart": "Per favore sii paziente mentre riavviamo il server.<br /> Questa schermata si aggiornerà a breve",
|
||||
"bePatientStart": "Per favore sii paziente mentre avviamo il server.<br /> Questa schermata si aggiornerà a breveThis screen will refresh in a moment",
|
||||
"bePatientStop": "Per favore sii paziente while we stop the server.<br /> Questa schermata si aggiornerà a breve",
|
||||
"bePatientRestart": "Per favore sii paziente mentre riavviamo il server.<br /> Questa schermata si aggiornerà a breve",
|
||||
"bePatientClone": "Per favore sii paziente mentre cloniamo il server.<br /> Questa schermata si aggiornerà a breve",
|
||||
"sendingCommand": "Invio il tuo comando",
|
||||
"cannotSee": "Non vedi qualcosa?",
|
||||
"cannotSeeOnMobile": "Non vedi nulla da mobile?",
|
||||
"cannotSeeOnMobile2": "Prova a scorrere la tabella orizzontalmente.",
|
||||
"clone": "Clona",
|
||||
"cpuCores": "CPU Cores",
|
||||
"cpuCurFreq": "Velocità attuale CPU",
|
||||
"cpuMaxFreq": "Velocità massima CPU",
|
||||
"cpuCores": "CPU Cores",
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"clone": "Clona",
|
||||
"kill": "Termina il Processo",
|
||||
"restart": "Riavvia",
|
||||
"killing": "Terminando il processo...",
|
||||
"starting": "Avvio ritardato",
|
||||
"cpuUsage": "Utilizzo del Processore",
|
||||
"crashed": "Crashato",
|
||||
"dashboard": "Pannello di Controllo",
|
||||
"delay-explained": "Il servizio/agente è stato avviato di recente e sta ritardando l'avvio del server di Minecraft",
|
||||
"host": "Host",
|
||||
"kill": "Termina il Processo",
|
||||
"killing": "Terminando il processo...",
|
||||
"lastBackup": "Ultimo:",
|
||||
"max": "Massimo",
|
||||
"memUsage": "Utilizzo della memoria",
|
||||
"motd": "MOTD",
|
||||
"newServer": "Crea un Nuovo Server",
|
||||
"nextBackup": "Prossimo:",
|
||||
"no-servers": "Attualmente non ci sono server. Per cominciare, cliccalick",
|
||||
"welcome": "Benvenuto su Crafty Controller",
|
||||
"crashed": "Crashato"
|
||||
"offline": "Offline",
|
||||
"online": "Online",
|
||||
"players": "Giocatori",
|
||||
"restart": "Riavvia",
|
||||
"sendingCommand": "Invio il tuo comando",
|
||||
"server": "Server",
|
||||
"servers": "Servers",
|
||||
"size": "Dimensioni della Cartella del Server",
|
||||
"start": "Start",
|
||||
"starting": "Avvio ritardato",
|
||||
"status": "Stato",
|
||||
"stop": "Stop",
|
||||
"version": "Versione",
|
||||
"welcome": "Benvenuto su Crafty Controller"
|
||||
},
|
||||
"datatables": {
|
||||
"i18n": {
|
||||
"decimal": "",
|
||||
"emptyTable": "Nessun dato disponibile nella tabella",
|
||||
"info": "Mostro da _START_ a _END_ di _TOTAL_ record",
|
||||
"infoEmpty": "Mostro da 0 a 0 di 0 record",
|
||||
"infoFiltered": "(filtrato da _MAX_ record totali)",
|
||||
"infoPostFix": "",
|
||||
"thousands": ",",
|
||||
"lengthMenu": "Mostra _MENU_ record",
|
||||
"loadingRecords": "Carico...",
|
||||
"processing": "Calcolo...",
|
||||
"search": "Cerca:",
|
||||
"zeroRecords": "Nessun record corrispondente trovato",
|
||||
"paginate": {
|
||||
"first": "Prima",
|
||||
"last": "Ultima",
|
||||
"next": "Prossima",
|
||||
"previous": "Precedente"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": attiva per ordinare le colonne in modo ascendente",
|
||||
"sortDescending": ": attiva per ordinare le colonne in modo discendente"
|
||||
},
|
||||
"buttons": {
|
||||
"collection": "Collection <span class='ui-button-icon-primary ui-icon ui-icon-triangle-1-s'\/>",
|
||||
"collection": "Collection <span class='ui-button-icon-primary ui-icon ui-icon-triangle-1-s'/>",
|
||||
"colvis": "Visibilità colonne",
|
||||
"colvisRestore": "Ripristina visibilità",
|
||||
"copy": "Copy",
|
||||
@ -143,12 +125,23 @@
|
||||
"pdf": "PDF",
|
||||
"print": "Stampa"
|
||||
},
|
||||
"decimal": "",
|
||||
"emptyTable": "Nessun dato disponibile nella tabella",
|
||||
"info": "Mostro da _START_ a _END_ di _TOTAL_ record",
|
||||
"infoEmpty": "Mostro da 0 a 0 di 0 record",
|
||||
"infoFiltered": "(filtrato da _MAX_ record totali)",
|
||||
"infoPostFix": "",
|
||||
"lengthMenu": "Mostra _MENU_ record",
|
||||
"loadingRecords": "Carico...",
|
||||
"paginate": {
|
||||
"first": "Prima",
|
||||
"last": "Ultima",
|
||||
"next": "Prossima",
|
||||
"previous": "Precedente"
|
||||
},
|
||||
"processing": "Calcolo...",
|
||||
"search": "Cerca:",
|
||||
"select": {
|
||||
"rows": {
|
||||
"0": "Clicca su una riga per selezionarla",
|
||||
"1": "%d riga selezionata",
|
||||
"_": "%d righe selezionate"
|
||||
},
|
||||
"cells": {
|
||||
"0": "Clicca su una cella per selezionarla",
|
||||
"1": "%d cella selezionata",
|
||||
@ -158,8 +151,15 @@
|
||||
"0": "Clicca su una colonna per selezionarla",
|
||||
"1": "%d colonna selezionata",
|
||||
"_": "%d colonne selezionate"
|
||||
},
|
||||
"rows": {
|
||||
"0": "Clicca su una riga per selezionarla",
|
||||
"1": "%d riga selezionata",
|
||||
"_": "%d righe selezionate"
|
||||
}
|
||||
}
|
||||
},
|
||||
"thousands": ",",
|
||||
"zeroRecords": "Nessun record corrispondente trovato"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
@ -212,8 +212,8 @@
|
||||
"newUser": "Aggiungi nuovo utente",
|
||||
"pageTitle": "Configurazioni del pannello",
|
||||
"role": "Ruolo",
|
||||
"roles": "Ruoli",
|
||||
"roleUsers": "Utenti del ruolo",
|
||||
"roles": "Ruoli",
|
||||
"save": "Salva",
|
||||
"superConfirm": "Procedi solo se vuoi che questo utente abbia accesso a TUTTO (tutti gli utenti, server, impostazioni del pannello, ecc...). Può anche revocare i tuoi poteri da superuser.",
|
||||
"superConfirmTitle": "Abilitare lo superuser? Sei sicuro?",
|
||||
@ -457,10 +457,10 @@
|
||||
"defaultPort": "25565 default",
|
||||
"downloading": "Scaricando il Server...",
|
||||
"explainRoot": "Per favore clicca il pulsante qui sotto per selezionare la cartella radice del server all'interno dell'archivio",
|
||||
"importing": "Importando il Server...",
|
||||
"importServer": "Importa un Server Esistente",
|
||||
"importServerButton": "Importa Server!",
|
||||
"importZip": "Importa da un File Zip",
|
||||
"importing": "Importando il Server...",
|
||||
"maxMem": "Memoria Massima",
|
||||
"minMem": "Memoria minima",
|
||||
"myNewServer": "Il mio nuovo Server",
|
||||
@ -502,9 +502,9 @@
|
||||
"craftyPermDesc": "I permessi Crafty che questo utente possiede ",
|
||||
"craftyPerms": "Permessi di Crafty: ",
|
||||
"created": "Creato il: ",
|
||||
"delSuper": "Non puoi eliminare uno superuser",
|
||||
"deleteUser": "Elimina Utente: ",
|
||||
"deleteUserB": "Elimina Utente",
|
||||
"delSuper": "Non puoi eliminare uno superuser",
|
||||
"enabled": "Abilitato",
|
||||
"gravDesc": "Questa email è solamente per l'uso di Gravatar™. Crafty non userà l'email in alcuna circostanza, se non per associare il Gravatar™",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "BOOPZ",
|
||||
"config": "PLACE TO SAYS HINGZ",
|
||||
"crafty": "CWAFTY: ",
|
||||
"created": "CREATED",
|
||||
"createNew": "CREATE A NU SUPA SECRET CODE",
|
||||
"created": "CREATED",
|
||||
"deleteKeyConfirmation": "U SURE U WANTS ME 2 EAT IT",
|
||||
"deleteKeyConfirmationTitle": "I CAN EATZ IT??? : ${keyId}?",
|
||||
"getToken": "GIT TOKEN",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Show 1 row",
|
||||
"-1": "Show all rows",
|
||||
"1": "Show 1 row",
|
||||
"_": "Show %d rows"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "ADDZ NU HOOMAN",
|
||||
"pageTitle": "BIG SETINGZ",
|
||||
"role": "ROLE",
|
||||
"roles": "ROLES",
|
||||
"roleUsers": "HOOMANZ",
|
||||
"roles": "ROLES",
|
||||
"save": "DUN",
|
||||
"superConfirm": "PROCED ONLY IF U WANTS DIS HOOMAN 2 HAS ACCES 2 EVRYTHIN (ALL TEH SEATS, FISHIZ, FOODZ, COMFY SPOTZ.). THEY CAN EVEN MAK U NOT SUPA HOOMANZ",
|
||||
"superConfirmTitle": "MAK HOMANZ AN ALPHA HOOMAN? R U SHURE?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 IZ NERMALZ CHOICEZ",
|
||||
"downloading": "HUNTIN FUR GUD SERVR...",
|
||||
"explainRoot": "PLZ CLICK TEH BUTN BELOW 2 SELECT UR SERVRS ROOT DIR INSIDE OV TEH SMOL BOX",
|
||||
"importing": "CLAIMZIN SERVRZ...",
|
||||
"importServer": "ADDZ SERVR TO CWAFTY",
|
||||
"importServerButton": "GO GET DA SERVR",
|
||||
"importZip": "ADDZ SERVR FROM SQUEEZD BOX",
|
||||
"importing": "CLAIMZIN SERVRZ...",
|
||||
"maxMem": "BIG MEMZ LIMIT",
|
||||
"minMem": "SMOL MEMZ LIMIT",
|
||||
"myNewServer": "MY NEW SOFT CHAIR",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "CWAFTY PERMISHUNS DIS HOOMAN HAS ",
|
||||
"craftyPerms": "CWAFTY PERMISHUNS: ",
|
||||
"created": "CREATD: ",
|
||||
"delSuper": "U CANT OVATHROW DA ALFA HOOMAN",
|
||||
"deleteUser": "REHOME HOOMAN: ",
|
||||
"deleteUserB": "REHOME HOOMAN",
|
||||
"delSuper": "U CANT OVATHROW DA ALFA HOOMAN",
|
||||
"enabled": "DIS ON",
|
||||
"gravDesc": "I HUV MAD SUR EMAIL IZ ONLY FUR GRAVATAR™. CWAFTY WILL NOT, AT ALL EVR MAK USE OV DIS EMAIL 4 ANYTHIN OTHR THAN LOOKIN UP UR GRAVATAR™ FACE ",
|
||||
"gravEmail": "GRAVATAR™ EMAIL",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Pogas",
|
||||
"config": "Konfigurācija",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Izveidots",
|
||||
"createNew": "Izveidot jaunu API Pilnvaru (Token)",
|
||||
"created": "Izveidots",
|
||||
"deleteKeyConfirmation": "Vai vēlies dzēst šo API atslēgu? Šo nevar atdarīt.",
|
||||
"deleteKeyConfirmationTitle": "Noņemt API atslēgu ${keyId}?",
|
||||
"getToken": "Saņemt Pilnvaru (Token)",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Rādīt 1 rindu",
|
||||
"-1": "Rādīt visas rindas",
|
||||
"1": "Rādīt 1 rindu",
|
||||
"_": "Rādīt %d rindas"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "Pievienot Jaunu Lietotāju",
|
||||
"pageTitle": "Paneļa Konfigurācija",
|
||||
"role": "Lomas",
|
||||
"roles": "Lomas",
|
||||
"roleUsers": "Lomu Lietotāji",
|
||||
"roles": "Lomas",
|
||||
"save": "Saglabāt",
|
||||
"superConfirm": "Turpiniet tikai ja vēlieties lai šim lietotājam būtu piekļuve VISAM (visiem lietotāju kontiem, serveriem, paneļa iestatījumiem, utt.) Viņi var pat atņemt tavas superlietotāja atļaujas.",
|
||||
"superConfirmTitle": "Iespējot superlietotāju? Vai esiet pārliecināti?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 noklusētais",
|
||||
"downloading": "Lejupielādē Serveri...",
|
||||
"explainRoot": "Lūdzu noespied pogu zemāk, lai izvēlētos sava servera saknes mapi iekš arhīva",
|
||||
"importing": "Importē Serveri...",
|
||||
"importServer": "Importēt Esošu Serveri",
|
||||
"importServerButton": "Importēt Serveri!",
|
||||
"importZip": "Importēt no Zip faila",
|
||||
"importing": "Importē Serveri...",
|
||||
"maxMem": "Maksimālā Atmiņa",
|
||||
"minMem": "Minimālā Atmiņa",
|
||||
"myNewServer": "Mans Jaunais Serveris",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "Crafty atļaujas, kas ir šim lietotājam ",
|
||||
"craftyPerms": "Crafty Atļaujas: ",
|
||||
"created": "Izveidots: ",
|
||||
"delSuper": "Jūs nevarat izdzēst super lietotāju",
|
||||
"deleteUser": "Dzēst lietotāju: ",
|
||||
"deleteUserB": "Dzēst Lietotāju",
|
||||
"delSuper": "Jūs nevarat izdzēst super lietotāju",
|
||||
"enabled": "Iespējots",
|
||||
"gravDesc": "Šis e-pasts ir tikai priekš izmantošanas ar Gravatar™. Crafty nakādā veidā nedarīs neko ar šo epastu atskaitot atrodot jūsu Gravatar™",
|
||||
"gravEmail": "Gravatar™ E-pasts",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Knoppen",
|
||||
"config": "Config",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Gecreëerd",
|
||||
"createNew": "Maak een nieuw API Token",
|
||||
"created": "Gecreëerd",
|
||||
"deleteKeyConfirmation": "Wilt u deze API sleutel verwijderen? Dit kan niet ongedaan gemaakt worden.",
|
||||
"deleteKeyConfirmationTitle": "API sleutel verwijderen ${keyId}?",
|
||||
"getToken": "Verkrijg een Token",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Toon 1 rij",
|
||||
"-1": "Toon alle rijen",
|
||||
"1": "Toon 1 rij",
|
||||
"_": "%d rijen tonen"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "Nieuwe gebruiker toevoegen",
|
||||
"pageTitle": "Paneel Config",
|
||||
"role": "Rollen",
|
||||
"roles": "Rollen",
|
||||
"roleUsers": "Gebruikersrollen",
|
||||
"roles": "Rollen",
|
||||
"save": "Opslaan",
|
||||
"superConfirm": "Ga alleen verder als u wilt dat deze gebruiker toegang heeft tot ALLES (alle gebruikersaccounts, servers, paneelinstellingen, etc.). Ze kunnen zelfs uw superuser rechten intrekken.",
|
||||
"superConfirmTitle": "Supergebruiker inschakelen? Weet u het zeker?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "25565 standaard",
|
||||
"downloading": "Server downloaden...",
|
||||
"explainRoot": "Klik op de knop hieronder om de hoofddirectory van uw server in het archief te selecteren",
|
||||
"importing": "Server importeren...",
|
||||
"importServer": "Een bestaande server importeren",
|
||||
"importServerButton": "Server importeren!",
|
||||
"importZip": "Importeren uit een zipbestand",
|
||||
"importing": "Server importeren...",
|
||||
"maxMem": "Maximaal geheugen",
|
||||
"minMem": "Minimaal geheugen",
|
||||
"myNewServer": "My New Server",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "Crafty machtigingen die deze gebruiker heeft ",
|
||||
"craftyPerms": "Crafty Machtigingen: ",
|
||||
"created": "Gecreëerd: ",
|
||||
"delSuper": "U kunt een supergebruiker niet verwijderen",
|
||||
"deleteUser": "Gebruiker verwijderen: ",
|
||||
"deleteUserB": "Gebruiker verwijderen",
|
||||
"delSuper": "U kunt een supergebruiker niet verwijderen",
|
||||
"enabled": "Ingeschakeld",
|
||||
"gravDesc": "Deze e-mail is strikt voor gebruik met Gravatar™. Crafty zal onder geen enkele omstandigheid gebruik maken van deze e-mail voor iets anders dan het opzoeken van uw Gravatar™",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Knoppen",
|
||||
"config": "Configuratie",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Gecreeërd",
|
||||
"createNew": "Creeër nieuw API-token",
|
||||
"created": "Gecreeërd",
|
||||
"deleteKeyConfirmation": "Wil je deze API-sleutel verwijderen? Dit kan niet ongedaan gemaakt worden.",
|
||||
"deleteKeyConfirmationTitle": "Verwijder API-sleutel ${keyId}?",
|
||||
"getToken": "Verkrijg een token",
|
||||
@ -40,12 +40,12 @@
|
||||
"pageDescription": "Zonder deze mensen zou er geen Crafty zijn",
|
||||
"pageTitle": "Credits",
|
||||
"patreonDesc": "aan onze Patreon / Ko-fi supporters!",
|
||||
"subscriptionLevel": "Niveau",
|
||||
"subscriberName": "Naam",
|
||||
"patreonOther": "Overig",
|
||||
"patreonSupporter": "Patreon / Ko-fi Supporters",
|
||||
"patreonUpdate": "Laatste update:",
|
||||
"retiredStaff": "Gepensioneerde staff",
|
||||
"subscriberName": "Naam",
|
||||
"subscriptionLevel": "Niveau",
|
||||
"supportTeam": "Support- en documentatieteam",
|
||||
"thankYou": "DANKJEWEL",
|
||||
"translationDesc": "aan onze community die vertaalt!",
|
||||
@ -118,8 +118,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Laat 1 rij zien",
|
||||
"-1": "Laat alle rijen zien",
|
||||
"1": "Laat 1 rij zien",
|
||||
"_": "Laat %d rijen zien"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -212,8 +212,8 @@
|
||||
"newUser": "Nieuwe gebruiker toevoegen",
|
||||
"pageTitle": "Panel-configuratie",
|
||||
"role": "Rol",
|
||||
"roles": "Rollen",
|
||||
"roleUsers": "Rol-gebruikers",
|
||||
"roles": "Rollen",
|
||||
"save": "Opslaan",
|
||||
"superConfirm": "Ga alleen verder als je wil dat deze gebruiker bij ALLES kan (alle gebruikersaccounts, servers, panel-instellingen, etc.). Ze kunnen ook jouw super-gebruikerrechten intrekken.",
|
||||
"superConfirmTitle": "super-gebruiker inschakelen? Weet je het zeker?",
|
||||
@ -457,10 +457,10 @@
|
||||
"defaultPort": "25565 standaard",
|
||||
"downloading": "Server is aan het downloaden...",
|
||||
"explainRoot": "Klik hieronder om je server's root-map in het archief te selecteren",
|
||||
"importing": "Server is aan het importeren...",
|
||||
"importServer": "Bestaande server importeren",
|
||||
"importServerButton": "Importeer server!",
|
||||
"importZip": "Importeren vanuit ZIP-bestand",
|
||||
"importing": "Server is aan het importeren...",
|
||||
"maxMem": "Maximum werkgeheugen",
|
||||
"minMem": "Minimum werkgeheugen",
|
||||
"myNewServer": "Mijn nieuwe server",
|
||||
@ -502,9 +502,9 @@
|
||||
"craftyPermDesc": "Toestemming die deze gebruiker heeft ",
|
||||
"craftyPerms": "Crafty toestemmingen: ",
|
||||
"created": "Gecreeërd: ",
|
||||
"delSuper": "Je kan geen super-gebruikers verwijderen",
|
||||
"deleteUser": "Gebruiker verwijderen: ",
|
||||
"deleteUserB": "Gebruiker verwijderen",
|
||||
"delSuper": "Je kan geen super-gebruikers verwijderen",
|
||||
"enabled": "Ingeschakeld",
|
||||
"gravDesc": "Dit e-mailadres is alleen voor het gebruik van Gravatar™. Crafty zal nooit, onder geen enkele omstandigheid dit e-mailadres gebruiker anders dan voor het opzoeken van je Gravatarâ„¢",
|
||||
"gravEmail": "Gravatar™ e-mailadres",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Przyciski",
|
||||
"config": "Config",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Stworzono",
|
||||
"createNew": "Stwórz nowy klucz API",
|
||||
"created": "Stworzono",
|
||||
"deleteKeyConfirmation": "Czy chcesz usunąć ten klucz API? Nie można tego cofnąć.",
|
||||
"deleteKeyConfirmationTitle": "Usunąć Klucz API ${keyId}?",
|
||||
"getToken": "Zdobądź token",
|
||||
@ -134,8 +134,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Eksel",
|
||||
"pageLength": {
|
||||
"1": "Pokaż 1 rząd",
|
||||
"-1": "Pokaż wszystkie rzędy",
|
||||
"1": "Pokaż 1 rząd",
|
||||
"_": "Pokaż %d rządów"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -243,8 +243,8 @@
|
||||
"custom": "Dostosuj Craftiego",
|
||||
"delete": "Usuń",
|
||||
"edit": "Edytuj",
|
||||
"enabled": "Wlączone",
|
||||
"enableLang": "Włącz wszystkie języki",
|
||||
"enabled": "Wlączone",
|
||||
"globalExplain": "Gdzie Crafty trzyma wszystkie twoje serwery. (dołączymy /servers/[uuid of server] do ścieżki)",
|
||||
"globalServer": "Globalna ścieżka serwerów",
|
||||
"json": "Config.json",
|
||||
@ -254,8 +254,8 @@
|
||||
"noMounts": "Nie pokazuj dysków w panelu",
|
||||
"pageTitle": "Ustawienia Panelu",
|
||||
"role": "Role",
|
||||
"roles": "Roles",
|
||||
"roleUsers": "Role użytkownika",
|
||||
"roles": "Roles",
|
||||
"save": "Zapisz",
|
||||
"select": "Wybierz",
|
||||
"superConfirm": "Zapisz jeśli chcesz aby ten użytkownik miał dostęp do WSZYSTKIEGO (wszyscy użytkownicy, konta, serwery, ustawienia panelu, itp.). Mogą oni nawet usunąć twoje prawa SuperUżytkownika.",
|
||||
@ -545,10 +545,10 @@
|
||||
"defaultPort": "25565 podstawowy",
|
||||
"downloading": "Pobieranie serwera...",
|
||||
"explainRoot": "Proszę, kliknij przycisk poniżej aby zaznaczyć główną ścieżkę w tym archiwum",
|
||||
"importing": "Importowanie serwera...",
|
||||
"importServer": "Importuj egzystujący serwer",
|
||||
"importServerButton": "Importuj serwer!",
|
||||
"importZip": "Importuj z ZIPa",
|
||||
"importing": "Importowanie serwera...",
|
||||
"labelZipFile": "Wybierz swój plik ZIP",
|
||||
"maxMem": "Maks. RAMu",
|
||||
"minMem": "Min. RAMu",
|
||||
@ -570,8 +570,8 @@
|
||||
"serverPort": "Port serwera",
|
||||
"serverSelect": "Wybierz Serwer",
|
||||
"serverType": "Typ serwera",
|
||||
"serverVersion": "Wersja serwera",
|
||||
"serverUpload": "Wgraj ZIP Serwera",
|
||||
"serverVersion": "Wersja serwera",
|
||||
"sizeInGB": "Wielkość w GB",
|
||||
"uploadButton": "Wgraj",
|
||||
"uploadZip": "Wgraj plik Zip dla imprtowania serwera",
|
||||
@ -597,9 +597,9 @@
|
||||
"craftyPermDesc": "Ten użytkownik ma dostęp do ustawień Craftiego takich jak: ",
|
||||
"craftyPerms": "Ustawienia Craftiego: ",
|
||||
"created": "Stworzono: ",
|
||||
"delSuper": "Nie możesz usunąć SuperUżytkownika",
|
||||
"deleteUser": "Usuń użytkownika: ",
|
||||
"deleteUserB": "Usuń użytkownika",
|
||||
"delSuper": "Nie możesz usunąć SuperUżytkownika",
|
||||
"enabled": "Enabled",
|
||||
"gravDesc": "To jest email tylko używany do Gravatar™. Crafty nie użyje pod żadnymi okolicznościami twojego adresu email, niż sprawdzenie ikony Gravatar™ ",
|
||||
"gravEmail": "Gravatar™ Email",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "Botões",
|
||||
"config": "Config",
|
||||
"crafty": "Crafty: ",
|
||||
"created": "Criado",
|
||||
"createNew": "Criar novo Token de API",
|
||||
"created": "Criado",
|
||||
"deleteKeyConfirmation": "Deseja deletar esta Chave de API?. Esta ação não pode ser desfeita.",
|
||||
"deleteKeyConfirmationTitle": "Remover Chave de API ${keyId}?",
|
||||
"getToken": "Pegar um Token",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "Exibir 1 linha",
|
||||
"-1": "Exibir todas as linhas",
|
||||
"1": "Exibir 1 linha",
|
||||
"_": "Exibir %d linhas"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -215,8 +215,8 @@
|
||||
"newUser": "Adicionar Novo Usuário",
|
||||
"pageTitle": "Configuração do Painel",
|
||||
"role": "Cargo",
|
||||
"roles": "Cargos",
|
||||
"roleUsers": "Usuários com o Cargo",
|
||||
"roles": "Cargos",
|
||||
"save": "Salvar",
|
||||
"superConfirm": "Proceda apenas se desejar que este usuário tenha acesso a TUDO (todas as contas de usuário, servidores, configurações do painel, etc.). Eles podem até mesmo revogar seus direitos de Super Usuário.",
|
||||
"superConfirmTitle": "Habilitar Super Usuário? Tem certeza?",
|
||||
@ -465,10 +465,10 @@
|
||||
"defaultPort": "25565 = padrão",
|
||||
"downloading": "Baixando Servidor...",
|
||||
"explainRoot": "Por favor clique no botão abaixo para selecionar o diretório raiz do seu servidor dentro do arquivo",
|
||||
"importing": "Importando Servidor...",
|
||||
"importServer": "Importar um servidor existente",
|
||||
"importServerButton": "Importar Servidor!",
|
||||
"importZip": "Importar de um Arquivo Zip",
|
||||
"importing": "Importando Servidor...",
|
||||
"maxMem": "Memória Máxima",
|
||||
"minMem": "Memória Mínima",
|
||||
"myNewServer": "Meu Novo Servidor",
|
||||
@ -510,9 +510,9 @@
|
||||
"craftyPermDesc": "Permissões do Crafty que este usuário tem ",
|
||||
"craftyPerms": "Permissões do Crafty: ",
|
||||
"created": "Criado: ",
|
||||
"delSuper": "Você não pode deletar um Super Usuário",
|
||||
"deleteUser": "Deletar Usuário: ",
|
||||
"deleteUserB": "Deletar Usuário",
|
||||
"delSuper": "Você não pode deletar um Super Usuário",
|
||||
"enabled": "Habilitado",
|
||||
"gravDesc": "Este e-mail é para uso exclusivo com Gravatar™. Crafty não irá, sob quaisquer circunstâncias, fazer uso deste e-mail para qualquer coisa além de seu Gravatar™",
|
||||
"gravEmail": "E-mail Gravatar™",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"buttons": "按钮",
|
||||
"config": "配置",
|
||||
"crafty": "Crafty:",
|
||||
"created": "创建时间",
|
||||
"createNew": "创建新的 API 令牌",
|
||||
"created": "创建时间",
|
||||
"deleteKeyConfirmation": "您想要删除这个 API 密钥吗?此操作不能撤销。",
|
||||
"deleteKeyConfirmationTitle": "删除 API 密钥 ${keyId}?",
|
||||
"getToken": "获得一个令牌",
|
||||
@ -119,8 +119,8 @@
|
||||
"csv": "CSV",
|
||||
"excel": "Excel",
|
||||
"pageLength": {
|
||||
"1": "显示 1 行",
|
||||
"-1": "显示所有行",
|
||||
"1": "显示 1 行",
|
||||
"_": "显示 %d 行"
|
||||
},
|
||||
"pdf": "PDF",
|
||||
@ -214,8 +214,8 @@
|
||||
"newUser": "添加新用户",
|
||||
"pageTitle": "面板配置",
|
||||
"role": "角色",
|
||||
"roles": "角色",
|
||||
"roleUsers": "被分配了该角色的用户",
|
||||
"roles": "角色",
|
||||
"save": "保存",
|
||||
"superConfirm": "仅在你希望此用户能访问所有数据(所有用户账户、服务器、面板设置等)的情况下继续。它们甚至可以撤回您的超级用户权限。",
|
||||
"superConfirmTitle": "启用超级用户?您确定吗?",
|
||||
@ -464,10 +464,10 @@
|
||||
"defaultPort": "默认值为 25565",
|
||||
"downloading": "下载服务器中……",
|
||||
"explainRoot": "请点击下方的按钮来选择您的服务器在压缩文件中的根目录",
|
||||
"importing": "导入服务器中……",
|
||||
"importServer": "导入现有服务器",
|
||||
"importServerButton": "导入服务器!",
|
||||
"importZip": "从 Zip 文件导入",
|
||||
"importing": "导入服务器中……",
|
||||
"maxMem": "最大内存",
|
||||
"minMem": "最小内存",
|
||||
"myNewServer": "我的新服务器",
|
||||
@ -509,9 +509,9 @@
|
||||
"craftyPermDesc": "此用户拥有的 Crafty 权限",
|
||||
"craftyPerms": "Crafty 权限:",
|
||||
"created": "创建时间:",
|
||||
"delSuper": "您不能删除超级用户",
|
||||
"deleteUser": "删除用户:",
|
||||
"deleteUserB": "删除用户",
|
||||
"delSuper": "您不能删除超级用户",
|
||||
"enabled": "已启用",
|
||||
"gravDesc": "此电子邮件仅用于 Gravatar™。Crafty 不会在任何情况下使用该邮箱进行除了查阅您的 Gravatar™ 以外的操作",
|
||||
"gravEmail": "Gravatar™ 邮箱",
|
||||
|
@ -1,19 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
repair_permissions () {
|
||||
printf "\033[36mWrapper | \033[35m📋 (1/3) Ensuring root group ownership...\033[0m\n"
|
||||
find . ! -group root -print0 | xargs -0 -r chgrp root
|
||||
printf "\033[36mWrapper | \033[35m📋 (2/3) Ensuring group read-write is present on files...\033[0m\n"
|
||||
find . ! -perm g+rw -print0 | xargs -0 -r chmod g+rw
|
||||
printf "\033[36mWrapper | \033[35m📋 (3/3) Ensuring sticky bit is present on directories...\033[0m\n"
|
||||
find . -type d ! -perm g+s -print0 | xargs -0 -r chmod g+s
|
||||
}
|
||||
|
||||
# Check if config exists taking one from image if needed.
|
||||
if [ ! "$(ls -A --ignore=.gitkeep ./app/config)" ]; then
|
||||
echo "\033[36mWrapper | \033[33m🏗️ Config not found, pulling defaults..."
|
||||
printf "\033[36mWrapper | \033[33m🏗️ Config not found, pulling defaults...\033[0m\n"
|
||||
mkdir ./app/config/ 2> /dev/null
|
||||
cp -r ./app/config_original/* ./app/config/
|
||||
|
||||
if [ $(id -u) -eq 0 ]; then
|
||||
# We're running as root;
|
||||
|
||||
# Look for files & dirs that require group permissions to be fixed
|
||||
# This will do the full /crafty dir, so will take a miniute.
|
||||
echo "\033[36mWrapper | \033[35m📋 Looking for problem bind mount permissions globally..."
|
||||
find . ! -group root -exec chgrp root {} \;
|
||||
find . ! -perm g+rw -exec chmod g+rw {} \;
|
||||
find . -type d ! -perm g+s -exec chmod g+s {} \;
|
||||
printf "\033[36mWrapper | \033[35m📋 Looking for problem bind mount permissions globally...\033[0m\n"
|
||||
|
||||
repair_permissions
|
||||
|
||||
printf "\033[36mWrapper | \033[32m✅ Initialization complete!\033[0m\n"
|
||||
fi
|
||||
else
|
||||
# Keep version file up to date with image
|
||||
@ -26,24 +37,24 @@ if [ $(id -u) -eq 0 ]; then
|
||||
|
||||
# If we find files in import directory, we need to ensure all dirs are owned by the root group,
|
||||
# This fixes bind mounts that may have incorrect perms.
|
||||
if [ "$(ls -A --ignore=.gitkeep ./import)" ]; then
|
||||
echo "\033[36mWrapper | \033[35m📋 Files present in import directory, checking/fixing permissions..."
|
||||
echo "\033[36mWrapper | \033[33m⏳ Please be paitent for larger servers..."
|
||||
find . ! -group root -exec chgrp root {} \;
|
||||
find . ! -perm g+rw -exec chmod g+rw {} \;
|
||||
find . -type d ! -perm g+s -exec chmod g+s {} \;
|
||||
echo "\033[36mWrapper | \033[32m✅ Permissions Fixed! (This will happen every boot until /import is empty!)"
|
||||
if [ "$(find ./import -type f ! -name '.gitkeep')" ]; then
|
||||
printf "\033[36mWrapper | \033[35m📋 Files present in import directory, checking/fixing permissions...\033[0m\n"
|
||||
printf "\033[36mWrapper | \033[33m⏳ Please be patient for larger servers...\033[0m\n"
|
||||
|
||||
repair_permissions
|
||||
|
||||
printf "\033[36mWrapper | \033[32m✅ Permissions Fixed! (This will happen every boot until /import is empty!)\033[0m\n"
|
||||
fi
|
||||
|
||||
# Switch user, activate our prepared venv and lauch crafty
|
||||
# Switch user, activate our prepared venv and launch crafty
|
||||
args="$@"
|
||||
echo "\033[36mWrapper | \033[32m🚀 Launching crafty with [\033[34m$args\033[32m]"
|
||||
printf "\033[36mWrapper | \033[32m🚀 Launching crafty with [\033[34m%s\033[32m]\033[0m\n" "$args"
|
||||
exec sudo -u crafty bash -c "source ./.venv/bin/activate && exec python3 main.py $args"
|
||||
else
|
||||
# Activate our prepared venv
|
||||
echo "\033[36mWrapper | \033[32m🚀 Non-root host detected, using normal exec"
|
||||
printf "\033[36mWrapper | \033[32m🚀 Non-root host detected, using normal exec\033[0m\n"
|
||||
. ./.venv/bin/activate
|
||||
# Use exec as our perms are already correct
|
||||
# This is likely if using Kubernetes/OpenShift etc
|
||||
exec python3 main.py $@
|
||||
exec python3 main.py "$@"
|
||||
fi
|
||||
|
@ -19,3 +19,4 @@ tornado==6.3.3
|
||||
tzlocal==5.1
|
||||
jsonschema==4.19.1
|
||||
orjson==3.9.7
|
||||
prometheus-client==0.17.1
|
||||
|
Loading…
Reference in New Issue
Block a user