This commit is contained in:
Hoaper
2025-05-19 22:39:18 +05:00
16 changed files with 955 additions and 281 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "hydralauncher",
"version": "3.5.1",
"version": "3.5.2",
"description": "Hydra",
"main": "./out/main/index.js",
"author": "Los Broxas",

View File

@@ -1,88 +1,88 @@
{
"language_name": "Български",
"app": {
"successfully_signed_in": "Успешно вписване"
"successfully_signed_in": "Успешно влизане"
},
"home": {
"featured": "Препоръчани",
"surprise_me": "Изненадай ме",
"no_results": "Не са намерени резултати",
"start_typing": "Търсене...",
"hot": "Актуално сега",
"weekly": "📅 Най-доброто от седмицата",
"achievements": "🏆 Игри, които да победите"
"no_results": "Няма намерени резултати",
"start_typing": "Започнете да пишете за търсене...",
"hot": "Горещи сега",
"weekly": "📅 Топ игри на седмицата",
"achievements": "🏆 Игри които да победите"
},
"sidebar": {
"catalogue": "Каталог",
"downloads": "Изтегляния",
"settings": "Настройки",
"my_library": "Моята библиотека",
"downloading_metadata": "{{title}} (Сваляне на метаданни…)",
"paused": "{{title}} (Пауза)",
"downloading_metadata": "{{title}} (Изтегляне на метаданни…)",
"paused": "{{title}} (На пауза)",
"downloading": "{{title}} ({{percentage}} - Изтегляне…)",
"filter": "Търсене по име",
"filter": "Филтрирай библиотеката",
"home": "Начало",
"queued": "{{title}} (Опашка)",
"game_has_no_executable": "Играта няма избран изпълним файл",
"sign_in": "Вписване",
"queued": "{{title}} (В опашката)",
"game_has_no_executable": "Няма избран изпълним файл за играта",
"sign_in": "Вход",
"friends": "Приятели",
"need_help": "Имате нужда от помощ??",
"favorites": "Любими игри"
"need_help": "Нужда от помощ?",
"favorites": "Любими"
},
"header": {
"search": "Търсене",
"search": "Търси игри",
"home": "Начало",
"catalogue": "Каталог",
"downloads": "Изтегляния",
"search_results": "Резултати от търсене",
"search_results": "Резултати от търсенето",
"settings": "Настройки",
"version_available_install": "Версия {{version}} е налична. Кликни тук, за да рестартирате и инсталирате.",
"version_available_download": "Версия {{version}} е налична. Кликни тук за изтегляне."
"version_available_install": "Версия {{version}} е налична. Кликнете тук за рестарт и инсталация.",
"version_available_download": "Версия {{version}} е налична. Кликнете тук за изтегляне."
},
"bottom_panel": {
"no_downloads_in_progress": "Няма изтегляния в ход",
"downloading_metadata": "Сваляне на {{title}} метадата…",
"downloading": "Изтегляне на {{title}}… ({{percentage}} готово) - Остават {{eta}} - {{speed}}",
"calculating_eta": "Изтегляне на {{title}}… ({{percentage}} готово) - Изчисляване на оставащо време…",
"checking_files": "Проверка на {{title}} файловете… ({{percentage}} готово)"
"no_downloads_in_progress": "Няма текущи изтегляния",
"downloading_metadata": "Изтегляне на метаданни за {{title}}…",
"downloading": "Изтегля се {{title}}… ({{percentage}} завършено) - Завършване {{eta}} - {{speed}}",
"calculating_eta": "Изтегля се {{title}}… ({{percentage}} завършено) - Изчисляване на оставащо време…",
"checking_files": "Проверка на файловете за {{title}}… ({{percentage}} завършено)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Инсталацията завършена",
"installation_complete_message": "Общите компоненти са инсталирани успешно"
},
"catalogue": {
"search": "Филтър…",
"search": "Филтрирай…",
"developers": "Разработчици",
"genres": "Жанрове",
"tags": "Тагове",
"publishers": "Издатели",
"download_sources": "Източници за изтегляне",
"result_count": "{{resultCount}} резултати",
"result_count": "{{resultCount}} резултата",
"filter_count": "{{filterCount}} налични",
"clear_filters": "Изчисти {{filterCount}} избрани"
},
"game_details": {
"launch_options": "Опции за стартиране",
"launch_options_description": "Напредналите потребители могат да въведат модификации на своите опции за стартиране (экспериментальный)",
"launch_options_placeholder": "Няма зададен параметър",
"open_download_options": "Варианти за изтегляне",
"download_options_zero": "Няма варианти за изтегляне",
"download_options_one": "{{count}} варианти за изтегляне",
"download_options_other": "{{count}} варианти за изтегляне",
"open_download_options": "Отвори опциите за изтегляне",
"download_options_zero": "Няма опции за изтегляне",
"download_options_one": "{{count}} опция за изтегляне",
"download_options_other": "{{count}} опции за изтегляне",
"updated_at": "Обновено на {{updated_at}}",
"install": "Инсталирай",
"resume": "Продължи",
"pause": "Пауза",
"cancel": "Отказ",
"remove": "Премахни",
"space_left_on_disk": "{{space}} място на диска",
"eta": "Заклчение {{eta}}",
"calculating_eta": "Калкулиране на оставащо време…",
"downloading_metadata": "Изтегляне на метадата…",
"filter": "Филтрирай repacks",
"space_left_on_disk": "{{space}} свободно на диска",
"eta": "Завършване {{eta}}",
"calculating_eta": "Изчисляване на оставащо време…",
"downloading_metadata": "Изтегляне на метаданни…",
"filter": "Филтрирай репаковки",
"requirements": "Системни изисквания",
"minimum": "Минимални",
"recommended": "Препоръчителни",
"paused": "Паузирано",
"release_date": "Издадено на {{date}}",
"publisher": "Публикувано от {{publisher}}",
"hours": "часове",
"paused": "На пауза",
"release_date": "Издадена на {{date}}",
"publisher": "Издател: {{publisher}}",
"hours": "часа",
"minutes": "минути",
"amount_hours": "{{amount}} часа",
"amount_minutes": "{{amount}} минути",
@@ -90,333 +90,425 @@
"add_to_library": "Добави в библиотеката",
"remove_from_library": "Премахни от библиотеката",
"no_downloads": "Няма налични изтегляния",
"play_time": "Игрално време {{amount}}",
"last_time_played": "Последно пускане {{period}}",
"not_played_yet": "Не сте играли {{title}} все още",
"play_time": "Играно: {{amount}}",
"last_time_played": "Последно играно: {{period}}",
"not_played_yet": "Все още не сте играли {{title}}",
"next_suggestion": "Следващо предложение",
"play": "Пускане",
"deleting": "Изтриване на инсталация…",
"play": "Играй",
"deleting": "Изтриване на инсталатора…",
"close": "Затвори",
"playing_now": "Играй сега",
"change": "Промяна",
"repacks_modal_description": "Избери repack който искаш да изтеглиш",
"select_folder_hint": "За да промените стандартната папка отидете в <0>Настройки</0>",
"playing_now": "Играе се сега",
"change": "Промени",
"repacks_modal_description": "Изберете репак за изтегляне",
"select_folder_hint": "За да промените папката по подразбиране, отидете в <0>Настройки</0>",
"download_now": "Изтегли сега",
"no_shop_details": "Не може да се извлекат данни за магазина.",
"download_options": "Опции за сваляне",
"download_path": "Път за сваляне",
"previous_screenshot": "Предишна снимка",
"next_screenshot": "Следваща снимка",
"screenshot": "Снимка {{number}}",
"open_screenshot": "Отвори снимки {{number}}",
"download_settings": "Настройки за сваляне",
"downloader": "Downloader",
"no_shop_details": "Неуспешно извличане на детайли от магазина.",
"download_options": "Опции за изтегляне",
"download_path": "Път за изтегляне",
"previous_screenshot": "Предишен скрийншот",
"next_screenshot": "Следващ скрийншот",
"screenshot": "Скрийншот {{number}}",
"open_screenshot": "Отвори скрийншот {{number}}",
"download_settings": "Настройки за изтегляне",
"downloader": "Изтегляч",
"select_executable": "Избери",
"no_executable_selected": "Няма избран стартиращ файл",
"no_executable_selected": "Няма избран изпълним файл",
"open_folder": "Отвори папка",
"open_download_location": "Виж свалените файлове",
"create_shortcut": "Пряк път на Десктопа",
"open_download_location": "Виж изтеглените файлове",
"create_shortcut": "Създай пряк път на работния плот",
"clear": "Изчисти",
"remove_files": "Премахни файловете",
"remove_from_library_title": "Сигурен ли си?",
"remove_from_library_description": "Това ще премахне {{game}} от Библиотеката",
"remove_from_library_title": "Сигурни ли сте?",
"remove_from_library_description": "Това ще премахне {{game}} от вашата библиотека",
"options": "Опции",
"executable_section_title": "Стартиращ файл",
"executable_section_description": "Пътят на файла, който ще се изпълни, когато се щракне върху \"Пускане\"",
"downloads_section_title": "Свалени",
"downloads_section_description": "Вижте актуализации или други версии на тази игра",
"executable_section_title": "Изпълним файл",
"executable_section_description": "Пътят на файла, който ще се изпълни при \"Играй\"",
"downloads_section_title": "Изтегляния",
"downloads_section_description": "Вижте обновления или други версии на тази игра",
"danger_zone_section_title": "Опасна зона",
"danger_zone_section_description": "Премахнете тази игра от библиотеката си или от файловете, изтеглени от Hydra",
"download_in_progress": "Изтегляне в ход",
"download_paused": "Изтеглянето е паузирано",
"last_downloaded_option": "Опция от последно изтегляне",
"danger_zone_section_description": "Премахнете тази игра от библиотеката или файловете, изтеглени от Hydra",
"download_in_progress": "Изтеглянето е в ход",
"download_paused": "Изтеглянето е на пауза",
"last_downloaded_option": "Последно изтеглена опция",
"create_steam_shortcut": "Създай пряк път за Steam",
"create_shortcut_success": "Прекият път е създаден успешно",
"create_shortcut_error": "Грешка при създаването на пряк път",
"you_might_need_to_restart_steam": "Може да е необходимо да рестартирате Steam, за да видите промените",
"create_shortcut_error": "Грешка при създаване на пряк път",
"nsfw_content_title": "Тази игра съдържа неподходящо съдържание",
"nsfw_content_description": "{{title}} съдържа съдържание, което може да не е подходящо за всички възрасти. Сигурни ли сте, че искате да продължите?",
"allow_nsfw_content": "Продължи",
"refuse_nsfw_content": "Назад",
"refuse_nsfw_content": "Върни се",
"stats": "Статистики",
"download_count": "Сваляния",
"download_count": "Изтегляния",
"player_count": "Активни играчи",
"download_error": "Тази опция за изтегляне не е налична",
"download": "Свали",
"download": "Изтегли",
"executable_path_in_use": "Изпълнимият файл вече се използва от \"{{game}}\"",
"warning": "Внимание:",
"hydra_needs_to_remain_open": "за това изтегляне, Hydra трябва да остане отворена, когато е завършено. Ако Hydra се затвори преди завършването, ще загубите напредъка си..",
"hydra_needs_to_remain_open": "за това изтегляне, Hydra трябва да остане отворена до завършване. Ако затворите преди завършване, ще загубите прогреса.",
"achievements": "Постижения",
"achievements_count": "Постижения {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Запазване в облака",
"cloud_save_description": "Запазете напредъка си в облака и продължете да играете на всяко устройство",
"backups": "Резервни копия",
"cloud_save": "Облачно запазване",
"cloud_save_description": "Запазете прогреса си в облака и продължете да играете на всяко устройство",
"backups": "Архиви",
"install_backup": "Инсталирай",
"delete_backup": "Изтрий",
"create_backup": "Ново копие",
"last_backup_date": "Последно копие от {{date}}",
"no_backup_preview": "Не бяха намерени запазени игри за това заглавие",
"restoring_backup": "Възстановяване на резервно копие ({{progress}} готово)…",
"uploading_backup": "Качване на резервно копие…",
"no_backups": "Все още не сте създали резервни копия за тази игра",
"backup_uploaded": "Качено резервно копие",
"backup_deleted": "Изтрито резервно копие",
"backup_restored": "Възстановен бекъп",
"see_all_achievements": "Вижте всички постижения",
"create_backup": "Нов архив",
"last_backup_date": "Последен архив на {{date}}",
"no_backup_preview": "Не са намерени запазени игри за това заглавие",
"restoring_backup": "Възстановяване на архив ({{progress}} завършено)…",
"uploading_backup": "Качване на архив…",
"no_backups": "Не сте създали архиви за тази игра",
"backup_uploaded": "Архивът е качен",
"backup_deleted": "Архивът е изтрит",
"backup_restored": "Архивът е възстановен",
"see_all_achievements": "Виж всички постижения",
"sign_in_to_see_achievements": "Влезте, за да видите постиженията",
"mapping_method_automatic": "Автоматично",
"mapping_method_manual": "Ръчно",
"mapping_method_label": "Метод на картографиране",
"files_automatically_mapped": "Автоматично картографиране на файлове",
"no_backups_created": "Не са създадени резервни копия за тази игра",
"manage_files": "Управление на файлове",
"mapping_method_label": "Метод на съпоставяне",
"files_automatically_mapped": "Файловете са съпоставени автоматично",
"no_backups_created": "Няма създадени архиви за тази игра",
"manage_files": "Управлявай файлове",
"loading_save_preview": "Търсене на запазени игри…",
"wine_prefix": "Wine Префикс",
"wine_prefix_description": "Wine prefix използван за тази игра",
"no_download_option_info": "Няма налични данни",
"backup_deletion_failed": "Неуспешно изтриване на резервно копие",
"max_number_of_artifacts_reached": "Достигнат максимален брой резервни копия за тази игра",
"achievements_not_sync": "Постиженията не са синхронизирани",
"manage_files_description": "Управлявайте кои файлове ще бъдат архивирани и възстановени",
"wine_prefix": "Wine префикс",
"wine_prefix_description": "Wine префикс, използван за стартиране на тази игра",
"launch_options": "Опции за стартиране",
"launch_options_description": "Напреднали потребители могат да въведат модификации (експериментална функция)",
"launch_options_placeholder": "Няма зададен параметър",
"no_download_option_info": "Няма налична информация",
"backup_deletion_failed": "Неуспешно изтриване на архив",
"max_number_of_artifacts_reached": "Достигнат е максималният брой архиви за тази игра",
"achievements_not_sync": "Вижте как да синхронизирате постиженията си",
"manage_files_description": "Управлявайте кои файлове ще се архивират и възстановяват",
"select_folder": "Избери папка",
"backup_from": "Резервно копие от {{date}}",
"custom_backup_location_set": "Задаване на персонализирано местоположение за архивиране"
"backup_from": "Архив от {{date}}",
"automatic_backup_from": "Автоматичен архив от {{date}}",
"enable_automatic_cloud_sync": "Включи автоматична синхронизация с облака",
"custom_backup_location_set": "Зададено е персонализирано място за архив",
"no_directory_selected": "Няма избрана директория",
"no_write_permission": "Не може да се изтегли в тази директория. Кликнете тук за повече информация.",
"reset_achievements": "Нулирай постиженията",
"reset_achievements_description": "Това ще нулира всички постижения за {{game}}",
"reset_achievements_title": "Сигурни ли сте?",
"reset_achievements_success": "Постиженията са нулирани успешно",
"reset_achievements_error": "Неуспешно нулиране на постиженията",
"download_error_gofile_quota_exceeded": "Превишихте месечната си квота в Gofile. Моля, изчакайте тя да се възстанови.",
"download_error_real_debrid_account_not_authorized": "Вашият Real-Debrid акаунт не е упълномощен за нови изтегляния. Моля, проверете настройките на акаунта и опитайте отново.",
"download_error_not_cached_on_real_debrid": "Това изтегляне не е налично в Real-Debrid и не може да се следи статуса.",
"download_error_not_cached_on_torbox": "Това изтегляне не е налично в TorBox и не може да се следи статуса.",
"download_error_not_cached_on_hydra": "Това изтегляне не е налично в Nimbus.",
"game_removed_from_favorites": "Играта е премахната от любими",
"game_added_to_favorites": "Играта е добавена в любими",
"automatically_extract_downloaded_files": "Автоматично извличане на изтеглени файлове",
"create_start_menu_shortcut": "Създай пряк път в старт менюто",
"invalid_wine_prefix_path": "Невалиден път до Wine префикса",
"invalid_wine_prefix_path_description": "Пътят до Wine префикса е невалиден. Моля, проверете го и опитайте отново.",
"missing_wine_prefix": "Wine префикс е необходим за създаване на архив в Linux"
},
"activation": {
"title": "Активирай Hydra",
"installation_id": дентификатор на инсталацията:",
"enter_activation_code": "Въведете кода за активиране",
"message": "Ако не знаете къде да попитате за това, значи не трябва да го имате..",
"installation_id": "Инсталационен ID:",
"enter_activation_code": "Въведете активационен код",
"message": "Ако не знаете къде да попитате за това, не бива да го имате.",
"activate": "Активирай",
"loading": "Зареждане…"
},
"downloads": {
"seeding": "Сийдване",
"stop_seeding": "Спри сийдването",
"resume_seeding": "Продължи сийдването",
"options": "Управление",
"resume": "Продължи",
"pause": "Пауза",
"eta": "Conclusion {{eta}}",
"paused": "Паузирано",
"eta": "Завършване {{eta}}",
"paused": "На пауза",
"verifying": "Проверка…",
"completed": "Готово",
"removed": "Не е изтеглен",
"completed": "Завършено",
"removed": "Не е изтеглено",
"cancel": "Отказ",
"filter": "Филтриране на изтеглени игри",
"filter": "Филтрирай изтеглените игри",
"remove": "Премахни",
"downloading_metadata": "Изтегляне на метаданни…",
"deleting": "Изтриване на инсталатора…",
"delete": "Премахване на инсталатора",
"delete_modal_title": "Сигурени ли сте?",
"delete_modal_description": "Това ще премахне всички инсталационни файлове от компютъра ви.",
"delete": "Премахни инсталатора",
"delete_modal_title": "Сигурни ли сте?",
"delete_modal_description": "Това ще премахне всички инсталационни файлове от компютъра ви",
"install": "Инсталирай",
"download_in_progress": "В процес на изпълнение",
"queued_downloads": "Изтеглени файлове в опашката",
"downloads_completed": "Приключени",
"queued": "В опашка",
"download_in_progress": "В процес",
"queued_downloads": "Изтегляния на опашка",
"downloads_completed": "Завършени",
"queued": "В опашката",
"no_downloads_title": "Толкова е празно",
"no_downloads_description": "Все още не сте изтеглили нищо с Hydra, но никога не е късно да започнете...",
"checking_files": "Проверка на файлове…"
"no_downloads_description": "Все още не сте изтеглили нищо с Hydra, но никога не е късно да започнете.",
"checking_files": "Проверка на файлове…",
"seeding": "Сийдване",
"stop_seeding": "Спри сийдването",
"resume_seeding": "Продължи сийдването",
"options": "Управлявай",
"extract": "Извлечи файловете",
"extracting": "Извличане на файловете…"
},
"settings": {
"seed_after_download_complete": "Сийд след завършване на изтеглянето",
"show_hidden_achievement_description": "Показвай описанието на скритите постижения преди отключването им",
"downloads_path": "Инсталационен път",
"change": "Актуализиране",
"downloads_path": "Път за изтегляния",
"change": "Обнови",
"notifications": "Известия",
"enable_download_notifications": "Когато изтеглянето е завършено",
"enable_repack_list_notifications": "Когато се добави нов repack",
"enable_download_notifications": "Когато изтеглянето приключи",
"enable_repack_list_notifications": "Когато бъде добавен нов репак",
"real_debrid_api_token_label": "Real-Debrid API токен",
"quit_app_instead_hiding": "Не скривайте Hydra при затваряне",
"launch_with_system": "Стартиране на Hydra при стартиране на системата",
"quit_app_instead_hiding": "Не скривай Hydra при затваряне",
"launch_with_system": "Стартирай Hydra при стартиране на системата",
"general": "Общи",
"behavior": "Поведение",
"download_sources": "Източници за изтегляне",
"language": "Език",
"api_token": "API Токен",
"api_token": "API токен",
"enable_real_debrid": "Включи Real-Debrid",
"real_debrid_description": "Real-Debrid е неограничен даунлоудър, който ви позволява бързо да изтегляте файлове, ограничени само от скоростта на интернет..",
"real_debrid_description": "Real-Debrid е неограничен изтегляч, който ви позволява да теглите бързо, ограничено само от интернет връзката ви.",
"debrid_invalid_token": "Невалиден API токен",
"debrid_api_token_hint": "Вземете своя API токен <0>тук</0>",
"real_debrid_free_account_error": "Акаунтът \"{{username}}\" е безплатен акаунт. Моля абонирай се за Real-Debrid",
"debrid_linked_message": "Акаунтът \"{{username}}\" е свързан",
"debrid_api_token_hint": "Може да получите вашия API токен <0>тук</0>",
"real_debrid_free_account_error": "Акаунтът \"{{username}}\" е безплатен. Моля, абонирайте се за Real-Debrid",
"debrid_linked_message": "Акаунт \"{{username}}\" е свързан",
"save_changes": "Запази промените",
"changes_saved": "Промените са успешно запазни",
"download_sources_description": "Hydra ще извлича връзките за изтегляне от тези източници. URL адресът на източника трябва да е директна връзка към .json файл, съдържащ връзките за изтегляне.",
"validate_download_source": "Валидиране",
"changes_saved": "Промените са запазени успешно",
"download_sources_description": "Hydra ще взема линкове за изтегляне от тези източници. URL адресът трябва да сочи към .json файл с линкове.",
"validate_download_source": "Валидирай",
"remove_download_source": "Премахни",
"add_download_source": "Добави източник",
"download_count_zero": "Няма опции за сваляне",
"download_count_one": "{{countFormatted}} опции за сваляне",
"download_count_other": "{{countFormatted}} опции за сваляне",
"download_source_url": "URL адрес на източника за изтегляне",
"add_download_source_description": "Вмъкнете URL адреса на файла .json",
"download_source_up_to_date": "Актуален",
"download_source_errored": "Сгрешен",
"sync_download_sources": "Синхронизирай източниците",
"removed_download_source": "Източника за сваляне е премахнат",
"cancel_button_confirmation_delete_all_sources": "не",
"confirm_button_confirmation_delete_all_sources": "Да, удалить все",
"description_confirmation_delete_all_sources": "Вы удалите все источники загрузки",
"title_confirmation_delete_all_sources": "Удалить все источники загрузки",
"removed_download_sources": "Шрифты удалены",
"button_delete_all_sources": "Удалить все источники загрузки",
"added_download_source": "Добавен източник за сваляне",
"download_sources_synced": "Всички източници за сваляне са синхронизирани",
"insert_valid_json_url": "Добавете ваиден JSON линк",
"found_download_option_zero": "Няма намерени опции за сваляне",
"found_download_option_one": "Намерени {{countFormatted}} опции за сваляне",
"found_download_option_other": "Намерени {{countFormatted}} опции за сваляне",
"import": "Внеси",
"public": "Публичен",
"private": "Личен",
"download_count_zero": "Няма опции за изтегляне",
"download_count_one": "{{countFormatted}} опция за изтегляне",
"download_count_other": "{{countFormatted}} опции за изтегляне",
"download_source_url": "URL на източника",
"add_download_source_description": "Въведете URL на .json файла",
"download_source_up_to_date": "Актуализиран",
"download_source_errored": "Грешка",
"sync_download_sources": "Синхронизирай източници",
"removed_download_source": "Източникът е премахнат",
"removed_download_sources": "Източниците са премахнати",
"cancel_button_confirmation_delete_all_sources": "Не",
"confirm_button_confirmation_delete_all_sources": "Да, изтрий всичко",
"title_confirmation_delete_all_sources": "Изтрий всички източници",
"description_confirmation_delete_all_sources": "Ще изтриете всички източници",
"button_delete_all_sources": "Премахни всички",
"added_download_source": "Източникът е добавен",
"download_sources_synced": "Всички източници са синхронизирани",
"insert_valid_json_url": "Въведете валиден JSON url",
"found_download_option_zero": "Не е намерена опция за изтегляне",
"found_download_option_one": "Намерена е {{countFormatted}} опция за изтегляне",
"found_download_option_other": "Намерени са {{countFormatted}} опции за изтегляне",
"import": "Импортирай",
"public": "Публично",
"private": "Частно",
"friends_only": "Само за приятели",
"privacy": "Поверителност",
"profile_visibility": "Видимост на профила",
"profile_visibility_description": "Изберете кой може да вижда вашия профил и библиотека",
"required_field": "Това поле е задължително",
"source_already_exists": "Този източник вече е добавен",
"must_be_valid_url": "Източникът трябва да е валиден URL адрес.",
"must_be_valid_url": "Източникът трябва да е валиден URL",
"blocked_users": "Блокирани потребители",
"user_unblocked": "Потребителят е бил деблокиран",
"enable_achievement_notifications": "Когато е отключено постижение",
"launch_minimized": "Стартиране на Hydra минимизирано",
"disable_nsfw_alert": "Деактивиране на предупреждението NSFW"
"user_unblocked": "Потребителят е деблокиран",
"enable_achievement_notifications": "Когато бъде отключено постижение",
"launch_minimized": "Стартирай Hydra минимизирано",
"disable_nsfw_alert": "Изключи NSFW предупреждението",
"seed_after_download_complete": "Сийдвай след завършване на изтеглянето",
"show_hidden_achievement_description": "Показвай описанието на скритите постижения преди отключване",
"account": "Акаунт",
"no_users_blocked": "Нямате блокирани потребители",
"subscription_active_until": "Hydra Cloud е активен до {{date}}",
"manage_subscription": "Управлявай абонамента",
"update_email": "Обнови имейл",
"update_password": "Обнови парола",
"current_email": "Текущ имейл:",
"no_email_account": "Все още не сте задали имейл",
"account_data_updated_successfully": "Данните на акаунта са обновени успешно",
"renew_subscription": "Поднови Hydra Cloud",
"subscription_expired_at": "Абонаментът изтече на {{date}}",
"no_subscription": "Наслаждавайте се на Hydra по най-добрия начин",
"become_subscriber": "Станете абонат на Hydra Cloud",
"subscription_renew_cancelled": "Автоматичното подновяване е изключено",
"subscription_renews_on": "Абонаментът се подновява на {{date}}",
"bill_sent_until": "Следващата фактура ще бъде изпратена до този ден",
"no_themes": "Изглежда, че все още нямате теми. Кликнете тук, за да създадете първата си.",
"editor_tab_code": "Код",
"editor_tab_info": "Информация",
"editor_tab_save": "Запази",
"web_store": "Уеб магазин",
"clear_themes": "Изчисти",
"create_theme": "Създай",
"create_theme_modal_title": "Създай персонализирана тема",
"create_theme_modal_description": "Създайте нова тема за персонализиране на външния вид на Hydra",
"theme_name": "Име",
"insert_theme_name": "Въведете име на тема",
"set_theme": "Задай тема",
"unset_theme": "Премахни тема",
"delete_theme": "Изтрий тема",
"edit_theme": "Редактирай тема",
"delete_all_themes": "Изтрий всички теми",
"delete_all_themes_description": "Това ще изтрие всички ваши персонализирани теми",
"delete_theme_description": "Това ще изтрие темата {{theme}}",
"cancel": "Отказ",
"appearance": "Външен вид",
"enable_torbox": "Включи TorBox",
"torbox_description": "TorBox е вашият премиум seedbox, съперничещ на най-добрите сървъри на пазара.",
"torbox_account_linked": "TorBox акаунтът е свързан",
"create_real_debrid_account": "Кликнете тук, ако все още нямате Real-Debrid акаунт",
"create_torbox_account": "Кликнете тук, ако все още нямате TorBox акаунт",
"real_debrid_account_linked": "Real-Debrid акаунтът е свързан",
"name_min_length": "Името на темата трябва да е поне 3 символа",
"import_theme": "Импортирай тема",
"import_theme_description": "Ще импортирате {{theme}} от магазина с теми",
"error_importing_theme": "Грешка при импортиране на тема",
"theme_imported": "Темата е импортирана успешно",
"enable_friend_request_notifications": "Когато получите заявка за приятелство",
"enable_auto_install": "Автоматично изтегляй обновления",
"common_redist": "Общи компоненти",
"common_redist_description": "Общите компоненти са нужни за някои игри. Препоръчва се инсталация.",
"install_common_redist": "Инсталирай",
"installing_common_redist": "Инсталиране…",
"show_download_speed_in_megabytes": "Показвай скоростта на изтегляне в MB/s",
"extract_files_by_default": "Извличай файловете по подразбиране след изтегляне"
},
"notifications": {
"download_complete": "Изтеглянето е завършено",
"game_ready_to_install": "{{title}} е готово за инсталиране",
"repack_list_updated": "Repack лист е обновен",
"repack_count_one": "{{count}} repack е добавен",
"repack_count_other": "{{count}} repacks добавени",
"new_update_available": "Версия {{version}} е налична",
"restart_to_install_update": "Рестартирайте Hydra, за да инсталирате актуализацията",
"download_complete": "Изтеглянето завърши",
"game_ready_to_install": "{{title}} е готова за инсталация",
"repack_list_updated": "Списъкът с репаци е обновен",
"repack_count_one": "Добавен е {{count}} репак",
"repack_count_other": "Добавени са {{count}} репака",
"new_update_available": "Налична е версия {{version}}",
"restart_to_install_update": "Рестартирайте Hydra за инсталиране на обновлението",
"notification_achievement_unlocked_title": "Отключено постижение за {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} и други {{count}} са отклщчени"
"notification_achievement_unlocked_body": "{{achievement}} и още {{count}} бяха отключени",
"new_friend_request_description": "{{displayName}} ви изпрати заявка за приятелство",
"new_friend_request_title": "Нова заявка за приятелство",
"extraction_complete": "Извличането завърши",
"game_extracted": "{{title}} е извлечена успешно",
"friend_started_playing_game": "{{displayName}} започна да играе игра"
},
"system_tray": {
"open": "Отвори Hydra",
"quit": "Изход"
},
"game_card": {
"available_one": "Налично",
"available_other": "Налично",
"no_downloads": "Няма налични изтегляния"
},
"binary_not_found_modal": {
"title": "Не инсталирани програми",
"description": "Wine или Lutris изпълними файлове не бяха открити на вашата система",
"instructions": "Проверете правилния начин за инсталиране на някоя от тях на вашата дистрибуция на Linux, за да може играта да работи нормално"
"title": "Програмите не са инсталирани",
"description": "Wine или Lutris не са открити на вашата система",
"instructions": "Проверете как да инсталирате някоя от тях за вашата Linux дистрибуция, за да може играта да работи."
},
"modal": {
"close": "Бутон за затваряне"
},
"forms": {
"toggle_password_visibility": ревключване на видимостта на паролата"
"toggle_password_visibility": оказване/скриване на паролата"
},
"user_profile": {
"stats": "Статистики",
"achievements": "Постижения",
"games": "Игри",
"top_percentile": "Топ {{percentile}}%",
"ranking_updated_weekly": "Класацията се актуализира седмично",
"playing": "Играе {{game}}",
"achievements_unlocked": "Отключени постижения",
"earned_points": "Спечелени точки",
"show_achievements_on_profile": "Показвай своите постижения в профила",
"show_points_on_profile": "Показвай спечелените точки в профила",
"amount_hours": "{{amount}} часове",
"amount_hours": "{{amount}} часа",
"amount_minutes": "{{amount}} минути",
"last_time_played": "Последно играно {{period}}",
"activity": "Скорошна активност",
"last_time_played": "Последно играно: {{period}}",
"activity": "Последна активност",
"library": "Библиотека",
"total_play_time": "Общо време за игра",
"no_recent_activity_title": "Хмм… няма нищо тук",
"no_recent_activity_description": "Не сте играли игри напоследък. Време е да промените това.!",
"display_name": "Показване на името",
"no_recent_activity_title": "Хммм… няма нищо тук",
"no_recent_activity_description": "Не сте играли игри наскоро. Време е да го промените!",
"display_name": "Показвано име",
"saving": "Запазване",
"save": "Запис",
"edit_profile": "Редактиране на профила",
"saved_successfully": "Запазено успешно",
"try_again": "Моля, опитайте пак",
"save": "Запази",
"edit_profile": "Редактирай профил",
"saved_successfully": "Успешно запазено",
"try_again": "Моля, опитайте отново",
"sign_out_modal_title": "Сигурни ли сте?",
"cancel": "Отказ",
"successfully_signed_out": "Успешно се отписахте",
"sign_out": "Отписване",
"playing_for": "В игра от {{amount}}",
"sign_out_modal_text": "Вашата библиотека е свързана с текущата ви сметка. Когато се отпишете, библиотеката ви вече няма да е видима и напредъкът няма да бъде запазен. Продължете с отписването?",
"successfully_signed_out": "Успешно излязохте",
"sign_out": "Изход",
"playing_for": "Играе се от {{amount}}",
"sign_out_modal_text": "Библиотеката ви е свързана с този акаунт. При изход, тя няма да е видима, а прогресът няма да се запази. Продължавате ли?",
"add_friends": "Добави приятели",
"add": "Добави",
"friend_code": "Приятелски код",
"friend_code": "Код за приятелство",
"see_profile": "Виж профила",
"sending": "Изпращане",
"friend_request_sent": "Изпратена покана за приятелство",
"friend_request_sent": "Заявката е изпратена",
"friends": "Приятели",
"friends_list": "Списък с приятели",
"user_not_found": "Не е намерен потребител",
"user_not_found": "Потребителят не е намерен",
"block_user": "Блокирай потребител",
"add_friend": "Добави приятел",
"request_sent": "Изпратена покана",
"request_received": "Получена покана",
"accept_request": "Приеми поканата",
"ignore_request": "Игнирирай поканата",
"cancel_request": "Откажи поканата",
"undo_friendship": "Отмяна на приятелството",
"request_accepted": "Поканата е приета",
"request_sent": "Заявката е изпратена",
"request_received": "Получена заявка",
"accept_request": "Приеми заявката",
"ignore_request": "Игнорирай заявката",
"cancel_request": "Отмени заявката",
"undo_friendship": "Премахни приятелството",
"request_accepted": "Заявката е приета",
"user_blocked_successfully": "Потребителят е блокиран успешно",
"user_block_modal_text": "Това ще блокира {{displayName}}",
"blocked_users": "Блокирани потребители",
"unblock": "Отблокирай",
"no_friends_added": "Не сте добавили приятели",
"unblock": "Деблокирай",
"no_friends_added": "Нямате добавени приятели",
"pending": "Чакащи",
"no_pending_invites": "Нямате чакащи покани",
"no_blocked_users": "Нямате блокирани потребители",
"friend_code_copied": "Приятелския код е копиран",
"undo_friendship_modal_text": "Това ще отмени приятелството ви с {{displayName}}",
"privacy_hint": "За да настроите кой може да вижда това, отидете в <0>Настройки</0>",
"locked_profile": "Този профил е личен",
"image_process_failure": "Грешка при обработката на изображението",
"friend_code_copied": "Кодът за приятелство е копиран",
"undo_friendship_modal_text": "Това ще премахне приятелството ви с {{displayName}}",
"privacy_hint": "За да промените кой вижда това, отидете в <0>Настройки</0>",
"locked_profile": "Този профил е частен",
"image_process_failure": "Грешка при обработка на изображението",
"required_field": "Това поле е задължително",
"displayname_min_length": "Името трябва да е дълго поне 3 символа",
"displayname_max_length": "Името трябва да е с дължина не повече от 50 символа.",
"displayname_min_length": "Показваното име трябва да съдържа поне 3 символа",
"displayname_max_length": "Показваното име трябва да съдържа най-много 50 символа",
"report_profile": "Докладвай този профил",
"report_reason": "Защо докладвате този профил?",
"report_description": "Допълнителна информация",
"report_description_placeholder": "Допълнителна информация",
"report": "Докладвай",
"report_reason_hate": "Омразна реч",
"report_reason_hate": "Реч на омразата",
"report_reason_sexual_content": "Сексуално съдържание",
"report_reason_violence": "Насилия",
"report_reason_violence": "Насилие",
"report_reason_spam": "Спам",
"report_reason_other": "Друго",
"profile_reported": "Профилът е докладван",
"your_friend_code": "Вашия приятелски код:",
"your_friend_code": "Вашият код за приятелство:",
"upload_banner": "Качи банер",
"uploading_banner": "Качване на банер…",
"background_image_updated": "Обновено фоново изображение"
"uploading_banner": "Качване на банера…",
"background_image_updated": "Фоновото изображение е обновено",
"stats": "Статистики",
"achievements": "постижения",
"games": "Игри",
"top_percentile": "Топ {{percentile}}%",
"ranking_updated_weekly": "Класацията се обновява седмично",
"playing": "Играе {{game}}",
"achievements_unlocked": "Отключени постижения",
"earned_points": "Спечелени точки",
"show_achievements_on_profile": "Показвай постиженията в профила",
"show_points_on_profile": "Показвай спечелените точки в профила"
},
"achievement": {
"achievement_unlocked": "Отключено постижение",
"user_achievements": "Постижения на {{displayName}}",
"your_achievements": "Вашите постижения",
"unlocked_at": "Отключено на: {{date}}",
"subscription_needed": "Изисква се абонамент за Hydra Cloud за този съдържание",
"new_achievements_unlocked": "Отключени {{achievementCount}} нови постижения от {{gameCount}} игри",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} постижения",
"achievements_unlocked_for_game": "Отключени {{achievementCount}} нови постижения за {{gameTitle}}",
"hidden_achievement_tooltip": "Това е скрито постижение",
"achievement_earn_points": "Спечели {{points}} точки с това постижение",
"achievement_earn_points": "Спечелете {{points}} точки с това постижение",
"earned_points": "Спечелени точки:",
"available_points": "Налични точки:",
"how_to_earn_achievements_points": "Как да спечелиш точки за постижения?",
"achievement_unlocked": "Постижението е отключено",
"user_achievements": "Постиженията на {{displayName}} ",
"your_achievements": "Вашите Постижения",
"unlocked_at": "Отключено на: {{date}}",
"subscription_needed": "Необходим е абонамент за Hydra Cloud, за да видите това съдържание",
"new_achievements_unlocked": "Отключени {{achievementCount}} нови постижения от {{gameCount}} игра",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} постижения",
"achievements_unlocked_for_game": "Отключени {{achievementCount}} нови постижения за {{gameTitle}}"
"how_to_earn_achievements_points": "Как се печелят точки от постижения?"
},
"hydra_cloud": {
"subscription_tour_title": "Абонамент за Hydra Cloud",
"subscribe_now": "Абонирай се сега",
"cloud_saving": "Облачно запазване",
"cloud_achievements": "Запазете постиженията си в облака",
"animated_profile_picture": "Анимирани профилни снимки",
"premium_support": "Премиум поддръжка",
"show_and_compare_achievements": "Показвайте и сравнявайте постиженията си с други потребители",
"animated_profile_banner": "Анимирани профилни банери",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Открихте функция на Hydra Cloud!",
"learn_more": "Научете повече",
"subscription_tour_title": "Hydra Cloud Абонамент",
"subscribe_now": "Абонирай се сега",
"cloud_saving": "Запазване в облака",
"cloud_achievements": "Запазете постиженията си в облака",
"animated_profile_picture": "Анимирана профилна снимка",
"premium_support": "Премиум поддръжка",
"show_and_compare_achievements": "Показвайте и сравнявайте постиженията си с тези на други потребители",
"animated_profile_banner": "Анимиран профилен банер"
"debrid_description": "Изтегляйте до 4 пъти по-бързо с Nimbus"
}
}

