diff --git a/README.be.md b/README.be.md new file mode 100644 index 00000000..d74e3291 --- /dev/null +++ b/README.be.md @@ -0,0 +1,181 @@ +
+ +
+ +[](https://hydralauncher.site) + +

Hydra Launcher

+ +

+ Hydra - гэта гульнявы лаўнчар з уласным убудаваным кліентам BitTorrent і самастойным scraper`ам для рэпакаў. +

+ +[![build](https://img.shields.io/github/actions/workflow/status/hydralauncher/hydra/build.yml)](https://github.com/hydralauncher/hydra/actions) +[![release](https://img.shields.io/github/package-json/v/hydralauncher/hydra)](https://github.com/hydralauncher/hydra/releases) + +[![pt-BR](https://img.shields.io/badge/lang-pt--BR-green.svg)](README.pt-BR.md) +[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md) +[![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md) +[![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md) +[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md) + +![Hydra Catalogue](./docs/screenshot.png) + +
+ +## Змест + +- [Апісанне](#апісанне) +- [Асаблівасці](#асаблівасці) +- [Усталёўка](#усталёўка) +- [Уклад](#contributing) + - [Далучайцеся да нашага Telegram](#join-our-telegram) + - [Форк і кланаванне рэпазітара](#форк-і-кланаванне-рэпазітара) + - [Спосабы ўнесці свой уклад](#спосабы-ўнесці-свой-уклад) + - [Структура праекту](#структура-праекту) +- [Зборка з зыходнага коду](#зборка-з-зыходнага-коду) + - [Усталёўка Node.js](#усталёўка-nodejs) + - [Усталёўка Yarn](#усталёўка-yarn) + - [Усталёўка залежнасцяў Node](#усталёўка-залежнасцяў-node) + - [Усталёўка Python 3.9](#усталёўка-python-39) + - [Усталёўка залежнасцяў Python](#усталёўка-залежнасцяў-python) +- [Пераменныя асяроддзі](#пераменныя-асяроддзі) +- [Запуск](#запуск) +- [Зборка](#зборка) + - [Зборка кліента BitTorrent](#зборка-кліента-bittorrent) + - [Зборка прыкладання Electron](#зборка-прыкладання-electron) +- [Удзельнікі](#удзельнікі) + +## Апісанне + +**Hydra** - гэта **гульнявы лаўнчар** з уласным убудаваным **кліентам BitTorrent** і **самастойным scraper`ом для рэпакаў**. +
+Лаўнчар напісаны на TypeScript (Electron) і Python, які кіруе сістэмай торэнтаў з дапамогай libtorrent. + +## Асаблівасці + +- Самастойны scraper рэпакаў сярод усіх найбольш надзейных вэб-сайтаў у [Megathread](https://www.reddit.com/r/Piracy/wiki/megathread/) +- Убудаваны кліент BitTorrent +- Інтэграцыя How Long To Beat (HLTB) на старонцы гульні +- Настройка шляху сцягвання +- Паведамленні аб абнаўленні спісу рэпакаў +- Падтрымка Windows і Linux +- Рэгулярныя абнаўленні +- І многае іншае... + +## Усталёўка + +Каб усталяваць, выканайце наступныя крокі: + +1. Спампуйце апошнюю версію Hydra з [старонкі рэлізаў](https://github.com/hydralauncher/hydra/releases/latest). + - Загрузіце толькі .exe, калі жадаеце ўсталяваць Hydra на Windows. + - Загрузіце .deb ці .rpm ці .zip, калі жадаеце ўсталяваць Hydra на Linux (у залежнасці ад вашага дыстрыбутыва Linux). +2. Запусціце спампаваны файл. +3. Атрымлівайце асалоду ад Hydra! + +## Уклад + +### Далучайцеся да нашага Telegram + +Мы засяроджваем нашы абмеркаванні ў нашым канале [Telegram](https://t.me/hydralauncher). + +### Форк і кланаванне рэпазітара + +1. Форкніце рэпазітар [(націсніце тут, каб зрабіць форк зараз)](https://github.com/hydralauncher/hydra/fork) +2. Склануйце свой форкнуты код `git clone https://github.com/ваше_имя_пользователя/hydra` +3. Стварыце новую галіну +4. Адпраўце свае каміты +5. Адпраўце Pull Request + +### Спосабы ўнесці свой уклад + +- Пераклад: Мы хочам, каб Hydra была даступная як мага большай колькасці людзей. Не саромейцеся дапамагаць перакладаць на новыя мовы ці абнаўляць і паляпшаць тыя, якія ўжо даступныя ў Hydra. +- Код: Hydra створаны з выкарыстаннем TypeScript, Electron і крыху Python. Калі хочаце ўнесці свой уклад, далучайцеся да нашага канала [Telegram](https://t.me/hydralauncher)! + +### Структура праекту + +- torrent-client: Мы выкарыстоўваем libtorrent, бібліятэку Python, для кіравання торэнт-загрузкамі. +- src/renderer: Карыстацкі інтэрфейс прыкладання. +- src/main: Увесь асноўны функцыянал тут. + +## Зборка з зыходнага коду + +### Усталёўка Node.js + +Упэўніцеся, што ў вас усталяваны Node.js на вашым кампутары. Калі не, загрузіце і ўсталюйце яго з [nodejs.org](https://nodejs.org/). + +### Усталёўка Yarn + +Yarn - мэнэджэр пакетаў для Node.js. Калі вы яшчэ не ўсталявалі Yarn, зрабіце гэта, прытрымліваючыся інструкцыям на [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/). + +### Усталёўка залежнасцяў Node + +Перайдзіце ў каталог праекта і ўсталюйце залежнасці Node, выкарыстоўваючы Yarn: + +```bash +cd hydra +yarn +``` + +### Усталёўка Python 3.9 + +Упэўніцеся, што ў вас усталяваны Python 3.9 на вашым кампутары. Вы можаце загрузіць і ўсталяваць яго з [python.org](https://www.python.org/downloads/release/python-3919/). + +### Усталёўка залежнасцяў Python + +Усталюйце неабходныя залежнасці Python, выкарыстоўваючы pip: + +```bash +pip install -r requirements.txt +``` + +## Пераменныя асяроддзі + +Вам спатрэбіцца ключ API SteamGridDB, каб атрымаць значкі гульняў пры ўсталёўкі. +Калі вы жадаеце выкарыстоўваць onlinefix у якасці рэпака, вам трэба дадаць вашыя ўліковыя дадзеныя ў файл .env. + +Як толькі вы атрымаеце ключ, вы зможаце скапіяваць або пераназваць файл `.env.example` у `.env` і змясціць у яго `STEAMGRIDDB_API_KEY`, `ONLINEFIX_USERNAME`, `ONLINEFIX_PASSWORD`. + +## Запуск + +Пасля таго як усё наладжана, вы можаце выканаць наступную каманду, каб запусціць працэс Electron і кліента BitTorrent: + +```bash +yarn dev +``` + +## Зборка + +### Зборка кліента BitTorrent + +Збярыце кліент BitTorrent з дапамогай гэтай каманды: + +```bash +python torrent-client/setup.py build +``` + +### Зборка прыкладання Electron + +Збярыце прыкладанне Electron, выкарыстоўваючы гэтую каманду: + +На Windows: + +```bash +yarn build:win +``` + +На Linux: + +```bash +yarn build:linux +``` + +## Удзельнікі + + + + + +## Ліцэнзія + +Hydra ліцэнзавана ў адпаведнасці з [MIT License](LICENSE). diff --git a/README.md b/README.md index 43dc01c5..2162b75b 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ [![en](https://img.shields.io/badge/lang-en-red.svg)](README.md) [![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md) [![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md) +[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md) ![Hydra Catalogue](./docs/screenshot.png) diff --git a/README.pt-BR.md b/README.pt-BR.md index 4adaef9e..b91e4adb 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -17,6 +17,8 @@ [![en](https://img.shields.io/badge/lang-en-red.svg)](README.md) [![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md) [![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md) +[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md) + ![Hydra Catalogue](./docs/screenshot.png) diff --git a/README.ru.md b/README.ru.md index cdc214f0..03ecf379 100644 --- a/README.ru.md +++ b/README.ru.md @@ -17,6 +17,7 @@ [![en](https://img.shields.io/badge/lang-en-red.svg)](README.md) [![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md) [![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md) +[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md) ![Hydra Catalogue](./docs/screenshot.png) diff --git a/README.uk-UA.md b/README.uk-UA.md index edb79c61..99b5ca3c 100644 --- a/README.uk-UA.md +++ b/README.uk-UA.md @@ -17,6 +17,7 @@ [![en](https://img.shields.io/badge/lang-en-red.svg)](README.md) [![ru](https://img.shields.io/badge/lang-ru-yellow.svg)](README.ru.md) [![uk-UA](https://img.shields.io/badge/lang-uk--UA-blue)](README.uk-UA.md) +[![be](https://img.shields.io/badge/lang-be-orange)](README.be.md) ![Hydra Catalogue](./docs/screenshot.png) diff --git a/src/locales/ar/translation.json b/src/locales/ar/translation.json new file mode 100644 index 00000000..d5e3cb83 --- /dev/null +++ b/src/locales/ar/translation.json @@ -0,0 +1,180 @@ +{ + "home": { + "featured": "مميّز", + "recently_added": "مضاف مؤخراً", + "trending": "شائع", + "surprise_me": "فاجئني", + "no_results": "لم يتم العثور على نتائج" + }, + "sidebar": { + "catalogue": "قائمة الألعاب", + "downloads": "التحميلات", + "settings": "إعدادات", + "my_library": "مكتبتي", + "downloading_metadata": "{{title}} (جارٍ تنزيل البيانات الوصفية...)", + "checking_files": "{{title}} ({{percentage}} - جارٍ التحقق من الملفات...)", + "paused": "{{title}} (متوقف)", + "downloading": "{{title}} ({{percentage}} - جارٍ التنزيل...)", + "filter": "بحث في المكتبة", + "follow_us": "تابعنا", + "home": "الرئيسية", + "discord": "انضم إلى الـDiscord الخاص بنا", + "telegram": "انضم إلى قناة Telegram الخاصة بنا", + "x": "تابعنا على X", + "github": "ساهم في مشروعنا على GitHub" + }, + "header": { + "search": "ابحث عن الألعاب", + "home": "الرئيسية", + "catalogue": "قائمة الألعاب", + "downloads": "التحميلات", + "search_results": "نتائج البحث", + "settings": "إعدادات" + }, + "bottom_panel": { + "no_downloads_in_progress": "لا يوجد تنزيلات جارية", + "downloading_metadata": "جارٍ تنزيل بيانات وصف {{title}}", + "checking_files": "جارٍ التحقق من ملفات {{title}}… ({{percentage}} مكتملة)", + "downloading": "جارٍ تنزيل {{title}}… ({{percentage}} مكتملة) - الانتهاء {{eta}} - {{speed}}" + }, + "catalogue": { + "next_page": "الصفحة التالية", + "previous_page": "الصفحة السابقة" + }, + "game_details": { + "open_download_options": "افتح خيارات التنزيل", + "download_options_zero": "لا يوجد خيار تنزيل", + "download_options_one": "{{count}} خيار تنزيل", + "download_options_other": "{{count}} خيار تنزيل", + "updated_at": "تم التحديث {{updated_at}}", + "install": "تثبيت", + "resume": "استئناف", + "pause": "إيقاف", + "cancel": "إلغاء", + "remove": "إزالة", + "remove_from_list": "إزالة", + "space_left_on_disk": "{{space}} متبقية على القرص", + "eta": "الوقت المتبقي {{eta}}", + "downloading_metadata": "جاري تنزيل البيانات الوصفية...", + "checking_files": "جاري التحقق من الملفات...", + "filter": "تصفية حزم إعادة التجميع", + "requirements": "متطلبات النظام", + "minimum": "الحد الأدنى", + "recommended": "موصى به", + "no_minimum_requirements": "{{title}} لا تتوفر معلومات عن الحد الأدنى للمتطلبات", + "no_recommended_requirements": "{{title}} لا تتوفر معلومات عن المتطلبات الموصى بها", + "paused_progress": "{{progress}} (متوقف)", + "release_date": "تم الإصدار في {{date}}", + "publisher": "نشر بواسطة {{publisher}}", + "copy_link_to_clipboard": "نسخ الرابط", + "copied_link_to_clipboard": "تم نسخ الرابط", + "hours": "ساعات", + "minutes": "دقائق", + "amount_hours": "{{amount}} ساعات", + "amount_minutes": "{{amount}} دقائق", + "accuracy": "دقة {{accuracy}}%", + "add_to_library": "إضافة إلى المكتبة", + "remove_from_library": "إزالة من المكتبة", + "no_downloads": "لا توجد تنزيلات متاحة", + "play_time": "تم اللعب لمدة {{amount}}", + "last_time_played": "آخر مرة لعبت {{period}}", + "not_played_yet": "لم تلعب {{title}} بعد", + "next_suggestion": "الاقتراح التالي", + "play": "لعب", + "deleting": "جاري حذف المثبت...", + "close": "إغلاق", + "playing_now": "قيد التشغيل الآن", + "change": "تغيير", + "repacks_modal_description": "اختر الحزمة التي تريد تنزيلها", + "select_folder_hint": "لتغيير المجلد الافتراضي، انتقل إلى الإعدادات", + "download_now": "تنزيل الآن", + "installation_instructions": "إرشادات التثبيت", + "installation_instructions_description": "هناك خطوات إضافية مطلوبة لتثبيت هذه اللعبة", + "online_fix_instruction": "تتطلب ألعاب OnlineFix كلمة مرور لاستخراجها. عند الحاجة، استخدم كلمة المرور التالية:", + "dodi_installation_instruction": "عند فتح مثبت DODI، اضغط على مفتاح التشغيل لأعلى <0 /> لبدء عملية التثبيت:", + "dont_show_it_again": "لا تعرضها مرة أخرى", + "copy_to_clipboard": "نسخ", + "copied_to_clipboard": "تم النسخ", + "got_it": "حسنأ", + "no_shop_details": "لم يتم استرداد تفاصيل المتجر.", + "download_options": "خيارات التنزيل", + "download_path": "مسار التنزيل", + "previous_screenshot": "لقطة الشاشة السابقة", + "next_screenshot": "لقطة الشاشة التالية", + "screenshot": "لقطة شاشة {{number}}", + "open_screenshot": "افتح لقطة الشاشة {{number}}" + }, + "activation": { + "title": "تفعيل هايدرا", + "installation_id": "معرف التثبيت:", + "enter_activation_code": "أدخل رمز التفعيل الخاص بك", + "message": "إذا كنت لا تعرف أين تسأل عن هذا ، فلا يجب أن يكون لديك هذا.", + "activate": "تفعيل", + "loading": "جار التحميل…" + }, + "downloads": { + "resume": "استئناف", + "pause": "إيقاف مؤقت", + "eta": "الوقت المتبقي {{eta}}", + "paused": "متوقفة مؤقتًا", + "verifying": "جار التحقق…", + "completed_at": "اكتمل في {{date}}", + "completed": "اكتمل", + "cancelled": "ملغي", + "download_again": "تحميل مرة أخرى", + "cancel": "إلغاء", + "filter": "تصفية الألعاب التي تم تنزيلها", + "remove": "إزالة", + "downloading_metadata": "جار تنزيل البيانات الوصفية…", + "checking_files": "جار التحقق من الملفات…", + "starting_download": "يبدأ التنزيل…", + "deleting": "جار حذف المثبت…", + "delete": "إزالة المثبت", + "remove_from_list": "إزالة", + "delete_modal_title": "هل أنت متأكد؟", + "delete_modal_description": "سيؤدي هذا إلى إزالة جميع ملفات التثبيت من جهاز الكمبيوتر الخاص بك", + "install": "تثبيت", + "real_debrid": "Real Debrid", + "torrent": "تورنت" + }, + "settings": { + "downloads_path": "مسار التنزيلات", + "change": "تحديث", + "notifications": "الإشعارات", + "enable_download_notifications": "عند اكتمال التنزيل", + "enable_repack_list_notifications": "عند إضافة حزمة جديدة", + "telemetry": "القياس عن بعد", + "telemetry_description": "تفعيل إحصائيات الاستخدام مجهولة المصدر", + "real_debrid_api_token_label": "رمز واجهة برمجة التطبيقات (API) لـReal Debrid ", + "quit_app_instead_hiding": "إنهاء هايدرا بدلاً من التصغير الى شريط الحالة", + "launch_with_system": "تشغيل هايدرا عند بدء تشغيل النظام", + "general": "عام", + "behavior": "السلوك", + "enable_real_debrid": "تفعيل Real Debrid ", + "real_debrid": "Real Debrid", + "real_debrid_api_token_hint": "يمكنك الحصول على مفتاح API الخاص بك هنا.", + "save_changes": "حفظ التغييرات" + }, + "notifications": { + "download_complete": "تم التحميل", + "game_ready_to_install": "{{title}} جاهزة للتثبيت", + "repack_list_updated": "قائمة التجميعات المحدثة", + "repack_count_one": "{{count}} حزمة مضافة", + "repack_count_other": "{{count}} حزم مُضافة" + }, + "system_tray": { + "open": "فتح هايدرا", + "quit": "خروج" + }, + "game_card": { + "no_downloads": "لا توجد تنزيلات متاحة" + }, + "binary_not_found_modal": { + "title": "البرامج غير مثبتة", + "description": "لم يتم العثور على ملفات Wine أو Lutris التنفيذية على نظامك", + "instructions": "تحقق من الطريقة الصحيحة لتثبيت أي منها على توزيعة Linux الخاصة بك حتى تعمل اللعبة بشكل طبيعي" + }, + "modal": { + "close": "زر إغلاق" + } +} \ No newline at end of file diff --git a/src/locales/be/translation.json b/src/locales/be/translation.json index c55ec394..0053795a 100644 --- a/src/locales/be/translation.json +++ b/src/locales/be/translation.json @@ -3,18 +3,18 @@ "featured": "Рэкамэндаванае", "recently_added": "Нядаўна дададзенае", "trending": "Актуальнае", - "surprise_me": "Зьдзіві мяне", + "surprise_me": "Здзіві мяне", "no_results": "Няма вынікаў" }, "sidebar": { - "catalogue": "Каталёг", - "downloads": "Сьцягваньні", + "catalogue": "Каталог", + "downloads": "Сцягванні", "settings": "Налады", "my_library": "Мая бібліятэка", - "downloading_metadata": "{{title}} (Сьцягваньне мэтаданых…)", + "downloading_metadata": "{{title}} (Сцягванне мэтаданых…)", "checking_files": "{{title}} ({{percentage}} - Праверка файлаў…)", "paused": "{{title}} (Спынена)", - "downloading": "{{title}} ({{percentage}} - Сьцягваньне…)", + "downloading": "{{title}} ({{percentage}} - Сцягванне…)", "filter": "Фільтар бібліятэкі", "follow_us": "Падпісвайцеся на нас", "home": "Галоўная", @@ -26,26 +26,26 @@ "header": { "search": "Пошук", "home": "Галоўная", - "catalogue": "Каталёг", - "downloads": "Сьцягваньні", + "catalogue": "Каталог", + "downloads": "Сцягванні", "search_results": "Вынікі пошуку", "settings": "Налады" }, "bottom_panel": { - "no_downloads_in_progress": "Няма актыўных сьцягваньняў", - "downloading_metadata": "Сьцягваньне мэтаданых {{title}}…", + "no_downloads_in_progress": "Няма актыўных сцягванняў", + "downloading_metadata": "Сцягванне мэтаданых {{title}}…", "checking_files": "Праверка файлаў {{title}}… ({{percentage}} скончана)", - "downloading": "Сьцягваньне {{title}}… ({{percentage}} скончана) - Заканчэньне {{eta}} - {{speed}}" + "downloading": "Сцягванне {{title}}… ({{percentage}} скончана) - Канчатак {{eta}} - {{speed}}" }, "catalogue": { "next_page": "Наступная старонка", "previous_page": "Папярэдняя старонка" }, "game_details": { - "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": "Працягнуць", @@ -54,45 +54,45 @@ "remove": "Выдаліць", "remove_from_list": "Выдаліць", "space_left_on_disk": "{{space}} засталося на дыску", - "eta": "Заканчэньне {{eta}}", - "downloading_metadata": "Сьцягваньне мэтаданых…", + "eta": "Канчатак {{eta}}", + "downloading_metadata": "Сцягванне мэтаданых…", "checking_files": "Праверка файлаў…", "filter": "Фільтар рэпакаў", - "requirements": "Сыстэмныя патрабаваньні", + "requirements": "Сістэмныя патрэбаванни", "minimum": "Мінімальныя", - "recommended": "Рэкамэндуемыя", - "no_minimum_requirements": "{{title}} ня ўтрымлівае інфармацыі пра мінімальныя патрабаваньні", - "no_recommended_requirements": "{{title}} ня ўтрымлівае інфармацыі пра рэкамэндуемыя патрабаваньні", + "recommended": "Рэкамендуемыя", + "no_minimum_requirements": "{{title}} ня ўтрымлівае інфармацыі пра мінімальныя патрабаванні", + "no_recommended_requirements": "{{title}} ня ўтрымлівае інфармацыі пра рэкамендуемыя патрабаванні", "paused_progress": "{{progress}} (Спынена)", "release_date": "Выпушчана {{date}}", "publisher": "Выдана {{publisher}}", "copy_link_to_clipboard": "Скапіяваць спасылку", "copied_link_to_clipboard": "Спасылка скапіявана", - "hours": "гадзінаў", - "minutes": "хвілінаў", - "amount_hours": "{{amount}} гадзінаў", - "amount_minutes": "{{amount}} хвілінаў", - "accuracy": "{{accuracy}}% дакладнасьць", + "hours": "гадзін", + "minutes": "хвілін", + "amount_hours": "{{amount}} гадзін", + "amount_minutes": "{{amount}} хвілін", + "accuracy": "{{accuracy}}% дакладнасць", "add_to_library": "Дадаць да бібліятэкі", - "remove_from_library": "Выдаліць зь бібліятэкі", - "no_downloads": "Няма даступных сьцягваньняў", + "remove_from_library": "Выдаліць з бібліятэкі", + "no_downloads": "Няма даступных сцягванняў", "play_time": "Гулялі {{amount}}", "last_time_played": "Апошні раз гулялі {{period}}", "not_played_yet": "Вы яшчэ не гулялі ў {{title}}", "next_suggestion": "Наступная прапанова", "play": "Гуляць", - "deleting": "Выдаленьне ўсталёўшчыка…", + "deleting": "Выдаленне ўсталёўшчыка…", "close": "Закрыць", "playing_now": "Зараз гуляе", - "change": "Зьмяніць", - "repacks_modal_description": "Абярыце рэпак, які хочаце сьцягнуць", - "downloads_path": "Шлях сьцягваньня", - "select_folder_hint": "Каб зьмяніць папку па змоўчаньні, адкрыйце", - "download_now": "Сьцягнуць зараз", + "change": "Змяніць", + "repacks_modal_description": "Абярыце рэпак, які хочаце сцягнуць", + "downloads_path": "Шлях сцягвання", + "select_folder_hint": "Каб змяніць папку па змоўчанні, адкрыйце", + "download_now": "Сцягнуць зараз", "installation_instructions": "Інструкцыя ўсталёўкі", "installation_instructions_description": "Усталёўка гэтай гульні патрабуе дадатковых крокаў", - "online_fix_instruction": "Гульні з OnlineFix патрабуюць пароль для выманьня. Калі неабходна, выкарыстоўвайце наступны пароль:", - "dodi_installation_instruction": "Калі вы адкрыеце ўсталёўшчык DODI, націсьніце на клявіятуры клявішу 'уверх' <0 />, каб пачаць працэс усталёўкі:", + "online_fix_instruction": "Гульні з OnlineFix патрабуюць пароль для вымання. Калі неабходна, выкарыстоўвайце наступны пароль:", + "dodi_installation_instruction": "Калі вы адкрыеце ўсталёўшчык DODI, націсніце на клявіятуры клявішу 'уверх' <0 />, каб пачаць працэс усталёўкі:", "dont_show_it_again": "Не паказваць зноў", "copy_to_clipboard": "Капіяваць", "copied_to_clipboard": "Скапіявана", @@ -102,27 +102,27 @@ "title": "Актываваць Hydra", "installation_id": "ID усталёўкі:", "enter_activation_code": "Увядзіце ваш код актывацыі", - "message": "Калі вы ня ведаеце, дзе яго атрымаць, то ня мусіце мець гэта.", + "message": "Калі вы ня ведаеце, дзе яго атрымаць, то не мусіць гэтага рабіць.", "activate": "Актываваць", "loading": "Загрузка…" }, "downloads": { "resume": "Працягнуць", "pause": "Спыніць", - "eta": "Заканчэньне {{eta}}", + "eta": "Канчатак {{eta}}", "paused": "Спынена", "verifying": "Праверка…", "completed_at": "Скончана а {{date}}", "completed": "Скончана", "cancelled": "Скасавана", - "download_again": "Сьцягнуць зноў", + "download_again": "Сцягнуць зноў", "cancel": "Скасаваць", - "filter": "Фільтар сьцягнутых гульняў", + "filter": "Фільтар сцягнутых гульняў", "remove": "Выдаліць", - "downloading_metadata": "Сьцягваньне мэтаданых…", + "downloading_metadata": "Сцягванне мэтаданых…", "checking_files": "Праверка файлаў…", - "starting_download": "Пачатак сьцягваньня…", - "deleting": "Выдаленьне ўсталёўшчыка…", + "starting_download": "Пачатак сцягвання…", + "deleting": "Выдаленне ўсталёўшчыка…", "delete": "Выдаліць усталёўшчык", "remove_from_list": "Выдаліць", "delete_modal_title": "Вы ўпэўнены?", @@ -130,21 +130,21 @@ "install": "Усталяваць" }, "settings": { - "downloads_path": "Шлях сьцягваньня", - "change": "Зьмяніць шлях", - "notifications": "Апавяшчэньні", - "enable_download_notifications": "Па сканчэньні сьцягваньні", - "enable_repack_list_notifications": "Пры даданьні новага рэпака", - "telemetry": "Тэлемэтрыя", - "telemetry_description": "Уключыць ананімную статыстыку выкарыстаньня", + "downloads_path": "Шлях сцягвання", + "change": "Змяніць шлях", + "notifications": "Апавяшчэнні", + "enable_download_notifications": "Па сканчэнні сцягванні", + "enable_repack_list_notifications": "Пры даданні новага рэпака", + "telemetry": "Тэлеметрыя", + "telemetry_description": "Уключыць ананімную статыстыку выкарыстання", "behavior": "Паводзіны", "quit_app_instead_hiding": "Закрываць праграму замест таго, каб хаваць яе ў трэй", "launch_with_system": "Запускаць праграму пры запуску сыстэмы" }, "notifications": { - "download_complete": "Сьцягваньне скончана", + "download_complete": "Сцягванне скончана", "game_ready_to_install": "{{title}} гатова да ўсталёўкі", - "repack_list_updated": "Сьпіс рэпакаў абноўлены", + "repack_list_updated": "Спіс рэпакаў абноўлены", "repack_count_one": "{{count}} рэпак дададзены", "repack_count_other": "{{count}} рэпакаў дададзена" }, @@ -153,14 +153,14 @@ "quit": "Выйсьці" }, "game_card": { - "no_downloads": "Няма даступных сьцягваньняў" + "no_downloads": "Няма даступных сцягванняў" }, "binary_not_found_modal": { "title": "Праграмы не ўсталяваныя", "description": "Выканальныя файлы Wine ці Lutris ня знойдзеныя ў вашай сістэме", - "instructions": "Даведайцеся, як правільна ўсталяваць любы зь іх на вашым дыстрыбутыве Linux, каб гульня магла працаваць нармальна" + "instructions": "Даведайцеся, як правільна ўсталяваць любы з іх на вашым дыстрыбутыве Linux, каб гульня магла працаваць нармальна" }, "modal": { - "close": "Кнопка закрыцьця" + "close": "Кнопка закрыцця" } } diff --git a/src/locales/index.ts b/src/locales/index.ts index ff2f9935..f863c8b3 100644 --- a/src/locales/index.ts +++ b/src/locales/index.ts @@ -10,6 +10,9 @@ export { default as ru } from "./ru/translation.json"; export { default as tr } from "./tr/translation.json"; export { default as be } from "./be/translation.json"; export { default as uk } from "./uk/translation.json"; +export { default as zh } from "./zh/translation.json"; export { default as id } from "./id/translation.json"; +export { default as ko } from "./ko/translation.json"; export { default as da } from "./da/translation.json"; +export { default as ar } from "./ar/translation.json"; export { default as fa } from "./fa/translation.json"; diff --git a/src/locales/ko/translation.json b/src/locales/ko/translation.json new file mode 100644 index 00000000..bdf3b7e8 --- /dev/null +++ b/src/locales/ko/translation.json @@ -0,0 +1,174 @@ +{ + "home": { + "featured": "추천", + "recently_added": "최근 추가됨", + "trending": "인기", + "surprise_me": "무작위 추천", + "no_results": "결과 없음" + }, + "sidebar": { + "catalogue": "카탈로그", + "downloads": "다운로드", + "settings": "설정", + "my_library": "내 라이브러리", + "downloading_metadata": "{{title}} (메타데이터 다운로드 중…)", + "checking_files": "{{title}} ({{percentage}} - 파일 검사 중…)", + "paused": "{{title}} (일시 정지됨)", + "downloading": "{{title}} ({{percentage}} - 다운로드 중…)", + "filter": "필터 라이브러리", + "follow_us": "공식 SNS", + "home": "홈", + "discord": "공식 디스코드", + "telegram": "공식 텔레그램", + "x": "공식 X (구 트위터)", + "github": "GitHub에서 기여하기" + }, + "header": { + "search": "게임 검색하기", + "home": "홈", + "catalogue": "카탈로그", + "downloads": "다운로드", + "search_results": "검색 결과", + "settings": "설정" + }, + "bottom_panel": { + "no_downloads_in_progress": "진행중인 다운로드 없음", + "downloading_metadata": "{{title}}의 메타데이터를 다운로드 중…", + "checking_files": "{{title}}의 파일들을 검사 중… ({{percentage}} 완료)", + "downloading": "{{title}}의 파일들을 다운로드 중… ({{percentage}} 완료) - 완료까지 {{eta}} - {{speed}}" + }, + "catalogue": { + "next_page": "다음 페이지", + "previous_page": "이전 페이지" + }, + "game_details": { + "open_download_options": "다운로드 선택지 열기", + "download_options_zero": "다운로드 선택지 없음", + "download_options_one": "{{count}}개의 다운로드 선택지가 존재함", + "download_options_other": "{{count}}개의 다운로드 선택지들이 존재함", + "updated_at": "{{updated_at}}에 업데이트 됨", + "install": "설치", + "resume": "재개", + "pause": "일시 정지", + "cancel": "취소", + "remove": "제거", + "remove_from_list": "목록에서 제거", + "space_left_on_disk": "여유 저장 용량 {{space}} 남음", + "eta": "왼료까지 {{eta}}", + "downloading_metadata": "메타데이터 다운로드 중…", + "checking_files": "파일 검사 중…", + "filter": "리팩들을 다음과 같이 걸러내기", + "requirements": "시스템 사양", + "minimum": "최저 사양", + "recommended": "권장 사양", + "no_minimum_requirements": "{{title}}의 최저 사양을 제공받지 못 함", + "no_recommended_requirements": "{{title}}의 권장 사양을 제공받지 못 함", + "paused_progress": "{{progress}} (일시 정지)", + "release_date": "{{date}}에 발매됨", + "publisher": "{{publisher}} 배급", + "copy_link_to_clipboard": "링크 복사하기", + "copied_link_to_clipboard": "링크 복사됨", + "hours": "시", + "minutes": "분", + "amount_hours": "{{amount}} 시간", + "amount_minutes": "{{amount}} 분", + "accuracy": "정확도 {{accuracy}}%", + "add_to_library": "라이브러리에 추가", + "remove_from_library": "라이브러리에서 제거", + "no_downloads": "가능한 다운로드 없음", + "play_time": "{{amount}}동안 플레이 함", + "last_time_played": "마지막 플레이 날짜 {{period}}", + "not_played_yet": "{{title}}의 플레이 기록 아직 없음", + "next_suggestion": "다음 추천", + "play": "실행", + "deleting": "인스톨러 삭제 중…", + "close": "닫기", + "playing_now": "현재 플레이 중", + "change": "바꾸기", + "repacks_modal_description": "다운로드 할 리팩을 선택해 주세요", + "downloads_path": "다운로드 경로", + "select_folder_hint": "기본 폴더를 바꾸려면 <0>설정으로 가세요", + "download_now": "지금 다운로드", + "installation_instructions": "설치 방법", + "installation_instructions_description": "이 게임을 설치하기 위해서는 추가적인 단계가 필요합니다", + "online_fix_instruction": "OnlineFix 게임들은 추출 시 암호가 필요합니다. 비밀번호를 물을 때 다음을 암호로 사용하기:", + "dodi_installation_instruction": "DODI 인스톨러를 열었다면 키보드의 위 방향키를 눌러 설치를 시작하세요:", + "dont_show_it_again": "다시 보지 않기", + "copy_to_clipboard": "복사하기", + "copied_to_clipboard": "복사됨", + "got_it": "알았습니다" + }, + "activation": { + "title": "Hydra 실행", + "installation_id": "설치 ID:", + "enter_activation_code": "활성 코드를 입력하세요", + "message": "이것을 어디에서 구해야 할 지 모르겠다면 애초에 갖고 있으면 안 됩니다.", + "activate": "활성화", + "loading": "불러오는중..." + }, + "downloads": { + "resume": "재개", + "pause": "일시 정지", + "eta": "완료까지 {{eta}}", + "paused": "일시 정지됨", + "verifying": "검증중…", + "completed_at": "{{date}}에 완료됨", + "completed": "완료됨", + "cancelled": "취소됨", + "download_again": "다시 다운로드 하기", + "cancel": "취소", + "filter": "다운로드 된 게임들을 정렬하기", + "remove": "제거하기", + "downloading_metadata": "메타데이터 다운로드 중…", + "checking_files": "파일 검사 중…", + "starting_download": "다운로드 개시 중…", + "deleting": "인스톨러 삭제 중…", + "delete": "인스톨러 삭제하기", + "remove_from_list": "제거하기", + "delete_modal_title": "정말로 하시겠습니까?", + "delete_modal_description": "이 기기의 모든 설치 파일들이 제거될 것입니다", + "install": "설치", + "real_debrid": "Real Debrid", + "torrent": "Torrent" + }, + "settings": { + "downloads_path": "다운로드 경로", + "change": "업데이트", + "notifications": "알림", + "enable_download_notifications": "다운로드가 완료되었을 때", + "enable_repack_list_notifications": "새 리팩이 추가되었을 때", + "telemetry": "자동 데이터 수집", + "telemetry_description": "익명 사용 통계를 활성화", + "real_debrid_api_token_description": "Real Debrid API 토큰", + "quit_app_instead_hiding": "작업 표시줄 트레이로 최소화하는 대신 Hydra를 종료", + "launch_with_system": "컴퓨터가 시작되었을 때 Hydra 실행", + "general": "일반", + "behavior": "행동", + "enable_real_debrid": "Real Debrid 활성화", + "real_debrid": "Real Debrid", + "real_debrid_api_token_hint": "API 키를 <0>이곳에서 얻으세요.", + "save_changes": "변경 사항 저장" + }, + "notifications": { + "download_complete": "다운로드 완료", + "game_ready_to_install": "이제 {{title}} 설치할 수 있습니다", + "repack_list_updated": "리팩 목록 갱신됨", + "repack_count_one": "{{count}}개의 리팩이 추가됨", + "repack_count_other": "{{count}}개의 리팩들이 추가됨" + }, + "system_tray": { + "open": "Hydra 열기", + "quit": "닫기" + }, + "game_card": { + "no_downloads": "가능한 다운로드 없음" + }, + "binary_not_found_modal": { + "title": "프로그램이 설치되지 않음", + "description": "Wine 또는 Lutris 실행 파일이 시스템에서 발견되지 않았습니다", + "instructions": "게임이 정상적으로 실행될 수 있게 당신의 리눅스 배포판에 Wine 또는 Lutris를 올바르게 설치해 주세요" + }, + "modal": { + "close": "닫기 버튼" + } +} diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index c2c30cd5..49af7e58 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -86,8 +86,7 @@ "playing_now": "Запущено", "change": "Изменить", "repacks_modal_description": "Выберите репак для загрузки", - "downloads_path": "Путь загрузок", - "select_folder_hint": "Изменить папку по умолчанию", + "select_folder_hint": "Чтобы изменить папку загрузок по умолчанию, откройте <0>Настройки", "download_now": "Загрузить сейчас", "installation_instructions": "Инструкция по установке", "installation_instructions_description": "Для установки этой игры требуются дополнительные шаги", @@ -96,7 +95,14 @@ "dont_show_it_again": "Не показывать снова", "copy_to_clipboard": "Копировать", "copied_to_clipboard": "Скопировано", - "got_it": "Понятно" + "got_it": "Понятно", + "no_shop_details": "Не удалось получить описание", + "download_options": "Вариантов загрузки", + "download_path": "Путь для загрузок", + "previous_screenshot": "Предыдущий скриншот", + "next_screenshot": "Следующий скриншот", + "screenshot": "Скриншот {{number}}", + "open_screenshot": "Открыть скриншот {{number}}" }, "activation": { "title": "Активировать Hydra", @@ -127,7 +133,9 @@ "remove_from_list": "Удалить", "delete_modal_title": "Вы уверены?", "delete_modal_description": "Это удалит все установщики с вашего компьютера", - "install": "Установить" + "install": "Установить", + "real_debrid": "Real Debrid", + "torrent": "Torrent" }, "settings": { "downloads_path": "Путь загрузок", @@ -137,9 +145,15 @@ "enable_repack_list_notifications": "При добавлении нового репака", "telemetry": "Телеметрия", "telemetry_description": "Отправлять анонимную статистику использования", - "behavior": "Поведение", + "real_debrid_api_token_label": "Real Debrid API-токен", "quit_app_instead_hiding": "Закрывать Hydra вместо того, чтобы сворачивать его в трей", - "launch_with_system": "Запуск Hydra вместе с системой" + "launch_with_system": "Запуск Hydra вместе с системой", + "general": "Основные", + "behavior": "Поведение", + "enable_real_debrid": "Включить Real Debrid", + "real_debrid": "Real Debrid", + "real_debrid_api_token_hint": "API ключ можно получить <0>здесь/0>.", + "save_changes": "Сохранить изменения" }, "notifications": { "download_complete": "Загрузка завершена", diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json new file mode 100644 index 00000000..90fac513 --- /dev/null +++ b/src/locales/zh/translation.json @@ -0,0 +1,178 @@ +{ + "home": { + "featured": "特色推荐", + "recently_added": "最近添加", + "trending": "最近热门", + "surprise_me": "向我推荐", + "no_results": "没有找到结果" + }, + "sidebar": { + "catalogue": "游戏目录", + "downloads": "下载中心", + "settings": "设置", + "my_library": "我的游戏库", + "downloading_metadata": "{{title}} (正在下载元数据…)", + "checking_files": "{{title}} ({{percentage}} - 正在检查文件…)", + "paused": "{{title}} (已暂停)", + "downloading": "{{title}} ({{percentage}} - 正在下载…)", + "filter": "筛选游戏库", + "follow_us": "关注我们", + "home": "主页", + "discord": "加入我们的Discord", + "telegram": "加入我们的Telegram", + "x": "在X上关注我们", + "github": "在GitHub上贡献" + }, + "header": { + "search": "搜索", + "home": "主页", + "catalogue": "游戏目录", + "downloads": "下载中心", + "search_results": "搜索结果", + "settings": "设置" + }, + "bottom_panel": { + "no_downloads_in_progress": "没有正在进行的下载", + "downloading_metadata": "正在下载{{title}}的元数据…", + "checking_files": "正在检查{{title}}的文件… ({{percentage}}完成)", + "downloading": "正在下载{{title}}… ({{percentage}}完成) - 剩余时间{{eta}} - 速度{{speed}}" + }, + "catalogue": { + "next_page": "下一页", + "previous_page": "上一页" + }, + "game_details": { + "open_download_options": "打开下载选项", + "download_options_zero": "无下载选项", + "download_options_one": "{{count}}个下载选项", + "download_options_other": "{{count}}个下载选项", + "updated_at": "更新于{{updated_at}}", + "install": "安装", + "resume": "恢复", + "pause": "暂停", + "cancel": "取消", + "remove": "移除", + "remove_from_list": "从列表中移除", + "space_left_on_disk": "磁盘剩余空间{{space}}", + "eta": "预计完成时间{{eta}}", + "downloading_metadata": "正在下载元数据…", + "checking_files": "正在检查文件…", + "filter": "筛选重打包", + "requirements": "配置要求", + "minimum": "最低要求", + "recommended": "推荐要求", + "no_minimum_requirements": "{{title}}没有提供最低要求信息", + "no_recommended_requirements": "{{title}}没有提供推荐要求信息", + "paused_progress": "{{progress}} (已暂停)", + "release_date": "发布于{{date}}", + "publisher": "发行商{{publisher}}", + "copy_link_to_clipboard": "复制链接", + "copied_link_to_clipboard": "链接已复制", + "hours": "小时", + "minutes": "分钟", + "amount_hours": "{{amount}}小时", + "amount_minutes": "{{amount}}分钟", + "accuracy": "准确度{{accuracy}}%", + "add_to_library": "添加到游戏库", + "remove_from_library": "从游戏库移除", + "no_downloads": "没有可用的下载", + "play_time": "游戏时长{{amount}}", + "last_time_played": "上次玩{{period}}", + "not_played_yet": "您还没有玩过{{title}}", + "next_suggestion": "下一个建议", + "play": "开始游戏", + "deleting": "正在删除安装程序…", + "close": "关闭", + "playing_now": "正在游戏中", + "change": "更改", + "repacks_modal_description": "选择您想要下载的重打包", + "downloads_path": "下载路径", + "select_folder_hint": "要更改默认文件夹,请访问", + "settings": "设置", + "download_now": "立即下载", + "installation_instructions": "安装说明", + "installation_instructions_description": "安装这个游戏需要额外的步骤", + "online_fix_instruction": "OnlineFix游戏需要密码才能解压。需要时,使用以下密码:", + "dodi_installation_instruction": "打开DODI安装程序时,按键盘上的键<0 />开始安装过程:", + "dont_show_it_again": "不再显示", + "copied_to_clipboard": "已复制到剪贴板", + "got_it": "我已知晓", + "previous_screenshot": "上一张截图", + "next_screenshot": "下一张截图", + "screenshot": "截图 {{number}}", + "open_screenshot": "打开截图 {{number}}" + }, + "activation": { + "title": "激活 Hydra", + "installation_id": "安装ID:", + "enter_activation_code": "输入您的激活码", + "message": "如果你不知道在哪里请求这个,那么您将无法继续。", + "activate": "激活", + "loading": "加载中…" + }, + "downloads": { + "resume": "继续", + "pause": "暂停", + "eta": "预计完成时间{{eta}}", + "paused": "已暂停", + "verifying": "正在验证…", + "completed_at": "完成于{{date}}", + "completed": "已完成", + "cancelled": "已取消", + "download_again": "再次下载", + "cancel": "取消", + "filter": "筛选已下载游戏", + "remove": "移除", + "downloading_metadata": "正在下载元数据…", + "checking_files": "正在检查文件…", + "starting_download": "开始下载…", + "deleting": "正在删除安装程序…", + "delete": "移除安装程序", + "remove_from_list": "移除", + "delete_modal_title": "您确定吗?", + "delete_modal_description": "这将从您的电脑上移除所有的安装文件", + "install": "安装", + "real_debrid": "Real Debrid", + "torrent": "种子" + }, + "settings": { + "downloads_path": "下载路径", + "change": "更改", + "notifications": "通知", + "enable_download_notifications": "下载完成时", + "enable_repack_list_notifications": "添加新重打包时", + "telemetry": "遥测", + "telemetry_description": "启用匿名使用统计", + "real_debrid_api_token_description": "Real Debrid API密钥", + "behavior": "行为", + "general": "常规", + "quit_app_instead_hiding": "关闭应用程序而不是最小化到托盘", + "launch_with_system": "随系统启动时运行应用程序", + "enable_real_debrid": "启用 Real Debrid", + "real_debrid": "Real Debrid", + "real_debrid_api_token_hint": "您可以将API密钥填入<0>这里.", + "save_changes": "保存更改" + }, + "notifications": { + "download_complete": "下载完成", + "game_ready_to_install": "{{title}}已准备好安装", + "repack_list_updated": "重打包列表已更新", + "repack_count_one": "已添加{{count}}个重打包", + "repack_count_other": "已添加{{count}}个重打包" + }, + "system_tray": { + "open": "打开Hydra", + "quit": "退出" + }, + "game_card": { + "no_downloads": "没有可用的下载" + }, + "binary_not_found_modal": { + "title": "程序未安装", + "description": "在您的系统上未找到Wine或Lutris的可执行文件", + "instructions": "检查在您的Linux发行版上正确安装它们的方法,以便游戏可以正常运行" + }, + "modal": { + "close": "关闭按钮" + } +} diff --git a/src/renderer/src/helpers.ts b/src/renderer/src/helpers.ts index b51c9927..8fa9b943 100644 --- a/src/renderer/src/helpers.ts +++ b/src/renderer/src/helpers.ts @@ -27,6 +27,7 @@ export const getSteamLanguage = (language: string) => { if (language.startsWith("it")) return "italian"; if (language.startsWith("hu")) return "hungarian"; if (language.startsWith("pl")) return "polish"; + if (language.startsWith("zh")) return "chinese"; if (language.startsWith("da")) return "danish"; return "english"; diff --git a/src/renderer/src/hooks/use-date.ts b/src/renderer/src/hooks/use-date.ts index bce73186..f5e8204e 100644 --- a/src/renderer/src/hooks/use-date.ts +++ b/src/renderer/src/hooks/use-date.ts @@ -11,6 +11,7 @@ import { ru, it, be, + zhCN, da, } from "date-fns/locale"; import { useTranslation } from "react-i18next"; @@ -30,6 +31,7 @@ export function useDate() { if (language.startsWith("ru")) return ru; if (language.startsWith("it")) return it; if (language.startsWith("be")) return be; + if (language.startsWith("zh")) return zhCN; if (language.startsWith("da")) return da; return enUS;