LoParkour/src/main/resources/locales/ru.yml
loki5512344 8c8046a4f5
feat: personal run replays (ghost system)
- GhostData: worldName field, format v4; GhostManager stores last N runs per player (ghosts/<uuid>/<ts>.ghost)
- GhostService: per-player recording (start on run start, every tick, finalize on fall), gated by ghost-mode.enabled + per-player toggle
- PlayerGhost: packet-based fake-player NPC with viewer skin (NMS via remapNms gradle task, reflection send, graceful degradation)
- GhostReplay: teleport viewer to run start, replay frames via PlayerGhost, restore on finish
- /lp replay [index] command + tab completion; settings menu ghost_recording toggle (persisted disk/SQL)
- config: ghost-mode.{enabled,max-runs}, remove dead show-top/transparency + GHOST_* statics
- tests: GhostData v4 round-trip, GhostManager eviction/ordering, yawToFixed (79 total)
2026-08-06 13:13:59 +02:00

439 lines
19 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Русский (Russian, ru)
# By loki
# Материалы должны быть из: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# Цвета: hex &#RRGGBB и legacy & (см. .cursor/rules/locale-and-colors.mdc)
name: "Русский"
main:
name: "&#FFFFFFПаркур"
play:
name: "&#FFFFFFИграть"
item:
material: "sugar_cane"
name: "&#00D4FF&lИграть"
lore: ""
single:
name: "&#FFFFFFОдиночная игра"
item:
material: "ender_pearl"
name: "&#00D4FF&lОдиночная игра"
lore: ""
default:
material: "barrel"
name: "&#00D4FF&lОбычный"
lore: "&#404040Стандартный режим игры."
speedrun:
material: "clock"
name: "&#00D4FF&lСпидран"
lore: "&#404040Гонка со временем! Блоки||&#404040исчезают после того, как вы на них встанете."
gravity-shift:
material: "potion"
name: "&#00D4FF&lГравитационный сдвиг"
lore: "&#404040Случайные эффекты зелий||&#404040каждые несколько прыжков"
invisible-barrier:
material: "barrier"
name: "&#FF44FF&lНевидимый барьер"
lore: "&#404040Невидимые блоки с||&#404040цветными контурами из частиц"
elytra:
name: "&#FFFFFFЭлитры"
elytra:
material: "elytra"
name: "&#00D4FF&lЭлитры"
lore: "&#404040Летай сквозь кольца||&#404040на элитрах."
speeddemon:
material: "elytra"
name: "&#00D4FF&lСкорость-демон"
lore: "&#404040Разгонись до максимальной||&#404040скорости на элитрах."
minspeed:
material: "elytra"
name: "&#00D4FF&lМин. скорость"
lore: "&#404040Держи минимальную скорость||&#404040и лети как можно дальше."
timetrial:
material: "elytra"
name: "&#00D4FF&lГонка на время"
lore: "&#404040Достигни целевого счёта||&#404040как можно быстрее."
close:
material: "elytra"
name: "&#00D4FF&lБлизко"
lore: "&#404040Летай сквозь плоские кольца||&#404040расположенные вплотную."
obstacle:
material: "barrier"
name: "&#00D4FF&lПрепятствия"
lore: "&#404040Облетай препятствия,||&#404040появляющиеся на трассе."
spectator:
name: "&#FFFFFFНаблюдатель"
join: "&#00D4FFТеперь вы наблюдатель. Используйте \"/parkour\" чтобы выйти/сменить режим."
action_bar: "&#00D4FFВы наблюдатель &#A0A0A0• &#00D4FFИспользуйте \"/parkour\" чтобы выйти."
other_join: "&#006400&l+ &r&#A0A0A0%s начал наблюдать за вами"
other_leave: "&#FF4444&l- &r&#A0A0A0%s перестал наблюдать за вами"
item:
material: "glass"
name: "&#00D4FF&lНаблюдатель"
lore: ""
head:
material: ""
name: "&#00D4FF&l%s"
lore: ""
multi:
name: "&#FFFFFFМульти"
duels:
item:
material: "nether_star"
name: "&#FF6464&lДуэли"
lore: "&#A0A0A0Гонка до цели!||&#A0A0A0У каждого игрока своя трасса"
start:
material: "white_banner"
name: "&#00D4FF&lДуэли"
lore: ""
go: "&#55FF55&lВПЕРЁД!"
name: "&#FFFFFFДуэли"
menu_empty: "&#A0A0A0Сейчас нет открытых дуэлей."
overview: "&#FFD700&l%s &#A0A0A0победил в дуэли! Время: &#FFFFFF%s"
place: "&#0072B3#%s &#A0A0A0%s &#404040- &#A0A0A0%s"
victory: "&#55FF55&lПОБЕДА!"
loss: "&#FF4444&lПОРАЖЕНИЕ"
community:
name: "&#FFFFFFСообщество"
item:
material: "oak_boat"
name: "&#00D4FF&lСообщество"
lore: ""
leaderboards:
name: "&#FFFFFFТаблица лидеров"
item:
material: "gold_nugget"
name: "&#00D4FF&lТаблица лидеров"
lore: ""
sort:
material: "bookshelf"
name: "&#00D4FF&lСортировка по %s"
lore: ""
values: ["очкам", "времени", "сложности"]
head:
material: ""
name: "&#00D4FF&l#%r - %p"
lore: "&#00D4FFОчки: &#A0A0A0%s||&#00D4FFВремя: &#A0A0A0%t||&#00D4FFСложность: &#A0A0A0%d&#404040/1.0"
settings:
name: "&#FFFFFFНастройки"
item:
material: "comparator"
name: "&#00D4FF&lНастройки"
lore: ""
lang:
name: "&#FFFFFFЯзык"
item:
material: "writable_book"
name: "&#00D4FF&lЯзык"
lore: "&#404040Текущий: &#00D4FF&l%s"
chat:
material: "crossbow"
name: "&#00D4FF&lЧат"
lore: "&#404040Текущий: &#00D4FF&l%s||&#404040Выберите, с кем вы можете общаться"
values: ["только лобби", "только игроки", "публичный"]
formats:
lobby: "&#00D4FF(Лобби) &#00D4FF%s &#404040> &#A0A0A0%s"
players: "&#00D4FF(Игроки) &#00D4FF%s &#404040> &#A0A0A0%s"
parkour_settings:
enabled: "&#00D4FF&l✔"
disabled: "&#FF4444&l✘"
item:
material: "redstone"
name: "&#00D4FF&lНастройки паркура"
lore: "&#404040Измените внешний вид вашего паркура."
items:
no_change:
material: "barrier"
name: "&#8B0000&lВы не можете изменить это сейчас!"
lore: "&#A0A0A0У вас есть очки выше 0,||&#A0A0A0что означает, что вы не можете изменить эту настройку."
styles:
name: "&#FFFFFFСтили"
style_item:
material: ""
name: "&#FFFFFF&l%s"
lore: "&#00D4FFКатегория: &#A0A0A0%s"
item:
material: "crafting_table"
name: "&#00D4FF&lСтиль"
lore: "&#00D4FFТекущий: &#A0A0A0%s||&#A0A0A0Выберите, какие блоки будут использоваться."
leads:
material: "feather"
name: "&#00D4FF&lОпережение"
lore: "&#00D4FFТекущее: &#A0A0A0%s блоков||&#A0A0A0Сколько блоков будет||&#A0A0A0сгенерировано перед вами."
time:
material: "clock"
name: "&#00D4FF&lВремя"
lore: "&#00D4FFТекущее: &#A0A0A0%s||&#A0A0A0Ваше текущее визуальное время."
schematics:
material: ""
name: "&#00D4FF&lСложность схематик"
lore: "&#00D4FFТекущая: &#A0A0A0%s||&#A0A0A0Сложность схематик"
values: ["&#FF4444выкл", "&#00D4FFлегко", "&#FFFF00средне", "&#00D4FFсложно", "&#8B0000очень сложно"]
scoreboard:
material: ""
name: "Показывать табло"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, показывает табло."
fall_message:
item:
material: ""
name: "Показывать сообщение о падении"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, показывает сообщение при падении||&#A0A0A0с дополнительной информацией."
divider: "&#404040&m-----------------------------------"
score: "&#00D4FF&lОчки &r&#FFFFFF%s"
time: "&#00D4FF&lВремя &r&#FFFFFF%s"
high_score: "&#00D4FF&lРекорд &r&#FFFFFF%s"
formats:
miss: "&#A0A0A0Вы не достигли своего рекорда на %s очков!"
beat: "&#A0A0A0Вы побили свой рекорд на %s очков!"
tied: "&#A0A0A0Вы повторили свой рекорд!"
particles:
material: ""
name: "Показывать частицы"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, каждый сгенерированный блок||&#A0A0A0будет показывать частицы."
sound:
material: ""
name: "Воспроизводить звуки"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, каждый сгенерированный блок||&#A0A0A0будет воспроизводить звук."
ghost_recording:
material: ""
name: "Записывать призрачные забеги"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, ваши забеги записываются,||&#A0A0A0чтобы вы могли их повторить позже."
special_blocks:
material: ""
name: "Использовать специальные блоки"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Если включено, использует специальные блоки, такие как лёд и плиты."
score_difficulty:
material: ""
name: "Сложность по очкам"
lore: "&#A0A0A0Текущее: %s||&#A0A0A0Когда включено, чем выше ваш счёт,||&#A0A0A0тем сложнее становится."
lobby:
name: "&#FFFFFFЛобби"
other_join: '&#006400&l+ &r&#A0A0A0%s присоединился к вашему лобби'
other_leave: '&#FF4444&l- &r&#A0A0A0%s покинул ваше лобби'
item:
material: "iron_ingot"
name: "&#00D4FF&lВаше лобби"
lore: ""
visibility:
material: "firework_rocket"
name: "&#00D4FF&lВидимость"
lore: "&#404040Текущая: &#00D4FF&l%s||&#404040Выберите, кто может присоединиться к вашему лобби."
values: ["приватное", "только по приглашению", "публичное"]
player_management:
name: "&#FFFFFFУправление игроками"
kicked: "&#A0A0A0Вы были исключены из лобби владельцем."
advice: "&#A0A0A0Установите видимость лобби на 'только по приглашению' или 'приватное', чтобы избежать случайных присоединений."
muted: "&#A0A0A0Вы были заглушены владельцем лобби."
unmuted: "&#A0A0A0Ваш голос был разблокирован владельцем лобби."
item:
material: "cake"
name: "&#00D4FF&lУправление игроками"
lore: "&#404040Исключайте или заглушайте игроков здесь."
head:
material: ""
name: "&#FFFF55%s%s"
muted_suffix: " &#FF4444[заглушён]"
lore: ""
top: "&#404040Заглушён в лобби||"
bottom: "&#00D4FFЛевый клик&#404040 чтобы исключить из лобби||&#00D4FFПравый клик&#404040 чтобы заглушить/разблокировать в лобби"
lore_kick: "&#A0A0A0ЛКМ &#FFFFFF— исключить"
lore_mute: "&#A0A0A0ПКМ &#FFFFFF— заглушить"
lore_unmute: "&#A0A0A0ПКМ &#FFFFFF— разглушить"
scoreboard:
title: "&#00D4FF&lLoParkour"
lines:
- "&#0000FF"
- "&#00D4FFОчки &#FFFFFF%score%"
- "&#00D4FFВремя &#FFFFFF%time%"
- "&#00D4FFРекорд &#FFFFFF%high_score%"
- "&#FF4444"
- "&#00D4FF&lserver.ip"
other:
no_do: "&#A0A0A0Вы не можете сделать это сейчас."
no_menu_items: "&#FF4444&lСейчас нет доступных пунктов меню."
joining_disabled: "&#FF4444&lПрисоединение временно отключено."
no_teleporting: "&#FFFFFFВы не можете войти в мир паркура телепортацией!"
customize: "&#A0A0A0Настройте свой паркур, используя \"/parkour\""
leave_error: "&#FF4444&lОшибка при выходе из паркура."
bungee_kick: "Не удалось перенести вас на %s. Перезайдите."
menu_unavailable: "&#FF4444%s &#A0A0A0(%d рядов) — меню недоступно."
paged_menu_unavailable: "&#FF4444%s &#A0A0A0(%d рядов, %d пунктов) — меню недоступно."
back:
material: "red_dye"
name: "&#DE1F1F&lНазад"
lore: ""
next:
material: "lime_dye"
name: "&#0DCB07&lДалее"
lore: ""
quit:
material: "barrier"
name: "&#00D4FF&lВыйти"
lore: ""
close:
material: "arrow"
name: "&#00D4FF&lЗакрыть"
lore: ""
modes:
race:
material: "golden_boots"
name: "&#FFD700&lГонка"
lore: "&#A0A0A0Первым достигните целевого счёта!||&#A0A0A0Соревнуйтесь за лучшее время"
completed: "&#FFD700Финиш! Счёт: &#FFFFFF%s &#A0A0A0за &#FFFFFF%s"
title: "&#FFD700&lГОНКА ЗАВЕРШЕНА!"
subtitle: "&#55FF55Время: &#FFFFFF%s"
action_bar: "%s &#FFFF55%d &#A0A0A0/ &#55FF55%d%s"
action_bar_left: " &#A0A0A0(&#FF4444%d &#A0A0A0осталось)"
action_bar_done: " &#FFD700&lГОТОВО!"
coop:
material: "player_head"
name: "&#00FF00&lКооператив"
lore: "&#A0A0A0Объединитесь с друзьями!||&#A0A0A0Общий счёт и прогресс"
player_joined: "&#00FF00%s &#A0A0A0присоединился к кооперативной сессии!"
stats: "&#A0A0A0Командный счёт: &#FFFFFF%s &#A0A0A0| Ваши блоки: &#FFFFFF%s &#A0A0A0(&#FFFFFF%s%%&#A0A0A0)"
milestone_title: "&#FFD700&lКоманда: &#FFFFFF%d"
milestone_subtitle: "&#55FF55Так держать!"
admin:
cooldown: "&#A0A0A0Подождите перед повторным использованием."
force_join_everyone: "&#55FF55Все игроки принудительно вошли!"
force_join_player: "&#55FF55Игрок %s принудительно вошёл!"
force_leave_everyone: "&#55FF55Все игроки принудительно выгнаны!"
player_not_online: "&#FF4444Игрок не в сети!"
player_not_playing: "&#FF4444Игрок не в паркуре!"
reset_all: "&#55FF55Все рекорды сброшены."
reset_player: "&#55FF55Рекорд игрока %s сброшен."
recover_inventory: "&#55FF55Инвентарь %s восстановлен."
recover_inventory_missing: "&#FF4444Сохранённый инвентарь для %s не найден."
commands:
too_many_args: "&#A0A0A0Слишком много аргументов. Попробуйте /parkour help"
error: "&#FF4444&lLoParkour: ошибка команды — см. консоль сервера."
unknown_player: "&#FF4444Неизвестный игрок."
not_playing: "&#FF4444Этот игрок не в паркуре."
reload: "&#A0A0A0Перезагрузка конфигов... (локали грузятся асинхронно)"
replay:
disabled: "&#FF4444Призрачные повторы отключены на этом сервере."
no_runs: "&#A0A0A0У вас пока нет записанных забегов."
invalid: "&#FF4444Неверный номер забега."
starting: "&#55FF55Воспроизведение вашего забега..."
help:
header: "&#404040&m--------------- &#FF6464&lLoParkour &#404040&m---------------"
line_parkour: "&#A0A0A0/parkour &#404040- Главная команда"
line_replay: "&#A0A0A0/parkour replay [забег] &#404040- Смотреть записанные забеги"
line_join: "&#A0A0A0/parkour join [режим/игрок] &#404040- Войти в режим"
line_leave: "&#A0A0A0/parkour leave &#404040- Выйти"
line_menu: "&#A0A0A0/parkour menu &#404040- Открыть меню"
line_play: "&#A0A0A0/parkour play &#404040- Выбор режима"
line_leaderboard: "&#A0A0A0/parkour leaderboard [тип] &#404040- Таблица лидеров"
line_schematic: "&#A0A0A0/LoParkour schematic &#404040- Схематики"
line_reload: "&#A0A0A0/LoParkour reload &#404040- Перезагрузка конфигов"
line_reset: "&#A0A0A0/LoParkour reset <все/игрок> &#404040- Сброс рекордов"
line_force: "&#A0A0A0/LoParkour forcejoin/forceleave <цель> &#404040- Принудительный вход/выход"
line_recover: "&#A0A0A0/LoParkour recoverinventory <игрок> &#404040- Восстановить инвентарь"
schematic:
wand:
material: "golden_axe"
name: "&#FF4444&lПалочка схем"
lore: "&#A0A0A0ЛКМ: позиция 1||&#A0A0A0ПКМ: позиция 2"
help:
header: "&#8B0000&lСхематики &#404040-----------"
line_wand: "&#FF4444/LoParkour schematic wand &#404040- &#A0A0A0Палочка выделения"
line_pos1: "&#FF4444/LoParkour schematic pos1 &#404040- &#A0A0A0Позиция 1"
line_pos2: "&#FF4444/LoParkour schematic pos2 &#404040- &#A0A0A0Позиция 2"
line_create: "&#FF4444/LoParkour create <сложность> &#404040- &#A0A0A0Сохранить в .schem + yml"
line_create_named: "&#FF4444/LoParkour schematic create <имя> <сложность> &#404040- &#A0A0A0С именем"
line_paste: "&#FF4444/LoParkour schematic paste <имя> &#404040- &#A0A0A0Тестовая вставка"
line_list: "&#FF4444/LoParkour schematic list &#404040- &#A0A0A0Список"
line_reload: "&#FF4444/LoParkour schematic reload &#404040- &#A0A0A0Перезагрузка"
line_folder: "&#A0A0A0Папка: plugins/LoParkour/schematics/ (.nbt, .schem)"
line_docs: "&#A0A0A0Документация: plugins/LoParkour/docs/SCHEMATICS.md"
wand_given: "&#A0A0A0Палочка выдана. ЛКМ = pos1, ПКМ = pos2."
list_header: "&#A0A0A0Загруженные схемы:"
list_entry: "&#A0A0A0- &#FF4444%s &#404040(%s, %s)"
reloaded: "&#A0A0A0Перезагружено."
pos_set: "&#A0A0A0Позиция %s: %s"
invalid_name: "&#FF4444Недопустимое имя. Только буквы, цифры, дефис и подчёркивание."
invalid_difficulty: "&#FF4444Сложность: число от 0.0 до 1.0 (напр. 0.25, 0.5, 1.0)."
selection_incomplete: "&#FF4444Сначала выделите область (палочка или pos1/pos2)."
created: "&#A0A0A0Добавлено &#FF4444%s &#404040(сложн. %s) → &#FF4444%s"
create_failed: "&#FF4444Ошибка: %s"
not_found: "&#FF4444Схема '%s' не найдена."
pasted: "&#A0A0A0Вставлено: &#FF4444%s&#A0A0A0."
ghost:
saved: "&#00D4FFВаш призрак сохранён с результатом %s очков!"