View File

@@ -380,7 +380,8 @@
"platinum": "Platinum",
"hidden": "Hidden",
"test_notification": "Test notification",
"notification_preview": "Achievement Notification Preview"
"notification_preview": "Achievement Notification Preview",
"enable_friend_start_game_notifications": "When a friend starts playing a game"
},
"notifications": {
"download_complete": "Download complete",

View File

@@ -26,6 +26,7 @@ import nb from "./nb/translation.json";
import et from "./et/translation.json";
import bg from "./bg/translation.json";
import uz from "./uz/translation.json";
import sv from "./sv/translation.json";
export default {
"pt-BR": ptBR,
@@ -56,4 +57,5 @@ export default {
nb,
et,
uz,
sv,
};

View File

@@ -365,7 +365,8 @@
"platinum": "Platina",
"hidden": "Oculta",
"test_notification": "Testar notificação",
"notification_preview": "Prévia da Notificação de Conquistas"
"notification_preview": "Prévia da Notificação de Conquistas",
"enable_friend_start_game_notifications": "Quando um amigo iniciar um jogo"
},
"notifications": {
"download_complete": "Download concluído",

View File

@@ -0,0 +1,532 @@
{
"language_name": "Svenska",
"app": {
"successfully_signed_in": "Inloggningen lyckades"
},
"home": {
"featured": "Utvalt",
"surprise_me": "Överraska mig",
"no_results": "Inga resultat hittades",
"start_typing": "Börja skriva för att söka...",
"hot": "Hetast just nu",
"weekly": "📅 Veckans topplista",
"achievements": "🏆 Spel att klara av"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "Nedladdningar",
"settings": "Inställningar",
"my_library": "Mitt bibliotek",
"downloading_metadata": "{{title}} (Hämtar metadata…)",
"paused": "{{title}} (Pausad)",
"downloading": "{{title}} ({{percentage}} - Hämtar…)",
"filter": "Filtrera bibliotek",
"home": "Hem",
"queued": "{{title}} (I kö)",
"game_has_no_executable": "Spelet har ingen vald körbar fil",
"sign_in": "Logga in",
"friends": "Vänner",
"need_help": "Behöver du hjälp?",
"favorites": "Favoriter"
},
"header": {
"search": "Sök spel",
"home": "Hem",
"catalogue": "Katalog",
"downloads": "Nedladdningar",
"search_results": "Sökresultat",
"settings": "Inställningar",
"version_available_install": "Version {{version}} är tillgänglig. Klicka här för att starta om och installera.",
"version_available_download": "Version {{version}} är tillgänglig. Klicka här för att ladda ner."
},
"bottom_panel": {
"no_downloads_in_progress": "Inga nedladdningar pågår",
"downloading_metadata": "Laddar ner metadata för {{title}}…",
"downloading": "Laddar ner {{title}}… ({{percentage}} klart) - Klart om {{eta}} - {{speed}}",
"calculating_eta": "Laddar ner {{title}}… ({{percentage}} klart) - Beräknar återstående tid…",
"checking_files": "Kontrollerar filer för {{title}}… ({{percentage}} klart)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Installation klar",
"installation_complete_message": "Nödvändiga systemkomponenter installerade framgångsrikt"
},
"catalogue": {
"search": "Filter…",
"developers": "Utvecklare",
"genres": "Genrer",
"tags": "Taggar",
"publishers": "Utgivare",
"download_sources": "Nedladdningskällor",
"result_count": "{{resultCount}} resultat",
"filter_count": "{{filterCount}} tillgängliga",
"clear_filters": "Rensa {{filterCount}} valda"
},
"game_details": {
"open_download_options": "Öppna nedladdningsalternativ",
"download_options_zero": "Inget nedladdningsalternativ",
"download_options_one": "{{count}} nedladdningsalternativ",
"download_options_other": "{{count}} nedladdningsalternativ",
"updated_at": "Uppdaterad {{updated_at}}",
"install": "Installera",
"resume": "Återuppta",
"pause": "Pausa",
"cancel": "Avbryt",
"remove": "Ta bort",
"space_left_on_disk": "{{space}} ledigt på disken",
"eta": "Klart om {{eta}}",
"calculating_eta": "Beräknar återstående tid…",
"downloading_metadata": "Laddar ner metadata…",
"filter": "Filtrera repacks",
"requirements": "Systemkrav",
"minimum": "Minimum",
"recommended": "Rekommenderat",
"paused": "Pausat",
"release_date": "Släpptes den {{date}}",
"publisher": "Utgiven av {{publisher}}",
"hours": "timmar",
"minutes": "minuter",
"amount_hours": "{{amount}} timmar",
"amount_minutes": "{{amount}} minuter",
"accuracy": "{{accuracy}}% träffsäkerhet",
"add_to_library": "Lägg till i biblioteket",
"remove_from_library": "Ta bort från biblioteket",
"no_downloads": "Inga nedladdningar tillgängliga",
"play_time": "Spelad i {{amount}}",
"last_time_played": "Senast spelad {{period}}",
"not_played_yet": "Du har inte spelat {{title}} än",
"next_suggestion": "Nästa förslag",
"play": "Spela",
"deleting": "Tar bort installationsfil…",
"close": "Stäng",
"playing_now": "Spelar nu",
"change": "Byt",
"repacks_modal_description": "Välj den repack du vill ladda ner",
"select_folder_hint": "För att ändra standardmappen, gå till <0>Inställningar</0>",
"download_now": "Ladda ner nu",
"no_shop_details": "Kunde inte hämta butikens information.",
"download_options": "Nedladdningsalternativ",
"download_path": "Nedladdningsplats",
"previous_screenshot": "Föregående skärmdump",
"next_screenshot": "Nästa skärmdump",
"screenshot": "Skärmdump {{number}}",
"open_screenshot": "Öppna skärmdump {{number}}",
"download_settings": "Nedladdningsinställningar",
"downloader": "Nedladdare",
"select_executable": "Välj",
"no_executable_selected": "Ingen körbar fil vald",
"open_folder": "Öppna mapp",
"open_download_location": "Visa nedladdade filer",
"create_shortcut": "Skapa genväg på skrivbordet",
"clear": "Rensa",
"remove_files": "Ta bort filer",
"remove_from_library_title": "Är du säker?",
"remove_from_library_description": "Detta kommer ta bort {{game}} från ditt bibliotek",
"options": "Alternativ",
"executable_section_title": "Körbar fil",
"executable_section_description": "Sökväg till filen som körs när du klickar på \"Spela\"",
"downloads_section_title": "Nedladdningar",
"downloads_section_description": "Kolla uppdateringar eller andra versioner av detta spel",
"danger_zone_section_title": "Danger zone",
"danger_zone_section_description": "Ta bort detta spel från ditt bibliotek eller filer nedladdade av Hydra",
"download_in_progress": "Nedladdning pågår",
"download_paused": "Nedladdning pausad",
"last_downloaded_option": "Senast nedladdade alternativ",
"create_steam_shortcut": "Skapa Steam-genväg",
"create_shortcut_success": "Genväg skapad",
"you_might_need_to_restart_steam": "Du kan behöva starta om Steam för att se ändringarna",
"create_shortcut_error": "Fel vid skapande av genväg",
"nsfw_content_title": "Det här spelet innehåller olämpligt innehåll",
"nsfw_content_description": "{{title}} innehåller innehåll som kanske inte är lämpligt för alla åldrar. Vill du fortsätta?",
"allow_nsfw_content": "Fortsätt",
"refuse_nsfw_content": "Gå tillbaka",
"stats": "Statistik",
"download_count": "Nedladdningar",
"player_count": "Aktiva spelare",
"download_error": "Det här nedladdningsalternativet är inte tillgängligt",
"download": "Ladda ner",
"executable_path_in_use": "Körbar fil används redan av \"{{game}}\"",
"warning": "Varning:",
"hydra_needs_to_remain_open": "för denna nedladdning behöver Hydra vara öppen tills den är klar. Om Hydra stängs innan nedladdningen är klar förlorar du dina framsteg.",
"achievements": "Prestationer",
"achievements_count": "Prestationer {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Molnspara",
"cloud_save_description": "Spara dina framsteg i molnet och fortsätt spela på vilken enhet som helst",
"backups": "Säkerhetskopior",
"install_backup": "Installera",
"delete_backup": "Ta bort",
"create_backup": "Ny säkerhetskopia",
"last_backup_date": "Senaste säkerhetskopia {{date}}",
"no_backup_preview": "Inga sparfiler hittades för detta spel",
"restoring_backup": "Återställer säkerhetskopia ({{progress}} klart)…",
"uploading_backup": "Laddar upp säkerhetskopia…",
"no_backups": "Du har inte skapat några säkerhetskopior för detta spel än",
"backup_uploaded": "Säkerhetskopia uppladdad",
"backup_deleted": "Säkerhetskopia borttagen",
"backup_restored": "Säkerhetskopia återställd",
"see_all_achievements": "Se alla prestationer",
"sign_in_to_see_achievements": "Logga in för att se prestationer",
"mapping_method_automatic": "Automatisk",
"mapping_method_manual": "Manuell",
"mapping_method_label": "Kartläggningsmetod",
"files_automatically_mapped": "Filer kartlagda automatiskt",
"no_backups_created": "Inga säkerhetskopior skapade för detta spel",
"manage_files": "Hantera filer",
"loading_save_preview": "Söker efter sparfiler…",
"wine_prefix": "Wine-prefix",
"wine_prefix_description": "Wine-prefixet som används för att köra detta spel",
"launch_options": "Startalternativ",
"launch_options_description": "Avancerade användare kan lägga till modifieringar till sina startalternativ (experimentell funktion)",
"launch_options_placeholder": "Inga parametrar angivna",
"no_download_option_info": "Ingen information tillgänglig",
"backup_deletion_failed": "Misslyckades med att ta bort säkerhetskopian",
"max_number_of_artifacts_reached": "Maximalt antal säkerhetskopior nått för detta spel",
"achievements_not_sync": "Se hur du synkroniserar dina prestationer",
"manage_files_description": "Hantera vilka filer som ska säkerhetskopieras och återställas",
"select_folder": "Välj mapp",
"backup_from": "Säkerhetskopia från {{date}}",
"automatic_backup_from": "Automatisk säkerhetskopia från {{date}}",
"enable_automatic_cloud_sync": "Aktivera automatisk molnsynkronisering",
"custom_backup_location_set": "Anpassad plats för säkerhetskopior inställd",
"no_directory_selected": "Ingen mapp vald",
"no_write_permission": "Kan inte ladda ner till denna mapp. Klicka här för att läsa mer.",
"reset_achievements": "Återställ prestationer",
"reset_achievements_description": "Detta kommer att återställa alla prestationer för {{game}}",
"reset_achievements_title": "Är du säker?",
"reset_achievements_success": "Prestationer återställda",
"reset_achievements_error": "Misslyckades med att återställa prestationer",
"download_error_gofile_quota_exceeded": "Du har överskridit din månadsgräns för Gofile. Vänta tills kvoten återställs.",
"download_error_real_debrid_account_not_authorized": "Ditt Real-Debrid-konto är inte auktoriserat att göra nya nedladdningar. Kontrollera dina kontoinställningar och försök igen.",
"download_error_not_cached_on_real_debrid": "Denna nedladdning finns inte på Real-Debrid och statusövervakning från Real-Debrid är ännu inte tillgänglig.",
"download_error_not_cached_on_torbox": "Denna nedladdning finns inte på TorBox och statusövervakning från TorBox är ännu inte tillgänglig.",
"download_error_not_cached_on_hydra": "Denna nedladdning finns inte på Nimbus.",
"game_removed_from_favorites": "Spelet togs bort från favoriter",
"game_added_to_favorites": "Spelet lades till i favoriter",
"automatically_extract_downloaded_files": "Extrahera nedladdade filer automatiskt",
"create_start_menu_shortcut": "Skapa genväg i Startmenyn",
"invalid_wine_prefix_path": "Ogiltig sökväg för Wine-prefix",
"invalid_wine_prefix_path_description": "Sökvägen till Wine-prefixet är ogiltig. Kontrollera sökvägen och försök igen.",
"missing_wine_prefix": "Wine-prefix krävs för att skapa en säkerhetskopia på Linux"
},
"activation": {
"title": "Aktivera Hydra",
"installation_id": "Installations ID:",
"enter_activation_code": "Ange din aktiveringskod",
"message": "Om du inte vet var du ska fråga efter denna, borde du inte ha den.",
"activate": "Aktivera",
"loading": "Laddar…"
},
"downloads": {
"resume": "Fortsätt",
"pause": "Pausa",
"eta": "Slutförs {{eta}}",
"paused": "Pausad",
"verifying": "Verifierar…",
"completed": "Slutförd",
"removed": "Ej nedladdad",
"cancel": "Avbryt",
"filter": "Filtrera nedladdade spel",
"remove": "Ta bort",
"downloading_metadata": "Laddar metadata…",
"deleting": "Tar bort installationsfil…",
"delete": "Ta bort installationsfil",
"delete_modal_title": "Är du säker?",
"delete_modal_description": "Detta tar bort alla installationsfiler från din dator",
"install": "Installera",
"download_in_progress": "Pågår",
"queued_downloads": "Köade nedladdningar",
"downloads_completed": "Klart",
"queued": "I kö",
"no_downloads_title": "Så tomt",
"no_downloads_description": "Du har inte laddat ner något med Hydra än, men det är aldrig för sent att börja.",
"checking_files": "Kontrollerar filer…",
"seeding": "Delar",
"stop_seeding": "Sluta dela",
"resume_seeding": "Fortsätt dela",
"options": "Hantera",
"extract": "Packa upp filer",
"extracting": "Packar upp filer…"
},
"settings": {
"downloads_path": "Nedladdningssökväg",
"change": "Uppdatera",
"notifications": "Aviseringar",
"enable_download_notifications": "När en nedladdning är klar",
"enable_repack_list_notifications": "När en ny repack läggs till",
"real_debrid_api_token_label": "Real-Debrid API-token",
"quit_app_instead_hiding": "Stäng Hydra istället för att minimera",
"launch_with_system": "Starta Hydra vid systemstart",
"general": "Allmänt",
"behavior": "Beteende",
"download_sources": "Nedladdningskällor",
"language": "Språk",
"api_token": "API-token",
"enable_real_debrid": "Aktivera Real-Debrid",
"real_debrid_description": "Real-Debrid är en obegränsad nedladdningstjänst som låter dig ladda ner filer snabbt, endast begränsad av din internetanslutning.",
"debrid_invalid_token": "Ogiltig API-token",
"debrid_api_token_hint": "Du kan hämta din API-token <0>här</0>",
"real_debrid_free_account_error": "Kontot \"{{username}}\" är ett gratiskonto. Prenumerera på Real-Debrid",
"debrid_linked_message": "Kontot \"{{username}}\" kopplat",
"save_changes": "Spara ändringar",
"changes_saved": "Ändringar sparades",
"download_sources_description": "Hydra hämtar nedladdningslänkar från dessa källor. Källans URL måste vara en direktlänk till en .json-fil med nedladdningslänkar.",
"validate_download_source": "Validera",
"remove_download_source": "Ta bort",
"add_download_source": "Lägg till källa",
"download_count_zero": "Inga nedladdningsalternativ",
"download_count_one": "{{countFormatted}} nedladdningsalternativ",
"download_count_other": "{{countFormatted}} nedladdningsalternativ",
"download_source_url": "URL till nedladdningskälla",
"add_download_source_description": "Ange URL:en till .json-filen",
"download_source_up_to_date": "Uppdaterad",
"download_source_errored": "Fel uppstod",
"sync_download_sources": "Synkronisera källor",
"removed_download_source": "Nedladdningskälla borttagen",
"removed_download_sources": "Nedladdningskällor borttagna",
"cancel_button_confirmation_delete_all_sources": "Nej",
"confirm_button_confirmation_delete_all_sources": "Ja, ta bort allt",
"title_confirmation_delete_all_sources": "Ta bort alla nedladdningskällor",
"description_confirmation_delete_all_sources": "Du kommer att ta bort alla nedladdningskällor",
"button_delete_all_sources": "Ta bort alla",
"added_download_source": "Nedladdningskälla tillagd",
"download_sources_synced": "Alla nedladdningskällor är synkroniserade",
"insert_valid_json_url": "Ange en giltig JSON-URL",
"found_download_option_zero": "Inga nedladdningsalternativ hittades",
"found_download_option_one": "Hittade {{countFormatted}} nedladdningsalternativ",
"found_download_option_other": "Hittade {{countFormatted}} nedladdningsalternativ",
"import": "Importera",
"public": "Offentlig",
"private": "Privat",
"friends_only": "Endast vänner",
"privacy": "Integritet",
"profile_visibility": "Profilens synlighet",
"profile_visibility_description": "Välj vem som kan se din profil och ditt bibliotek",
"required_field": "Detta fält är obligatoriskt",
"source_already_exists": "Denna källa har redan lagts till",
"must_be_valid_url": "Källan måste vara en giltig URL",
"blocked_users": "Blockerade användare",
"user_unblocked": "Användaren har avblockerats",
"enable_achievement_notifications": "När en prestation låses upp",
"launch_minimized": "Starta Hydra minimerad",
"disable_nsfw_alert": "Inaktivera NSFW-varning",
"seed_after_download_complete": "Dela efter att nedladdningen är klar",
"show_hidden_achievement_description": "Visa beskrivning av dolda prestationer innan de låses upp",
"account": "Konto",
"no_users_blocked": "Du har inga blockerade användare",
"subscription_active_until": "Ditt Hydra Cloud är aktivt till {{date}}",
"manage_subscription": "Hantera prenumeration",
"update_email": "Uppdatera e-postadress",
"update_password": "Uppdatera lösenord",
"current_email": "Nuvarande e-postadress:",
"no_email_account": "Du har ännu inte angett någon e-postadress",
"account_data_updated_successfully": "Kontoinformationen har uppdaterats",
"renew_subscription": "Förnya Hydra Cloud",
"subscription_expired_at": "Din prenumeration gick ut den {{date}}",
"no_subscription": "Njut av Hydra på bästa möjliga sätt",
"become_subscriber": "Bli Hydra Cloud-prenumerant",
"subscription_renew_cancelled": "Automatisk förnyelse är inaktiverad",
"subscription_renews_on": "Din prenumeration förnyas den {{date}}",
"bill_sent_until": "Din nästa faktura skickas senast detta datum",
"no_themes": "Det verkar som att du inte har några teman ännu, men ingen fara klicka här för att skapa ditt första mästerverk.",
"editor_tab_code": "Kod",
"editor_tab_info": "Info",
"editor_tab_save": "Spara",
"web_store": "Webbutik",
"clear_themes": "Rensa",
"create_theme": "Skapa",
"create_theme_modal_title": "Skapa eget tema",
"create_theme_modal_description": "Skapa ett nytt tema för att anpassa Hydras utseende",
"theme_name": "Namn",
"insert_theme_name": "Ange temats namn",
"set_theme": "Aktivera tema",
"unset_theme": "Avaktivera tema",
"delete_theme": "Ta bort tema",
"edit_theme": "Redigera tema",
"delete_all_themes": "Ta bort alla teman",
"delete_all_themes_description": "Detta kommer att ta bort alla dina egna teman",
"delete_theme_description": "Detta kommer att ta bort temat {{theme}}",
"cancel": "Avbryt",
"appearance": "Utseende",
"enable_torbox": "Aktivera TorBox",
"torbox_description": "TorBox är din premium seedbox-tjänst som konkurrerar med de bästa servrarna på marknaden.",
"torbox_account_linked": "TorBox-konto kopplat",
"create_real_debrid_account": "Klicka här om du ännu inte har ett Real-Debrid-konto",
"create_torbox_account": "Klicka här om du ännu inte har ett TorBox-konto",
"real_debrid_account_linked": "Real-Debrid-konto kopplat",
"name_min_length": "Temanamnet måste innehålla minst 3 tecken",
"import_theme": "Importera tema",
"import_theme_description": "Du kommer att importera {{theme}} från temabutiken",
"error_importing_theme": "Fel vid import av tema",
"theme_imported": "Temat har importerats",
"enable_friend_request_notifications": "När en vänförfrågan tas emot",
"enable_auto_install": "Ladda ner uppdateringar automatiskt",
"common_redist": "Nödvändiga systemkomponenter",
"common_redist_description": "Nödvändiga systemkomponenter krävs för att vissa spel ska fungera. Det rekommenderas att installera dem för att undvika problem.",
"install_common_redist": "Installera",
"installing_common_redist": "Installerar…",
"show_download_speed_in_megabytes": "Visa nedladdningshastighet i megabyte per sekund",
"extract_files_by_default": "Extrahera filer automatiskt efter nedladdning",
"achievement_custom_notification_position": "Anpassad position för prestationmeddelande",
"top-left": "Övre vänster",
"top-center": "Övre mitten",
"top-right": "Övre höger",
"bottom-left": "Nedre vänster",
"bottom-center": "Nedre mitten",
"bottom-right": "Nedre höger",
"enable_achievement_custom_notifications": "Aktivera anpassade prestationmeddelanden",
"alignment": "Justering",
"variation": "Variation",
"default": "Standard",
"rare": "Sällsynt",
"platinum": "Platina",
"hidden": "Dold",
"test_notification": "Testa meddelande",
"notification_preview": "Förhandsvisning av prestationmeddelande"
},
"notifications": {
"download_complete": "Nedladdning klar",
"game_ready_to_install": "{{title}} är redo att installeras",
"repack_list_updated": "Repack-listan har uppdaterats",
"repack_count_one": "{{count}} repack tillagd",
"repack_count_other": "{{count}} repacks tillagda",
"new_update_available": "Version {{version}} tillgänglig",
"restart_to_install_update": "Starta om Hydra för att installera uppdateringen",
"notification_achievement_unlocked_title": "Prestation upplåst för {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} och {{count}} andra har låsts upp",
"new_friend_request_description": "{{displayName}} har skickat en vänförfrågan",
"new_friend_request_title": "Ny vänförfrågan",
"extraction_complete": "Extrahering slutförd",
"game_extracted": "{{title}} har extraherats",
"friend_started_playing_game": "{{displayName}} började spela ett spel",
"test_achievement_notification_title": "Detta är ett testmeddelande",
"test_achievement_notification_description": "Ganska coolt, eller hur?"
},
"system_tray": {
"open": "Öppna Hydra",
"quit": "Avsluta"
},
"game_card": {
"available_one": "Tillgänglig",
"available_other": "Tillgänglig",
"no_downloads": "Inga nedladdningar tillgängliga"
},
"binary_not_found_modal": {
"title": "Program inte installerade",
"description": "Wine- eller Lutris-körbara filer hittades inte på ditt system",
"instructions": "Kontrollera hur du installerar dem korrekt på din Linux-distribution så att spelet kan köras normalt"
},
"modal": {
"close": "Stäng-knapp"
},
"forms": {
"toggle_password_visibility": "Visa/dölj lösenord"
},
"user_profile": {
"amount_hours": "{{amount}} timmar",
"amount_minutes": "{{amount}} minuter",
"last_time_played": "Senast spelad {{period}}",
"activity": "Senaste aktivitet",
"library": "Bibliotek",
"total_play_time": "Total speltid",
"no_recent_activity_title": "Hmmm… ingenting här",
"no_recent_activity_description": "Du har inte spelat några spel nyligen. Dags att ändra på det!",
"display_name": "Visningsnamn",
"saving": "Sparar",
"save": "Spara",
"edit_profile": "Redigera profil",
"saved_successfully": "Sparat",
"try_again": "Försök igen",
"sign_out_modal_title": "Är du säker?",
"cancel": "Avbryt",
"successfully_signed_out": "Utloggningen lyckades",
"sign_out": "Logga ut",
"playing_for": "Spelar sedan {{amount}}",
"sign_out_modal_text": "Ditt bibliotek är kopplat till det aktuella kontot. När du loggar ut kommer biblioteket inte längre vara synligt, och framstegen kommer inte att sparas. Vill du fortsätta logga ut?",
"add_friends": "Lägg till vänner",
"add": "Lägg till",
"friend_code": "Vänkod",
"see_profile": "Visa profil",
"sending": "Skickar",
"friend_request_sent": "Vänförfrågan skickad",
"friends": "Vänner",
"friends_list": "Vänlista",
"user_not_found": "Användare hittades inte",
"block_user": "Blockera användare",
"add_friend": "Lägg till vän",
"request_sent": "Förfrågan skickad",
"request_received": "Förfrågan mottagen",
"accept_request": "Acceptera förfrågan",
"ignore_request": "Ignorera förfrågan",
"cancel_request": "Avbryt förfrågan",
"undo_friendship": "Ta bort vänskap",
"request_accepted": "Förfrågan accepterad",
"user_blocked_successfully": "Användaren har blockerats",
"user_block_modal_text": "Detta kommer att blockera {{displayName}}",
"blocked_users": "Blockerade användare",
"unblock": "Avblockera",
"no_friends_added": "Du har inte lagt till några vänner",
"pending": "Väntande",
"no_pending_invites": "Du har inga väntande inbjudningar",
"no_blocked_users": "Du har inga blockerade användare",
"friend_code_copied": "Vänkod kopierad",
"undo_friendship_modal_text": "Detta kommer att ta bort din vänskap med {{displayName}}",
"privacy_hint": "För att justera vem som kan se detta, gå till <0>Inställningar</0>",
"locked_profile": "Denna profil är privat",
"image_process_failure": "Fel vid bildbehandling",
"required_field": "Detta fält är obligatoriskt",
"displayname_min_length": "Visningsnamnet måste vara minst 3 tecken långt",
"displayname_max_length": "Visningsnamnet får vara högst 50 tecken långt",
"report_profile": "Anmäl denna profil",
"report_reason": "Varför anmäler du denna profil?",
"report_description": "Ytterligare information",
"report_description_placeholder": "Ytterligare information",
"report": "Anmäl",
"report_reason_hate": "Hatretorik",
"report_reason_sexual_content": "Sexuellt innehåll",
"report_reason_violence": "Våld",
"report_reason_spam": "Spam",
"report_reason_other": "Annat",
"profile_reported": "Profil anmäld",
"your_friend_code": "Din vänkod:",
"upload_banner": "Ladda upp banner",
"uploading_banner": "Laddar upp banner…",
"background_image_updated": "Bakgrundsbild uppdaterad",
"stats": "Statistik",
"achievements": "prestationer",
"games": "Spel",
"top_percentile": "Topp {{percentile}}%",
"ranking_updated_weekly": "Rankingen uppdateras varje vecka",
"playing": "Spelar {{game}}",
"achievements_unlocked": "Prestationer upplåsta",
"earned_points": "Intjänade poäng",
"show_achievements_on_profile": "Visa dina prestationer på profilen",
"show_points_on_profile": "Visa dina intjänade poäng på din profil"
},
"achievement": {
"achievement_unlocked": "Prestationer upplåst",
"user_achievements": "Prestationer för {{displayName}}",
"your_achievements": "Dina prestationer",
"unlocked_at": "Upplåst den: {{date}}",
"subscription_needed": "Ett Hydra Cloud-abonnemang krävs för att se detta innehåll",
"new_achievements_unlocked": "Upplåste {{achievementCount}} nya prestationer från {{gameCount}} spel",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} prestationer",
"achievements_unlocked_for_game": "Upplåste {{achievementCount}} nya prestationer för {{gameTitle}}",
"hidden_achievement_tooltip": "Detta är en dold prestation",
"achievement_earn_points": "Tjäna {{points}} poäng med denna prestation",
"earned_points": "Tjänade poäng:",
"available_points": "Tillgängliga poäng:",
"how_to_earn_achievements_points": "Hur tjänar man poäng på prestationer?"
},
"hydra_cloud": {
"subscription_tour_title": "Hydra Cloud-abonnemang",
"subscribe_now": "Prenumerera nu",
"cloud_saving": "Spara i molnet",
"cloud_achievements": "Spara dina prestationer i molnet",
"animated_profile_picture": "Animerade profilbilder",
"premium_support": "Premium-support",
"show_and_compare_achievements": "Visa och jämför dina prestationer med andra användare",
"animated_profile_banner": "Animerad profilbanner",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Du har just upptäckt en Hydra Cloud-funktion!",
"learn_more": "Läs mer",
"debrid_description": "Ladda ner upp till 4x snabbare med Nimbus"
}
}

View File

@@ -12,16 +12,14 @@ const openGameInstallerPath = async (
) => {
const download = await downloadsSublevel.get(levelKeys.game(shop, objectId));
if (!download || !download.folderName || !download.downloadPath) return true;
if (!download?.folderName || !download.downloadPath) return;
const gamePath = path.join(
download.downloadPath ?? (await getDownloadsPath()),
download.folderName!
download.folderName
);
shell.showItemInFolder(gamePath);
return true;
};
registerEvent("openGameInstallerPath", openGameInstallerPath);

View File

@@ -395,7 +395,16 @@ export class WindowManager {
this.notificationWindow?.webContents.send(
"on-achievement-unlocked",
userPreferences.achievementCustomNotificationPosition ?? "top-left",
[generateAchievementCustomNotificationTest(t, language)]
[
generateAchievementCustomNotificationTest(t, language),
generateAchievementCustomNotificationTest(t, language, {
isRare: true,
isHidden: true,
}),
generateAchievementCustomNotificationTest(t, language, {
isPlatinum: true,
}),
]
);
}
@@ -460,9 +469,8 @@ export class WindowManager {
}
});
editorWindow.webContents.on("before-input-event", (event, input) => {
editorWindow.webContents.on("before-input-event", (_event, input) => {
if (input.key === "F12") {
event.preventDefault();
this.mainWindow?.webContents.toggleDevTools();
}
});

View File

@@ -1,15 +1,25 @@
import type { FriendGameSession } from "@main/generated/envelope";
import { db, levelKeys } from "@main/level";
import { HydraApi } from "@main/services/hydra-api";
import { publishFriendStartedPlayingGameNotification } from "@main/services/notifications";
import { GameStats } from "@types";
import type { GameStats, UserPreferences, UserProfile } from "@types";
export const friendGameSessionEvent = async (payload: FriendGameSession) => {
const userPreferences = await db.get<string, UserPreferences | null>(
levelKeys.userPreferences,
{
valueEncoding: "json",
}
);
if (userPreferences?.friendStartGameNotificationsEnabled === false) return;
const [friend, gameStats] = await Promise.all([
HydraApi.get(`/users/${payload.friendId}`),
HydraApi.get<UserProfile>(`/users/${payload.friendId}`),
HydraApi.get<GameStats>(
`/games/stats?objectId=${payload.objectId}&shop=steam`
),
]);
]).catch(() => [null, null]);
if (friend && gameStats) {
publishFriendStartedPlayingGameNotification(friend, gameStats);

View File

@@ -31,7 +31,7 @@ export function AchievementNotificationItem({
[`${baseClassName}--platinum`]: achievement.isPlatinum,
})}
>
{achievement.points && (
{achievement.points !== undefined && (
<div className="achievement-notification__chip">
<HydraIcon className="achievement-notification__chip__icon" />
<span className="achievement-notification__chip__label">

View File

@@ -139,10 +139,7 @@ declare global {
verifyExecutablePathInUse: (executablePath: string) => Promise<Game>;
getLibrary: () => Promise<LibraryGame[]>;
openGameInstaller: (shop: GameShop, objectId: string) => Promise<boolean>;
openGameInstallerPath: (
shop: GameShop,
objectId: string
) => Promise<boolean>;
openGameInstallerPath: (shop: GameShop, objectId: string) => Promise<void>;
openGameExecutablePath: (shop: GameShop, objectId: string) => Promise<void>;
openGame: (
shop: GameShop,

View File

@@ -164,7 +164,7 @@ export function AchievementNotification() {
<style type="text/css">
{app} {styles}
</style>
<section ref={(ref) => setShadowRootRef(ref)}>
<section ref={setShadowRootRef}>
{isVisible && currentAchievement && (
<AchievementNotificationItem
achievement={currentAchievement}

View File

@@ -38,6 +38,7 @@ export function SettingsGeneral() {
downloadNotificationsEnabled: false,
repackUpdatesNotificationsEnabled: false,
friendRequestNotificationsEnabled: false,
friendStartGameNotificationsEnabled: true,
achievementNotificationsEnabled: true,
achievementCustomNotificationsEnabled: true,
achievementCustomNotificationPosition:
@@ -111,6 +112,8 @@ export function SettingsGeneral() {
userPreferences.achievementCustomNotificationPosition ?? "top-left",
friendRequestNotificationsEnabled:
userPreferences.friendRequestNotificationsEnabled ?? false,
friendStartGameNotificationsEnabled:
userPreferences.friendStartGameNotificationsEnabled ?? true,
language: language ?? "en",
}));
}
@@ -248,6 +251,17 @@ export function SettingsGeneral() {
}
/>
<CheckboxField
label={t("enable_friend_start_game_notifications")}
checked={form.friendStartGameNotificationsEnabled}
onChange={() =>
handleChange({
friendStartGameNotificationsEnabled:
!form.friendStartGameNotificationsEnabled,
})
}
/>
<CheckboxField
label={t("enable_achievement_notifications")}
checked={form.achievementNotificationsEnabled}

View File

@@ -11,6 +11,9 @@ import { injectCustomCss } from "@renderer/helpers";
import { AchievementNotificationItem } from "@renderer/components/achievements/notification/achievement-notification";
import { generateAchievementCustomNotificationTest } from "@shared";
import { CollapsedMenu } from "@renderer/components/collapsed-menu/collapsed-menu";
import app from "../../app.scss?inline";
import styles from "../../components/achievements/notification/achievement-notification.scss?inline";
import root from "react-shadow";
const notificationVariations = {
default: "default",
@@ -36,14 +39,15 @@ export default function ThemeEditor() {
const [notificationAlignment, setNotificationAlignment] =
useState<AchievementCustomNotificationPosition>("top-left");
const [shadowRootRef, setShadowRootRef] = useState<HTMLElement | null>(null);
const achievementPreview = useMemo(() => {
return {
achievement: {
...generateAchievementCustomNotificationTest(t, i18n.language),
achievement: generateAchievementCustomNotificationTest(t, i18n.language, {
isRare: notificationVariation === "rare",
isHidden: notificationVariation === "hidden",
isPlatinum: notificationVariation === "platinum",
},
}),
position: notificationAlignment,
};
}, [t, i18n.language, notificationVariation, notificationAlignment]);
@@ -58,10 +62,13 @@ export default function ThemeEditor() {
if (loadedTheme) {
setTheme(loadedTheme);
setCode(loadedTheme.code);
if (shadowRootRef) {
injectCustomCss(loadedTheme.code, shadowRootRef);
}
}
});
}
}, [themeId]);
}, [themeId, shadowRootRef]);
const handleSave = useCallback(async () => {
if (theme) {
@@ -69,11 +76,14 @@ export default function ThemeEditor() {
setHasUnsavedChanges(false);
setIsClosingNotifications(true);
setTimeout(() => {
injectCustomCss(code);
if (shadowRootRef) {
injectCustomCss(code, shadowRootRef);
}
setIsClosingNotifications(false);
}, 450);
}
}, [code, theme]);
}, [code, theme, shadowRootRef]);
useEffect(() => {
const handleKeyDown = (event: KeyboardEvent) => {
@@ -185,11 +195,18 @@ export default function ThemeEditor() {
/>
<div className="theme-editor__notification-preview-wrapper">
<AchievementNotificationItem
position={achievementPreview.position}
achievement={achievementPreview.achievement}
isClosing={isClosingNotifications}
/>
<root.div>
<style type="text/css">
{app} {styles}
</style>
<section ref={setShadowRootRef}>
<AchievementNotificationItem
position={achievementPreview.position}
achievement={achievementPreview.achievement}
isClosing={isClosingNotifications}
/>
</section>
</root.div>
</div>
</div>
</CollapsedMenu>

View File

@@ -179,7 +179,8 @@ export const formatDate = (
export const generateAchievementCustomNotificationTest = (
t: any,
language?: string
language?: string,
options: { isHidden?: boolean; isRare?: boolean; isPlatinum?: boolean } = {}
): AchievementNotificationInfo => {
return {
title: t("test_achievement_notification_title", {
@@ -192,8 +193,8 @@ export const generateAchievementCustomNotificationTest = (
}),
iconUrl: "https://cdn.losbroxas.org/favicon.svg",
points: 2440,
isHidden: false,
isRare: false,
isPlatinum: false,
isHidden: options.isHidden ?? false,
isRare: options.isRare ?? false,
isPlatinum: options.isPlatinum ?? false,
};
};

View File

@@ -97,6 +97,7 @@ export interface UserPreferences {
achievementCustomNotificationsEnabled?: boolean;
achievementCustomNotificationPosition?: AchievementCustomNotificationPosition;
friendRequestNotificationsEnabled?: boolean;
friendStartGameNotificationsEnabled?: boolean;
showDownloadSpeedInMegabytes?: boolean;
extractFilesByDefault?: boolean;
}