diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index a0a87635..f4347763 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -147,12 +147,14 @@ "fr-FR": "Français", "es-ES": "Español", "de-DE": "Deutsch", + "ru-RU": "Русский", "translated": { "en-EN": "Englisch, Vereinigtes Königreich", "en-US": "Englisch, USA", "fr-FR": "Französisch", "es-ES": "Spanisch", - "de-DE": "Deutsch" + "de-DE": "Deutsch", + "ru-RU": "Russisch" } } }, diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 49481eb4..668249a9 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -147,12 +147,14 @@ "fr-FR": "Français", "es-ES": "Español", "de-DE": "Deutsch", + "ru-RU": "Русский", "translated": { "en-EN": "English, United Kingdom", "en-US": "English, USA", "fr-FR": "French", "es-ES": "Spanish", - "de-DE": "German" + "de-DE": "German", + "ru-RU": "Russian" } } }, diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index 2aea8d24..7aadc3c6 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -146,12 +146,14 @@ "fr-FR": "Français", "es-ES": "Español", "de-DE": "Deutsch", + "ru-RU": "Русский", "translated": { "en-EN": "Inglés, Reino Unido", "en-US": "Inglés, Estados Unidos", "fr-FR": "Francés", "es-ES": "Español", - "de-DE": "Alemán" + "de-DE": "Alemán", + "ru-RU": "Ruso" } } }, diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index 5e8100fd..7f6c8e27 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -146,12 +146,14 @@ "fr-FR": "Français", "es-ES": "Español", "de-DE": "Deutsch", + "ru-RU": "Русский", "translated": { "en-EN": "Anglais, Royaume-Uni", "en-US": "Anglais, États-Unis", "fr-FR": "Français", "es-ES": "Espagnol", - "de-DE": "Allemand" + "de-DE": "Allemand", + "ru-RU": "Russe" } } }, diff --git a/assets/jsons/translations/ru.json b/assets/jsons/translations/ru.json new file mode 100644 index 00000000..3ac69574 --- /dev/null +++ b/assets/jsons/translations/ru.json @@ -0,0 +1,902 @@ +{ + "misc": { + "download": "Скачать", + "add": "Добавить", + "verify": "Проверить", + "launch": "Запустить", + "mods": "Моды", + "maps": "Карты", + "playlists": "Плейлисты", + "models": "Модели", + "cancel": "Отмена", + "delete": "Удалить", + "accept": "Принять", + "refuse": "Отказаться", + "apply": "Применить", + "copy": "Скопировать", + "copied": "Скопировано!" + }, + "nav-bar": { + "add-version": "Добавить версию игры", + "settings": "Настройки", + "shared": { + "text": "Общий", + "tooltip": "Общий контент" + } + }, + "pages": { + "shared-maps": { + "title": "Общие карты" + }, + "version-viewer": { + "launch-mods": { + "oculus": "Режим Oculus", + "oculus-description": "Если вы используете Beat Saber через Steam, это позволит использовать Oculus's VR в обход SteamVR, для потенциального прироста производительности. Это необязательно для шлемов Oculus.", + "desktop": "Режим FPFC", + "desktop-description": "Режим Летающих контроллеров от первого лица(FPFC) позволит вам использовать меню с помощью WASD и мышки. Это облегчает тестирование модов, потому что вам не нужно подключать шлем!", + "debug": "Режим отладки", + "debug-description": "Включает окно логов для IPA. В окне будут отображаться логи модов.", + "advanced-launch": { + "button": "Расширенный запуск", + "placeholder": "Параметры запуска, например: --revert; --nowait" + } + }, + "maps": { + "title": "Общие карты", + "search-bar": { + "search-placeholder": "Поиск среди карт", + "filters-btn": "Фильтр", + "dropdown": { + "export-maps": "Экспорт карт", + "delete-maps": "Удалить карты" + } + }, + "tabs": { + "maps": { + "actions": { + "add-maps": { + "text": "Добавить" + }, + "link-maps": { + "tooltips": { + "link": "Привязать карты", + "unlink": "Отвязать карты" + } + } + }, + "empty-maps": { + "text": "Нет карт", + "button": "Скачать карты" + } + } + } + }, + "mods": { + "loading-mods": "Загрузка модов...", + "no-internet": "Нет интернета", + "mods-not-available": "Не найдены моды для этой версии Beat Saber", + "buttons": { + "more-infos": "Подробнее", + "install-or-update": "Установить или обновить" + }, + "mods-grid": { + "header-bar": { + "name": "Имя", + "installed": "Установлено", + "latest": "Latest", + "description": "Описание", + "dropdown": { + "uninstall-all": "Удалить всё" + } + } + } + }, + "dropdown": { + "open-folder": "Открыть папку", + "verify-files": "Проверить файлы", + "clone": "Клонировать", + "edit": "Редактировать", + "uninstall": "Удалить", + "create-shortcut": "Создать ярлык", + "shared-folders": "Общие папки" + } + }, + "available-versions": { + "title": "Выберите версию", + "steam-release": "Список изменений", + "dropdown": { + "refresh": "Обновить список", + "import-version": "Импорт версии" + } + }, + "settings": { + "steam": { + "title": "Steam", + "description": "Если вы выйдете из Steam, вам придётся снова войти, если вы хотите скачать другие версии Beat Saber.", + "logout": "Выйти" + }, + "appearance": { + "title": "Персонализация", + "description": "Выберите два основных цвета для BSManager.", + "reset": "Сброс", + "sub-title": "Тема", + "themes": { + "dark": "Тёмная", + "light": "Светлая", + "os": "Как на компьютере" + } + }, + "installation-folder": { + "title": "Папка установок", + "description": "Измените стандартную папку, где будут версии Beat Saber и прочее.", + "choose-folder": "Изменить папку" + }, + "additional-content": { + "title": "Дополнительный контент", + "description": "Дополнительный контент для кастомизации Beat Saber!", + "deep-links": { + "sub-title": "OneClick установка" + } + }, + "language": { + "title": "Язык", + "description": "Выберите язык.", + "languages": { + "en-EN": "English, UK", + "en-US": "English, US", + "fr-FR": "Français", + "es-ES": "Español", + "de-DE": "Deutsch", + "ru-RU": "Русский", + "translated": { + "en-EN": "Английский, Великобритания", + "en-US": "Английский, США", + "fr-FR": "Французский", + "es-ES": "Испанский", + "de-DE": "Немецкий", + "ru-RU": "Русский" + } + } + }, + "patreon": { + "title": "Поддержи BSManager 💖", + "description": "Поддержи проект, чтобы мы могли дальше улучшать BSManager.", + "buttons": { + "support": "Поддержать BSManager 🥰", + "supporters": "Поддержавшие 👀" + }, + "view": { + "no-supporters": "Пока нет поддержавших", + "sponsors": "Спонсоры", + "supporters": "Поддержавшие" + } + }, + "discord": { + "description": "Присоединяйся к сообществу BSManager в социальных сетях!" + }, + "contribution": { + "description": "Предложите улучшения или сообщите о баге!", + "buttons": { + "request-features": "Предложить улучшение", + "report-bug": "Сообщить о баге", + "open-logs": "Открыть логи" + } + } + } + }, + "notifications": { + "types": { + "error": "🚨 Ошибка", + "warning": "⚠️ Предупреждение", + "success": "🎉 Успех" + }, + "common": { + "msg": { + "error-occurred": "Возникла ошибка" + } + }, + "shared": { + "errors": { + "titles": { + "operation-running": "Операция в процессе", + "no-internet": "Нет интернета" + }, + "msg": { + "operation-running": "Дождитесь завершения операции, потом попробуйте снова.", + "no-internet": "Проверьте своё соединение и попробуйте снова." + } + } + }, + "bs-download": { + "success": { + "titles": { + "download-success": "Скачивание завершено", + "verification-finished": "Проверка завершена" + } + }, + "warnings": { + "msg": { + "ManifestChecksum": "Предыдущий файл манифесте не совпадает с новым 🤔", + "ConnectionTimeout": "У вас нестабильное соединение с интернетом 🥶", + "ConnectionLost": "Соединение потеряно, попробуйте снова...", + "ConnectionError": "Не удалось подключиться к Steam, попробуйте снова...", + "Unknown": "Что-то странное произошло 🤔 Возможно ваш интернет барахлит." + } + }, + "errors": { + "titles": { + "dotnet-required": "Требуется .NET 6" + }, + "msg": { + "401": "Похоже Steam не хочет, чтобы мы скачали Beat Saber 😢", + "404": "Нет связи с серверами Steam.", + "Password": "Неверный пароль.", + "InvalidCredentials": "Ваша почта или пароль неверны 😴", + "InvalidPassword": "Ваш пароль неверен 😕", + "NoManifest": "Файл манифеста не найден", + "DirectoryCreate": "Не смогли создать нужные папки.", + "NotAvailableApp": "Вы пытаетесь скачать Beat Saber, не купив её? 🤣", + "DepotNotFound": "Не удалось скачать Beat Saber 😥 повторите попытку позже 😕", + "NotCompleted": "Скачивание не завершилось ¯\\_(ツ)_/¯", + "InvalidManifest": "Не удалось скачать Beat Saber 😥 повторите попытку позже 😕", + "NoValidKey": "Не удалось скачать Beat Saber 😥 повторите попытку позже 😕", + "NoManifestCode": "Не удалось скачать Beat Saber 😥 повторите попытку позже 😕", + "Unknown": "Неизвестная ошибка ¯\\_(ツ)_/¯", + "NoServer": "Нет связи с серверами Steam.", + "NotAllowed": "Внезапно, вы не можете скачать Beat Saber 🥱", + "ConnectionTimeout": "Не удалось подключиться к Steam 😕", + "SteamLib": "Если вы это видите, пожалуйста, сообщите о баге на GitHub с файлом логов.", + "ConnectionError": "Не удалось подключиться к Steam за 10 попыток 🤯", + "LicenceError": "Не удалось проверить наличие лицензии.", + "verification-failed": "Верификация провалена, повторите попытку позже.", + "RateLimitExceeded": "Слишком много попыток, вернитесь позже и попробуйте снова.", + "AlreadyDownloading": "Скачивание уже в процессе", + "no-internet": "Нет интернета.", + "dotnet-required": "Среда запуска .NET 6 должна быть установлена, чтобы скачать Beat Saber. Скачайте её с помощью кнопки ниже." + }, + "actions": { + "download-dotnet": "Скачать .NET 6" + } + } + }, + "bs-import-version": { + "success": { + "start-import": { + "title": "Импортируем 👌", + "desc": "Импорт может занять какое-то время в зависимости от вашего компьютера." + }, + "imported": { + "title": "Версия импортирована 🎉" + } + }, + "errors": { + "import-error": { + "desc": "Убедитесь, что выбранная папка - это корневая папка Beat Saber." + } + } + }, + "settings": { + "move-folder": { + "success": { + "titles": { + "transfer-started": "Перемещение в процессе", + "transfer-finished": "Перемещение завершено" + }, + "descs": { + "transfer-started": "Перемещение может занять какое-то время в зависимости от вашего компьютера." + } + }, + "errors": { + "titles": { + "transfer-failed": "Ошибка перемещения 😕" + }, + "descs": { + "COPY_TO_SUBPATH": "The destination folder cannot be a subfolder of the source folder.", + "restore-linked-folders": "Произошла ошибка при перемещении общих папок. Вы сами можете переместить файлы, нажмите 'Общие папки' в меню версии." + } + } + }, + "steam": { + "success": { + "titles": { + "logout": "Вышли из Steam." + } + } + }, + "additional-content": { + "deep-link": { + "select-all": "Выбрать всё", + "activation": { + "success": { + "title": "OneClick включена!", + "description": "OneClick установка теперь включена." + }, + "error": { + "description": "Не удалось включить OneClick установку." + } + }, + "deactivation": { + "success": { + "title": "OneClick выключена!", + "description": "OneClick установка теперь отключена." + }, + "error": { + "description": "Неизвестная ошика." + } + }, + "check-all-enabled": { + "title": "OneClick отключен", + "description": "Один или более вариантов OneClick установок отключены. Перейдите в настройки, чтобы включить их.", + "actions": { + "settings": "Настройки", + "not-remind": "Больше не напоминать" + } + } + } + } + }, + "bs-launch": { + "success": { + "titles": { + "BS_LAUNCHING": "Запуск...🚀", + "STEAM_LAUNCHING": "Steam запускается!" + }, + "msg": { + "BS_LAUNCHING": "Не забудьте разогреться 😉", + "STEAM_LAUNCHING": "Beat Saber запустится сам после Steam." + } + }, + "errors": { + "titles": { + "UNKNOWN_ERROR": "Не удалось запустить", + "STEAM_NOT_RUNNING": "Steam не запущен", + "OCULUS_NOT_RUNNING": "Oculus не запущен", + "BS_ALREADY_RUNNING": "Beat Saber уде запущен", + "EXE_NOT_FINDED": "Отсутствуют файлы", + "EXIT": "Вылет" + }, + "msg": { + "UNKNOWN_ERROR": "Возникла неизвестная ошибка.", + "STEAM_NOT_RUNNING": "Steam должен быть запущен, чтобы запустить BeatSaber.", + "OCULUS_NOT_RUNNING": "Oculus должен быть запущен, чтобы запустить BeatSaber.", + "BS_ALREADY_RUNNING": "Закройте BeatSaber, чтобы запустить его.", + "EXE_NOT_FINDED": "Некоторые файлы отсутствуют, пробуем их проверить.", + "EXIT": "BeatSaber вылетел, пытаемся проверить файлы." + }, + "actions": { + "STEAM_NOT_RUNNING": "Запустить Steam" + } + } + }, + "steam": { + "steam-launching": { + "title": "Steam запускается!", + "description": "Beat Saber запустится сам после Steam." + } + }, + "custom-version": { + "errors": { + "titles": { + "CantEditSteam": "Не удалось изменить", + "CantRename": "Переименование невозможно", + "VersionAlreadExist": "Эта версия уже добавлена", + "CantClone": "Клонирование невозможно" + }, + "msg": { + "CantEditSteam": "Вы не можете изменить версию из Steam, но вы можете её клонировать." + } + }, + "success": { + "titles": { + "CloningFinished": "Клонирование завершено 🎉" + } + } + }, + "mods": { + "install-mods": { + "titles": { + "success": "Моды установлены 🎉", + "warning": "Моды установлены 🤔" + }, + "msg": { + "success": "Все моды были установлены.", + "warning": "Лишь часть модов была установлена.", + "errors": { + "no-mods": "Нет модов для установки.", + "cannot-install-bsipa": "Ошибка установки BSIPA 😨" + } + } + }, + "uninstall-mod": { + "titles": { + "success": "Мод удалён 🎉" + }, + "msg": { + "errors": { + "no-mods": "Этот мод не установлен 😑" + } + } + }, + "uninstall-all-mods": { + "titles": { + "success": "Моды удалены 🎉" + }, + "msg": { + "success": "Все моды были удалены.", + "errors": { + "no-mods": "Для этой версии не было установлено модов 😑" + } + } + } + }, + "maps": { + "one-click-install": { + "success": "Карта установлена", + "error": "Ошибка установки карты" + } + }, + "playlists": { + "one-click-install": { + "success": "Плейлист установлен", + "error": "Ошибка установки плейлиста" + } + }, + "models": { + "one-click-install": { + "success": "Модель установлена", + "error": "Ошибка установки модели" + } + }, + "shared-folder": { + "info": { + "userdata-backup-created": { + "title": "Бэкап создан", + "msg": "Общая папка 'UserData' может создавать ошибки. В случае проблем отвяжите папку, чтобы восстановить бэкап." + } + } + }, + "create-launch-shortcut": { + "success": { + "title": "Ярлык создан", + "msg": "Ярлык находится на рабочем столе." + }, + "error": { + "msg": "Ошибка создания ярлыка." + } + } + }, + "modals": { + "misc": { + "remember-my-choice": "Запомнить выбор" + }, + "guard": { + "title": "Steam Guard", + "inputs": { + "guard-code": { + "label": "Код Steam Guard", + "placeholder": "Введите код Steam Guard" + } + }, + "buttons": { + "submit": "Войти" + } + }, + "steam-login": { + "title": "Вход в Steam", + "inputs": { + "username": { + "label": "Имя пользователя", + "placeholder": "Введите имя пользователя" + }, + "password": { + "label": "Пароль", + "placeholder": "Введите пароль", + "max-length-warning": "Пароль больше 64-х символов! Если пароль неверен, введите первые 64 символа." + }, + "stay": { + "label": "Оставаться в аккаунте" + } + }, + "why-credentials": "Почему нужны мои данные для входа?", + "buttons": { + "submit": "Войти" + } + }, + "steam-credentials": { + "title": "Данные входа Steam", + "p-1": "Данные входа используются только при скачивании, чтобы проверить наличие у вас Beat Saber, это нужно Steam, чтобы разрешить скачивание. Они не сохраняются и напрямую передаются в DepotDownloader. Если вы не хотите вводить данные для входа, воспользуйтесь руководством(Оно на английском языке) :", + "p-2": "Нажмите на шестерню справа вверху и выберите \"Импорт версии\", выберите папку со скачанным Beat Saber (Если вы воспользовались руководством, у вас должен быть корректный путь к папке)" + }, + "bs-import-version": { + "title": "Импорт версии", + "description": "Импортировать версию Beat Saber, чтобы использоваться BSManager. Beat Saber будет скопирован в папку версий BSManager.", + "buttons": { + "submit": "Импортировать версию" + } + }, + "bs-uninstall": { + "title": "Удалить", + "description": "Вы действительно хотите удалить Beat Saber {version}? Вам нужно будет снова её скачать, чтобы поиграть.", + "buttons": { + "submit": "Удалить" + } + }, + "install-folder": { + "title": "Папка установок", + "description": "Все данные будут перемещены в новую папку.", + "buttons": { + "submit": "Выбрать папку" + } + }, + "edit-version": { + "title": "Изменить версию", + "buttons": { + "submit": "Изменить" + } + }, + "clone-version": { + "title": "Клонировать версию", + "description": "Клонирование версий позволит вам установить разный контент для каждой копии Beat Saber.", + "inputs": { + "name": { + "label": "Имя", + "placeholder": "Имя версии" + }, + "color": { + "label": "Цвет" + } + }, + "buttons": { + "submit": "Клонировать" + } + }, + "uninstall-mod": { + "title": "Удаление мода", + "description": "Вы точно хотите удалить {mod}? Другие моды могут перестать работать.", + "description-bsipa": "AВы точно хотите удалить BSIPA? Все моды перестануть работать." + }, + "uninstall-all-mods": { + "title": "Удаление всех модов", + "description": "Вы точно хотите удалить все моды для версии {version}? Это необратимое действие." + }, + "maps-actions": { + "delete-maps": { + "title": { + "single": "Удалить карту?", + "multiple": "Удалить карты?" + }, + "desc": { + "single": "Вы точно хотите удалить карту {name}?", + "multiple": "Вы точно хотите удалить {nb} карт(ы)?" + }, + "info": { + "desc": { + "single": "Это общая карта", + "multiple": "Это общие карты" + }, + "title": { + "single": "Эта карта будет удалена из всех версий, использующих общие карты", + "multiple": "Эти карты будут удалены из всех версий, использующих общие карты" + } + } + }, + "link-maps": { + "title": "Связать карты", + "desc": "Общие карты доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие карты.", + "info": "Добавление и удаление карт так же будут общими", + "keep-maps": { + "label": "Оставить карты", + "title": "Все карты из этой версии станут общими. Если не включить, то карты этой версии будут потеряны." + }, + "valid-btn": "Связать карты" + }, + "unlink-maps": { + "title": "Отвязать карты", + "desc": "Осторожно, отвязка карт сделает недоступными общие карты для этой версии, пока вы не свяжете их снова.", + "keep-maps": { + "label": "Оставить карты", + "title": "Общие карты будут скопированы в папку карт этой версии. Карты не будут потеряны, если это не выбрано." + }, + "valid-btn": "Отвязать карты" + } + }, + "download-maps": { + "search-btn": "Поиск", + "loading-maps": "Загрузка карт...", + "no-maps-found": "Карты не найдены", + "no-internet": "Нет интернета" + }, + "mods-disclaimer": { + "title": "внимание", + "p-1": "Играя с модами, вы соглашаетесь, что:", + "li-1": "У вам могут быть проблемы, которых нет в оригинальной игре. 99.9% багов, вылетов и лагов из-за модов.", + "li-2": "Моды могут быть несовместимы с обновлениями и это норма - будьте терпеливы и уважайте мододелов, они волонтёры со своими личными жизнями.", + "li-3": "Beat Games не специально ломают моды. Они лишь обновляют код, что иногда ломает коды. Они не хотят уничтожить моды", + "p-2": "Не спамьте разработчикам игры из-за проблем с модами и наоборот - мододелы и разработчики игры - разные группы людей. Не будьте идиотами." + }, + "shared-folders": { + "title": "Общие папки", + "description": "Свяжите папки Beat Saber, чтобы они стали общими и их содержимое было в других версиях. Заметьте, что удаление файлов так же будет общим.", + "buttons": { + "add-folder": "Добавить папку", + "link-folder": "Связать папку", + "unlink-folder": "Отвязать папку", + "link-all": "Связать всё" + } + }, + "create-launch-shortcut": { + "title": "Создать ярлык", + "desc": "Ярлык позволит вам запустить Beat Saber без помощи BSManager.", + "launch-options": "Параметры запуска", + "advanced-launch": "Расширенный запуск", + "valid-btn": "Создать ярлык" + } + }, + "maps": { + "map-filter-panel": { + "duration": "Длительность", + "tags": "тэги", + "specificities": "основное", + "requirements": "требуемые моды" + }, + "map-types": { + "accuracy": "точность", + "balanced": "баланс", + "challenge": "испытание", + "dancestyle": "танец", + "fitness": "фитнес", + "speed": "скорость", + "tech": "техника" + }, + "map-styles": { + "dance": "танец", + "swing": "свинг", + "nightcore": "найткор", + "folk": "народные", + "family": "семейные", + "ambient": "эмбиент", + "funk": "фанк", + "jazz": "джаз", + "soul": "соул", + "speedcore": "спидкор", + "punk": "панк", + "rb": "ар-н-би", + "holiday": "праздник", + "vocaloid": "вокалоиды", + "jrock": "джей-рок", + "trance": "транс", + "drumbass": "драм-н-бейс", + "comedy": "комедия", + "instrumental": "инструментальные", + "hardcore": "хардкор", + "kpop": "кей-поп", + "indie": "инди", + "techno": "техно", + "house": "хаус", + "game": "видеоигры", + "film": "фильмы", + "alt": "альтернативные", + "dubstep": "дапстеп", + "metal": "метал", + "anime": "аниме", + "hiphop": "хипхоп", + "jpop": "джей-поп", + "rock": "прк", + "pop": "поп", + "electronic": "электроника", + "classical-orchestral": "Классика и Оркестр" + }, + "map-specificities": { + "automapper": "ИИ", + "ranked": "с рейтингом", + "curated": "оценённые куратором", + "verified": "проверенные авторы", + "fullSpread": "полный набор" + }, + "difficulties": { + "Easy": "легко", + "Normal": "нормально", + "Hard": "сложно", + "Expert": "эксперт", + "ExpertPlus": "эксперт+" + }, + "map-item": { + "by": "От {songAutor}", + "mapped-by": "автор карты " + } + }, + "models": { + "types": { + "singular": { + "avatar": "аватар", + "saber": "мечь", + "platform": "платформа", + "bloq": "куб" + }, + "plural": { + "avatar": "аватары", + "saber": "мечи", + "platform": "платформы", + "bloq": "кубы" + } + }, + "sorts": { + "name": "Имя", + "date": "Дата", + "author": "Автор" + }, + "panel": { + "actions": { + "search": "Поиск скачанных моделей", + "drop-down": { + "delete": "Удалить модели", + "export": "Экспорт моделей" + }, + "link-models": "Связать модели", + "unlink-models": "Отвязать модели" + }, + "grid": { + "loading": "Загрузка моделей...", + "no-models": "Нет моделей", + "download-models": "Скачать модели" + } + }, + "modals": { + "delete-model": { + "title": "Удалить модель", + "desc": "Вы уверены, что хотите удалить модель {modelName}?", + "linked-annotation": "Эта модель будет удалена из всех соединённых версий." + }, + "delete-models": { + "title": "Удалить модели", + "desc": "Вы уверены, что хотите удалить {nb} модели(ей)?", + "linked-annotation": "Эти модели будут удалены из всех соединённых версий." + }, + "download-models": { + "search-btn": "Поиск", + "search-placeholder": "Поиск моделей", + "search-tips": { + "header": { + "tag": "Тэги", + "desc": "Описание" + }, + "author-desc": "Показывать модели только от определённого автора.", + "hash-desc": "Показывать модели только с определённым хэшом.", + "tag-desc": "Показывать модели только с определённым тэгом.", + "name-desc": "Показывать модели только с определённым именем.", + "discordid-desc": "Показывать модели только от определённого пользователя Discord.", + "status-desc": "Показывать модели только с определённым статусом. (только профиль, и только для авторов)" + }, + "no-models": "Модели не найдены.", + "no-internet": "Нет интернета.", + "error-occured": "Ошибка, повторите попытку позже." + }, + "link-models": { + "avatar": { + "title": "Связать аватары", + "desc": "Общие аватары доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие аватары.", + "info": "Добавление и удаление аватаров так же будут общими", + "keep-models": { + "label": "Оставить аватары", + "title": "Все аватары из этой версии станут общими. Если не включить, то аватары этой версии будут потеряны." + }, + "valid-btn": "Связать аватары" + }, + "saber": { + "title": "Связать мечи", + "desc": "Общие мечи доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие мечи.", + "info": "Добавление и удаление мечей так же будут общими", + "keep-models": { + "label": "Оставить мечи", + "title": "Все мечи из этой версии станут общими. Если не включить, то мечи этой версии будут потеряны." + }, + "valid-btn": "Связать мечи" + }, + "platform": { + "title": "Связать платформы", + "desc": "Общие платформы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие платформы.", + "info": "Добавление и удаление платформ так же будут общими", + "keep-models": { + "label": "Оставить платформы", + "title": "Все платформы из этой версии станут общими. Если не включить, то платформы этой версии будут потеряны." + }, + "valid-btn": "Связать платформы" + }, + "bloq": { + "title": "Связать кубы", + "desc": "Общие кубы доступны во всех версиях игры с этой функцией. Пока связь есть, эта версия будет иметь общие кубы.", + "info": "Adding and deleting bloqs will also be shared", + "keep-models": { + "label": "Оставить кубы", + "title": "Все кубы из этой версии станут общими. Если не включить, то кубы этой версии будут потеряны." + }, + "valid-btn": "Связать кубы" + } + }, + "unlink-models": { + "avatar": { + "title": "Отвязать аватары", + "desc": "Осторожно, отвязка аватаров сделает недоступными общие аватары для этой версии, пока вы не свяжете их снова.", + "keep-models": { + "label": "Оставить аватары", + "title": "Общие аватары будут скопированы в папку аватаров этой версии. Аватары не будут потеряны, если это не выбрано." + }, + "valid-btn": "Отвязать аватары" + }, + "saber": { + "title": "Отвязать мечи", + "desc": "Осторожно, отвязка мечей сделает недоступными общие мечи для этой версии, пока вы не свяжете их снова.", + "keep-models": { + "label": "Оставить мечи", + "title": "Общие мечи будут скопированы в папку мечей этой версии. Мечи не будут потеряны, если это не выбрано." + }, + "valid-btn": "Отвязать мечи" + }, + "platform": { + "title": "Отвязать платформы", + "desc": "Осторожно, отвязка платформ сделает недоступными общие платформы для этой версии, пока вы не свяжете их снова.", + "keep-models": { + "label": "Оставить платформы", + "title": "Общие платформы будут скопированы в папку платформ этой версии. Платформы не будут потеряны, если это не выбрано." + }, + "valid-btn": "Отвязать платформы" + }, + "bloq": { + "title": "Отвязать кубы", + "desc": "Осторожно, отвязка кубов сделает недоступными общие кубы для этой версии, пока вы не свяжете их снова.", + "keep-models": { + "label": "Оставить кубы", + "title": "Общие кубы будут скопированы в папку кубов этой версии. Кубы не будут потеряны, если это не выбрано." + }, + "valid-btn": "Отвязать кубы" + } + } + }, + "notifications": { + "prevent-for-mods": { + "title": "Требуемые моды", + "desc": "Убедитесь, что вы установили все нужные моды, чтобы использовать модели в Beat Saber", + "go-to-mods": "Перейти к модам", + "not-remind": "Больше не напоминать" + }, + "prevent-for-models-breaks": { + "title": "Сломанные модели", + "desc": "После обновления движка Beat Saber, модели не работают с этой версией." + }, + "export-success": { + "title": "Экспорт завершен 🎉" + } + } + }, + "beat-saver": { + "maps-sorts": { + "Latest": "Недавние", + "Relevance": "Релевантные", + "Rating": "Рейтинг", + "Curated": "Оценённые куратором" + } + }, + "auto-update": { + "checking": "Проверка на обновления", + "downloading": "Скачивание обновления" + }, + "bs-shortcut-launch": { + "beat-saber-launching": "Запускается Beat Saber", + "launching": "Запуск", + "open-bsmanager": "Открыть BSManager", + "status-text": { + "init": "Инициализация...", + "success": { + "BS_LAUNCHING": "Запускаем Beat Saber...", + "STEAM_LAUNCHING": "Запускаем Steam...", + "STEAM_LAUNCHED": "Steam запущен!", + "UNABLE_TO_LAUNCH_STEAM": "Не удалось запустить Steam, пытаемся запустить Beat Saber..." + } + } + }, + "dateformat": { + "dayNames": ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], + "monthNames": ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авн", "Сен", "Окт", "Ноя", "Дек", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], + "timeNames": ["д", "п", "дп", "пп", "Д", "П", "ДП", "ПП"] + } +} diff --git a/src/renderer/components/svgs/bsm-icon.component.tsx b/src/renderer/components/svgs/bsm-icon.component.tsx index 7ba0ae47..af6a1ec7 100644 --- a/src/renderer/components/svgs/bsm-icon.component.tsx +++ b/src/renderer/components/svgs/bsm-icon.component.tsx @@ -52,6 +52,7 @@ import { VolumeUpIcon } from "./icons/volume-up-icon.component"; import { VolumeOffIcon } from "./icons/volume-off-icon.component"; import { VolumeDownIcon } from "./icons/volume-down-icon.component"; import { GermanIcon } from "./flags/german-icon.component"; +import { RussianIcon } from "./flags/russian-icon.component"; import { MSModelType } from "shared/models/models/model-saber.model"; import { ModelTypeAvatarIcon } from "./icons/model-type-avatar-icon.component"; import { ModelTypeSaberIcon } from "./icons/model-type-saber-icon.component"; @@ -61,7 +62,7 @@ import { ChevronTopIcon } from "./icons/chevron-top-icon.component"; import { EyeCrossIcon } from "./icons/eye-cross-icon.component"; import { ShortcutIcon } from "./icons/shortcut-icon.component"; -export type BsmIconType = BsvMapCharacteristic | MSModelType | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "fr-FR-flag" | "es-ES-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag"); +export type BsmIconType = BsvMapCharacteristic | MSModelType | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "fr-FR-flag" | "es-ES-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag"); export const BsmIcon = memo(({ className, icon, style }: { className?: string; icon: BsmIconType; style?: CSSProperties }) => { // TODO : Very ugly very messy, need to find a better way to do this @@ -112,6 +113,9 @@ export const BsmIcon = memo(({ className, icon, style }: { className?: string; i if (icon === "de-DE-flag") { return ; } + if (icon === "ru-RU-flag") { + return ; + } if (icon === "task") { return ; } diff --git a/src/renderer/components/svgs/flags/russian-icon.component.tsx b/src/renderer/components/svgs/flags/russian-icon.component.tsx new file mode 100644 index 00000000..e653dd20 --- /dev/null +++ b/src/renderer/components/svgs/flags/russian-icon.component.tsx @@ -0,0 +1,20 @@ +import { CSSProperties } from "react"; + +export function RussianIcon(props: { className?: string; style?: CSSProperties }) { + return ( + + + + + + + + + + + + + + + ); +} diff --git a/src/renderer/config/default-configuration.config.ts b/src/renderer/config/default-configuration.config.ts index 9012fa7e..9bd4eb64 100644 --- a/src/renderer/config/default-configuration.config.ts +++ b/src/renderer/config/default-configuration.config.ts @@ -3,7 +3,7 @@ export const defaultConfiguration: { [key in DefaultConfigKey]: any } = { "second-color": "#ff4444", theme: "os", language: window.navigator.language.length <= 2 ? `${window.navigator.language}-${window.navigator.language.toLocaleUpperCase()}` : window.navigator.language, - supported_languages: ["en-US", "en-EN", "fr-FR", "es-ES", "de-DE"], + supported_languages: ["en-US", "en-EN", "fr-FR", "es-ES", "de-DE", "ru-RU"], default_mods: ["SongCore", "WhyIsThereNoLeaderboard", "BeatSaverDownloader", "BeatSaverVoting", "PlaylistManager"], "default-shared-folders": [ window.electron.path.join("Beat Saber_Data", "CustomLevels"),