From e7110936d8017a3fdc44dcc65b586d19674f555b Mon Sep 17 00:00:00 2001 From: Zakhar Smokotov Date: Wed, 28 Jan 2026 16:27:48 +0300 Subject: [PATCH] Add Russian language support Added Russian (ru) to the list of available languages. --- GUI/js/i18n.js | 3 +- GUI/locales/ru.json | 250 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 3 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 GUI/locales/ru.json diff --git a/GUI/js/i18n.js b/GUI/js/i18n.js index 6b93a8d..d69e186 100644 --- a/GUI/js/i18n.js +++ b/GUI/js/i18n.js @@ -10,7 +10,8 @@ const i18n = (() => { { code: 'es-ES', name: 'Español (España)' }, { code: 'pt-BR', name: 'Portuguese (Brazil)' }, { code: 'tr-TR', name: 'Turkish (Turkey)' }, - { code: 'pl-PL', name: 'Polish (Poland)' } + { code: 'pl-PL', name: 'Polish (Poland)' }, + { code: 'ru', name: 'Русский' } ]; // Load single language file diff --git a/GUI/locales/ru.json b/GUI/locales/ru.json new file mode 100644 index 0000000..9174ce2 --- /dev/null +++ b/GUI/locales/ru.json @@ -0,0 +1,250 @@ +{ + "nav": { + "play": "Играть", + "mods": "Моды", + "news": "Новости", + "chat": "Чат игроков", + "settings": "Настройки" + }, + "header": { + "playersLabel": "Игроки:", + "manageProfiles": "Управлять профилями:", + "defaultProfile": "По умолчанию" + }, + "install": { + "title": "FREE TO PLAY LAUNCHER", + "playerName": "Ник игрока", + "playerNamePlaceholder": "Введите ваш ник", + "gameBranch": "Версия игры", + "releaseVersion": "Релиз (Стабильная)", + "preReleaseVersion": "Бета (Эксперементально)", + "customInstallation": "Модифицированная установка", + "installationFolder": "Папка установки", + "pathPlaceholder": "Путь по умолчанию", + "browse": "Browse", + "installButton": "УСТАНОВИТЬ HYTALE", + "installing": "УСТАНОВКА..." + }, + "play": { + "ready": "ГОТОВ К ИГРЕ", + "subtitle": "Запусти Hytale и приготовься к приключению!", + "playButton": "ЗАПУСТИТЬ HYTALE", + "latestNews": "ПОСЛЕДНИЕ НОВОСТИ", + "viewAll": "ПОСМОТРЕТЬ ВСЕ", + "checking": "ПРОВЕРКА...", + "play": "ЗАПУСТИТЬ" + }, + "mods": { + "searchPlaceholder": "Искать моды...", + "myMods": "Мои моды", + "previous": "Предыдущая", + "next": "Вперед", + "page": "Страница", + "of": "", + "modalTitle": "МОИ МОДЫ", + "noModsFound": "Моды не найдены", + "noModsFoundDesc": "Попробуйте изменить свой запрос", + "noModsInstalled": "Нет установленных модов", + "noModsInstalledDesc": "Добавьте моды с CurseForge или импортируйте свои!", + "view": "Посмотреть", + "install": "Установить", + "installed": "УСТАНОВЛЕННЫЕ", + "enable": "ВКЛЮЧИТЬ", + "disable": "ВЫКЛЮЧИТЬ", + "active": "ВКЛЮЧЕН", + "disabled": "ВЫКЛЮЧЕН", + "delete": "Удалить мод", + "noDescription": "Нет доступного описания", + "confirmDelete": "Вы точно уверены, что хотите удалить \"{name}\"?", + "confirmDeleteDesc": "Это действие не отменить.", + "confirmDeletion": "Подтвердите удаление", + "apiKeyRequired": "Требуется ключ API", + "apiKeyRequiredDesc": "Ключ CurseForge API требуется для просмотра модов" + }, + "news": { + "title": "ВСЕ НОВОСТИ", + "readMore": "Читать дальше" + }, + "chat": { + "title": "ЧАТ ИГРОКОВ", + "pickColor": "Цвет", + "inputPlaceholder": "Введите свое сообщение...", + "send": "Отправить", + "online": "онлайн", + "charCounter": "{current}/{max}", + "secureChat": "Безопасный чат - все ссылки зацензурены", + "joinChat": "Присоединиться к чату", + "chooseUsername": "Выберите имя пользователя для входа в чат игроков", + "username": "Ник", + "usernamePlaceholder": "Введите ваш ник...", + "usernameHint": "3-20 символов, букв, цифр, только - и _", + "joinButton": "Присоединиться к чату", + "colorModal": { + "title": "Выберите цвет ника", + "chooseSolid": "Choose a solid color:", + "customColor": "Модифицированный цвет:", + "preview": "Preview:", + "previewUsername": "Ник", + "apply": "Применить цвет" + } + }, + "settings": { + "title": "НАСТРОЙКИ", + "java": "Рантайм JAVA", + "useCustomJava": "Укажите свой путь Java", + "javaDescription": "Override the bundled Java runtime with your own installation", + "javaPath": "Путь исполняемого файла Java", + "javaPathPlaceholder": "Выберите путь Java...", + "javaBrowse": "Обзор", + "javaHint": "Выберите папку установки Java (поддерживается Windows, Mac, Linux)", + "discord": "Интеграция Discord", + "enableRPC": "Включить Discord Rich Presence", + "discordDescription": "Показывать вашу активность лаунчера в Discord", + "game": "Настройки игры", + "playerName": "Ник игрока", + "playerNamePlaceholder": "Введите ваш ник", + "playerNameHint": "Этот ник будет использован в игре (1-16 символов)", + "openGameLocation": "Открыть местоположение игры", + "openGameLocationDesc": "Открыть папку установки игры", + "account": "Управление UUID игрока", + "currentUUID": "Текущий UUID", + "uuidPlaceholder": "Загрузка UUID...", + "copyUUID": "Копировать UUID", + "regenerateUUID": "Перегенерировать UUID", + "uuidHint": "Уникальный идентификатор игрока для этого ника", + "manageUUIDs": "Управление всеми UUID", + "manageUUIDsDesc": "Смотреть и управлять всеми UUID игрока", + "language": "Язык", + "selectLanguage": "Выберите язык", + "repairGame": "Починить игру", + "reinstallGame": "Переустановить файлы игры (сохраняет данные)", + "gpuPreference": "Предпочтение GPU", + "gpuHint": "Выберите ваш предпочитаемый GPU (Linux: affects DRI_PRIME)", + "gpuAuto": "Автоматический выбор", + "gpuIntegrated": "Интегрированная видеокарта", + "gpuDedicated": "Дискретная видеокарта", + "logs": "ЛОГИ", + "logsCopy": "Копировать", + "logsRefresh": "Обновить", + "logsFolder": "Открыть папку", + "logsLoading": "Загрузка логов...", + "closeLauncher": "Поведение лаунчера", + "closeOnStart": "Закрыть лаунчер при старте игры", + "closeOnStartDescription": "Автоматически закрыть лаунчер после запуска Hytale", + "hwAccel": "Аппаратное ускорение", + "hwAccelDescription": "Включить аппаратное ускорение для лаунчера", + "gameBranch": "Ветка игры", + "branchRelease": "Релиз", + "branchPreRelease": "Бета", + "branchHint": "Переключает между релизом и бетой игры", + "branchWarning": "Изменение ветки скачает и установит другую версию игры", + "branchSwitching": "Переключение на {branch}...", + "branchSwitched": "Переключение на {branch} выполнено успешно!", + "installRequired": "Необходима установка", + "branchInstallConfirm": "Игры будет установлена для ветки {branch}. Продолжить?" + }, + "uuid": { + "modalTitle": "Управление UUID", + "currentUserUUID": "UUID текущего пользователя", + "allPlayerUUIDs": "UUID всех игроков", + "generateNew": "Сгенерировать новый UUID", + "loadingUUIDs": "Загрузка UUID...", + "setCustomUUID": "Установить кастомный UUID", + "customPlaceholder": "Ввести кастомный UUID (форматы: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)", + "setUUID": "Установить UUID", + "warning": "Внимание! Установка кастомного UUID изменит вашу текущую личность игрока!", + "copyTooltip": "Скопировать UUID", + "regenerateTooltip": "Сгенерировать новый UUID" + }, + "profiles": { + "modalTitle": "Управление профилями", + "newProfilePlaceholder": "Новое имя профиля", + "createProfile": "Создать профиль" + }, + "discord": { + "notificationText": "Join our Discord community!", + "joinButton": "Join Discord" + }, + "common": { + "confirm": "Подтвердить", + "cancel": "Отменить", + "save": "Сохранить", + "close": "Закрыть", + "delete": "Удалить", + "edit": "Редактировать", + "loading": "Загружается...", + "apply": "Применить", + "install": "Установить" + }, + "notifications": { + "gameDataNotFound": "Ошибка: данные игры не найдены", + "gameUpdatedSuccess": "Игра успешно обновлена! Ура! 🎉", + "updateFailed": "Обновление прервалось с ошибкой: {error}", + "updateError": "Ошибка обновления: {error}", + "discordEnabled": "Discord Rich Presence включен", + "discordDisabled": "Discord Rich Presence выключен", + "discordSaveFailed": "Не удалось сохранить настройку Discord", + "playerNameRequired": "Please enter a valid player name", + "playerNameSaved": "Имя игрока успешно сохранено!", + "playerNameSaveFailed": "Не удалось сохранить имя игрока", + "uuidCopied": "UUID скопирован в буфер обмена!", + "uuidCopyFailed": "Не удалось скопировать UUID", + "uuidRegenNotAvailable": "UUID перегенерация к сожалению не доступна", + "uuidRegenFailed": "Не удалось перегенерировать UUID", + "uuidGenerated": "Новый UUID сгенерирован успешно!", + "uuidGeneratedShort": "Новый UUID сгенерирован!", + "uuidGenerateFailed": "Не получилось сгенерировать новый UUID", + "uuidRequired": "Пожалуйста введите UUID", + "uuidInvalidFormat": "Неправильный формат UUID", + "uuidSetFailed": "Не удалось поставить кастомный UUID", + "uuidSetSuccess": "Кастомный UUID успешно установлен!", + "uuidDeleteFailed": "Не удалось удалить UUID", + "uuidDeleteSuccess": "Удаление UUID успешно!", + "modsDownloading": "Скачивание {name}...", + "modsTogglingMod": "Включение мода...", + "modsDeletingMod": "Удаление мода...", + "modsLoadingMods": "Загрузка модов с CurseForge...", + "modsInstalledSuccess": "{name} успешно установлен! 🎉", + "modsDeletedSuccess": "{name} удален успешно!", + "modsDownloadFailed": "Не получилось скачать мод: {error}", + "modsToggleFailed": "Не получилось включить мод: {error}", + "modsDeleteFailed": "Не получилось удалить мод: {error}", + "modsModNotFound": "Mod information not found", + "hwAccelSaved": "Настройка аппаратного ускорения сохранена!", + "hwAccelSaveFailed": "Не удалось сохранить настройку аппаратного ускорения" + }, + "confirm": { + "defaultTitle": "Подтвердить действие", + "regenerateUuidTitle": "Сгенерировать новый UUID", + "regenerateUuidMessage": "Вы уверены, что хотите сгенерировать новый UUID? Генерация новго UUID изменит вашу текущую личность игрока!", + "regenerateUuidButton": "Сгенерировать", + "setCustomUuidTitle": "Установить кастомный UUID", + "setCustomUuidMessage": "Вы уверены, что хотите установить кастомный UUID? Установка кастомного UUID изменит вашу текущую личность игрока!", + "setCustomUuidButton": "Установить UUID", + "deleteUuidTitle": "Удалить UUID", + "deleteUuidMessage": "Вы уверены, что хотите удалить UUID для \"{username}\"? Это действие необратимо!", + "deleteUuidButton": "Удалить", + "uninstallGameTitle": "Удалить игру", + "uninstallGameMessage": "Вы уверены, что хотите удалить Hytale? Все данные игры будут безвозвратно удалены!", + "uninstallGameButton": "Удалить" + }, + "progress": { + "initializing": "Инициализация...", + "downloading": "Скачивание...", + "installing": "Установка...", + "extracting": "Извлечение...", + "verifying": "Сверка...", + "switchingProfile": "Смена профиля...", + "profileSwitched": "Профиль сменен!", + "startingGame": "Запуск игры...", + "launching": "ЗАПУСК...", + "uninstallingGame": "Удаление игры...", + "gameUninstalled": "Игра успешно удалена!", + "uninstallFailed": "Удаление игры не удалось: {error}", + "startingUpdate": "Starting mandatory game update...", + "installationComplete": "Установка успешно завершена!", + "installationFailed": "Установка не удалась: {error}", + "installingGameFiles": "Установка файлов игры...", + "installComplete": "Установка завершена!" + } +} \ No newline at end of file diff --git a/README.md b/README.md index ec04a4c..4943cf2 100644 --- a/README.md +++ b/README.md @@ -415,6 +415,7 @@ See [BUILD.md](docs/BUILD.md) for comprehensive build instructions. - [**@Citeli-py**](https://github.com/Citeli-py) - *Issues fixer* - [**@Rahul-Sahani04**](https://github.com/Rahul-Sahani04) - *Issues fixer* - [**@xSamiVS**](https://github.com/xSamiVS) - *Language Translator* +- [**@BlackSystemCoder**](https://github.com/BlackSystemCoder) - *Language Translator* ---