From a30ccbc9b76687dd6ce705d5c53e7ef3c0f34593 Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Fri, 8 May 2026 11:37:00 +0300 Subject: [PATCH] Update Russian translations across multiple resource packs for improved localization, including GUI elements, item names, and configuration settings; add install-service.sh to .gitignore for better resource management. --- .gitignore | 1 + Server/install-service.sh | 197 ++++++++++++++++++ .../assets/betterfpsdist/lang/ru_ru.json | 4 +- .../assets/catalogue/lang/ru_ru.json | 60 +++--- .../assets/defaultoptions/lang/ru_ru.json | 8 +- .../assets/dtbop/lang/ru_ru.json | 184 ++++++++-------- .../assets/enhancedbossbars/lang/ru_ru.json | 30 +-- .../assets/fastpaintings/lang/ru_ru.json | 2 +- .../assets/globalpacks/lang/ru_ru.json | 4 +- .../assets/goblintraders/lang/ru_ru.json | 22 +- .../justenoughprofessions/lang/ru_ru.json | 2 +- .../assets/leaky/lang/ru_ru.json | 4 +- .../assets/simplytooltips/lang/ru_ru.json | 4 +- .../assets/time_on_display/lang/ru_ru.json | 4 +- 14 files changed, 362 insertions(+), 164 deletions(-) create mode 100644 Server/install-service.sh diff --git a/.gitignore b/.gitignore index df88f79..1625903 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ !/Server/start.ps1 !/Server/sync-mods-from-client.ps1 !/Server/extract-missing-ru-translations.ps1 +!/Server/install-service.sh !/Server/start.sh !/Server/variables.txt !/Server/manifest.json diff --git a/Server/install-service.sh b/Server/install-service.sh new file mode 100644 index 0000000..a13bf7a --- /dev/null +++ b/Server/install-service.sh @@ -0,0 +1,197 @@ +#!/usr/bin/env bash +# install-service.sh +# Создаёт systemd-сервис для запуска Minecraft сервера (через ./start.sh) +# и сразу его поднимает. Должен быть запущен от root. +# +# Использование: +# sudo ./install-service.sh +# sudo ./install-service.sh --name minecraft --user minecraft --dir /opt/minecraft +# sudo ./install-service.sh --uninstall +# +# Флаги: +# --name <имя> Имя systemd-сервиса (по умолчанию: minecraft) +# --user От какого пользователя запускать сервер +# (по умолчанию: minecraft, будет создан если нет) +# --dir <путь> Каталог сервера (по умолчанию: каталог этого скрипта) +# --java-args <строка> Дополнительные JVM-аргументы (напр. "-Xms4G -Xmx8G") +# --admin-user Доп. пользователь, который тоже должен иметь +# запись в каталог (для git pull и т.п.). Будет +# добавлен в группу сервиса, на каталог встанут +# g+rwX и setgid, чтобы новые файлы наследовали +# группу. Можно указать несколько раз. +# --uninstall Остановить, выключить и удалить сервис +# -h | --help Показать справку + +set -euo pipefail + +SERVICE_NAME="minecraft" +SERVICE_USER="minecraft" +SERVER_DIR="$(cd "$(dirname "$0")" && pwd)" +JAVA_ARGS="" +UNINSTALL=0 +ADMIN_USERS=() + +print_help() { + sed -n '2,27p' "$0" | sed 's/^# \{0,1\}//' +} + +err() { + echo "Ошибка: $*" >&2 + exit 1 +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --name) SERVICE_NAME="$2"; shift 2 ;; + --user) SERVICE_USER="$2"; shift 2 ;; + --dir) SERVER_DIR="$2"; shift 2 ;; + --java-args) JAVA_ARGS="$2"; shift 2 ;; + --admin-user) ADMIN_USERS+=("$2"); shift 2 ;; + --uninstall) UNINSTALL=1; shift ;; + -h|--help) print_help; exit 0 ;; + *) err "Неизвестный аргумент: $1 (используйте --help)" ;; + esac +done + +# 1. Проверка прав root +if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then + err "скрипт должен быть запущен от root. Используйте: sudo $0 $*" +fi + +# 2. Проверка systemd +if ! command -v systemctl >/dev/null 2>&1; then + err "systemctl не найден. Этот скрипт работает только на системах с systemd." +fi + +UNIT_FILE="/etc/systemd/system/${SERVICE_NAME}.service" + +# Удаление сервиса +if [[ "${UNINSTALL}" -eq 1 ]]; then + echo ">> Останавливаю и удаляю сервис ${SERVICE_NAME}..." + systemctl stop "${SERVICE_NAME}.service" 2>/dev/null || true + systemctl disable "${SERVICE_NAME}.service" 2>/dev/null || true + if [[ -f "${UNIT_FILE}" ]]; then + rm -f "${UNIT_FILE}" + echo " Удалён ${UNIT_FILE}" + fi + systemctl daemon-reload + systemctl reset-failed "${SERVICE_NAME}.service" 2>/dev/null || true + echo ">> Готово. Сервис ${SERVICE_NAME} удалён." + exit 0 +fi + +# 3. Проверка содержимого каталога сервера +[[ -d "${SERVER_DIR}" ]] || err "каталог сервера не найден: ${SERVER_DIR}" +[[ -f "${SERVER_DIR}/start.sh" ]] || err "не найден ${SERVER_DIR}/start.sh" + +chmod +x "${SERVER_DIR}/start.sh" "${SERVER_DIR}/run.sh" 2>/dev/null || true + +# 4. Создание пользователя при необходимости +if ! id -u "${SERVICE_USER}" >/dev/null 2>&1; then + echo ">> Создаю системного пользователя ${SERVICE_USER}..." + useradd --system \ + --home-dir "${SERVER_DIR}" \ + --shell /usr/sbin/nologin \ + "${SERVICE_USER}" +else + echo ">> Пользователь ${SERVICE_USER} уже существует — пропускаю создание." +fi + +# 5. Передача прав на каталог сервера +echo ">> Назначаю владельца каталога ${SERVER_DIR} -> ${SERVICE_USER}..." +chown -R "${SERVICE_USER}:${SERVICE_USER}" "${SERVER_DIR}" + +# 5b. Доп. пользователи (для git pull / редактирования конфигов без sudo). +# Включаем их в группу сервиса, на каталог ставим g+rwX и setgid, +# чтобы новые файлы автоматически создавались с этой группой. +if [[ ${#ADMIN_USERS[@]} -gt 0 ]]; then + echo ">> Настраиваю групповой доступ для: ${ADMIN_USERS[*]}" + for au in "${ADMIN_USERS[@]}"; do + if ! id -u "${au}" >/dev/null 2>&1; then + echo " ! пользователь ${au} не существует — пропускаю" + continue + fi + usermod -aG "${SERVICE_USER}" "${au}" + echo " + ${au} добавлен в группу ${SERVICE_USER}" + + # Чтобы git не ругался на 'dubious ownership' под этим юзером + if command -v sudo >/dev/null 2>&1; then + sudo -u "${au}" git config --global --add safe.directory "${SERVER_DIR}" \ + 2>/dev/null || true + fi + done + + # g+rwX на всё содержимое + setgid на каталоги + chmod -R g+rwX "${SERVER_DIR}" + find "${SERVER_DIR}" -type d -exec chmod g+s {} + + echo " Установлены g+rwX и setgid на ${SERVER_DIR}" + echo " ВАЖНО: после добавления в группу нужно перелогиниться," + echo " либо выполнить 'newgrp ${SERVICE_USER}' в текущей сессии." +fi + +# 6. Проверка EULA — без неё сервер встанет ожидая ввод (а в systemd ввода нет) +EULA_FILE="${SERVER_DIR}/eula.txt" +if [[ ! -f "${EULA_FILE}" ]] || ! grep -qE '^\s*eula\s*=\s*true' "${EULA_FILE}"; then + cat >&2 <> Создаю ${UNIT_FILE}..." +cat > "${UNIT_FILE}" <> Перечитываю systemd, включаю и запускаю сервис..." +systemctl daemon-reload +systemctl enable "${SERVICE_NAME}.service" +systemctl restart "${SERVICE_NAME}.service" + +sleep 2 +echo "" +echo "====================================================================" +systemctl --no-pager --full status "${SERVICE_NAME}.service" || true +echo "====================================================================" +echo "" +echo "Готово. Полезные команды:" +echo " sudo systemctl status ${SERVICE_NAME}" +echo " sudo systemctl stop ${SERVICE_NAME}" +echo " sudo systemctl restart ${SERVICE_NAME}" +echo " sudo journalctl -u ${SERVICE_NAME} -f # живые логи" +echo " sudo $0 --uninstall # удалить сервис" diff --git a/resourcepacks/PupaMLupa-Translations/assets/betterfpsdist/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/betterfpsdist/lang/ru_ru.json index ab52154..3c957c2 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/betterfpsdist/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/betterfpsdist/lang/ru_ru.json @@ -1,4 +1,4 @@ { - "options.verticalstretch": "Vertical render dist scale", - "options.horizontalstretch": "Horizontal render dist scale" + "options.verticalstretch": "Масштаб вертикальной дальности прорисовки", + "options.horizontalstretch": "Масштаб горизонтальной дальности прорисовки" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/catalogue/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/catalogue/lang/ru_ru.json index 56806a7..bfc02cf 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/catalogue/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/catalogue/lang/ru_ru.json @@ -1,32 +1,32 @@ { - "catalogue.gui.no_selection": "No mod selected...", - "catalogue.gui.mod_list": "Mods", - "catalogue.gui.search": "Search", - "catalogue.gui.config": "Config", - "catalogue.gui.open_mods_folder": "Open Mods Folder", - "catalogue.gui.licenses": "License(s): %s", - "catalogue.gui.authors": "Author(s): %s", - "catalogue.gui.contributors": "Contributor(s): %s", - "catalogue.gui.credits": "Credits: %s", - "catalogue.gui.version": "Version: %s", - "catalogue.gui.update_available": "Update: %s", - "catalogue.gui.info": "This menu is provided by Catalogue. Click here to open the CurseForge page for this mod!", - "catalogue.gui.favourite": "Mark as Favorite", - "catalogue.gui.remove_favourite": "Remove as Favorite", - "catalogue.gui.options": "Options", - "catalogue.gui.filters": "Filters", - "catalogue.gui.filters.configs_only": "Mods with Configs", - "catalogue.gui.filters.updates_only": "Mods with Updates", - "catalogue.gui.filters.favourites": "Favorites Only", - "catalogue.gui.sort": "Sort", - "catalogue.gui.sort.alphabetically": "A to Z", - "catalogue.gui.sort.alphabetically_reverse": "Z to A", - "catalogue.gui.sort.favourites_first": "Favorites First", - "catalogue.gui.hide_libraries": "Hide Libraries", - "catalogue.gui.no_mods": "No mods...", - "catalogue.gui.mod_count": "%s Mods", - "catalogue.gui.library_count": "%s Libraries", - "catalogue.gui.advanced_search.info": "Advanced search queries will ignore any active filters", - "catalogue.gui.show_dependencies": "Show Dependencies", - "catalogue.gui.show_dependents": "Show Dependents" + "catalogue.gui.no_selection": "Мод не выбран...", + "catalogue.gui.mod_list": "Моды", + "catalogue.gui.search": "Поиск", + "catalogue.gui.config": "Настройки", + "catalogue.gui.open_mods_folder": "Открыть папку модов", + "catalogue.gui.licenses": "Лицензия(и): %s", + "catalogue.gui.authors": "Автор(ы): %s", + "catalogue.gui.contributors": "Участник(и): %s", + "catalogue.gui.credits": "Благодарности: %s", + "catalogue.gui.version": "Версия: %s", + "catalogue.gui.update_available": "Обновление: %s", + "catalogue.gui.info": "Это меню предоставляет Catalogue. Нажми здесь, чтобы открыть страницу этого мода на CurseForge!", + "catalogue.gui.favourite": "Добавить в избранное", + "catalogue.gui.remove_favourite": "Убрать из избранного", + "catalogue.gui.options": "Параметры", + "catalogue.gui.filters": "Фильтры", + "catalogue.gui.filters.configs_only": "Моды с настройками", + "catalogue.gui.filters.updates_only": "Моды с обновлениями", + "catalogue.gui.filters.favourites": "Только избранные", + "catalogue.gui.sort": "Сортировка", + "catalogue.gui.sort.alphabetically": "От А до Я", + "catalogue.gui.sort.alphabetically_reverse": "От Я до А", + "catalogue.gui.sort.favourites_first": "Сначала избранные", + "catalogue.gui.hide_libraries": "Скрыть библиотеки", + "catalogue.gui.no_mods": "Модов нет...", + "catalogue.gui.mod_count": "%s модов", + "catalogue.gui.library_count": "%s библиотек", + "catalogue.gui.advanced_search.info": "Расширенные поисковые запросы игнорируют активные фильтры", + "catalogue.gui.show_dependencies": "Показать зависимости", + "catalogue.gui.show_dependents": "Показать зависимые моды" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/defaultoptions/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/defaultoptions/lang/ru_ru.json index d338af7..58110be 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/defaultoptions/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/defaultoptions/lang/ru_ru.json @@ -1,6 +1,6 @@ { - "defaultoptions.configuration.defaultDifficulty": "Default Difficulty", - "defaultoptions.configuration.defaultDifficulty.tooltip": "The default difficulty selected for newly created worlds.", - "defaultoptions.configuration.lockDifficulty": "Lock Difficulty", - "defaultoptions.configuration.lockDifficulty.tooltip": "Set to true if the difficulty for new world's should be locked to the specific default. This cannot be unlocked by players without external tools! Probably a bad idea. I don't recommend. Why am I adding this option?" + "defaultoptions.configuration.defaultDifficulty": "Сложность по умолчанию", + "defaultoptions.configuration.defaultDifficulty.tooltip": "Сложность по умолчанию для новых миров.", + "defaultoptions.configuration.lockDifficulty": "Заблокировать сложность", + "defaultoptions.configuration.lockDifficulty.tooltip": "Если включено, сложность новых миров будет навсегда зафиксирована на выбранном значении. Игроки не смогут снять блокировку без сторонних инструментов." } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/dtbop/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/dtbop/lang/ru_ru.json index b44cbaa..90ee624 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/dtbop/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/dtbop/lang/ru_ru.json @@ -1,94 +1,94 @@ { - "block.dtbop.dead_branch": "Dead Tree", - "block.dtbop.fir_branch": "Fir Tree", - "block.dtbop.hellbark_branch": "Hellbark Tree", - "block.dtbop.jacaranda_branch": "Jacaranda Tree", - "block.dtbop.magic_branch": "Magic Tree", - "block.dtbop.mahogany_branch": "Mahogany Tree", - "block.dtbop.maple_branch": "Maple Tree", - "block.dtbop.palm_branch": "Palm Tree", - "block.dtbop.pine_branch": "Pine Tree", - "block.dtbop.redwood_branch": "Redwood Tree", - "block.dtbop.umbran_branch": "Umbran Tree", - "block.dtbop.willow_branch": "Willow Tree", - "item.dtbop.aspen_seed": "Aspen Catkin", - "item.dtbop.dark_poplar_seed": "Dark Poplar Catkin", - "item.dtbop.dying_seed": "Dying Acorn", - "item.dtbop.fir_seed": "Fir Cone", - "item.dtbop.flowering_oak_seed": "Flowering Acorn", - "item.dtbop.glowshroom_seed": "Glowshroom Cap", - "item.dtbop.hellbark_seed": "Hellbark Seed", - "item.dtbop.jacaranda_seed": "Jacaranda Pod", - "item.dtbop.magic_poplar_seed": "Magic Poplar Catkin", - "item.dtbop.mahogany_seed": "Mahogany Pod", - "item.dtbop.mega_fir_seed": "Mega Fir Cone", - "item.dtbop.mega_umbran_seed": "Mega Umbran Cone", - "item.dtbop.orange_maple_seed": "Orange Maple Samara", - "item.dtbop.palm_seed": "Palm Seed", - "item.dtbop.pine_seed": "Pine Cone", - "item.dtbop.poplar_seed": "Poplar Catkin", - "item.dtbop.rainbow_birch_seed": "Rainbow Birch Catkin", - "item.dtbop.red_maple_seed": "Red Maple Samara", - "item.dtbop.redwood_seed": "Redwood Cone", - "item.dtbop.snowblossom_seed": "Snowblossom Pit", - "item.dtbop.spruce_poplar_seed": "Spruce Poplar Catkin", - "item.dtbop.toadstool_seed": "Toadstool Cap", - "item.dtbop.umbran_seed": "Umbran Cone", - "item.dtbop.willow_seed": "Willow Catkin", - "item.dtbop.yellow_maple_seed": "Yellow Maple Samara", - "species.dtbop.acacia_twiglet": "Acacia Twiglet", - "species.dtbop.acacia_undergrowth": "Acacia Undergrowth", - "species.dtbop.alps_spruce": "Alps Spruce", - "species.dtbop.aspen": "Aspen", - "species.dtbop.cherry_twiglet": "Cherry Twiglet", - "species.dtbop.cypress_willow": "Cypress Willow", - "species.dtbop.dark_oak_twiglet": "Dark Oak Twiglet", - "species.dtbop.dark_poplar": "Dark Poplar", - "species.dtbop.dead": "Dead", - "species.dtbop.dying": "Dying", - "species.dtbop.fir": "Fir", - "species.dtbop.flowering_apple_oak": "Flowering Apple Oak", - "species.dtbop.flowering_oak": "Flowering Oak", - "species.dtbop.flowering_oak_undergrowth": "Flowering Oak Undergrowth", - "species.dtbop.glowshroom": "Glowshroom", - "species.dtbop.hellbark": "Hellbark", - "species.dtbop.hellbark_bush": "Hellbark Bush", - "species.dtbop.infested": "Infested", - "species.dtbop.infested_oak_undergrowth": "Infested Oak Undergrowth", - "species.dtbop.jacaranda": "Jacaranda", - "species.dtbop.jungle_twiglet": "Jungle Twiglet", - "species.dtbop.large_magic_poplar": "Large Magic Poplar", - "species.dtbop.magic_poplar": "Magic Poplar", - "species.dtbop.mahogany": "Mahogany", - "species.dtbop.mangrove_twiglet": "Mangrove Twiglet", - "species.dtbop.maple_twiglet": "Maple Twiglet", - "species.dtbop.mega_dark_oak": "Mega Dark Oak", - "species.dtbop.mega_fir": "Mega Fir", - "species.dtbop.mega_umbran": "Mega Umbran", - "species.dtbop.mini_brown_mushroom": "Mini Brown Mushroom", - "species.dtbop.oak_twiglet": "Oak Twiglet", - "species.dtbop.orange_maple": "Orange Maple", - "species.dtbop.palm": "Palm", - "species.dtbop.pine": "Pine", - "species.dtbop.poplar": "Poplar", - "species.dtbop.rainbow_birch": "Rainbow Birch", - "species.dtbop.red_maple": "Red Maple", - "species.dtbop.redwood": "Redwood", - "species.dtbop.short_jungle": "Short Jungle", - "species.dtbop.silk": "Silk", - "species.dtbop.silk_undergrowth": "Silk Undergrowth", - "species.dtbop.small_redwood": "Small Redwood", - "species.dtbop.snowblossom": "Snowblossom", - "species.dtbop.snowblossom_twiglet": "Snowblossom Twiglet", - "species.dtbop.sparse_acacia": "Sparse Acacia", - "species.dtbop.sparse_oak": "Sparse Oak", - "species.dtbop.spruce_poplar": "Spruce Poplar", - "species.dtbop.spruce_twiglet": "Spruce Twiglet", - "species.dtbop.spruce_undergrowth": "Spruce Undergrowth", - "species.dtbop.tall_dead": "Tall Dead", - "species.dtbop.tall_dying": "Tall Dying", - "species.dtbop.toadstool": "Toadstool", - "species.dtbop.umbran": "Umbran", - "species.dtbop.willow": "Willow", - "species.dtbop.yellow_maple": "Yellow Maple" + "block.dtbop.dead_branch": "Мертвое дерево", + "block.dtbop.fir_branch": "Пихта", + "block.dtbop.hellbark_branch": "Хеллбарк", + "block.dtbop.jacaranda_branch": "Жакаранда", + "block.dtbop.magic_branch": "Магическое дерево", + "block.dtbop.mahogany_branch": "Махагони", + "block.dtbop.maple_branch": "Клен", + "block.dtbop.palm_branch": "Пальма", + "block.dtbop.pine_branch": "Сосна", + "block.dtbop.redwood_branch": "Секвойя", + "block.dtbop.umbran_branch": "Умбран", + "block.dtbop.willow_branch": "Ива", + "item.dtbop.aspen_seed": "Сережка осины", + "item.dtbop.dark_poplar_seed": "Сережка темного тополя", + "item.dtbop.dying_seed": "Увядающий желудь", + "item.dtbop.fir_seed": "Шишка пихты", + "item.dtbop.flowering_oak_seed": "Цветущий желудь", + "item.dtbop.glowshroom_seed": "Шляпка светогриба", + "item.dtbop.hellbark_seed": "Семена хеллбарка", + "item.dtbop.jacaranda_seed": "Стручок жакаранды", + "item.dtbop.magic_poplar_seed": "Сережка магического тополя", + "item.dtbop.mahogany_seed": "Стручок махагони", + "item.dtbop.mega_fir_seed": "Шишка мега-пихты", + "item.dtbop.mega_umbran_seed": "Шишка мега-умбрана", + "item.dtbop.orange_maple_seed": "Семянка оранжевого клена", + "item.dtbop.palm_seed": "Семена пальмы", + "item.dtbop.pine_seed": "Шишка сосны", + "item.dtbop.poplar_seed": "Сережка тополя", + "item.dtbop.rainbow_birch_seed": "Сережка радужной березы", + "item.dtbop.red_maple_seed": "Семянка красного клена", + "item.dtbop.redwood_seed": "Шишка секвойи", + "item.dtbop.snowblossom_seed": "Косточка снежноцвета", + "item.dtbop.spruce_poplar_seed": "Сережка елового тополя", + "item.dtbop.toadstool_seed": "Шляпка мухомора", + "item.dtbop.umbran_seed": "Шишка умбрана", + "item.dtbop.willow_seed": "Сережка ивы", + "item.dtbop.yellow_maple_seed": "Семянка желтого клена", + "species.dtbop.acacia_twiglet": "Саженец акации", + "species.dtbop.acacia_undergrowth": "Подлесок акации", + "species.dtbop.alps_spruce": "Альпийская ель", + "species.dtbop.aspen": "Осина", + "species.dtbop.cherry_twiglet": "Саженец вишни", + "species.dtbop.cypress_willow": "Кипарисовая ива", + "species.dtbop.dark_oak_twiglet": "Саженец темного дуба", + "species.dtbop.dark_poplar": "Темный тополь", + "species.dtbop.dead": "Мертвое", + "species.dtbop.dying": "Увядающее", + "species.dtbop.fir": "Пихта", + "species.dtbop.flowering_apple_oak": "Цветущий яблоневый дуб", + "species.dtbop.flowering_oak": "Цветущий дуб", + "species.dtbop.flowering_oak_undergrowth": "Подлесок цветущего дуба", + "species.dtbop.glowshroom": "Светогриб", + "species.dtbop.hellbark": "Хеллбарк", + "species.dtbop.hellbark_bush": "Куст хеллбарка", + "species.dtbop.infested": "Зараженное", + "species.dtbop.infested_oak_undergrowth": "Подлесок зараженного дуба", + "species.dtbop.jacaranda": "Жакаранда", + "species.dtbop.jungle_twiglet": "Саженец джунглевого дерева", + "species.dtbop.large_magic_poplar": "Большой магический тополь", + "species.dtbop.magic_poplar": "Магический тополь", + "species.dtbop.mahogany": "Махагони", + "species.dtbop.mangrove_twiglet": "Саженец мангрового дерева", + "species.dtbop.maple_twiglet": "Саженец клена", + "species.dtbop.mega_dark_oak": "Мега темный дуб", + "species.dtbop.mega_fir": "Мега-пихта", + "species.dtbop.mega_umbran": "Мега-умбран", + "species.dtbop.mini_brown_mushroom": "Мини-коричневый гриб", + "species.dtbop.oak_twiglet": "Саженец дуба", + "species.dtbop.orange_maple": "Оранжевый клен", + "species.dtbop.palm": "Пальма", + "species.dtbop.pine": "Сосна", + "species.dtbop.poplar": "Тополь", + "species.dtbop.rainbow_birch": "Радужная береза", + "species.dtbop.red_maple": "Красный клен", + "species.dtbop.redwood": "Секвойя", + "species.dtbop.short_jungle": "Низкое джунглевое дерево", + "species.dtbop.silk": "Шелковое", + "species.dtbop.silk_undergrowth": "Шелковый подлесок", + "species.dtbop.small_redwood": "Малая секвойя", + "species.dtbop.snowblossom": "Снежноцвет", + "species.dtbop.snowblossom_twiglet": "Саженец снежноцвета", + "species.dtbop.sparse_acacia": "Редкая акация", + "species.dtbop.sparse_oak": "Редкий дуб", + "species.dtbop.spruce_poplar": "Еловый тополь", + "species.dtbop.spruce_twiglet": "Саженец ели", + "species.dtbop.spruce_undergrowth": "Еловый подлесок", + "species.dtbop.tall_dead": "Высокое мертвое дерево", + "species.dtbop.tall_dying": "Высокое увядающее дерево", + "species.dtbop.toadstool": "Мухомор", + "species.dtbop.umbran": "Умбран", + "species.dtbop.willow": "Ива", + "species.dtbop.yellow_maple": "Желтый клен" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/enhancedbossbars/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/enhancedbossbars/lang/ru_ru.json index 6fd1785..b5732f8 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/enhancedbossbars/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/enhancedbossbars/lang/ru_ru.json @@ -1,28 +1,28 @@ { - "enhanced_boss_bar.minecraft.wither" : "Wither", - "enhanced_boss_bar.minecraft.ender_dragon" : "Ender Dragon", + "enhanced_boss_bar.minecraft.wither" : "Иссушитель", + "enhanced_boss_bar.minecraft.ender_dragon" : "Эндер-дракон", "enhanced_boss_bar.cataclysm.ignis" : "Ignis", "enhanced_boss_bar.cataclysm.ender_guardian" : "Ender Guardian", "enhanced_boss_bar.cataclysm.netherite_monstrosity" : "Netherite Monstrosity", - "enhanced_boss_bar.cataclysm.the_harbinger" : "The Harbinger", - "enhanced_boss_bar.cataclysm.the_leviathan" : "The Leviathan", - "enhanced_boss_bar.mass_destruction.night_lich" : "Night Lich", - "enhanced_boss_bar.mass_destruction.nether_gauntlet" : "Nether Gauntlet", - "enhanced_boss_bar.mass_destruction.void_blossom" : "Void Blossom", + "enhanced_boss_bar.cataclysm.the_harbinger" : "Предвестник", + "enhanced_boss_bar.cataclysm.the_leviathan" : "Левиафан", + "enhanced_boss_bar.mass_destruction.night_lich" : "Ночной лич", + "enhanced_boss_bar.mass_destruction.nether_gauntlet" : "Незерская рукавица", + "enhanced_boss_bar.mass_destruction.void_blossom" : "Цветок Пустоты", "enhanced_boss_bar.mass_destruction.obsidilith" : "Obsidilith", - "enhanced_boss_bar.mowziesmobs.ferrous_wroughtnaut" : "Ferrous Wroughtnaut", - "enhanced_boss_bar.mowziesmobs.frostmaw" : "Frostmaw", + "enhanced_boss_bar.mowziesmobs.ferrous_wroughtnaut" : "Железный Вротнаут", + "enhanced_boss_bar.mowziesmobs.frostmaw" : "Фростмоу", "enhanced_boss_bar.mowziesmobs.umvuthi" : "Umvuthi", - "enhanced_boss_bar.witherstormmod.witherstorm" : "Wither Storm", + "enhanced_boss_bar.witherstormmod.witherstorm" : "Шторм Иссушителя", "enhanced_boss_bar.meetyourfight.bellringer" : "Bellringer", "enhanced_boss_bar.meetyourfight.swampjaw" : "Swampjaw", "enhanced_boss_bar.alexsmobs.void_worm" : "Void Worm", - "enhanced_boss_bar.aether.slider" : "Slider", - "enhanced_boss_bar.aether.valkyrie_queen" : "Valkyrie Queen", - "enhanced_boss_bar.aether.sun_spirit" : "Sun Spirit", + "enhanced_boss_bar.aether.slider" : "Слайдер", + "enhanced_boss_bar.aether.valkyrie_queen" : "Королева валькирий", + "enhanced_boss_bar.aether.sun_spirit" : "Дух солнца", - "enhanced_boss_bar.config.title" : "Enhanced Boss Bar Config", - "enhanced_boss_bar.config.subtitle" : "Bosses", + "enhanced_boss_bar.config.title" : "Настройки Enhanced Boss Bar", + "enhanced_boss_bar.config.subtitle" : "Боссы", "enhanced_boss_bar.config.minecraft" : "Minecraft", "enhanced_boss_bar.config.cataclysm" : "L'Ender Cataclysm", "enhanced_boss_bar.config.mass_destruction" : "Bosses of Mass Destruction", diff --git a/resourcepacks/PupaMLupa-Translations/assets/fastpaintings/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/fastpaintings/lang/ru_ru.json index 2ecf59b..0f03969 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/fastpaintings/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/fastpaintings/lang/ru_ru.json @@ -1,3 +1,3 @@ { - "block.fastpaintings.painting": "Painting" + "block.fastpaintings.painting": "Картина" } diff --git a/resourcepacks/PupaMLupa-Translations/assets/globalpacks/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/globalpacks/lang/ru_ru.json index 4e00ba6..b03885a 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/globalpacks/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/globalpacks/lang/ru_ru.json @@ -1,4 +1,4 @@ { - "globalpacks.source.global": "[Global] %s", - "globalpacks.source.global_opt": "[Global (Optional)] %s" + "globalpacks.source.global": "[Глобальный] %s", + "globalpacks.source.global_opt": "[Глобальный (Необязательный)] %s" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/goblintraders/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/goblintraders/lang/ru_ru.json index bf17b41..67de0d6 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/goblintraders/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/goblintraders/lang/ru_ru.json @@ -1,13 +1,13 @@ { - "entity.goblintraders.goblin_trader": "Goblin Trader", - "entity.goblintraders.vein_goblin_trader": "Vein Goblin Trader", - "subtitle.goblintraders.goblin_trader.annoyed_grunt": "Annoyed Grunt", - "subtitle.goblintraders.goblin_trader.idle_grunt": "Idle Grunt", - "item.goblintraders.goblin_trader_spawn_egg": "Goblin Trader Spawn Egg", - "item.goblintraders.vein_goblin_trader_spawn_egg": "Vein Goblin Trader Spawn Egg", - "stat.goblintraders.trade_with_goblin": "Traded with Goblins", - "custom.goblintraders.tuned": "Goblin Tuned", - "custom.goblintraders.lore": "A special item reengineered by the goblin with enhanced attributes", - "custom.goblintraders.moon_boots": "Moon Boots", - "custom.goblintraders.mystery_map": "Mystery Map" + "entity.goblintraders.goblin_trader": "Гоблин-торговец", + "entity.goblintraders.vein_goblin_trader": "Рудный гоблин-торговец", + "subtitle.goblintraders.goblin_trader.annoyed_grunt": "Недовольное ворчание", + "subtitle.goblintraders.goblin_trader.idle_grunt": "Ворчание", + "item.goblintraders.goblin_trader_spawn_egg": "Яйцо призыва гоблина-торговца", + "item.goblintraders.vein_goblin_trader_spawn_egg": "Яйцо призыва рудного гоблина-торговца", + "stat.goblintraders.trade_with_goblin": "Сделок с гоблинами", + "custom.goblintraders.tuned": "Гоблинская доработка", + "custom.goblintraders.lore": "Особый предмет, доработанный гоблином и получивший улучшенные характеристики", + "custom.goblintraders.moon_boots": "Лунные сапоги", + "custom.goblintraders.mystery_map": "Таинственная карта" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/justenoughprofessions/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/justenoughprofessions/lang/ru_ru.json index d966e57..a03cc4e 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/justenoughprofessions/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/justenoughprofessions/lang/ru_ru.json @@ -1,3 +1,3 @@ { - "justenoughprofessions.professions.title": "Professions" + "justenoughprofessions.professions.title": "Профессии" } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/leaky/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/leaky/lang/ru_ru.json index e5cf58c..a263805 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/leaky/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/leaky/lang/ru_ru.json @@ -1,4 +1,4 @@ { - "leaky.removedItems": ". Cleaned items automatically to prevent lag", - "leaky.detect": "Detected: %d stacked items in %s at: " + "leaky.removedItems": ". Предметы автоматически очищены для предотвращения лагов", + "leaky.detect": "Обнаружено: %d сложенных предметов в %s в: " } \ No newline at end of file diff --git a/resourcepacks/PupaMLupa-Translations/assets/simplytooltips/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/simplytooltips/lang/ru_ru.json index ea0785a..09e834c 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/simplytooltips/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/simplytooltips/lang/ru_ru.json @@ -1,5 +1,5 @@ { "simplytooltips.key.category": "Simply Tooltips", - "key.simplytooltips.cycle_tab": "Cycle Tooltip Tab", - "key.simplytooltips.capture_gif": "Capture Tooltip GIF" + "key.simplytooltips.cycle_tab": "Переключить вкладку подсказки", + "key.simplytooltips.capture_gif": "Записать GIF подсказки" } diff --git a/resourcepacks/PupaMLupa-Translations/assets/time_on_display/lang/ru_ru.json b/resourcepacks/PupaMLupa-Translations/assets/time_on_display/lang/ru_ru.json index 68bca3c..155d20e 100644 --- a/resourcepacks/PupaMLupa-Translations/assets/time_on_display/lang/ru_ru.json +++ b/resourcepacks/PupaMLupa-Translations/assets/time_on_display/lang/ru_ru.json @@ -1,4 +1,4 @@ { - "key.time_on_display.toggle": "Toggle Time Display", - "key.category.time_on_display.overlay": "TimeOnDisplay" + "key.time_on_display.toggle": "Переключить отображение времени", + "key.category.time_on_display.overlay": "Отображение времени" }