feat: using retry system to connect to aria2

This commit is contained in:
Chubby Granny Chaser 2024-05-29 21:50:35 +01:00
parent 85516c1744
commit ffb3d79954
No known key found for this signature in database
34 changed files with 243 additions and 317 deletions

View file

@ -4,7 +4,6 @@
"description": "Hydra", "description": "Hydra",
"main": "./out/main/index.js", "main": "./out/main/index.js",
"author": "Los Broxas", "author": "Los Broxas",
"homepage": "https://hydralauncher.site",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/hydralauncher/hydra.git" "url": "https://github.com/hydralauncher/hydra.git"

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "لا يوجد تنزيلات جارية", "no_downloads_in_progress": "لا يوجد تنزيلات جارية",
"downloading_metadata": "جارٍ تنزيل بيانات وصف {{title}}", "downloading_metadata": "جارٍ تنزيل بيانات وصف {{title}}",
"checking_files": "جارٍ التحقق من ملفات {{title}}… ({{percentage}} مكتملة)",
"downloading": "جارٍ تنزيل {{title}}… ({{percentage}} مكتملة) - الانتهاء {{eta}} - {{speed}}" "downloading": "جارٍ تنزيل {{title}}… ({{percentage}} مكتملة) - الانتهاء {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} متبقية على القرص", "space_left_on_disk": "{{space}} متبقية على القرص",
"eta": "الوقت المتبقي {{eta}}", "eta": "الوقت المتبقي {{eta}}",
"downloading_metadata": "جاري تنزيل البيانات الوصفية...", "downloading_metadata": "جاري تنزيل البيانات الوصفية...",
"checking_files": "جاري التحقق من الملفات...",
"filter": "تصفية حزم إعادة التجميع", "filter": "تصفية حزم إعادة التجميع",
"requirements": "متطلبات النظام", "requirements": "متطلبات النظام",
"minimum": "الحد الأدنى", "minimum": "الحد الأدنى",
"recommended": "موصى به", "recommended": "موصى به",
"no_minimum_requirements": "{{title}} لا تتوفر معلومات عن الحد الأدنى للمتطلبات", "no_minimum_requirements": "{{title}} لا تتوفر معلومات عن الحد الأدنى للمتطلبات",
"no_recommended_requirements": "{{title}} لا تتوفر معلومات عن المتطلبات الموصى بها", "no_recommended_requirements": "{{title}} لا تتوفر معلومات عن المتطلبات الموصى بها",
"paused_progress": "{{progress}} (متوقف)",
"release_date": "تم الإصدار في {{date}}", "release_date": "تم الإصدار في {{date}}",
"publisher": "نشر بواسطة {{publisher}}", "publisher": "نشر بواسطة {{publisher}}",
"copy_link_to_clipboard": "نسخ الرابط", "copy_link_to_clipboard": "نسخ الرابط",
@ -120,22 +117,18 @@
"verifying": "جار التحقق…", "verifying": "جار التحقق…",
"completed_at": "اكتمل في {{date}}", "completed_at": "اكتمل في {{date}}",
"completed": "اكتمل", "completed": "اكتمل",
"cancelled": "ملغي",
"download_again": "تحميل مرة أخرى", "download_again": "تحميل مرة أخرى",
"cancel": "إلغاء", "cancel": "إلغاء",
"filter": "تصفية الألعاب التي تم تنزيلها", "filter": "تصفية الألعاب التي تم تنزيلها",
"remove": "إزالة", "remove": "إزالة",
"downloading_metadata": "جار تنزيل البيانات الوصفية…", "downloading_metadata": "جار تنزيل البيانات الوصفية…",
"checking_files": "جار التحقق من الملفات…",
"starting_download": "يبدأ التنزيل…", "starting_download": "يبدأ التنزيل…",
"deleting": "جار حذف المثبت…", "deleting": "جار حذف المثبت…",
"delete": "إزالة المثبت", "delete": "إزالة المثبت",
"remove_from_list": "إزالة", "remove_from_list": "إزالة",
"delete_modal_title": "هل أنت متأكد؟", "delete_modal_title": "هل أنت متأكد؟",
"delete_modal_description": "سيؤدي هذا إلى إزالة جميع ملفات التثبيت من جهاز الكمبيوتر الخاص بك", "delete_modal_description": "سيؤدي هذا إلى إزالة جميع ملفات التثبيت من جهاز الكمبيوتر الخاص بك",
"install": "تثبيت", "install": "تثبيت"
"real_debrid": "Real-Debrid",
"torrent": "تورنت"
}, },
"settings": { "settings": {
"downloads_path": "مسار التنزيلات", "downloads_path": "مسار التنزيلات",
@ -151,8 +144,7 @@
"general": "عام", "general": "عام",
"behavior": "السلوك", "behavior": "السلوك",
"enable_real_debrid": "تفعيل Real-Debrid ", "enable_real_debrid": "تفعيل Real-Debrid ",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "يمكنك الحصول على مفتاح API الخاص بك هنا",
"real_debrid_api_token_hint": "يمكنك الحصول على مفتاح API الخاص بك هنا.",
"save_changes": "حفظ التغييرات" "save_changes": "حفظ التغييرات"
}, },
"notifications": { "notifications": {

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Няма актыўных сцягванняў", "no_downloads_in_progress": "Няма актыўных сцягванняў",
"downloading_metadata": "Сцягванне мэтаданых {{title}}…", "downloading_metadata": "Сцягванне мэтаданых {{title}}…",
"checking_files": "Праверка файлаў {{title}}… ({{percentage}} скончана)",
"downloading": "Сцягванне {{title}}… ({{percentage}} скончана) - Канчатак {{eta}} - {{speed}}" "downloading": "Сцягванне {{title}}… ({{percentage}} скончана) - Канчатак {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} засталося на дыску", "space_left_on_disk": "{{space}} засталося на дыску",
"eta": "Канчатак {{eta}}", "eta": "Канчатак {{eta}}",
"downloading_metadata": "Сцягванне мэтаданых…", "downloading_metadata": "Сцягванне мэтаданых…",
"checking_files": "Праверка файлаў…",
"filter": "Фільтар рэпакаў", "filter": "Фільтар рэпакаў",
"requirements": "Сістэмныя патрэбаванни", "requirements": "Сістэмныя патрэбаванни",
"minimum": "Мінімальныя", "minimum": "Мінімальныя",
"recommended": "Рэкамендуемыя", "recommended": "Рэкамендуемыя",
"no_minimum_requirements": "{{title}} ня ўтрымлівае інфармацыі пра мінімальныя патрабаванні", "no_minimum_requirements": "{{title}} ня ўтрымлівае інфармацыі пра мінімальныя патрабаванні",
"no_recommended_requirements": "{{title}} ня ўтрымлівае інфармацыі пра рэкамендуемыя патрабаванні", "no_recommended_requirements": "{{title}} ня ўтрымлівае інфармацыі пра рэкамендуемыя патрабаванні",
"paused_progress": "{{progress}} (Спынена)",
"release_date": "Выпушчана {{date}}", "release_date": "Выпушчана {{date}}",
"publisher": "Выдана {{publisher}}", "publisher": "Выдана {{publisher}}",
"copy_link_to_clipboard": "Скапіяваць спасылку", "copy_link_to_clipboard": "Скапіяваць спасылку",
@ -86,7 +83,6 @@
"playing_now": "Зараз гуляе", "playing_now": "Зараз гуляе",
"change": "Змяніць", "change": "Змяніць",
"repacks_modal_description": "Абярыце рэпак, які хочаце сцягнуць", "repacks_modal_description": "Абярыце рэпак, які хочаце сцягнуць",
"downloads_path": "Шлях сцягвання",
"select_folder_hint": "Каб змяніць папку па змоўчанні, адкрыйце", "select_folder_hint": "Каб змяніць папку па змоўчанні, адкрыйце",
"download_now": "Сцягнуць зараз", "download_now": "Сцягнуць зараз",
"installation_instructions": "Інструкцыя ўсталёўкі", "installation_instructions": "Інструкцыя ўсталёўкі",
@ -114,13 +110,11 @@
"verifying": "Праверка…", "verifying": "Праверка…",
"completed_at": "Скончана а {{date}}", "completed_at": "Скончана а {{date}}",
"completed": "Скончана", "completed": "Скончана",
"cancelled": "Скасавана",
"download_again": "Сцягнуць зноў", "download_again": "Сцягнуць зноў",
"cancel": "Скасаваць", "cancel": "Скасаваць",
"filter": "Фільтар сцягнутых гульняў", "filter": "Фільтар сцягнутых гульняў",
"remove": "Выдаліць", "remove": "Выдаліць",
"downloading_metadata": "Сцягванне мэтаданых…", "downloading_metadata": "Сцягванне мэтаданых…",
"checking_files": "Праверка файлаў…",
"starting_download": "Пачатак сцягвання…", "starting_download": "Пачатак сцягвання…",
"deleting": "Выдаленне ўсталёўшчыка…", "deleting": "Выдаленне ўсталёўшчыка…",
"delete": "Выдаліць усталёўшчык", "delete": "Выдаліць усталёўшчык",

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Ingen downloads igang", "no_downloads_in_progress": "Ingen downloads igang",
"downloading_metadata": "Downloader {{title}} metadata…", "downloading_metadata": "Downloader {{title}} metadata…",
"checking_files": "Tjekker {{title}} filer… ({{percentage}} færdig)",
"downloading": "Downloader {{title}}… ({{percentage}} færdig) - Konklusion {{eta}} - {{speed}}" "downloading": "Downloader {{title}}… ({{percentage}} færdig) - Konklusion {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} tilbage på harddisken", "space_left_on_disk": "{{space}} tilbage på harddisken",
"eta": "Konklusion {{eta}}", "eta": "Konklusion {{eta}}",
"downloading_metadata": "Downloader metadata…", "downloading_metadata": "Downloader metadata…",
"checking_files": "Tjekker filer…",
"filter": "Filtrer repacks", "filter": "Filtrer repacks",
"requirements": "System behov", "requirements": "System behov",
"minimum": "Mindste", "minimum": "Mindste",
"recommended": "Anbefalet", "recommended": "Anbefalet",
"no_minimum_requirements": "{{title}} angiver ikke mindste behov informationer", "no_minimum_requirements": "{{title}} angiver ikke mindste behov informationer",
"no_recommended_requirements": "{{title}} angiver ikke anbefalet behov informationer", "no_recommended_requirements": "{{title}} angiver ikke anbefalet behov informationer",
"paused_progress": "{{progress}} (Pauset)",
"release_date": "Offentliggjort den {{date}}", "release_date": "Offentliggjort den {{date}}",
"publisher": "Udgivet af {{publisher}}", "publisher": "Udgivet af {{publisher}}",
"copy_link_to_clipboard": "Kopier link", "copy_link_to_clipboard": "Kopier link",
@ -86,7 +83,6 @@
"playing_now": "Spiller nu", "playing_now": "Spiller nu",
"change": "Ændré", "change": "Ændré",
"repacks_modal_description": "Vælg den repack du vil downloade", "repacks_modal_description": "Vælg den repack du vil downloade",
"downloads_path": "Downloads sti",
"select_folder_hint": "For at ændre standard mappen, gå til <0>Instillingerne</0>", "select_folder_hint": "For at ændre standard mappen, gå til <0>Instillingerne</0>",
"download_now": "Download nu", "download_now": "Download nu",
"installation_instructions": "Installations Instrukser", "installation_instructions": "Installations Instrukser",
@ -114,22 +110,18 @@
"verifying": "Verificerer…", "verifying": "Verificerer…",
"completed_at": "Færdiggjort på {{date}}", "completed_at": "Færdiggjort på {{date}}",
"completed": "Færdigt", "completed": "Færdigt",
"cancelled": "Annulleret",
"download_again": "Download igen", "download_again": "Download igen",
"cancel": "Annullér", "cancel": "Annullér",
"filter": "Filtrer downloadet spil", "filter": "Filtrer downloadet spil",
"remove": "Fjern", "remove": "Fjern",
"downloading_metadata": "Downloader metadata…", "downloading_metadata": "Downloader metadata…",
"checking_files": "Tjekker filer…",
"starting_download": "Starter download…", "starting_download": "Starter download…",
"deleting": "Sletter installatør…", "deleting": "Sletter installatør…",
"delete": "Fjern installatør", "delete": "Fjern installatør",
"remove_from_list": "Fjern", "remove_from_list": "Fjern",
"delete_modal_title": "Er du sikker?", "delete_modal_title": "Er du sikker?",
"delete_modal_description": "Dette vil fjerne alle installations filerne fra din computer", "delete_modal_description": "Dette vil fjerne alle installations filerne fra din computer",
"install": "Installér", "install": "Installér"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Downloads sti", "downloads_path": "Downloads sti",
@ -139,14 +131,12 @@
"enable_repack_list_notifications": "Når en ny repack bliver tilføjet", "enable_repack_list_notifications": "Når en ny repack bliver tilføjet",
"telemetry": "Telemetri", "telemetry": "Telemetri",
"telemetry_description": "Slå anonymt brugs statistik til", "telemetry_description": "Slå anonymt brugs statistik til",
"real_debrid_api_token_description": "Real-Debrid API token",
"quit_app_instead_hiding": "Afslut Hydra instedet for at minimere til processlinjen", "quit_app_instead_hiding": "Afslut Hydra instedet for at minimere til processlinjen",
"launch_with_system": "Åben Hydra ved start af systemet", "launch_with_system": "Åben Hydra ved start af systemet",
"general": "Generelt", "general": "Generelt",
"behavior": "Opførsel", "behavior": "Opførsel",
"enable_real_debrid": "Slå Real-Debrid til", "enable_real_debrid": "Slå Real-Debrid til",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "Du kan få din API nøgle <0>her</0>",
"real_debrid_api_token_hint": "Du kan få din API nøgle <0>her</0>.",
"save_changes": "Gem ændringer" "save_changes": "Gem ændringer"
}, },
"notifications": { "notifications": {

View file

@ -121,7 +121,7 @@
"verifying": "Verifying…", "verifying": "Verifying…",
"completed_at": "Completed in {{date}}", "completed_at": "Completed in {{date}}",
"completed": "Completed", "completed": "Completed",
"removed": "Removed", "removed": "Cancelled",
"download_again": "Download again", "download_again": "Download again",
"cancel": "Cancel", "cancel": "Cancel",
"filter": "Filter downloaded games", "filter": "Filter downloaded games",
@ -133,9 +133,7 @@
"remove_from_list": "Remove", "remove_from_list": "Remove",
"delete_modal_title": "Are you sure?", "delete_modal_title": "Are you sure?",
"delete_modal_description": "This will remove all the installation files from your computer", "delete_modal_description": "This will remove all the installation files from your computer",
"install": "Install", "install": "Install"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Downloads path", "downloads_path": "Downloads path",
@ -150,11 +148,13 @@
"launch_with_system": "Launch Hydra on system start-up", "launch_with_system": "Launch Hydra on system start-up",
"general": "General", "general": "General",
"behavior": "Behavior", "behavior": "Behavior",
"real_debrid_api_token": "API Token",
"enable_real_debrid": "Enable Real-Debrid", "enable_real_debrid": "Enable Real-Debrid",
"real_debrid": "Real-Debrid",
"real_debrid_description": "Real-Debrid is an unrestricted downloader that allows you to download files instantly and at the best of your Internet speed.", "real_debrid_description": "Real-Debrid is an unrestricted downloader that allows you to download files instantly and at the best of your Internet speed.",
"real_debrid_api_token_hint": "You can get your API token <0>here</0>.", "real_debrid_invalid_token": "Invalid API token",
"real_debrid_free_account": "The account \"{{username}}\" is a free account. Please subscribe to Real-Debrid.", "real_debrid_api_token_hint": "You can get your API token <0>here</0>",
"real_debrid_free_account_error": "The account \"{{username}}\" is a free account. Please subscribe to Real-Debrid",
"real_debrid_linked_message": "Account \"{{username}}\" linked",
"save_changes": "Save changes" "save_changes": "Save changes"
}, },
"notifications": { "notifications": {

View file

@ -35,7 +35,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Sin descargas en progreso", "no_downloads_in_progress": "Sin descargas en progreso",
"downloading_metadata": "Descargando metadatos de {{title}}…", "downloading_metadata": "Descargando metadatos de {{title}}…",
"checking_files": "Analizando archivos de {{title}} - ({{percentage}} completado)",
"downloading": "Descargando {{title}}… ({{percentage}} completado) - Finalizando {{eta}} - {{speed}}" "downloading": "Descargando {{title}}… ({{percentage}} completado) - Finalizando {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -57,14 +56,12 @@
"space_left_on_disk": "{{space}} restantes en el disco", "space_left_on_disk": "{{space}} restantes en el disco",
"eta": "Tiempo restante: {{eta}}", "eta": "Tiempo restante: {{eta}}",
"downloading_metadata": "Descargando metadatos…", "downloading_metadata": "Descargando metadatos…",
"checking_files": "Analizando archivos…",
"filter": "Buscar repacks", "filter": "Buscar repacks",
"requirements": "Requisitos del Sistema", "requirements": "Requisitos del Sistema",
"minimum": "Mínimos", "minimum": "Mínimos",
"recommended": "Recomendados", "recommended": "Recomendados",
"no_minimum_requirements": "Sin requisitos mínimos para {{title}}", "no_minimum_requirements": "Sin requisitos mínimos para {{title}}",
"no_recommended_requirements": "{{title}} no tiene requisitos recomendados", "no_recommended_requirements": "{{title}} no tiene requisitos recomendados",
"paused_progress": "{{progress}} (Pausado)",
"release_date": "Fecha de lanzamiento: {{date}}", "release_date": "Fecha de lanzamiento: {{date}}",
"publisher": "Publicado por: {{publisher}}", "publisher": "Publicado por: {{publisher}}",
"copy_link_to_clipboard": "Copiar enlace", "copy_link_to_clipboard": "Copiar enlace",
@ -121,22 +118,18 @@
"verifying": "Verificando…", "verifying": "Verificando…",
"completed_at": "Completado el {{date}}", "completed_at": "Completado el {{date}}",
"completed": "Completado", "completed": "Completado",
"cancelled": "Cancelado",
"download_again": "Descargar de nuevo", "download_again": "Descargar de nuevo",
"cancel": "Cancelar", "cancel": "Cancelar",
"filter": "Buscar juegos descargados", "filter": "Buscar juegos descargados",
"remove": "Eliminar", "remove": "Eliminar",
"downloading_metadata": "Descargando metadatos…", "downloading_metadata": "Descargando metadatos…",
"checking_files": "Verificando archivos…",
"starting_download": "Iniciando descarga…", "starting_download": "Iniciando descarga…",
"deleting": "Eliminando instalador…", "deleting": "Eliminando instalador…",
"delete": "Eliminar instalador", "delete": "Eliminar instalador",
"remove_from_list": "Eliminar", "remove_from_list": "Eliminar",
"delete_modal_title": "¿Estás seguro?", "delete_modal_title": "¿Estás seguro?",
"delete_modal_description": "Esto eliminará todos los archivos de instalación de tu computadora.", "delete_modal_description": "Esto eliminará todos los archivos de instalación de tu computadora.",
"install": "Instalar", "install": "Instalar"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Ruta de descarga", "downloads_path": "Ruta de descarga",
@ -152,8 +145,7 @@
"general": "General", "general": "General",
"behavior": "Otros", "behavior": "Otros",
"enable_real_debrid": "Activar Real-Debrid", "enable_real_debrid": "Activar Real-Debrid",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "Puedes obtener tu clave de API <0>aquí</0>",
"real_debrid_api_token_hint": "Puedes obtener tu clave de API <0>aquí</0>.",
"save_changes": "Guardar cambios" "save_changes": "Guardar cambios"
}, },
"notifications": { "notifications": {

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "دانلودی در حال انجام نیست", "no_downloads_in_progress": "دانلودی در حال انجام نیست",
"downloading_metadata": "درحال دانلود متادیتاهای {{title}}…", "downloading_metadata": "درحال دانلود متادیتاهای {{title}}…",
"checking_files": "در حال چک کردن فایل‌های {{title}}…. ({{percentage}} تکمیل شده)",
"downloading": "در حال دانلود {{title}}… ({{percentage}} تکمیل شده) - اتمام {{eta}} - {{speed}}" "downloading": "در حال دانلود {{title}}… ({{percentage}} تکمیل شده) - اتمام {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} فضا در دیسک باقی‌مانده", "space_left_on_disk": "{{space}} فضا در دیسک باقی‌مانده",
"eta": "اتمام {{eta}}", "eta": "اتمام {{eta}}",
"downloading_metadata": "در حال دانلود متادیتاها…", "downloading_metadata": "در حال دانلود متادیتاها…",
"checking_files": "در حال چک کردن فایل‌ها",
"filter": "فیلترکردن ریپک‌ها", "filter": "فیلترکردن ریپک‌ها",
"requirements": "سیستم مورد نیاز", "requirements": "سیستم مورد نیاز",
"minimum": "حداقل", "minimum": "حداقل",
"recommended": "پیشنهادی", "recommended": "پیشنهادی",
"no_minimum_requirements": "{{title}} اطلاعات حداقل سیستم مورد نیاز را فراهم نکرده", "no_minimum_requirements": "{{title}} اطلاعات حداقل سیستم مورد نیاز را فراهم نکرده",
"no_recommended_requirements": "{{title}} اطلاعات پیشنهادی سیستم مورد نیاز را فراهم نکرده", "no_recommended_requirements": "{{title}} اطلاعات پیشنهادی سیستم مورد نیاز را فراهم نکرده",
"paused_progress": "{{progress}} (متوقف شده)",
"release_date": "منتشر شده در {{date}}", "release_date": "منتشر شده در {{date}}",
"publisher": "منتشر شده توسط {{publisher}}", "publisher": "منتشر شده توسط {{publisher}}",
"copy_link_to_clipboard": "کپی لینک", "copy_link_to_clipboard": "کپی لینک",
@ -86,7 +83,6 @@
"playing_now": "در حال بازی", "playing_now": "در حال بازی",
"change": "تغییر", "change": "تغییر",
"repacks_modal_description": "ریپک مورد نظر برای دانلود را انتخاب کنید", "repacks_modal_description": "ریپک مورد نظر برای دانلود را انتخاب کنید",
"downloads_path": "آدرس دانلودها",
"select_folder_hint": "برای تغییر پوشه‌ی پیش‌فرض به <0>Settings</0> بروید", "select_folder_hint": "برای تغییر پوشه‌ی پیش‌فرض به <0>Settings</0> بروید",
"download_now": "الان دانلود کن", "download_now": "الان دانلود کن",
"installation_instructions": "دستورات نصب", "installation_instructions": "دستورات نصب",
@ -114,22 +110,18 @@
"verifying": "در حال اعتبارسنجی…", "verifying": "در حال اعتبارسنجی…",
"completed_at": "پایان یافته در {{date}}", "completed_at": "پایان یافته در {{date}}",
"completed": "پایان یافته", "completed": "پایان یافته",
"cancelled": "لغو شده",
"download_again": "دانلود مجدد", "download_again": "دانلود مجدد",
"cancel": "لغو", "cancel": "لغو",
"filter": "فیلتر بازی‌های دانلود شده", "filter": "فیلتر بازی‌های دانلود شده",
"remove": "حذف", "remove": "حذف",
"downloading_metadata": "در حال دانلود متادیتاها…", "downloading_metadata": "در حال دانلود متادیتاها…",
"checking_files": "در حال چک کردن فایل‌ها…",
"starting_download": "در حال آغار دانلود…", "starting_download": "در حال آغار دانلود…",
"deleting": "در حال پاک کردن اینستالر…", "deleting": "در حال پاک کردن اینستالر…",
"delete": "پاک کردن", "delete": "پاک کردن",
"remove_from_list": "حذف", "remove_from_list": "حذف",
"delete_modal_title": "مطمئنی؟", "delete_modal_title": "مطمئنی؟",
"delete_modal_description": "این کار تمام فایل‌های اینستالر را از کامپیوتر شما حذف می‌کند", "delete_modal_description": "این کار تمام فایل‌های اینستالر را از کامپیوتر شما حذف می‌کند",
"install": "نصف", "install": "نصف"
"real_debrid": "Real-Debrid",
"torrent": "تورنت"
}, },
"settings": { "settings": {
"downloads_path": "مسیر دانلودها", "downloads_path": "مسیر دانلودها",
@ -139,13 +131,11 @@
"enable_repack_list_notifications": "زمانی که یک ریپک جدید اضافه شد", "enable_repack_list_notifications": "زمانی که یک ریپک جدید اضافه شد",
"telemetry": "تلمتری", "telemetry": "تلمتری",
"telemetry_description": "فعال کردن آمارگیری استفاده ناشناس", "telemetry_description": "فعال کردن آمارگیری استفاده ناشناس",
"real_debrid_api_token_description": "توکن Real-Debrid",
"quit_app_instead_hiding": "به جای کوچک کردن، از هایدرا خارج شو", "quit_app_instead_hiding": "به جای کوچک کردن، از هایدرا خارج شو",
"launch_with_system": "زمانی که سیستم روشن می‌شود، هایدرا را باز کن", "launch_with_system": "زمانی که سیستم روشن می‌شود، هایدرا را باز کن",
"general": "کلی", "general": "کلی",
"behavior": "رفتار", "behavior": "رفتار",
"enable_real_debrid": "فعال‌سازی Real-Debrid", "enable_real_debrid": "فعال‌سازی Real-Debrid",
"real_debrid": "Real-Debrid",
"real_debrid_api_token_hint": "کلید API خود را از <ب0>اینجا</0> بگیرید.", "real_debrid_api_token_hint": "کلید API خود را از <ب0>اینجا</0> بگیرید.",
"save_changes": "ذخیره تغییرات" "save_changes": "ذخیره تغییرات"
}, },

