"""Локализация интерфейса (RU/EN). Ключи — исходные русские строки; неизвестные ключи возвращаются как есть, поэтому непереведённые строки просто отображаются по-русски. """ LANG = "ru" # Русский текст -> English _TABLE = { # --- главное окно "PixelLauncher": "PixelLauncher", "ИГРАТЬ": "PLAY", "ОТМЕНА": "CANCEL", "Готово к запуску": "Ready to play", "Minecraft …": "Minecraft …", "ПОСЛЕДНИЕ ВЕРСИИ": "LATEST VERSIONS", "загрузка…": "loading…", "Ночной пейзаж": "Night landscape", "Дневной пейзаж": "Day landscape", "Загружено версий: ": "Versions loaded: ", # --- меню (шестерёнка) "Профиль…": "Profile…", "Аккаунты…": "Accounts…", "Выбрать версию…": "Select version…", "Установить Fabric/Quilt…": "Install Fabric/Quilt…", "Резервная копия миров": "Back up worlds", "Скачать эту версию": "Download this version", "Проверить файлы игры…": "Verify game files…", "Очистка версий…": "Version cleanup…", "Журнал…": "Log…", "Настройки…": "Settings…", "О программе…": "About…", # --- диалоги общие "Сохранить": "Save", "Отмена": "Cancel", "Закрыть": "Close", "Выбрать": "Select", "Удалить": "Delete", "Установить": "Install", "Обновить список": "Refresh list", "Открыть": "Open", # --- профиль "Профиль игрока": "Player profile", "Ник:": "Nickname:", "ОЗУ (МБ):": "RAM (MB):", "Java:": "Java:", "JVM-аргументы:": "JVM arguments:", "Пусто = подбор Java автоматически.": "Empty = auto-detect Java.", "Ник: 3-16 символов, латиница, цифры и _": "Nickname: 3-16 chars, Latin letters, digits and _", "Профиль сохранён: ": "Profile saved: ", "Авто (по памяти системы)": "Auto (by system RAM)", # --- аккаунты "Аккаунты": "Accounts", "Добавить аккаунт…": "Add account…", "Удалить аккаунт": "Delete account", "Нельзя удалить последний аккаунт": "Cannot delete the last account", "Аккаунт переключён: ": "Switched to account: ", # --- выбор версии "Выбор версии": "Select version", "Фильтр по имени · двойной клик — выбрать версию": "Filter by name · double-click to select", "Версия выбрана: ": "Version selected: ", "[снапшот]": "[snapshot]", "[локальная]": "[custom]", "загрузка…": "loading…", "релиз": "release", "снапшот": "snapshot", # --- Fabric/Quilt "Установка Fabric/Quilt": "Install Fabric/Quilt", "Установка лоадера": "Install mod loader", "Установить лоадер…": "Install mod loader…", "Нет версий лоадера для этой игры": "No loader versions for this game", "Выберите версию лоадера": "Select a loader version", "Инсталлятор сам скачает библиотеки и профиль — может занять несколько минут.": "The installer downloads the libraries and profile itself — may take a few minutes.", "Загрузка списка версий лоадера...": "Loading loader version list...", "Игровая версия:": "Game version:", "Версия лоадера:": "Loader version:", "Лоадер:": "Loader:", "Fabric": "Fabric", "Quilt": "Quilt", "Ставится только JSON профиля — файлы докачаются при запуске.": "Only the profile JSON is installed — files are downloaded on launch.", "Установлено: ": "Installed: ", "Не удалось получить список версий лоадера: ": "Failed to load loader versions: ", # --- настройки "Настройки": "Settings", "Папка игры:": "Game folder:", "Здесь хранятся .minecraft, миры и файлы игры.": "This is where .minecraft, worlds and game files live.", "Открыть папку игры": "Open game folder", "Открыть папку миров": "Open saves folder", "Открыть скриншоты": "Open screenshots", "Галерея скриншотов…": "Screenshot gallery…", "Галерея": "Gallery", "Скриншотов пока нет": "No screenshots yet", "Открыть файл": "Open file", "Удалить скриншот {p}?": "Delete screenshot {p}?", "Скриншот удалён: ": "Screenshot deleted: ", "Не удалось открыть скриншот": "Failed to open screenshot", "Не удалось удалить скриншот": "Failed to delete screenshot", "Импорт модпака: ": "Importing modpack: ", "Мод добавлен: ": "Mod added: ", "Не удалось добавить мод": "Failed to add mod", "Плагин добавлен: ": "Plugin added: ", "Не удалось добавить плагин": "Failed to add plugin", "Файл не подходит для лаунчера: ": "This file doesn't fit the launcher: ", "Есть обновления модов: {n}. Откройте «Моды» для обновления.": "{n} mod updates available. Open Mods to update.", "Запуск:": "Startup:", "С автозагрузкой Windows": "With Windows autostart", "Прятать в трей при запуске игры": "Hide to tray when game starts", "Автозагрузка отключена": "Autostart disabled", "Автозагрузка включена: ": "Autostart enabled: ", "Не удалось изменить автозагрузку": "Failed to change autostart", "Быстрые настройки": "Quick settings", "ОЗУ": "RAM", "Версия": "Version", "авто": "auto", "ГБ": "GB", "вкл": "on", "выкл": "off", "Трей": "Tray", "Бэкап": "Backup", "Светлая тема": "Light theme", "Каталог модпаков": "Modpack Catalog", "Каталог модпаков…": "Modpack Catalog…", "Модпаков в каталоге: ": "Modpacks in catalog: ", "Скачивание: ": "Downloading: ", "Дождитесь окончания текущей загрузки": "Wait for the current download to finish", "Язык:": "Language:", "Тема:": "Theme:", "Тёмная": "Dark", "Светлая": "Light", "Акцентный цвет:": "Accent color:", "Зеркала ресурсов (по одному в строке, пусто = официальные):": "Resource mirrors (one per line, empty = official):", "Зеркала библиотек (по одному в строке, пусто = официальные):": "Library mirrors (one per line, empty = official):", # --- журнал / статус "Журнал": "Log", "Игра запущена, PID ": "Game started, PID ", "Приятной игры!": "Have fun!", "Вывод игры пишется в ": "Game output is written to ", "Получение манифеста версий...": "Fetching version manifest...", "Версия: ": "Version: ", "Java не найдена. Установите Java или укажите путь в профиле": "Java not found. Install Java or set its path in the profile", "Java не найдена, скачиваю...": "Java not found, downloading...", "Скачивание Java {v} (Adoptium)...": "Downloading Java {v} (Adoptium)...", "Распаковка Java...": "Extracting Java...", "Не удалось распаковать Java": "Failed to extract Java", "Java {v} установлена": "Java {v} installed", "Не удалось скачать Java: ": "Failed to download Java: ", "Скачивание файлов игры...": "Downloading game files...", "Проверка целостности файлов (SHA-1)...": "Verifying game files (SHA-1)...", "Скачивание библиотек (": "Downloading libraries (", "Скачивание ассетов...": "Downloading assets...", "Файлы": "Files", "Ассеты": "Assets", "Java": "Java", "Загрузка отменена": "Download cancelled", "Отмена...": "Cancelling...", "Все файлы на месте, повреждений не найдено.": "All files are in place, no corruption found.", "Версия скачана и готова к запуску.": "Version downloaded and ready to play.", "Ошибка: ": "Error: ", "Ошибок скачивания: ": "Download errors: ", # --- вылет игры "Игра аварийно завершилась (код {c}). Хвост лога:": "The game crashed (code {c}). Log tail:", "Игра аварийно завершилась": "Game crashed", "Полный лог: ": "Full log: ", "Игра завершилась": "Game exited", # --- бэкап "Создание резервной копии: ": "Creating backup: ", "файлов...": " files...", "Копия создана: ": "Backup created: ", "Папка миров (saves) не найдена": "Worlds folder (saves) not found", # --- очистка версий "Очистка версий": "Version cleanup", "Считаю размеры...": "Calculating sizes...", "Удалить выбранную версию": "Delete selected version", "Удалить неиспользуемые ассеты": "Delete unused assets", "Удалить неиспользуемые ассеты: ": "Deleted unused assets: ", "ГБ освобождено": " GB freed", "Версия используется как выбранная — смените её в списке.": "This version is currently selected — pick another one first.", "Удалить версию {v}?": "Delete version {v}?", "Версия удалена: ": "Version deleted: ", "Удалено неиспользуемых ассетов: ": "Unused assets removed: ", "МБ": "MB", # --- о программе "О программе": "About", "Компактный оффлайн-лаунчер Minecraft\nв стиле LiteLauncher.\n\n" "• Все версии из манифеста Mojang\n" "• Автодокачка файлов с проверкой SHA-1\n" "• Автоподбор Java, копии миров\n" "• Без сторонних библиотек": "Compact offline Minecraft launcher\nin the spirit of LiteLauncher.\n\n" "• Every version from the Mojang manifest\n" "• Auto-download with SHA-1 checks\n" "• Java auto-detect, world backups\n" "• No third-party libraries", "Манифест Mojang": "Mojang manifest", # --- прочее "Не удалось загрузить список версий: ": "Failed to load version list: ", "Не удалось получить список версий: ": "Failed to load versions: ", "Не удалось разобрать JSON версии": "Failed to parse version JSON", "Настройки сохранены": "Settings saved", "Копировать": "Copy", "Копирование": "Copying", "Выберите java.exe": "Select java.exe", "Все файлы": "All files", "Лоадер:": "Loader:", "Установка...": "Installing...", "Поиск неиспользуемых ассетов...": "Searching for unused assets...", "Java {jver} найдена": "Java {jver} found", "Нужна Java {r}+, найдена {j}. Возможны проблемы.": "Need Java {r}+, found {j}. Issues possible.", "Подтверждаю": "Confirm", "Да": "Yes", "Нет": "No", # --- моды (Modrinth) "Моды…": "Mods…", "Моды": "Mods", "Поиск модов на Modrinth:": "Search mods on Modrinth:", "Искать": "Search", "Версия для поиска:": "Version for search:", "загрузок": "downloads", "Описание:": "Description:", "Установленные моды": "Installed mods", "Включить": "Enable", "Выключить": "Disable", "Папка mods": "Open mods folder", "Установить Fabric API": "Install Fabric API", "Мод установлен: ": "Mod installed: ", "Мод отключён: ": "Mod disabled: ", "Мод включён: ": "Mod enabled: ", "Мод удалён: ": "Mod deleted: ", "Моды для {v}": "Mods for {v}", "Нет Fabric/Quilt-версии — API не ставится.": "No Fabric/Quilt version selected — API cannot be installed.", "Ничего не найдено": "Nothing found", "Идёт поиск…": "Searching…", "нет совпадений": "no matches", "Нужен Fabric или Quilt": "Fabric or Quilt required", "Уже установлено": "Already installed", # --- модпаки "Импорт модпака…": "Import modpack…", "Модпаки": "Modpacks", "Модпак установлен: ": "Modpack installed: ", "Установка модпака: ": "Installing modpack: ", "Установка: ": "Installing: ", "Модпак": "Modpack", "Ок": "OK", # --- история "История и статистика…": "History & stats…", "История и статистика": "History & stats", "Всего времени: ": "Total playtime: ", "Запусков: ": "Launches: ", "Последние запуски": "Recent launches", "Очистить историю": "Clear history", "История очищена": "History cleared", "вылетов": "crashes", "вылет": "crash", "шт.": "x", # --- окно игры / JVM-пресеты (профиль) "Окно игры:": "Game window:", "Ширина:": "Width:", "Высота:": "Height:", "Полный экран": "Fullscreen", "0 или пусто = как в игре.": "0 or empty = game default.", "Пресет JVM:": "JVM preset:", "(нет)": "(none)", "Производительность (1.16+)": "Performance (1.16+)", "Старые версии (Java 8)": "Old versions (Java 8)", "Скин-превью…": "Skin preview…", # --- настройки: прокси, масштаб, бэкап "Прокси:": "Proxy:", "Использовать прокси": "Use proxy", "Тип:": "Type:", "Хост:": "Host:", "Порт:": "Port:", "Логин:": "Login:", "Пароль:": "Password:", "Масштаб интерфейса:": "UI scale:", "Применится сразу (шрифты).": "Applies immediately (fonts).", "Авто-бэкап мира перед запуском": "Auto-backup world before launch", "HTTP-прокси и SOCKS5. Пустой хост = выключен.": "HTTP proxy and SOCKS5. Empty host = off.", "Проверить прокси": "Test proxy", "Прокси работает": "Proxy works", "Прокси не работает: ": "Proxy failed: ", # --- журнал: архив и поиск "Сеанс (живой)": "Session (live)", "Архив логов": "Log archive", "Найти:": "Find:", "Найдено: ": "Found: ", "нет": "none", "только ошибки": "errors only", "строка": "lines", # --- скин "Обновить": "Refresh", "Своё фото…": "Own file…", "Скин загружен": "Skin loaded", "Скин не найден": "Skin not found", "Скин-превью": "Skin preview", # --- ярлык / экспорт "Создать ярлык версии…": "Create shortcut for version…", "Ярлык создан: ": "Shortcut created: ", "Ярлык": "Shortcut", "Профиль не найден: ": "Profile not found: ", "Не удалось создать ярлык": "Failed to create shortcut", "Экспорт настроек…": "Export settings…", "Импорт настроек…": "Import settings…", "Настройки экспортированы: ": "Settings exported: ", "Настройки импортированы": "Settings imported", "Не удалось прочитать файл настроек": "Failed to read settings file", # --- сцены баннера "Сцена баннера": "Banner scene", "День": "Day", "Ночь": "Night", "Незер": "Nether", "Пещера": "Cave", "Случайно": "Random", "Пейзаж Нижнего мира": "Nether landscape", "Пещерный пейзаж": "Cave landscape", "Сцена: ": "Scene: ", # --- трей "Показать лаунчер": "Show launcher", "Выход": "Quit", "Игра запущена": "Game launched", # --- профили запуска "Профили…": "Profiles…", "Профили": "Profiles", "Профиль": "Profile", "Применить": "Apply", "Сохранить текущие": "Save current", "Новый профиль": "New profile", "Изменить": "Edit", "Без профиля": "No profile", "Профиль применён: ": "Profile applied: ", "Профиль удалён: ": "Profile removed: ", "Имя:": "Name:", "ОЗУ (МБ):": "RAM (MB):", "Полный экран": "Fullscreen", "Запомнить включённые моды": "Remember enabled mods", "Список профилей пуст": "Profile list is empty", "Выберите профиль": "Select a profile", "Удалить профиль {p}?": "Remove profile {p}?", # --- миры и копии "Миры и копии…": "Worlds & backups…", "Миры": "Worlds", "Копии": "Backups", "Создать копию": "Create backup", "Копия мира {w} создана: ": "Backup of {w} created: ", "Удалить копию": "Delete backup", "Удалить копию {b}?": "Delete backup {b}?", "Открыть папку копий": "Open backups folder", "Удалить мир": "Delete world", "Удалить мир {w}? Это нельзя отменить.": "Delete world {w}? This cannot be undone.", "Мир удалён: ": "World deleted: ", "Копия удалена: ": "Backup deleted: ", "Список миров пуст": "No worlds found", "Копий нет": "No backups", "Выберите мир": "Select a world", # --- избранные версии "★ Закрепить/убрать": "★ Pin/unpin", "Только избранные": "Only pinned", "★ — закрепить версию, двойной клик — выбрать": "★ — pin version, double-click — select", # --- обновления модов "Проверить обновления": "Check for updates", "Проверка обновлений…": "Checking for updates…", "Обновлений не найдено": "No updates found", "Обновлений: ": "Updates: ", "Обновить всё": "Update all", "Обновить выбранное": "Update selected", "Обновление: ": "Updating: ", "Мод обновлён: ": "Mod updated: ", "Не удалось обновить: ": "Failed to update: ", # --- разбор вылетов "Причина: ": "Cause: ", "Похоже, не хватило ОЗУ. Увеличьте её в профиле или выберите пресет.": "Out of memory. Increase RAM in the profile or pick a preset.", "Проблема с Java: ": "Java problem: ", "Вероятная причина — мод {m}. Отключить его?": "Likely cause — mod {m}. Disable it?", "Мод отключён: ": "Mod disabled: ", # --- автообновление лаунчера "Проверить обновление лаунчера…": "Check for launcher update…", "Проверить обновление…": "Check for update…", "Проверка обновления…": "Checking for update…", "Обновление": "Update", "Не удалось проверить обновления: ": "Failed to check for updates: ", "У вас последняя версия": "You have the latest version", "Новая версия {v} (у вас {c}).\n\n{notes}\n\nСкачать и установить?": "New version {v} (you have {c}).\n\n{notes}\n\nDownload " "and install?", "Дождитесь окончания текущей операции": "Wait for the current operation to finish", "Скачивание обновления": "Downloading update", "Не удалось запустить установщик: ": "Failed to start the installer: ", "Запускается установщик обновления…": "Starting the update installer…", "Обновление не установлено: ": "Update not installed: ", "Отменено": "Cancelled", # --- мастер первоначальной настройки (первый запуск) "Добро пожаловать в PixelLauncher!": "Welcome to PixelLauncher!", "Первая настройка займёт минуту: язык, ник и память для игры.": "First-run setup takes a minute: language, nickname and RAM.", "Язык можно поменять позже в настройках.": "You can change the language later in settings.", "Шаг {n} из {m}": "Step {n} of {m}", "Как тебя зовут?": "What's your nickname?", "Ник игрока (виден в игре):": "Player nickname (visible in game):", "Недопустимый ник: латиница, цифры и _, 3-16 символов": "Invalid nickname: Latin letters, digits and _, 3-16 chars", "Сколько памяти выделить игре?": "How much RAM should the game get?", "Подобрать автоматически": "Choose automatically", "{mb} МБ ({gb} ГБ)": "{mb} MB ({gb} GB)", "Можно оставить авто — лаунчер подберёт значение при запуске.": "You can keep auto — the launcher will pick a value at launch.", "Всё готово!": "All set!", "Ник: {nick}": "Nickname: {nick}", "Язык: {lang}": "Language: {lang}", "Память: {ram}": "RAM: {ram}", "авто": "auto", "Чтобы пройти настройку заново, удалите файл settings.json.": "To run the setup again, delete the settings.json file.", "Назад": "Back", "Далее": "Next", "Пропустить настройку": "Skip setup", "Начать играть": "Start playing", # --- плагины и магазин "Плагины…": "Plugins…", "Магазин плагинов…": "Plugin store…", "Плагины": "Plugins", "Магазин плагинов": "Plugin store", "Плагинов нет. Загрузите из магазина.": "No plugins yet. Get some from the store.", "Папка плагинов: ": "Plugin folder: ", "Пересканировать": "Rescan", "Удалить плагин {f}?": "Delete plugin {f}?", "Открыть папку": "Open folder", "Загрузка каталога…": "Loading catalog…", "Каталог недоступен: ": "Catalog unavailable: ", "Плагинов в каталоге: ": "Plugins in catalog: ", "Установка…": "Installing…", "Плагин установлен: ": "Plugin installed: ", "Он уже загружен.": "It is already loaded.", # --- протокол pixellauncher:// "Неизвестная ссылка: ": "Unknown link: ", "Не удалось выполнить ссылку: ": "Failed to open link: ", "Протокол: ": "Protocol: ", "Действие плагина: ошибка: ": "Plugin action failed: ", # --- сборки (Modrinth / CurseForge) "Modrinth: сборки": "Modrinth: modpacks", "CurseForge: сборки": "CurseForge: modpacks", "Сборки Modrinth…": "Modrinth modpacks…", "Сборки CurseForge…": "CurseForge modpacks…", "Поиск сборок": "Search modpacks", "Файлы сборки": "Pack files", "Файлы сборки: ": "Pack files: ", "Выберите сборку": "Pick a modpack first", "Установка сборки: ": "Installing modpack: ", "Модпак установлен": "Modpack installed", "Сборка": "Modpack", "Загрузка…": "Loading…", "КБ": "KB", "Б": "B", } def set_language(lang): global LANG LANG = "en" if lang == "en" else "ru" def T(s): """Перевод строки; если перевода нет — исходная строка.""" if LANG == "en": return _TABLE.get(s, s) return s