View file

@ -30,7 +30,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Aucun téléchargement en cours", "no_downloads_in_progress": "Aucun téléchargement en cours",
"downloading_metadata": "Téléchargement des métadonnées de {{title}}…", "downloading_metadata": "Téléchargement des métadonnées de {{title}}…",
"checking_files": "Vérification des fichiers de {{title}}… ({{percentage}} terminé)",
"downloading": "Téléchargement de {{title}}… ({{percentage}} terminé) - Fin dans {{eta}} - {{speed}}" "downloading": "Téléchargement de {{title}}… ({{percentage}} terminé) - Fin dans {{eta}} - {{speed}}"
}, },
"game_details": { "game_details": {
@ -47,14 +46,12 @@
"space_left_on_disk": "{{space}} restant sur le disque", "space_left_on_disk": "{{space}} restant sur le disque",
"eta": "Fin dans {{eta}}", "eta": "Fin dans {{eta}}",
"downloading_metadata": "Téléchargement des métadonnées en cours…", "downloading_metadata": "Téléchargement des métadonnées en cours…",
"checking_files": "Vérification des fichiers…",
"filter": "Filtrer les repacks", "filter": "Filtrer les repacks",
"requirements": "Configuration requise", "requirements": "Configuration requise",
"minimum": "Minimum", "minimum": "Minimum",
"recommended": "Recommandée", "recommended": "Recommandée",
"no_minimum_requirements": "{{title}} ne fournit pas d'informations sur les configurations minimales", "no_minimum_requirements": "{{title}} ne fournit pas d'informations sur les configurations minimales",
"no_recommended_requirements": "{{title}} ne fournit pas d'informations sur les configurations recommandées", "no_recommended_requirements": "{{title}} ne fournit pas d'informations sur les configurations recommandées",
"paused_progress": "{{progress}} (En pause)",
"release_date": "Sorti le {{date}}", "release_date": "Sorti le {{date}}",
"publisher": "Édité par {{publisher}}", "publisher": "Édité par {{publisher}}",
"copy_link_to_clipboard": "Copier le lien", "copy_link_to_clipboard": "Copier le lien",
@ -93,13 +90,11 @@
"verifying": "Vérification en cours…", "verifying": "Vérification en cours…",
"completed_at": "Terminé en {{date}}", "completed_at": "Terminé en {{date}}",
"completed": "Terminé", "completed": "Terminé",
"cancelled": "Annulé",
"download_again": "Télécharger à nouveau", "download_again": "Télécharger à nouveau",
"cancel": "Annuler", "cancel": "Annuler",
"filter": "Filtrer les jeux téléchargés", "filter": "Filtrer les jeux téléchargés",
"remove": "Supprimer", "remove": "Supprimer",
"downloading_metadata": "Téléchargement des métadonnées en cours…", "downloading_metadata": "Téléchargement des métadonnées en cours…",
"checking_files": "Vérification des fichiers…",
"starting_download": "Démarrage du téléchargement…", "starting_download": "Démarrage du téléchargement…",
"remove_from_list": "Retirer", "remove_from_list": "Retirer",
"delete": "Supprimer le programme d'installation", "delete": "Supprimer le programme d'installation",

View file

@ -30,7 +30,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Nincsenek folyamatban lévő letöltések", "no_downloads_in_progress": "Nincsenek folyamatban lévő letöltések",
"downloading_metadata": "{{title}} metaadatainak letöltése…", "downloading_metadata": "{{title}} metaadatainak letöltése…",
"checking_files": "{{title}} fájlok ellenőrzése… ({{percentage}} kész)",
"downloading": "{{title}} letöltése… ({{percentage}} kész) - Befejezés {{eta}} - {{speed}}" "downloading": "{{title}} letöltése… ({{percentage}} kész) - Befejezés {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -52,14 +51,12 @@
"space_left_on_disk": "{{space}} szabad hely a lemezen", "space_left_on_disk": "{{space}} szabad hely a lemezen",
"eta": "Befejezés {{eta}}", "eta": "Befejezés {{eta}}",
"downloading_metadata": "Metaadatok letöltése…", "downloading_metadata": "Metaadatok letöltése…",
"checking_files": "Fájlok ellenőrzése…",
"filter": "Repackek szűrése", "filter": "Repackek szűrése",
"requirements": "Rendszerkövetelmények", "requirements": "Rendszerkövetelmények",
"minimum": "Minimális", "minimum": "Minimális",
"recommended": "Ajánlott", "recommended": "Ajánlott",
"no_minimum_requirements": "{{title}} nem tartalmaz információt a minimális követelményekről", "no_minimum_requirements": "{{title}} nem tartalmaz információt a minimális követelményekről",
"no_recommended_requirements": "{{title}} nem tartalmaz információt az ajánlott követelményekről", "no_recommended_requirements": "{{title}} nem tartalmaz információt az ajánlott követelményekről",
"paused_progress": "{{progress}} (Szünetel)",
"release_date": "Megjelenés: {{date}}", "release_date": "Megjelenés: {{date}}",
"publisher": "Kiadta: {{publisher}}", "publisher": "Kiadta: {{publisher}}",
"copy_link_to_clipboard": "Link másolása", "copy_link_to_clipboard": "Link másolása",
@ -82,7 +79,6 @@
"playing_now": "Jelenleg játszva", "playing_now": "Jelenleg játszva",
"change": "Változtatás", "change": "Változtatás",
"repacks_modal_description": "Choose the repack you want to download", "repacks_modal_description": "Choose the repack you want to download",
"downloads_path": "Letöltések helye",
"select_folder_hint": "Ahhoz, hogy megváltoztasd a helyet, hozzákell férned a", "select_folder_hint": "Ahhoz, hogy megváltoztasd a helyet, hozzákell férned a",
"download_now": "Töltsd le most" "download_now": "Töltsd le most"
}, },
@ -102,13 +98,11 @@
"verifying": "Ellenőrzés…", "verifying": "Ellenőrzés…",
"completed_at": "Befejezve {{date}}-kor", "completed_at": "Befejezve {{date}}-kor",
"completed": "Befejezve", "completed": "Befejezve",
"cancelled": "Megszakítva",
"download_again": "Újra letöltés", "download_again": "Újra letöltés",
"cancel": "Mégse", "cancel": "Mégse",
"filter": "Letöltött játékok szűrése", "filter": "Letöltött játékok szűrése",
"remove": "Eltávolítás", "remove": "Eltávolítás",
"downloading_metadata": "Metaadatok letöltése…", "downloading_metadata": "Metaadatok letöltése…",
"checking_files": "Fájlok ellenőrzése…",
"starting_download": "Letöltés indítása…", "starting_download": "Letöltés indítása…",
"deleting": "Telepítő törlése…", "deleting": "Telepítő törlése…",
"delete": "Telepítő eltávolítása", "delete": "Telepítő eltávolítása",

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Tidak ada unduhan berjalan", "no_downloads_in_progress": "Tidak ada unduhan berjalan",
"downloading_metadata": "Mengunduh metadata {{title}}...", "downloading_metadata": "Mengunduh metadata {{title}}...",
"checking_files": "Memeriksa file {{title}}… ({{percentage}} selesai)",
"downloading": "Mengunduh {{title}}… ({{percentage}} selesai) - Perkiraan {{eta}} - {{speed}}" "downloading": "Mengunduh {{title}}… ({{percentage}} selesai) - Perkiraan {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} tersisa pada disk", "space_left_on_disk": "{{space}} tersisa pada disk",
"eta": "Perkiraan {{eta}}", "eta": "Perkiraan {{eta}}",
"downloading_metadata": "Mengunduh metadata…", "downloading_metadata": "Mengunduh metadata…",
"checking_files": "Memeriksa file…",
"filter": "Saring repacks", "filter": "Saring repacks",
"requirements": "Keperluan sistem", "requirements": "Keperluan sistem",
"minimum": "Minimum", "minimum": "Minimum",
"recommended": "Rekomendasi", "recommended": "Rekomendasi",
"no_minimum_requirements": "{{title}} Tidak ada informasi kebutuhan sistem", "no_minimum_requirements": "{{title}} Tidak ada informasi kebutuhan sistem",
"no_recommended_requirements": "{{title}} Tidak ada informasi rekomendasi kebutuhan sistem", "no_recommended_requirements": "{{title}} Tidak ada informasi rekomendasi kebutuhan sistem",
"paused_progress": "{{progress}} (Terhenti)",
"release_date": "Dirilis pada {{date}}", "release_date": "Dirilis pada {{date}}",
"publisher": "Dipublikasikan oleh {{publisher}}", "publisher": "Dipublikasikan oleh {{publisher}}",
"copy_link_to_clipboard": "Salin tautan", "copy_link_to_clipboard": "Salin tautan",
@ -86,7 +83,6 @@
"playing_now": "Memainkan sekarang", "playing_now": "Memainkan sekarang",
"change": "Ubah", "change": "Ubah",
"repacks_modal_description": "Pilih repack yang kamu ingin unduh", "repacks_modal_description": "Pilih repack yang kamu ingin unduh",
"downloads_path": "Lokasi Unduhan",
"select_folder_hint": "Untuk merubah folder bawaan, akses melalui", "select_folder_hint": "Untuk merubah folder bawaan, akses melalui",
"download_now": "Unduh sekarang", "download_now": "Unduh sekarang",
"installation_instructions": "Instruksi Instalasi", "installation_instructions": "Instruksi Instalasi",
@ -114,13 +110,11 @@
"verifying": "Memeriksa…", "verifying": "Memeriksa…",
"completed_at": "Selesai pada {{date}}", "completed_at": "Selesai pada {{date}}",
"completed": "Selesai", "completed": "Selesai",
"cancelled": "Dibatalkan",
"download_again": "Unduh lagi", "download_again": "Unduh lagi",
"cancel": "Batalkan", "cancel": "Batalkan",
"filter": "Saring game yang diunduh", "filter": "Saring game yang diunduh",
"remove": "Hapus", "remove": "Hapus",
"downloading_metadata": "Mengunduh metadata…", "downloading_metadata": "Mengunduh metadata…",
"checking_files": "Memeriksa file…",
"starting_download": "Memulai unduhan…", "starting_download": "Memulai unduhan…",
"deleting": "Menghapus file instalasi…", "deleting": "Menghapus file instalasi…",
"delete": "Hapus file instalasi", "delete": "Hapus file instalasi",

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Nessun download in corso", "no_downloads_in_progress": "Nessun download in corso",
"downloading_metadata": "Scaricamento metadati di {{title}}…", "downloading_metadata": "Scaricamento metadati di {{title}}…",
"checking_files": "Verifica file di {{title}}… ({{percentage}} completato)",
"downloading": "Download di {{title}}… ({{percentage}} completato) - Conclusione {{eta}} - {{speed}}" "downloading": "Download di {{title}}… ({{percentage}} completato) - Conclusione {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} rimasto sul disco", "space_left_on_disk": "{{space}} rimasto sul disco",
"eta": "Conclusione {{eta}}", "eta": "Conclusione {{eta}}",
"downloading_metadata": "Scaricamento metadati…", "downloading_metadata": "Scaricamento metadati…",
"checking_files": "Verifica file…",
"filter": "Filtra repack", "filter": "Filtra repack",
"requirements": "Requisiti di sistema", "requirements": "Requisiti di sistema",
"minimum": "Minimi", "minimum": "Minimi",
"recommended": "Consigliati", "recommended": "Consigliati",
"no_minimum_requirements": "{{title}} non fornisce informazioni sui requisiti minimi", "no_minimum_requirements": "{{title}} non fornisce informazioni sui requisiti minimi",
"no_recommended_requirements": "{{title}} non fornisce informazioni sui requisiti consigliati", "no_recommended_requirements": "{{title}} non fornisce informazioni sui requisiti consigliati",
"paused_progress": "{{progress}} (In pausa)",
"release_date": "Rilasciato il {{date}}", "release_date": "Rilasciato il {{date}}",
"publisher": "Pubblicato da {{publisher}}", "publisher": "Pubblicato da {{publisher}}",
"copy_link_to_clipboard": "Copia link", "copy_link_to_clipboard": "Copia link",
@ -120,22 +117,18 @@
"verifying": "Verifica…", "verifying": "Verifica…",
"completed_at": "Completato in {{date}}", "completed_at": "Completato in {{date}}",
"completed": "Completato", "completed": "Completato",
"cancelled": "Annullato",
"download_again": "Scarica di nuovo", "download_again": "Scarica di nuovo",
"cancel": "Annulla", "cancel": "Annulla",
"filter": "Filtra giochi scaricati", "filter": "Filtra giochi scaricati",
"remove": "Rimuovi", "remove": "Rimuovi",
"downloading_metadata": "Scaricamento metadati…", "downloading_metadata": "Scaricamento metadati…",
"checking_files": "Verifica file…",
"starting_download": "Avvio download…", "starting_download": "Avvio download…",
"deleting": "Eliminazione dell'installer…", "deleting": "Eliminazione dell'installer…",
"delete": "Rimuovi installer", "delete": "Rimuovi installer",
"remove_from_list": "Rimuovi", "remove_from_list": "Rimuovi",
"delete_modal_title": "Sei sicuro?", "delete_modal_title": "Sei sicuro?",
"delete_modal_description": "Questo rimuoverà tutti i file di installazione dal tuo computer", "delete_modal_description": "Questo rimuoverà tutti i file di installazione dal tuo computer",
"install": "Installa", "install": "Installa"
"real_debrid": "Real Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Percorso dei download", "downloads_path": "Percorso dei download",
@ -151,8 +144,7 @@
"general": "Generale", "general": "Generale",
"behavior": "Comportamento", "behavior": "Comportamento",
"enable_real_debrid": "Abilita Real Debrid", "enable_real_debrid": "Abilita Real Debrid",
"real_debrid": "Real Debrid", "real_debrid_api_token_hint": "Puoi trovare la tua chiave API <0>here</0>",
"real_debrid_api_token_hint": "Puoi trovare la tua chiave API <0>here</0>.",
"save_changes": "Salva modifiche" "save_changes": "Salva modifiche"
}, },
"notifications": { "notifications": {

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "진행중인 다운로드 없음", "no_downloads_in_progress": "진행중인 다운로드 없음",
"downloading_metadata": "{{title}}의 메타데이터를 다운로드 중…", "downloading_metadata": "{{title}}의 메타데이터를 다운로드 중…",
"checking_files": "{{title}}의 파일들을 검사 중… ({{percentage}} 완료)",
"downloading": "{{title}}의 파일들을 다운로드 중… ({{percentage}} 완료) - 완료까지 {{eta}} - {{speed}}" "downloading": "{{title}}의 파일들을 다운로드 중… ({{percentage}} 완료) - 완료까지 {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "여유 저장 용량 {{space}} 남음", "space_left_on_disk": "여유 저장 용량 {{space}} 남음",
"eta": "완료까지 {{eta}}", "eta": "완료까지 {{eta}}",
"downloading_metadata": "메타데이터 다운로드 중…", "downloading_metadata": "메타데이터 다운로드 중…",
"checking_files": "파일 검사 중…",
"filter": "리팩들을 다음과 같이 정렬하기", "filter": "리팩들을 다음과 같이 정렬하기",
"requirements": "시스템 사양", "requirements": "시스템 사양",
"minimum": "최저 사양", "minimum": "최저 사양",
"recommended": "권장 사양", "recommended": "권장 사양",
"no_minimum_requirements": "{{title}}의 최저 사양을 제공받지 못 함", "no_minimum_requirements": "{{title}}의 최저 사양을 제공받지 못 함",
"no_recommended_requirements": "{{title}}의 권장 사양을 제공받지 못 함", "no_recommended_requirements": "{{title}}의 권장 사양을 제공받지 못 함",
"paused_progress": "{{progress}} (일시 정지)",
"release_date": "{{date}}에 발매됨", "release_date": "{{date}}에 발매됨",
"publisher": "{{publisher}} 배급", "publisher": "{{publisher}} 배급",
"copy_link_to_clipboard": "링크 복사하기", "copy_link_to_clipboard": "링크 복사하기",
@ -86,7 +83,6 @@
"playing_now": "현재 플레이 중", "playing_now": "현재 플레이 중",
"change": "바꾸기", "change": "바꾸기",
"repacks_modal_description": "다운로드 할 리팩을 선택해 주세요", "repacks_modal_description": "다운로드 할 리팩을 선택해 주세요",
"downloads_path": "다운로드 경로",
"select_folder_hint": "기본 폴더를 바꾸려면 <0>설정</0>으로 가세요", "select_folder_hint": "기본 폴더를 바꾸려면 <0>설정</0>으로 가세요",
"download_now": "지금 다운로드", "download_now": "지금 다운로드",
"installation_instructions": "설치 방법", "installation_instructions": "설치 방법",
@ -114,22 +110,18 @@
"verifying": "검증중…", "verifying": "검증중…",
"completed_at": "{{date}}에 완료됨", "completed_at": "{{date}}에 완료됨",
"completed": "완료됨", "completed": "완료됨",
"cancelled": "취소됨",
"download_again": "다시 다운로드 하기", "download_again": "다시 다운로드 하기",
"cancel": "취소", "cancel": "취소",
"filter": "다운로드 된 게임들을 정렬하기", "filter": "다운로드 된 게임들을 정렬하기",
"remove": "제거하기", "remove": "제거하기",
"downloading_metadata": "메타데이터 다운로드 중…", "downloading_metadata": "메타데이터 다운로드 중…",
"checking_files": "파일 검사 중…",
"starting_download": "다운로드 개시 중…", "starting_download": "다운로드 개시 중…",
"deleting": "인스톨러 삭제 중…", "deleting": "인스톨러 삭제 중…",
"delete": "인스톨러 삭제하기", "delete": "인스톨러 삭제하기",
"remove_from_list": "제거하기", "remove_from_list": "제거하기",
"delete_modal_title": "정말로 하시겠습니까?", "delete_modal_title": "정말로 하시겠습니까?",
"delete_modal_description": "이 기기의 모든 설치 파일들이 제거될 것입니다", "delete_modal_description": "이 기기의 모든 설치 파일들이 제거될 것입니다",
"install": "설치", "install": "설치"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "다운로드 경로", "downloads_path": "다운로드 경로",
@ -139,13 +131,11 @@
"enable_repack_list_notifications": "새 리팩이 추가되었을 때", "enable_repack_list_notifications": "새 리팩이 추가되었을 때",
"telemetry": "자동 데이터 수집", "telemetry": "자동 데이터 수집",
"telemetry_description": "익명 사용 통계를 활성화", "telemetry_description": "익명 사용 통계를 활성화",
"real_debrid_api_token_description": "Real-Debrid API 토큰",
"quit_app_instead_hiding": "작업 표시줄 트레이로 최소화하는 대신 Hydra를 종료", "quit_app_instead_hiding": "작업 표시줄 트레이로 최소화하는 대신 Hydra를 종료",
"launch_with_system": "컴퓨터가 시작되었을 때 Hydra 실행", "launch_with_system": "컴퓨터가 시작되었을 때 Hydra 실행",
"general": "일반", "general": "일반",
"behavior": "행동", "behavior": "행동",
"enable_real_debrid": "Real-Debrid 활성화", "enable_real_debrid": "Real-Debrid 활성화",
"real_debrid": "Real-Debrid",
"real_debrid_api_token_hint": "API 키를 <0>이곳</0>에서 얻으세요.", "real_debrid_api_token_hint": "API 키를 <0>이곳</0>에서 얻으세요.",
"save_changes": "변경 사항 저장" "save_changes": "변경 사항 저장"
}, },

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Geen Downloads bezig", "no_downloads_in_progress": "Geen Downloads bezig",
"downloading_metadata": "Downloading {{title}} metadata…", "downloading_metadata": "Downloading {{title}} metadata…",
"checking_files": "Checking {{title}} files… ({{percentage}} complete)",
"downloading": "Downloading {{title}}… ({{percentage}} complete) - Conclusion {{eta}} - {{speed}}" "downloading": "Downloading {{title}}… ({{percentage}} complete) - Conclusion {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} Over op schijf", "space_left_on_disk": "{{space}} Over op schijf",
"eta": "Conclusie {{eta}}", "eta": "Conclusie {{eta}}",
"downloading_metadata": "Downloading metadata…", "downloading_metadata": "Downloading metadata…",
"checking_files": "Files nakijken…",
"filter": "Filter repacks", "filter": "Filter repacks",
"requirements": "Systeem vereisten", "requirements": "Systeem vereisten",
"minimum": "Minimaal", "minimum": "Minimaal",
"recommended": "Aanbevolen", "recommended": "Aanbevolen",
"no_minimum_requirements": "{{title}} biedt geen informatie over de minimale vereisten", "no_minimum_requirements": "{{title}} biedt geen informatie over de minimale vereisten",
"no_recommended_requirements": "{{title}} biedt geen informatie over aanbevolen vereisten", "no_recommended_requirements": "{{title}} biedt geen informatie over aanbevolen vereisten",
"paused_progress": "{{progress}} (Paused)",
"release_date": "Uitgebracht op {{date}}", "release_date": "Uitgebracht op {{date}}",
"publisher": "Gepubliceerd door {{publisher}}", "publisher": "Gepubliceerd door {{publisher}}",
"copy_link_to_clipboard": "Kopieer link", "copy_link_to_clipboard": "Kopieer link",
@ -86,7 +83,6 @@
"playing_now": "Speel nu", "playing_now": "Speel nu",
"change": "Verander", "change": "Verander",
"repacks_modal_description": "Kies de herverpakking die u wilt downloaden", "repacks_modal_description": "Kies de herverpakking die u wilt downloaden",
"downloads_path": "Downloads path",
"select_folder_hint": "Om de standaardmap te wijzigen, gaat u naar <0>instellingen</0>", "select_folder_hint": "Om de standaardmap te wijzigen, gaat u naar <0>instellingen</0>",
"download_now": "Download nu", "download_now": "Download nu",
"installation_instructions": "Installatie instructies", "installation_instructions": "Installatie instructies",
@ -114,22 +110,18 @@
"verifying": "Verifiëren…", "verifying": "Verifiëren…",
"completed_at": "Voltooid binnen {{date}}", "completed_at": "Voltooid binnen {{date}}",
"completed": "Voltooid", "completed": "Voltooid",
"cancelled": "Geannuleerd",
"download_again": "Opnieuw downloaden", "download_again": "Opnieuw downloaden",
"cancel": "Annuleren", "cancel": "Annuleren",
"filter": "Filter gedownloade games", "filter": "Filter gedownloade games",
"remove": "Verwijderen", "remove": "Verwijderen",
"downloading_metadata": "Metagegevens downloaden", "downloading_metadata": "Metagegevens downloaden",
"checking_files": "Bestanden controleren",
"starting_download": "download starten", "starting_download": "download starten",
"deleting": "Installatieprogramma verwijderen…", "deleting": "Installatieprogramma verwijderen…",
"delete": "Installatieprogramma verwijderen", "delete": "Installatieprogramma verwijderen",
"remove_from_list": "Verwijderen", "remove_from_list": "Verwijderen",
"delete_modal_title": "Weet je het zeker?", "delete_modal_title": "Weet je het zeker?",
"delete_modal_description": "Hiermee worden alle installatiebestanden van uw computer verwijderd", "delete_modal_description": "Hiermee worden alle installatiebestanden van uw computer verwijderd",
"install": "Installeren", "install": "Installeren"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Downloadpad", "downloads_path": "Downloadpad",
@ -145,7 +137,6 @@
"general": "Algemeen", "general": "Algemeen",
"behavior": "Gedrag", "behavior": "Gedrag",
"enable_real_debrid": "Enable Real-Debrid", "enable_real_debrid": "Enable Real-Debrid",
"real_debrid": "Real-Debrid",
"real_debrid_api_token_hint": "U kunt uw API-sleutel <0>hier</0> verkrijgen.", "real_debrid_api_token_hint": "U kunt uw API-sleutel <0>hier</0> verkrijgen.",
"save_changes": "Wijzigingen opslaan" "save_changes": "Wijzigingen opslaan"
}, },

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Brak pobierań w toku", "no_downloads_in_progress": "Brak pobierań w toku",
"downloading_metadata": "Pobieranie {{title}} metadata…", "downloading_metadata": "Pobieranie {{title}} metadata…",
"checking_files": "Sprawdzanie {{title}} plików… (ukończone w {{percentage}})",
"downloading": "Pobieranie {{title}}… (ukończone w {{percentage}}) - Podsumowanie {{eta}} - {{speed}}" "downloading": "Pobieranie {{title}}… (ukończone w {{percentage}}) - Podsumowanie {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} wolnego na dysku", "space_left_on_disk": "{{space}} wolnego na dysku",
"eta": "Podsumowanie {{eta}}", "eta": "Podsumowanie {{eta}}",
"downloading_metadata": "Pobieranie metadata…", "downloading_metadata": "Pobieranie metadata…",
"checking_files": "Sprawdzanie plików…",
"filter": "Filtruj repacki", "filter": "Filtruj repacki",
"requirements": "Wymagania systemowe", "requirements": "Wymagania systemowe",
"minimum": "Minimalne", "minimum": "Minimalne",
"recommended": "Zalecane", "recommended": "Zalecane",
"no_minimum_requirements": "{{title}} nie zawiera informacji o minimalnych wymaganiach", "no_minimum_requirements": "{{title}} nie zawiera informacji o minimalnych wymaganiach",
"no_recommended_requirements": "{{title}} nie zawiera informacji o zalecanych wymaganiach", "no_recommended_requirements": "{{title}} nie zawiera informacji o zalecanych wymaganiach",
"paused_progress": "{{progress}} (Zatrzymano)",
"release_date": "Wydano w {{date}}", "release_date": "Wydano w {{date}}",
"publisher": "Opublikowany przez {{publisher}}", "publisher": "Opublikowany przez {{publisher}}",
"copy_link_to_clipboard": "Kopiuj łącze", "copy_link_to_clipboard": "Kopiuj łącze",
@ -120,22 +117,18 @@
"verifying": "Weryfikowanie…", "verifying": "Weryfikowanie…",
"completed_at": "Zakończono w {{date}}", "completed_at": "Zakończono w {{date}}",
"completed": "Zakończono", "completed": "Zakończono",
"cancelled": "Anulowano",
"download_again": "Pobierz ponownie", "download_again": "Pobierz ponownie",
"cancel": "Anuluj", "cancel": "Anuluj",
"filter": "Filtruj pobrane gry", "filter": "Filtruj pobrane gry",
"remove": "Usuń", "remove": "Usuń",
"downloading_metadata": "Pobieranie metadata…", "downloading_metadata": "Pobieranie metadata…",
"checking_files": "Sprawdzanie plików…",
"starting_download": "Rozpoczęto pobieranie…", "starting_download": "Rozpoczęto pobieranie…",
"deleting": "Usuwanie instalatora…", "deleting": "Usuwanie instalatora…",
"delete": "Usuń instalator", "delete": "Usuń instalator",
"remove_from_list": "Usuń", "remove_from_list": "Usuń",
"delete_modal_title": "Czy na pewno?", "delete_modal_title": "Czy na pewno?",
"delete_modal_description": "Spowoduje to usunięcie wszystkich plików instalacyjnych z komputera", "delete_modal_description": "Spowoduje to usunięcie wszystkich plików instalacyjnych z komputera",
"install": "Instaluj", "install": "Instaluj"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Ścieżka pobierania", "downloads_path": "Ścieżka pobierania",
@ -151,8 +144,7 @@
"general": "Ogólne", "general": "Ogólne",
"behavior": "Zachowania", "behavior": "Zachowania",
"enable_real_debrid": "Włącz Real-Debrid", "enable_real_debrid": "Włącz Real-Debrid",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "Możesz uzyskać swój klucz API <0>tutaj</0>",
"real_debrid_api_token_hint": "Możesz uzyskać swój klucz API <0>tutaj</0>.",
"save_changes": "Zapisz zmiany" "save_changes": "Zapisz zmiany"
}, },
"notifications": { "notifications": {

View file

@ -35,8 +35,8 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Sem downloads em andamento", "no_downloads_in_progress": "Sem downloads em andamento",
"downloading_metadata": "Baixando metadados de {{title}}…", "downloading_metadata": "Baixando metadados de {{title}}…",
"checking_files": "Verificando arquivos de {{title}}… ({{percentage}} completo)", "downloading": "Baixando {{title}}… ({{percentage}} concluído) - Conclusão {{eta}} - {{speed}}",
"downloading": "Baixando {{title}}… ({{percentage}} completo) - Conclusão {{eta}} - {{speed}}" "calculating_eta": "Baixando {{title}}… ({{percentage}} concluído) - Calculando tempo restante…"
}, },
"game_details": { "game_details": {
"open_download_options": "Ver opções de download", "open_download_options": "Ver opções de download",
@ -51,15 +51,15 @@
"remove_from_list": "Remover", "remove_from_list": "Remover",
"space_left_on_disk": "{{space}} livres em disco", "space_left_on_disk": "{{space}} livres em disco",
"eta": "Conclusão {{eta}}", "eta": "Conclusão {{eta}}",
"calculating_eta": "Calculando tempo restante…",
"downloading_metadata": "Baixando metadados…", "downloading_metadata": "Baixando metadados…",
"checking_files": "Verificando arquivos…",
"filter": "Filtrar repacks", "filter": "Filtrar repacks",
"requirements": "Requisitos do sistema", "requirements": "Requisitos do sistema",
"minimum": "Mínimos", "minimum": "Mínimos",
"recommended": "Recomendados", "recommended": "Recomendados",
"no_minimum_requirements": "{{title}} não possui informações de requisitos mínimos", "no_minimum_requirements": "{{title}} não possui informações de requisitos mínimos",
"no_recommended_requirements": "{{title}} não possui informações de requisitos recomendados", "no_recommended_requirements": "{{title}} não possui informações de requisitos recomendados",
"paused_progress": "{{progress}} (Pausado)", "paused": "Pausado",
"release_date": "Lançado em {{date}}", "release_date": "Lançado em {{date}}",
"publisher": "Publicado por {{publisher}}", "publisher": "Publicado por {{publisher}}",
"copy_link_to_clipboard": "Copiar link", "copy_link_to_clipboard": "Copiar link",
@ -84,7 +84,7 @@
"change": "Mudar", "change": "Mudar",
"repacks_modal_description": "Escolha o repack do jogo que deseja baixar", "repacks_modal_description": "Escolha o repack do jogo que deseja baixar",
"select_folder_hint": "Para trocar a pasta padrão, acesse a <0>Tela de Configurações</0>", "select_folder_hint": "Para trocar a pasta padrão, acesse a <0>Tela de Configurações</0>",
"download_now": "Baixe agora", "download_now": "Iniciar download",
"installation_instructions": "Instruções de Instalação", "installation_instructions": "Instruções de Instalação",
"installation_instructions_description": "Passos adicionais são necessários para instalar esse jogo", "installation_instructions_description": "Passos adicionais são necessários para instalar esse jogo",
"online_fix_instruction": "Jogos OnlineFix precisam de uma senha para serem extraídos. Quando solicitado, utilize a seguinte senha:", "online_fix_instruction": "Jogos OnlineFix precisam de uma senha para serem extraídos. Quando solicitado, utilize a seguinte senha:",
@ -117,22 +117,19 @@
"verifying": "Verificando…", "verifying": "Verificando…",
"completed_at": "Concluído em {{date}}", "completed_at": "Concluído em {{date}}",
"completed": "Concluído", "completed": "Concluído",
"removed": "Removido", "removed": "Cancelado",
"download_again": "Baixar novamente", "download_again": "Baixar novamente",
"cancel": "Cancelar", "cancel": "Cancelar",
"filter": "Filtrar jogos baixados", "filter": "Filtrar jogos baixados",
"remove": "Remover", "remove": "Remover",
"downloading_metadata": "Baixando metadados…", "downloading_metadata": "Baixando metadados…",
"checking_files": "Verificando arquivos…",
"starting_download": "Iniciando download…", "starting_download": "Iniciando download…",
"remove_from_list": "Remover", "remove_from_list": "Remover",
"delete": "Remover instalador", "delete": "Remover instalador",
"delete_modal_description": "Isso removerá todos os arquivos de instalação do seu computador", "delete_modal_description": "Isso removerá todos os arquivos de instalação do seu computador",
"delete_modal_title": "Tem certeza?", "delete_modal_title": "Tem certeza?",
"deleting": "Excluindo instalador…", "deleting": "Excluindo instalador…",
"install": "Instalar", "install": "Instalar"
"torrent": "Torrent",
"real_debrid": "Real-Debrid"
}, },
"settings": { "settings": {
"downloads_path": "Diretório dos downloads", "downloads_path": "Diretório dos downloads",
@ -147,9 +144,13 @@
"launch_with_system": "Iniciar aplicativo na inicialização do sistema", "launch_with_system": "Iniciar aplicativo na inicialização do sistema",
"general": "Geral", "general": "Geral",
"behavior": "Comportamento", "behavior": "Comportamento",
"real_debrid_api_token": "Token de API",
"enable_real_debrid": "Habilitar Real-Debrid", "enable_real_debrid": "Habilitar Real-Debrid",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "Você pode obter seu token de API <0>aqui</0>",
"real_debrid_api_token_hint": "Você pode obter sua chave de API <0>aqui</0>.", "real_debrid_description": "O Real-Debrid é um downloader sem restrições que permite baixar arquivos instantaneamente e com a melhor velocidade da sua Internet.",
"real_debrid_invalid_token": "Token de API inválido",
"real_debrid_free_account_error": "A conta \"{{username}}\" é uma conta gratuita. Por favor, assine a Real-Debrid",
"real_debrid_linked_message": "Conta \"{{username}}\" vinculada",
"save_changes": "Salvar mudanças" "save_changes": "Salvar mudanças"
}, },
"notifications": { "notifications": {
@ -177,11 +178,5 @@
}, },
"modal": { "modal": {
"close": "Botão de fechar" "close": "Botão de fechar"
},
"splash": {
"downloading_version": "Baixando versão {{version}}",
"searching_updates": "Buscando atualizações",
"update_found": "Versão {{version}} encontrada",
"restarting_and_applying": "Reiniciando e aplicando atualização"
} }
} }

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Нет активных загрузок", "no_downloads_in_progress": "Нет активных загрузок",
"downloading_metadata": "Загрузка метаданных {{title}}…", "downloading_metadata": "Загрузка метаданных {{title}}…",
"checking_files": "Проверка файлов {{title}}… ({{percentage}} завершено)",
"downloading": "Загрузка {{title}}… ({{percentage}} завершено) - Окончание {{eta}} - {{speed}}" "downloading": "Загрузка {{title}}… ({{percentage}} завершено) - Окончание {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} свободно на диске", "space_left_on_disk": "{{space}} свободно на диске",
"eta": "Окончание {{eta}}", "eta": "Окончание {{eta}}",
"downloading_metadata": "Загрузка метаданных…", "downloading_metadata": "Загрузка метаданных…",
"checking_files": "Проверка файлов…",
"filter": "Фильтр репаков", "filter": "Фильтр репаков",
"requirements": "Системные требования", "requirements": "Системные требования",
"minimum": "Минимальные", "minimum": "Минимальные",
"recommended": "Рекомендуемые", "recommended": "Рекомендуемые",
"no_minimum_requirements": "Для {{title}} не указаны минимальные требования", "no_minimum_requirements": "Для {{title}} не указаны минимальные требования",
"no_recommended_requirements": "Для {{title}} не указаны рекомендуемые требования", "no_recommended_requirements": "Для {{title}} не указаны рекомендуемые требования",
"paused_progress": "{{progress}} (Приостановлено)",
"release_date": "Выпущено {{date}}", "release_date": "Выпущено {{date}}",
"publisher": "Издатель {{publisher}}", "publisher": "Издатель {{publisher}}",
"copy_link_to_clipboard": "Копировать ссылку", "copy_link_to_clipboard": "Копировать ссылку",
@ -120,22 +117,18 @@
"verifying": "Проверка…", "verifying": "Проверка…",
"completed_at": "Завершено в {{date}}", "completed_at": "Завершено в {{date}}",
"completed": "Завершено", "completed": "Завершено",
"cancelled": "Отменено",
"download_again": "Загрузить снова", "download_again": "Загрузить снова",
"cancel": "Отменить", "cancel": "Отменить",
"filter": "Фильтр загруженных игр", "filter": "Фильтр загруженных игр",
"remove": "Удалить", "remove": "Удалить",
"downloading_metadata": "Загрузка метаданных…", "downloading_metadata": "Загрузка метаданных…",
"checking_files": "Проверка файлов…",
"starting_download": "Начало загрузки…", "starting_download": "Начало загрузки…",
"deleting": "Удаление установщика…", "deleting": "Удаление установщика…",
"delete": "Удалить установщик", "delete": "Удалить установщик",
"remove_from_list": "Удалить", "remove_from_list": "Удалить",
"delete_modal_title": "Вы уверены?", "delete_modal_title": "Вы уверены?",
"delete_modal_description": "Это удалит все установщики с вашего компьютера", "delete_modal_description": "Это удалит все установщики с вашего компьютера",
"install": "Установить", "install": "Установить"
"real_debrid": "Real-Debrid",
"torrent": "Torrent"
}, },
"settings": { "settings": {
"downloads_path": "Путь загрузок", "downloads_path": "Путь загрузок",
@ -151,8 +144,7 @@
"general": "Основные", "general": "Основные",
"behavior": "Поведение", "behavior": "Поведение",
"enable_real_debrid": "Включить Real-Debrid", "enable_real_debrid": "Включить Real-Debrid",
"real_debrid": "Real-Debrid", "real_debrid_api_token_hint": "API ключ можно получить <0>здесь</0>",
"real_debrid_api_token_hint": "API ключ можно получить <0>здесь</0>.",
"save_changes": "Сохранить изменения" "save_changes": "Сохранить изменения"
}, },
"notifications": { "notifications": {

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "İndirilen bir şey yok", "no_downloads_in_progress": "İndirilen bir şey yok",
"downloading_metadata": "{{title}} metadatası indiriliyor…", "downloading_metadata": "{{title}} metadatası indiriliyor…",
"checking_files": "{{title}} dosyaları kontrol ediliyor… ({{percentage}} tamamlandı)",
"downloading": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Bitiş {{eta}} - {{speed}}" "downloading": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Bitiş {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "Diskte {{space}} yer kaldı", "space_left_on_disk": "Diskte {{space}} yer kaldı",
"eta": "Bitiş {{eta}}", "eta": "Bitiş {{eta}}",
"downloading_metadata": "Metadata indiriliyor…", "downloading_metadata": "Metadata indiriliyor…",
"checking_files": "Dosyalar kontrol ediliyor…",
"filter": "Repackleri filtrele", "filter": "Repackleri filtrele",
"requirements": "Sistem gereksinimleri", "requirements": "Sistem gereksinimleri",
"minimum": "Minimum", "minimum": "Minimum",
"recommended": "Önerilen", "recommended": "Önerilen",
"no_minimum_requirements": "{{title}} minimum sistem gereksinim bilgilerini karşılamıyor", "no_minimum_requirements": "{{title}} minimum sistem gereksinim bilgilerini karşılamıyor",
"no_recommended_requirements": "{{title}} önerilen sistem gereksinim bilgilerini karşılamıyor", "no_recommended_requirements": "{{title}} önerilen sistem gereksinim bilgilerini karşılamıyor",
"paused_progress": "{{progress}} (Duraklatıldı)",
"release_date": "{{date}} tarihinde çıktı", "release_date": "{{date}} tarihinde çıktı",
"publisher": "{{publisher}} tarihinde yayınlandı", "publisher": "{{publisher}} tarihinde yayınlandı",
"copy_link_to_clipboard": "Link'i kopyala", "copy_link_to_clipboard": "Link'i kopyala",
@ -86,7 +83,6 @@
"playing_now": "Şimdi oynanıyor", "playing_now": "Şimdi oynanıyor",
"change": "Değiştir", "change": "Değiştir",
"repacks_modal_description": "İndirmek istediğiiniz repacki seçin", "repacks_modal_description": "İndirmek istediğiiniz repacki seçin",
"downloads_path": "İndirme yolu",
"select_folder_hint": "Varsayılan klasörü değiştirmek için ulaşmanız gereken ayar", "select_folder_hint": "Varsayılan klasörü değiştirmek için ulaşmanız gereken ayar",
"download_now": "Şimdi", "download_now": "Şimdi",
"installation_instructions": "Kurulum", "installation_instructions": "Kurulum",
@ -114,13 +110,11 @@
"verifying": "Doğrulanıyor…", "verifying": "Doğrulanıyor…",
"completed_at": "{{date}} tarihinde tamamlanacak", "completed_at": "{{date}} tarihinde tamamlanacak",
"completed": "Tamamlandı", "completed": "Tamamlandı",
"cancelled": "İptal edildi",
"download_again": "Tekrar indir", "download_again": "Tekrar indir",
"cancel": "İptal et", "cancel": "İptal et",
"filter": "Yüklü oyunları filtrele", "filter": "Yüklü oyunları filtrele",
"remove": "Kaldır", "remove": "Kaldır",
"downloading_metadata": "Metadata indiriliyor…", "downloading_metadata": "Metadata indiriliyor…",
"checking_files": "Dosyalar kontrol ediliyor…",
"starting_download": "İndirme başlatılıyor…", "starting_download": "İndirme başlatılıyor…",
"deleting": "Installer siliniyor…", "deleting": "Installer siliniyor…",
"delete": "Installer'ı sil", "delete": "Installer'ı sil",

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "Немає активних завантажень", "no_downloads_in_progress": "Немає активних завантажень",
"downloading_metadata": "Завантаження метаданих {{title}}…", "downloading_metadata": "Завантаження метаданих {{title}}…",
"checking_files": "Перевірка файлів {{title}}… ({{percentage}} завершено)",
"downloading": "Завантаження {{title}}… ({{percentage}} завершено) - Закінчення {{eta}} - {{speed}}" "downloading": "Завантаження {{title}}… ({{percentage}} завершено) - Закінчення {{eta}} - {{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "{{space}} вільно на диску", "space_left_on_disk": "{{space}} вільно на диску",
"eta": "Закінчення {{eta}}", "eta": "Закінчення {{eta}}",
"downloading_metadata": "Завантаження метаданих…", "downloading_metadata": "Завантаження метаданих…",
"checking_files": "Перевірка файлів…",
"filter": "Фільтр репаків", "filter": "Фільтр репаків",
"requirements": "Системні вимоги", "requirements": "Системні вимоги",
"minimum": "Мінімальні", "minimum": "Мінімальні",
"recommended": "Рекомендовані", "recommended": "Рекомендовані",
"no_minimum_requirements": "Для {{title}} не вказані мінімальні вимоги", "no_minimum_requirements": "Для {{title}} не вказані мінімальні вимоги",
"no_recommended_requirements": "Для {{title}} не вказані рекомендовані вимоги", "no_recommended_requirements": "Для {{title}} не вказані рекомендовані вимоги",
"paused_progress": "{{progress}} (Призупинено)",
"release_date": "Випущено {{date}}", "release_date": "Випущено {{date}}",
"publisher": "Видавець {{publisher}}", "publisher": "Видавець {{publisher}}",
"copy_link_to_clipboard": "Скопіювати посилання", "copy_link_to_clipboard": "Скопіювати посилання",
@ -86,7 +83,6 @@
"playing_now": "Поточна гра", "playing_now": "Поточна гра",
"change": "Змінити", "change": "Змінити",
"repacks_modal_description": "Виберіть репак, який хочете завантажити", "repacks_modal_description": "Виберіть репак, який хочете завантажити",
"downloads_path": "Шлях завантажень",
"select_folder_hint": "Щоб змінити теку за замовчуванням, відкрийте", "select_folder_hint": "Щоб змінити теку за замовчуванням, відкрийте",
"download_now": "Завантажити зараз", "download_now": "Завантажити зараз",
"installation_instructions": "Інструкція зі встановлення", "installation_instructions": "Інструкція зі встановлення",
@ -114,13 +110,11 @@
"verifying": "Перевірка…", "verifying": "Перевірка…",
"completed_at": "Завершено в {{date}}", "completed_at": "Завершено в {{date}}",
"completed": "Завершено", "completed": "Завершено",
"cancelled": "Скасовано",
"download_again": "Завантажити знову", "download_again": "Завантажити знову",
"cancel": "Скасувати", "cancel": "Скасувати",
"filter": "Фільтр завантажених ігор", "filter": "Фільтр завантажених ігор",
"remove": "Видалити", "remove": "Видалити",
"downloading_metadata": "Завантаження метаданих…", "downloading_metadata": "Завантаження метаданих…",
"checking_files": "Перевірка файлів…",
"starting_download": "Початок завантаження…", "starting_download": "Початок завантаження…",
"deleting": "Видалення інсталятора…", "deleting": "Видалення інсталятора…",
"delete": "Видалити інсталятор", "delete": "Видалити інсталятор",

View file

@ -34,7 +34,6 @@
"bottom_panel": { "bottom_panel": {
"no_downloads_in_progress": "没有正在进行的下载", "no_downloads_in_progress": "没有正在进行的下载",
"downloading_metadata": "正在下载{{title}}的元数据…", "downloading_metadata": "正在下载{{title}}的元数据…",
"checking_files": "正在检查{{title}}的文件… ({{percentage}}完成)",
"downloading": "正在下载{{title}}… ({{percentage}}完成) - 剩余时间{{eta}} - 速度{{speed}}" "downloading": "正在下载{{title}}… ({{percentage}}完成) - 剩余时间{{eta}} - 速度{{speed}}"
}, },
"catalogue": { "catalogue": {
@ -56,14 +55,12 @@
"space_left_on_disk": "磁盘剩余空间{{space}}", "space_left_on_disk": "磁盘剩余空间{{space}}",
"eta": "预计完成时间{{eta}}", "eta": "预计完成时间{{eta}}",
"downloading_metadata": "正在下载元数据…", "downloading_metadata": "正在下载元数据…",
"checking_files": "正在检查文件…",
"filter": "筛选重打包", "filter": "筛选重打包",
"requirements": "配置要求", "requirements": "配置要求",
"minimum": "最低要求", "minimum": "最低要求",
"recommended": "推荐要求", "recommended": "推荐要求",
"no_minimum_requirements": "{{title}}没有提供最低要求信息", "no_minimum_requirements": "{{title}}没有提供最低要求信息",
"no_recommended_requirements": "{{title}}没有提供推荐要求信息", "no_recommended_requirements": "{{title}}没有提供推荐要求信息",
"paused_progress": "{{progress}} (已暂停)",
"release_date": "发布于{{date}}", "release_date": "发布于{{date}}",
"publisher": "发行商{{publisher}}", "publisher": "发行商{{publisher}}",
"copy_link_to_clipboard": "复制链接", "copy_link_to_clipboard": "复制链接",
@ -86,9 +83,7 @@
"playing_now": "正在游戏中", "playing_now": "正在游戏中",
"change": "更改", "change": "更改",
"repacks_modal_description": "选择您想要下载的重打包", "repacks_modal_description": "选择您想要下载的重打包",
"downloads_path": "下载路径",
"select_folder_hint": "要更改默认文件夹,请访问", "select_folder_hint": "要更改默认文件夹,请访问",
"settings": "设置",
"download_now": "立即下载", "download_now": "立即下载",
"installation_instructions": "安装说明", "installation_instructions": "安装说明",
"installation_instructions_description": "安装这个游戏需要额外的步骤", "installation_instructions_description": "安装这个游戏需要额外的步骤",
@ -118,22 +113,18 @@
"verifying": "正在验证…", "verifying": "正在验证…",
"completed_at": "完成于{{date}}", "completed_at": "完成于{{date}}",
"completed": "已完成", "completed": "已完成",
"cancelled": "已取消",
"download_again": "再次下载", "download_again": "再次下载",
"cancel": "取消", "cancel": "取消",
"filter": "筛选已下载游戏", "filter": "筛选已下载游戏",
"remove": "移除", "remove": "移除",
"downloading_metadata": "正在下载元数据…", "downloading_metadata": "正在下载元数据…",
"checking_files": "正在检查文件…",
"starting_download": "开始下载…", "starting_download": "开始下载…",
"deleting": "正在删除安装程序…", "deleting": "正在删除安装程序…",
"delete": "移除安装程序", "delete": "移除安装程序",
"remove_from_list": "移除", "remove_from_list": "移除",
"delete_modal_title": "您确定吗?", "delete_modal_title": "您确定吗?",
"delete_modal_description": "这将从您的电脑上移除所有的安装文件", "delete_modal_description": "这将从您的电脑上移除所有的安装文件",
"install": "安装", "install": "安装"
"real_debrid": "Real-Debrid",
"torrent": "种子"
}, },
"settings": { "settings": {
"downloads_path": "下载路径", "downloads_path": "下载路径",
@ -143,13 +134,11 @@
"enable_repack_list_notifications": "添加新重打包时", "enable_repack_list_notifications": "添加新重打包时",
"telemetry": "遥测", "telemetry": "遥测",
"telemetry_description": "启用匿名使用统计", "telemetry_description": "启用匿名使用统计",
"real_debrid_api_token_description": "Real-Debrid API密钥",
"behavior": "行为", "behavior": "行为",
"general": "常规", "general": "常规",
"quit_app_instead_hiding": "关闭应用程序而不是最小化到托盘", "quit_app_instead_hiding": "关闭应用程序而不是最小化到托盘",
"launch_with_system": "随系统启动时运行应用程序", "launch_with_system": "随系统启动时运行应用程序",
"enable_real_debrid": "启用 Real-Debrid", "enable_real_debrid": "启用 Real-Debrid",
"real_debrid": "Real-Debrid",
"real_debrid_api_token_hint": "您可以从<0>这里</0>获取API密钥.", "real_debrid_api_token_hint": "您可以从<0>这里</0>获取API密钥.",
"save_changes": "保存更改" "save_changes": "保存更改"
}, },

View file

@ -85,5 +85,8 @@ export const steamUrlBuilder = {
`https://cdn.cloudflare.steamstatic.com/steam/apps/${objectID}/logo.png`, `https://cdn.cloudflare.steamstatic.com/steam/apps/${objectID}/logo.png`,
}; };
export const sleep = (ms: number) =>
new Promise((resolve) => setTimeout(resolve, ms));
export * from "./formatters"; export * from "./formatters";
export * from "./ps"; export * from "./ps";

View file

@ -1,27 +0,0 @@
import path from "node:path";
import { spawn } from "node:child_process";
import type { ChildProcessWithoutNullStreams } from "node:child_process";
import { app } from "electron";
export const startAria2 = (): Promise<ChildProcessWithoutNullStreams> => {
return new Promise((resolve) => {
const binaryPath = app.isPackaged
? path.join(process.resourcesPath, "aria2", "aria2c")
: path.join(__dirname, "..", "..", "aria2", "aria2c");
const cp = spawn(binaryPath, [
"--enable-rpc",
"--rpc-listen-all",
"--file-allocation=none",
"--allow-overwrite=true",
]);
cp.stdout.on("data", async (data) => {
const msg = Buffer.from(data).toString("utf-8");
if (msg.includes("IPv6 RPC: listening on TCP")) {
resolve(cp);
}
});
});
};

View file

@ -0,0 +1,20 @@
import path from "node:path";
import { spawn } from "node:child_process";
import { app } from "electron";
export const startAria2 = () => {
const binaryPath = app.isPackaged
? path.join(process.resourcesPath, "aria2", "aria2c")
: path.join(__dirname, "..", "..", "aria2", "aria2c");
return spawn(
binaryPath,
[
"--enable-rpc",
"--rpc-listen-all",
"--file-allocation=none",
"--allow-overwrite=true",
],
{ stdio: "inherit" }
);
};

View file

@ -10,7 +10,9 @@ import { Downloader } from "@shared";
import { DownloadProgress } from "@types"; import { DownloadProgress } from "@types";
import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity"; import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity";
import { Game } from "@main/entity"; import { Game } from "@main/entity";
import { startAria2 } from "./aria2"; import { startAria2 } from "./aria2c";
import { sleep } from "@main/helpers";
import { logger } from "./logger";
export class DownloadManager { export class DownloadManager {
private static downloads = new Map<number, string>(); private static downloads = new Map<number, string>();
@ -23,9 +25,22 @@ export class DownloadManager {
private static aria2 = new Aria2({}); private static aria2 = new Aria2({});
private static async connect() { private static async connect() {
await startAria2(); startAria2();
await this.aria2.open();
this.connected = true; let retries = 0;
while (retries < 4 && !this.connected) {
try {
await this.aria2.open();
logger.log("Connected to aria2");
this.connected = true;
} catch (err) {
await sleep(100);
logger.log("Failed to connect to aria2, retrying...");
retries++;
}
}
} }
private static getETA( private static getETA(

View file

@ -1,8 +1,7 @@
import { sleep } from "@main/helpers";
import { DownloadManager } from "./download-manager"; import { DownloadManager } from "./download-manager";
import { watchProcesses } from "./process-watcher"; import { watchProcesses } from "./process-watcher";
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
export const startMainLoop = async () => { export const startMainLoop = async () => {
// eslint-disable-next-line no-constant-condition // eslint-disable-next-line no-constant-condition
while (true) { while (true) {

View file

@ -156,10 +156,10 @@ export const newVersionButton = style({
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
gap: `${SPACING_UNIT}px`, gap: `${SPACING_UNIT}px`,
color: vars.color.bodyText, color: vars.color.body,
borderBottom: "1px solid transparent", borderBottom: "1px solid transparent",
":hover": { ":hover": {
borderBottom: `1px solid ${vars.color.bodyText}`, borderBottom: `1px solid ${vars.color.body}`,
cursor: "pointer", cursor: "pointer",
}, },
}); });

View file

@ -1 +1,8 @@
import { Downloader } from "@shared";
export const VERSION_CODENAME = "Exodus"; export const VERSION_CODENAME = "Exodus";
export const DOWNLOADER_NAME = {
[Downloader.RealDebrid]: "Real-Debrid",
[Downloader.Torrent]: "Torrent",
};

View file

@ -1,4 +1,5 @@
export * from "./use-download"; export * from "./use-download";
export * from "./use-library"; export * from "./use-library";
export * from "./use-date"; export * from "./use-date";
export * from "./use-toast";
export * from "./redux"; export * from "./redux";

View file

@ -0,0 +1,33 @@
import { useCallback } from "react";
import { useAppDispatch } from "./redux";
import { showToast } from "@renderer/features";
export function useToast() {
const dispatch = useAppDispatch();
const showSuccessToast = useCallback(
(message: string) => {
dispatch(
showToast({
message,
type: "success",
})
);
},
[dispatch]
);
const showErrorToast = useCallback(
(message: string) => {
dispatch(
showToast({
message,
type: "error",
})
);
},
[dispatch]
);
return { showSuccessToast, showErrorToast };
}

View file

@ -40,6 +40,7 @@ i18n
}) })
.then(() => { .then(() => {
window.electron.updateUserPreferences({ language: i18n.language }); window.electron.updateUserPreferences({ language: i18n.language });
i18n.changeLanguage("pt-BR");
}); });
ReactDOM.createRoot(document.getElementById("root")!).render( ReactDOM.createRoot(document.getElementById("root")!).render(

View file

@ -15,6 +15,7 @@ import { BinaryNotFoundModal } from "../shared-modals/binary-not-found-modal";
import * as styles from "./downloads.css"; import * as styles from "./downloads.css";
import { DeleteModal } from "./delete-modal"; import { DeleteModal } from "./delete-modal";
import { Downloader, formatBytes } from "@shared"; import { Downloader, formatBytes } from "@shared";
import { DOWNLOADER_NAME } from "@renderer/constants";
export function Downloads() { export function Downloads() {
const { library, updateLibrary } = useLibrary(); const { library, updateLibrary } = useLibrary();
@ -55,7 +56,7 @@ export function Downloads() {
}); });
const getFinalDownloadSize = (game: Game) => { const getFinalDownloadSize = (game: Game) => {
const isGameDownloading = lastPacket?.game.id === game?.id; const isGameDownloading = lastPacket?.game.id === game.id;
if (!game) return "N/A"; if (!game) return "N/A";
if (game.fileSize) return formatBytes(game.fileSize); if (game.fileSize) return formatBytes(game.fileSize);
@ -66,16 +67,11 @@ export function Downloads() {
return game.repack?.fileSize ?? "N/A"; return game.repack?.fileSize ?? "N/A";
}; };
const downloaderName = {
[Downloader.RealDebrid]: t("real_debrid"),
[Downloader.Torrent]: t("torrent"),
};
const getGameInfo = (game: Game) => { const getGameInfo = (game: Game) => {
const isGameDownloading = lastPacket?.game.id === game?.id; const isGameDownloading = lastPacket?.game.id === game.id;
const finalDownloadSize = getFinalDownloadSize(game); const finalDownloadSize = getFinalDownloadSize(game);
if (isGameDeleting(game?.id)) { if (isGameDeleting(game.id)) {
return <p>{t("deleting")}</p>; return <p>{t("deleting")}</p>;
} }
@ -98,16 +94,16 @@ export function Downloads() {
); );
} }
if (game?.progress === 1) { if (game.progress === 1) {
return ( return (
<> <>
<p>{game?.repack?.title}</p> <p>{game.repack?.title}</p>
<p>{t("completed")}</p> <p>{t("completed")}</p>
</> </>
); );
} }
if (game?.status === "paused") { if (game.status === "paused") {
return ( return (
<> <>
<p>{formatDownloadProgress(game.progress)}</p> <p>{formatDownloadProgress(game.progress)}</p>
@ -116,7 +112,19 @@ export function Downloads() {
); );
} }
return <p>{t(game?.status)}</p>; if (game.status === "active") {
return (
<>
<p>{formatDownloadProgress(game.progress)}</p>
<p>
{formatBytes(game.bytesDownloaded)} / {finalDownloadSize}
</p>
</>
);
}
return <p>{t(game.status)}</p>;
}; };
const openDeleteModal = (gameId: number) => { const openDeleteModal = (gameId: number) => {
@ -125,37 +133,11 @@ export function Downloads() {
}; };
const getGameActions = (game: Game) => { const getGameActions = (game: Game) => {
const isGameDownloading = lastPacket?.game.id === game?.id; const isGameDownloading = lastPacket?.game.id === game.id;
const deleting = isGameDeleting(game.id); const deleting = isGameDeleting(game.id);
if (isGameDownloading) { if (game.progress === 1) {
return (
<>
<Button onClick={() => pauseDownload(game.id)} theme="outline">
{t("pause")}
</Button>
<Button onClick={() => cancelDownload(game.id)} theme="outline">
{t("cancel")}
</Button>
</>
);
}
if (game?.status === "paused") {
return (
<>
<Button onClick={() => resumeDownload(game.id)} theme="outline">
{t("resume")}
</Button>
<Button onClick={() => cancelDownload(game.id)} theme="outline">
{t("cancel")}
</Button>
</>
);
}
if (game?.progress === 1) {
return ( return (
<> <>
<Button <Button
@ -173,6 +155,32 @@ export function Downloads() {
); );
} }
if (isGameDownloading || game.status === "active") {
return (
<>
<Button onClick={() => pauseDownload(game.id)} theme="outline">
{t("pause")}
</Button>
<Button onClick={() => cancelDownload(game.id)} theme="outline">
{t("cancel")}
</Button>
</>
);
}
if (game.status === "paused") {
return (
<>
<Button onClick={() => resumeDownload(game.id)} theme="outline">
{t("resume")}
</Button>
<Button onClick={() => cancelDownload(game.id)} theme="outline">
{t("cancel")}
</Button>
</>
);
}
return ( return (
<> <>
<Button <Button
@ -243,7 +251,7 @@ export function Downloads() {
<div className={styles.downloadCoverContent}> <div className={styles.downloadCoverContent}>
<small className={styles.downloaderName}> <small className={styles.downloaderName}>
{downloaderName[game?.downloader]} {DOWNLOADER_NAME[game.downloader]}
</small> </small>
</div> </div>
</div> </div>

View file

@ -25,4 +25,10 @@ export const downloaders = style({
export const downloaderOption = style({ export const downloaderOption = style({
flex: "1", flex: "1",
position: "relative",
});
export const downloaderIcon = style({
position: "absolute",
left: `${SPACING_UNIT * 2}px`,
}); });

View file

@ -7,8 +7,9 @@ import { Button, Link, Modal, TextField } from "@renderer/components";
import { CheckCircleFillIcon, DownloadIcon } from "@primer/octicons-react"; import { CheckCircleFillIcon, DownloadIcon } from "@primer/octicons-react";
import { Downloader, formatBytes } from "@shared"; import { Downloader, formatBytes } from "@shared";
import type { GameRepack, UserPreferences } from "@types"; import type { GameRepack } from "@types";
import { SPACING_UNIT } from "@renderer/theme.css"; import { SPACING_UNIT } from "@renderer/theme.css";
import { DOWNLOADER_NAME } from "@renderer/constants";
export interface SelectFolderModalProps { export interface SelectFolderModalProps {
visible: boolean; visible: boolean;
@ -21,6 +22,8 @@ export interface SelectFolderModalProps {
repack: GameRepack | null; repack: GameRepack | null;
} }
const downloaders = [Downloader.Torrent, Downloader.RealDebrid];
export function SelectFolderModal({ export function SelectFolderModal({
visible, visible,
onClose, onClose,
@ -32,14 +35,14 @@ export function SelectFolderModal({
const [diskFreeSpace, setDiskFreeSpace] = useState<DiskSpace | null>(null); const [diskFreeSpace, setDiskFreeSpace] = useState<DiskSpace | null>(null);
const [selectedPath, setSelectedPath] = useState(""); const [selectedPath, setSelectedPath] = useState("");
const [downloadStarting, setDownloadStarting] = useState(false); const [downloadStarting, setDownloadStarting] = useState(false);
const [userPreferences, setUserPreferences] =
useState<UserPreferences | null>(null);
const [selectedDownloader, setSelectedDownloader] = useState( const [selectedDownloader, setSelectedDownloader] = useState(
Downloader.Torrent Downloader.Torrent
); );
useEffect(() => { useEffect(() => {
visible && getDiskFreeSpace(selectedPath); if (visible) {
getDiskFreeSpace(selectedPath);
}
}, [visible, selectedPath]); }, [visible, selectedPath]);
useEffect(() => { useEffect(() => {
@ -48,7 +51,6 @@ export function SelectFolderModal({
window.electron.getUserPreferences(), window.electron.getUserPreferences(),
]).then(([path, userPreferences]) => { ]).then(([path, userPreferences]) => {
setSelectedPath(userPreferences?.downloadsPath || path); setSelectedPath(userPreferences?.downloadsPath || path);
setUserPreferences(userPreferences);
if (userPreferences?.realDebridApiToken) { if (userPreferences?.realDebridApiToken) {
setSelectedDownloader(Downloader.RealDebrid); setSelectedDownloader(Downloader.RealDebrid);
@ -106,35 +108,21 @@ export function SelectFolderModal({
</span> </span>
<div className={styles.downloaders}> <div className={styles.downloaders}>
<Button {downloaders.map((downloader) => (
className={styles.downloaderOption} <Button
theme={ key={downloader}
selectedDownloader === Downloader.Torrent className={styles.downloaderOption}
? "primary" theme={
: "outline" selectedDownloader === downloader ? "primary" : "outline"
} }
onClick={() => setSelectedDownloader(Downloader.Torrent)} onClick={() => setSelectedDownloader(downloader)}
> >
{selectedDownloader === Downloader.Torrent && ( {selectedDownloader === downloader && (
<CheckCircleFillIcon /> <CheckCircleFillIcon className={styles.downloaderIcon} />
)} )}
Torrent {DOWNLOADER_NAME[downloader]}
</Button> </Button>
<Button ))}
className={styles.downloaderOption}
theme={
selectedDownloader === Downloader.RealDebrid
? "primary"
: "outline"
}
onClick={() => setSelectedDownloader(Downloader.RealDebrid)}
disabled={!userPreferences?.realDebridApiToken}
>
{selectedDownloader === Downloader.RealDebrid && (
<CheckCircleFillIcon />
)}
Real-Debrid
</Button>
</div> </div>
</div> </div>

View file

@ -5,8 +5,7 @@ import { Button, CheckboxField, Link, TextField } from "@renderer/components";
import * as styles from "./settings-real-debrid.css"; import * as styles from "./settings-real-debrid.css";
import type { UserPreferences } from "@types"; import type { UserPreferences } from "@types";
import { SPACING_UNIT } from "@renderer/theme.css"; import { SPACING_UNIT } from "@renderer/theme.css";
import { showToast } from "@renderer/features"; import { useToast } from "@renderer/hooks";
import { useAppDispatch } from "@renderer/hooks";
const REAL_DEBRID_API_TOKEN_URL = "https://real-debrid.com/apitoken"; const REAL_DEBRID_API_TOKEN_URL = "https://real-debrid.com/apitoken";
@ -19,12 +18,13 @@ export function SettingsRealDebrid({
userPreferences, userPreferences,
updateUserPreferences, updateUserPreferences,
}: SettingsRealDebridProps) { }: SettingsRealDebridProps) {
const [isLoading, setIsLoading] = useState(false);
const [form, setForm] = useState({ const [form, setForm] = useState({
useRealDebrid: false, useRealDebrid: false,
realDebridApiToken: null as string | null, realDebridApiToken: null as string | null,
}); });
const dispatch = useAppDispatch(); const { showSuccessToast, showErrorToast } = useToast();
const { t } = useTranslation("settings"); const { t } = useTranslation("settings");
@ -40,38 +40,40 @@ export function SettingsRealDebrid({
const handleFormSubmit: React.FormEventHandler<HTMLFormElement> = async ( const handleFormSubmit: React.FormEventHandler<HTMLFormElement> = async (
event event
) => { ) => {
setIsLoading(true);
event.preventDefault(); event.preventDefault();
if (form.useRealDebrid) { try {
const user = await window.electron.authenticateRealDebrid( if (form.useRealDebrid) {
form.realDebridApiToken! const user = await window.electron.authenticateRealDebrid(
); form.realDebridApiToken!
if (user.type === "premium") {
dispatch(
showToast({
message: t("real_debrid_free_account", { username: user.username }),
type: "error",
})
); );
return; if (user.type === "free") {
showErrorToast(
t("real_debrid_free_account_error", { username: user.username })
);
return;
} else {
showSuccessToast(
t("real_debrid_linked_message", { username: user.username })
);
}
} }
updateUserPreferences({
realDebridApiToken: form.useRealDebrid ? form.realDebridApiToken : null,
});
} catch (err) {
showErrorToast(t("real_debrid_invalid_token"));
} finally {
setIsLoading(false);
} }
// dispatch(
// showToast({
// message: t("real_debrid_free_account", { username: "doctorp" }),
// type: "error",
// })
// );
updateUserPreferences({
realDebridApiToken: form.useRealDebrid ? form.realDebridApiToken : null,
});
}; };
const isButtonDisabled = form.useRealDebrid && !form.realDebridApiToken; const isButtonDisabled =
(form.useRealDebrid && !form.realDebridApiToken) || isLoading;
return ( return (
<form className={styles.form} onSubmit={handleFormSubmit}> <form className={styles.form} onSubmit={handleFormSubmit}>
@ -90,7 +92,7 @@ export function SettingsRealDebrid({
{form.useRealDebrid && ( {form.useRealDebrid && (
<TextField <TextField
label="API Private Token" label={t("real_debrid_api_token")}
value={form.realDebridApiToken ?? ""} value={form.realDebridApiToken ?? ""}
type="password" type="password"
onChange={(event) => onChange={(event) =>

View file

@ -8,15 +8,16 @@ import { SettingsRealDebrid } from "./settings-real-debrid";
import { SettingsGeneral } from "./settings-general"; import { SettingsGeneral } from "./settings-general";
import { SettingsBehavior } from "./settings-behavior"; import { SettingsBehavior } from "./settings-behavior";
const categories = ["general", "behavior", "real_debrid"];
export function Settings() { export function Settings() {
const [currentCategory, setCurrentCategory] = useState(categories.at(0)!);
const [userPreferences, setUserPreferences] = const [userPreferences, setUserPreferences] =
useState<UserPreferences | null>(null); useState<UserPreferences | null>(null);
const { t } = useTranslation("settings"); const { t } = useTranslation("settings");
const categories = [t("general"), t("behavior"), "Real-Debrid"];
const [currentCategoryIndex, setCurrentCategoryIndex] = useState(0);
useEffect(() => { useEffect(() => {
window.electron.getUserPreferences().then((userPreferences) => { window.electron.getUserPreferences().then((userPreferences) => {
setUserPreferences(userPreferences); setUserPreferences(userPreferences);
@ -33,7 +34,7 @@ export function Settings() {
}; };
const renderCategory = () => { const renderCategory = () => {
if (currentCategory === "general") { if (currentCategoryIndex === 0) {
return ( return (
<SettingsGeneral <SettingsGeneral
userPreferences={userPreferences} userPreferences={userPreferences}
@ -42,9 +43,9 @@ export function Settings() {
); );
} }
if (currentCategory === "real_debrid") { if (currentCategoryIndex === 1) {
return ( return (
<SettingsRealDebrid <SettingsBehavior
userPreferences={userPreferences} userPreferences={userPreferences}
updateUserPreferences={handleUpdateUserPreferences} updateUserPreferences={handleUpdateUserPreferences}
/> />
@ -52,7 +53,7 @@ export function Settings() {
} }
return ( return (
<SettingsBehavior <SettingsRealDebrid
userPreferences={userPreferences} userPreferences={userPreferences}
updateUserPreferences={handleUpdateUserPreferences} updateUserPreferences={handleUpdateUserPreferences}
/> />
@ -63,18 +64,18 @@ export function Settings() {
<section className={styles.container}> <section className={styles.container}>
<div className={styles.content}> <div className={styles.content}>
<section className={styles.settingsCategories}> <section className={styles.settingsCategories}>
{categories.map((category) => ( {categories.map((category, index) => (
<Button <Button
key={category} key={category}
theme={currentCategory === category ? "primary" : "outline"} theme={currentCategoryIndex === index ? "primary" : "outline"}
onClick={() => setCurrentCategory(category)} onClick={() => setCurrentCategoryIndex(index)}
> >
{t(category)} {category}
</Button> </Button>
))} ))}
</section> </section>
<h2>{t(currentCategory)}</h2> <h2>{categories[currentCategoryIndex]}</h2>
{renderCategory()} {renderCategory()}
</div> </div>
</section> </section>