Compare commits

..

27 Commits

Author SHA1 Message Date
Nate
ee0e314b29 css fix 2025-01-18 18:45:54 -03:00
Nate
d50bb137e6 fixed everything 2025-01-18 15:17:52 -03:00
Nate
1bbf3b27bf added "as vars;" + vars.$ 2025-01-18 14:13:57 -03:00
Nate
3c9d036efd @import to @use 2025-01-18 13:48:00 -03:00
Nate
e97a6fe51a font syntax fix 2025-01-18 13:14:59 -03:00
Eight
ead094de01 Merge branch 'main' into feature/migration-to-scss 2025-01-18 13:08:30 -03:00
Nate
855a646d23 syntax fix 2025-01-17 22:42:14 -03:00
Nate
8192e5d8f1 full migration to scss 2025-01-17 20:16:57 -03:00
Nate
2bd4b69926 full migration to scss 2025-01-17 20:14:54 -03:00
Nate
62c6071395 full migration to scss 2025-01-17 20:03:20 -03:00
Nate
d1750fff59 full migration to scss 2025-01-17 20:00:00 -03:00
Nate
138244d5aa full migration to scss 2025-01-17 19:58:16 -03:00
Nate
d038398750 full migration to scss 2025-01-17 19:43:41 -03:00
Nate
b0eb7c16cd migration to scss 2025-01-17 19:26:27 -03:00
Nate
691dba26af migration to scss
all tsx files adjusted
added root vars on _variables.scss
2025-01-17 18:52:23 -03:00
Nate
ad330bd7a3 Merge branch 'feature/migration-to-scss' of https://github.com/hydralauncher/hydra into feature/migration-to-scss 2025-01-17 18:51:32 -03:00
Hachi-R
fe8f1b44db lint 2025-01-17 16:34:48 -03:00
Hachi-R
b9c072e7ac feat: integrate monaco editor 2025-01-17 16:34:06 -03:00
Nate
50df38856d migration to scss
no .tsx changes were made, yet
2025-01-17 14:11:35 -03:00
Hachi-R
f5395305eb Merge branch 'feature/migration-to-scss' of https://github.com/hydralauncher/hydra into feature/migration-to-scss 2025-01-17 12:37:33 -03:00
Hachi-R
3f29a78593 fix: show editor devtools in dev 2025-01-17 12:29:03 -03:00
Eight
71f3409275 Merge branch 'main' into feature/migration-to-scss 2025-01-17 12:27:30 -03:00
Hachi-R
c4f5d17b40 refactor: remove redundant condition 2025-01-17 12:25:00 -03:00
Hachi-R
686ec61a99 Merge branch 'main' into feature/migration-to-scss 2025-01-17 12:10:00 -03:00
Hachi-R
fb63ec864c feat: add editor window 2025-01-17 12:00:59 -03:00
Hachi-R
e07297fc53 lint 2025-01-17 10:30:35 -03:00
Hachi-R
c17839ae97 feat: add aparence tab to settings page 2025-01-17 10:27:59 -03:00
415 changed files with 7462 additions and 13094 deletions

View File

@@ -1,4 +1,2 @@
MAIN_VITE_API_URL=API_URL
MAIN_VITE_AUTH_URL=AUTH_URL
RENDERER_VITE_REAL_DEBRID_REFERRAL_ID=
RENDERER_VITE_TORBOX_REFERRAL_CODE=

View File

@@ -33,9 +33,9 @@ body:
attributes:
label: Additional information and data
description: |
Add screenshots and upload your all logs file here.
Logs location on Windows: "%appdata%/hydralauncher/logs"
Logs location on Linux: "~/.config/hydralauncher/logs"
Add screenshots and upload your logs file here.
Logs location on Windows: "%appdata%/hydra"
Logs location on Linux: "~/.config/hydra/"
validations:
required: true
- type: input

View File

@@ -1,9 +1,5 @@
name: Build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on: pull_request
jobs:
@@ -11,7 +7,6 @@ jobs:
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
@@ -25,7 +20,7 @@ jobs:
node-version: 20.18.0
- name: Install dependencies
run: yarn --frozen-lockfile
run: yarn
- name: Install Python
uses: actions/setup-python@v5
@@ -48,13 +43,12 @@ jobs:
MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_STAGING_API_URL }}
MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_STAGING_AUTH_URL }}
MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_STAGING_CHECKOUT_URL }}
RENDERER_VITE_INTERCOM_APP_ID: ${{ vars.RENDERER_VITE_INTERCOM_APP_ID }}
RENDERER_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
MAIN_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RENDERER_VITE_SENTRY_DSN: ${{ vars.SENTRY_DSN }}
RENDERER_VITE_REAL_DEBRID_REFERRAL_ID: ${{ vars.RENDERER_VITE_REAL_DEBRID_REFERRAL_ID }}
RENDERER_VITE_TORBOX_REFERRAL_CODE: ${{ vars.RENDERER_VITE_TORBOX_REFERRAL_CODE }}
- name: Build Windows
if: matrix.os == 'windows-latest'
@@ -63,15 +57,14 @@ jobs:
MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_STAGING_API_URL }}
MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_STAGING_AUTH_URL }}
MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_STAGING_CHECKOUT_URL }}
RENDERER_VITE_INTERCOM_APP_ID: ${{ vars.RENDERER_VITE_INTERCOM_APP_ID }}
RENDERER_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
MAIN_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RENDERER_VITE_SENTRY_DSN: ${{ vars.SENTRY_DSN }}
RENDERER_VITE_REAL_DEBRID_REFERRAL_ID: ${{ vars.RENDERER_VITE_REAL_DEBRID_REFERRAL_ID }}
RENDERER_VITE_TORBOX_REFERRAL_CODE: ${{ vars.RENDERER_VITE_TORBOX_REFERRAL_CODE }}
- name: Upload build
- name: Test Upload build
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
@@ -81,6 +74,7 @@ jobs:
BUILDS_URL: ${{ secrets.BUILDS_URL }}
BUILD_WEBHOOK_URL: ${{ secrets.BUILD_WEBHOOK_URL }}
GITHUB_ACTOR: ${{ github.actor }}
run: node scripts/upload-build.cjs
- name: Create artifact

View File

@@ -1,9 +1,5 @@
name: Lint
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on: pull_request
jobs:
@@ -20,7 +16,7 @@ jobs:
node-version: 20.18.0
- name: Install dependencies
run: yarn --frozen-lockfile
run: yarn
- name: Validate current commit (last commit) with commitlint
run: npx commitlint --last --verbose

View File

@@ -1,9 +1,5 @@
name: Release
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches: main
@@ -26,7 +22,7 @@ jobs:
node-version: 20.18.0
- name: Install dependencies
run: yarn --frozen-lockfile
run: yarn
- name: Install Python
uses: actions/setup-python@v5
@@ -49,13 +45,13 @@ jobs:
MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_API_URL }}
MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_AUTH_URL }}
MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_CHECKOUT_URL }}
MAIN_VITE_ANALYTICS_API_URL: ${{ vars.MAIN_VITE_ANALYTICS_API_URL }}
RENDERER_VITE_INTERCOM_APP_ID: ${{ vars.RENDERER_VITE_INTERCOM_APP_ID }}
RENDERER_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
MAIN_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RENDERER_VITE_SENTRY_DSN: ${{ vars.SENTRY_DSN }}
RENDERER_VITE_REAL_DEBRID_REFERRAL_ID: ${{ vars.RENDERER_VITE_REAL_DEBRID_REFERRAL_ID }}
RENDERER_VITE_TORBOX_REFERRAL_CODE: ${{ vars.RENDERER_VITE_TORBOX_REFERRAL_CODE }}
- name: Build Windows
if: matrix.os == 'windows-latest'
@@ -64,13 +60,13 @@ jobs:
MAIN_VITE_API_URL: ${{ vars.MAIN_VITE_API_URL }}
MAIN_VITE_AUTH_URL: ${{ vars.MAIN_VITE_AUTH_URL }}
MAIN_VITE_CHECKOUT_URL: ${{ vars.MAIN_VITE_CHECKOUT_URL }}
MAIN_VITE_ANALYTICS_API_URL: ${{ vars.MAIN_VITE_ANALYTICS_API_URL }}
RENDERER_VITE_INTERCOM_APP_ID: ${{ vars.RENDERER_VITE_INTERCOM_APP_ID }}
RENDERER_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
MAIN_VITE_EXTERNAL_RESOURCES_URL: ${{ vars.EXTERNAL_RESOURCES_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RENDERER_VITE_SENTRY_DSN: ${{ vars.SENTRY_DSN }}
RENDERER_VITE_REAL_DEBRID_REFERRAL_ID: ${{ vars.RENDERER_VITE_REAL_DEBRID_REFERRAL_ID }}
RENDERER_VITE_TORBOX_REFERRAL_CODE: ${{ vars.RENDERER_VITE_TORBOX_REFERRAL_CODE }}
- name: Create artifact
uses: actions/upload-artifact@v4
@@ -88,18 +84,6 @@ jobs:
dist/*.blockmap
dist/*.pacman
- name: Upload build
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }}
S3_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY }}
S3_BUILDS_BUCKET_NAME: ${{ secrets.S3_BUILDS_BUCKET_NAME }}
BUILDS_URL: ${{ secrets.BUILDS_URL }}
BUILD_WEBHOOK_URL: ${{ secrets.BUILD_WEBHOOK_URL }}
GITHUB_ACTOR: ${{ github.actor }}
run: node scripts/upload-build.cjs
- name: Release
uses: softprops/action-gh-release@v2
with:

View File

@@ -1,13 +0,0 @@
name: Trigger Landing Page Build
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Trigger Landing Page build
run: curl --location --request POST '${{ secrets.LP_TRIGGER_DEPLOY_URL }}'

5
.gitignore vendored
View File

@@ -9,11 +9,8 @@ out
.vite
ludusavi/
hydra-python-rpc/
aria2/
.python-version
# Sentry Config File
.env.sentry-build-plugin
*storybook.log
aria2/

View File

@@ -25,8 +25,7 @@
[![cs](https://img.shields.io/badge/lang-cs-purple)](./docs/README.cs.md)
[![da](https://img.shields.io/badge/lang-da-red)](./docs/README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](./docs/README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](./docs/README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](./docs/README.tr.md)
[![ee](https://img.shields.io/badge/lang-et-blue.svg)](./docs/README.et.md)
![Hydra Catalogue](./docs/screenshot.png)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Katalog](screenshot.png)

View File

@@ -25,7 +25,6 @@
[![cs](https://img.shields.io/badge/lang-cs-purple)](README.cs.md)
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Katalog](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)

View File

@@ -23,8 +23,7 @@
[![cs](https://img.shields.io/badge/lang-cs-purple)](README.cs.md)
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
[![ee](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
![Hydra Kataloog](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Catalogue Hydra](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](./screenshot.png)

View File

@@ -25,7 +25,6 @@
[![cs](https://img.shields.io/badge/lang-cs-purple)](README.cs.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](./screenshot.png)

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](./screenshot.png)
@@ -126,10 +125,6 @@ cd hydra
yarn
```
### <a name="install-openssl-11"></a> Instale OpenSSL 1.1
[OpenSSL 1.1](https://slproweb.com/download/Win64OpenSSL-1_1_1w.exe) é exigido pelo libtorrent em ambientes Windows.
### <a name="install-python-39"></a> Instale Python 3.9
Certifique-se de ter o Python 3.9 instalado em sua máquina. Você pode baixá-lo e instalá-lo em [python.org](https://www.python.org/downloads/release/python-3913/).

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](./screenshot.png)

View File

@@ -1,194 +0,0 @@
<br>
<div align="center">
[<img src="../resources/icon.png" width="144"/>](https://help.hydralauncher.gg)
<h1 align="center">Hydra Launcher</h1>
<p align="center">
<strong>Hydra, kendi gömülü BitTorrent istemcisine sahip bir oyun başlatıcısıdır.</strong>
</p>
[![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)
[![es](https://img.shields.io/badge/lang-es-red)](README.es.md)
[![fr](https://img.shields.io/badge/lang-fr-blue)](README.fr.md)
[![de](https://img.shields.io/badge/lang-de-black)](README.de.md)
[![ita](https://img.shields.io/badge/lang-it-red)](README.it.md)
[![cs](https://img.shields.io/badge/lang-cs-purple)](README.cs.md)
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)
</div>
## <a name="içindekiler"></a> İçindekiler
- [İçindekiler](#içindekiler)
- [Hakkında](#hakkında)
- [Özellikler](#özellikler)
- [Kurulum](#kurulum)
- [Katkıda bulunma](#katkıda-bulunma)
- [Telegram grubumuza katılın](#telegram-katıl)
- [Repoyu forklayın ve klonlayın](#repo-fork-klon)
- [Katkıda bulunabileceğin yollar](#katkı-yolları)
- [Proje yapısı](#proje-yapısı)
- [Kaynak kodundan derleme](#kaynak-kodundan-derleme)
- [Node.js'i yükleme](#nodejs-yükle)
- [Yarn'ı yükleme](#yarn-yükle)
- [Node bağımlılıklarını yükleme](#node-bağımlılık-yükle)
- [OpenSSL 1.1'i yükleme](#openssl-1-1-yükle)
- [Python 3.9'u yükleme](#python-3-9-yükle)
- [Python bağımlılıklarını yükleme](#python-bağımlılık-yükle)
- [Ortam değişkenleri](#ortam-değişkenleri)
- [Çalıştırma](#çalıştırma)
- [Derleme](#derleme)
- [BitTorrent istemcisini derleme](#bittorrent-istemci-derle)
- [Electron uygulamasını derleme](#electron-uygulama-derle)
- [Katkıda bulunanlar](#katkıda-bulunanlar)
- [Lisans](#lisans)
## <a name="hakkında"></a> Hakkında
**Hydra**, kendi gömülü **BitTorrent istemci**sine sahip bir **oyun başlatıcısı**dır.
<br>
Başlatıcı, torrent sistemini libtorrent kullanarak yöneten Python ve TypeScript (Electron) ile yazılmıştır.
## <a name="özellikler"></a> Özellikler
- Kendi gömülü BitTorrent istemcisi
- Oyun sayfasında How Long To Beat (HLTB) entegrasyonu
- İndirme yolu özelleştirmesi
- Windows ve Linux desteği
- Sürekli güncelleme
- Ve daha fazlası...
## <a name="kurulum"></a> Kurulum
Aşağıdaki adımları izleyerek Hydra'yı kurun:
1. Hydra'nın en son sürümünü [Releases](https://github.com/hydralauncher/hydra/releases/latest) sayfasından indirin.
- Hydra'yı Windows'a kurmak istiyorsanız sadece .exe dosyasını indirin.
- Hydra'yı Linux'a kurmak istiyorsanız .deb, .rpm veya .zip dosyasını indirin (kullandığınız Linux dağıtımına bağlı olarak).
2. İndirilen dosyayı çalıştırın.
3. Hydra'nın keyfini çıkarın!
## <a name="katkıda-bulunma"></a> Katkıda Bulunma
### <a name="telegram-katıl"></a> Telegram grubumuza katılın
Tartışmalarımızı [Telegram](https://t.me/hydralauncher) kanalımız üzerinde yürütüyoruz.
### <a name="repo-fork-klon"></a> Repoyu forklayın ve klonlayın
1. Depoyu fork'layın [(şimdi forklamak için tıklayın)](https://github.com/hydralauncher/hydra/fork)
2. Forkladığınız kodu klonlayın `git clone https://github.com/kullanıcı_adınız/hydra`
3. Yeni bir branch oluşturun
4. Commitlerinizi gönderin (push)
5. Yeni bir Pull Request gönderin
### <a name="katkı-yolları"></a> Katkıda bulunabileceğin yollar
- Çeviri: Hydra'nın mümkün olduğunca fazla kişiye ulaşmasını istiyoruz. Yeni dillere çeviri yapmak ya da mevcut dillere güncelleme ve iyileştirme yapmak için yardımcı olmaktan çekinmeyin.
- Kod: Hydra, Typescript, Electron ve biraz Python ile inşa edilmiştir. Katkıda bulunmak isterseniz, [Telegram](https://t.me/hydralauncher) kanalımıza katılın!
### <a name="proje-yapısı"></a> Proje yapısı
- torrent-client: Torrent indirmelerini yönetmek için libtorrent adlı bir Python kütüphanesini kullanıyoruz.
- src/renderer: Uygulamanın kullanıcı arayüzü burada bulunur.
- src/main: Uygulamanın tüm işleyişi ve iş mantığı bu bölümde bulunur.
## <a name="kaynak-kodundan-derleme"></a> Kaynak kodundan derleme
### <a name="nodejs-yükle"></a> Node.js'i yükleme
Makinenizde Node.js'in yüklü olduğundan emin olun. Yüklü değilse, [nodejs.org](https://nodejs.org/) adresinden indirip kurun.
### <a name="yarn-yükle"></a> Yarn'ı yükleme
Yarn, Node.js için bir paket yöneticisidir. Eğer Yarn'ı henüz kurmadıysanız, [yarnpkg.com](https://classic.yarnpkg.com/lang/en/docs/install/) adresindeki talimatları izleyerek kurabilirsiniz.
### <a name="node-bağımlılık-yükle"></a> Node bağımlılıklarını yükleme
Proje dizinine gidin ve Yarn kullanarak Node bağımlılıklarını yükleyin:
```bash
cd hydra
yarn
```
### <a name="openssl-1-1-yükle"></a> OpenSSL 1.1'i yükleme
Windows ortamlarında libtorrent tarafından gerekli olan [OpenSSL 1.1](https://slproweb.com/download/Win64OpenSSL-1_1_1w.exe)'i indirip yükleyin.
### <a name="python-3-9-yükle"></a> Python 3.9'u yükleme
Makinenizde Python 3.9'un yüklü olduğundan emin olun. Bunu [python.org](https://www.python.org/downloads/release/python-3913/) adresinden indirip kurarak yapabilirsiniz.
### <a name="python-bağımlılık-yükle"></a> Python bağımlılıklarını yükleme
Gerekli Python bağımlılıklarını pip kullanarak yükleyin:
```bash
pip install -r requirements.txt
```
## <a name="ortam-değişkenleri"></a> Ortam değişkenleri
Oyun simgelerini yüklemek için bir SteamGridDB API Anahtarına ihtiyacınız olacak.
Bu anahtara sahip olduktan sonra, `.env.example` dosyasını kopyalayabilir veya adını `.env` olarak değiştirebilir ve `STEAMGRIDDB_API_KEY` değerini buraya ekleyebilirsiniz.
## <a name="çalıştırma"></a> Çalıştırma
Tüm ayarları tamamladıktan sonra, hem Electron sürecini hem de bittorrent istemcisini başlatmak için aşağıdaki komutu çalıştırabilirsiniz:
```bash
yarn dev
```
## <a name="derleme"></a> Derleme
### <a name="bittorrent-istemci-derle"></a> BitTorrent istemcisini derleme
Bittorrent istemcisini aşağıdaki komutla derleyin:
```bash
python torrent-client/setup.py build
```
### <a name="electron-uygulama-derle"></a> Electron uygulamasını derleme
Electron uygulamasını aşağıdaki komutlarla derleyebilirsiniz:
Windows'ta:
```bash
yarn build:win
```
Linux'ta:
```bash
yarn build:linux
```
## <a name="katkıda-bulunanlar"></a> Katkıda bulunanlar
<a href="https://github.com/hydralauncher/hydra/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hydralauncher/hydra" />
</a>
## <a name="lisans"></a> Lisans
Hydra, [MIT Lisansı](https://github.com/hydralauncher/hydra/blob/main/LICENSE) altında lisanlanmıştır.

View File

@@ -26,7 +26,6 @@
[![da](https://img.shields.io/badge/lang-da-red)](README.da.md)
[![nb](https://img.shields.io/badge/lang-nb-blue)](README.nb.md)
[![et](https://img.shields.io/badge/lang-et-blue.svg)](README.et.md)
[![tr](https://img.shields.io/badge/lang-tr-red.svg)](README.tr.md)
![Hydra Catalogue](screenshot.png)

View File

@@ -20,9 +20,6 @@ asarUnpack:
- resources/**
win:
executableName: Hydra
extraResources:
- from: binaries/7z.exe
- from: binaries/7z.dll
target:
- nsis
- portable
@@ -38,8 +35,6 @@ portable:
artifactName: ${name}-${version}-portable.${ext}
mac:
entitlementsInherit: build/entitlements.mac.plist
extraResources:
- from: binaries/7zz
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
@@ -49,8 +44,6 @@ mac:
dmg:
artifactName: ${name}-${version}.${ext}
linux:
extraResources:
- from: binaries/7zzs
target:
- AppImage
- snap

View File

@@ -6,6 +6,7 @@ import {
externalizeDepsPlugin,
} from "electron-vite";
import react from "@vitejs/plugin-react";
import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin";
import svgr from "vite-plugin-svgr";
import { sentryVitePlugin } from "@sentry/vite-plugin";
@@ -16,6 +17,9 @@ export default defineConfig(({ mode }) => {
main: {
build: {
sourcemap: true,
rollupOptions: {
external: ["better-sqlite3"],
},
},
resolve: {
alias: {
@@ -34,13 +38,6 @@ export default defineConfig(({ mode }) => {
build: {
sourcemap: true,
},
css: {
preprocessorOptions: {
scss: {
api: "modern",
},
},
},
resolve: {
alias: {
"@renderer": resolve("src/renderer/src"),
@@ -51,6 +48,7 @@ export default defineConfig(({ mode }) => {
plugins: [
svgr(),
react(),
vanillaExtractPlugin(),
sentryVitePlugin({
authToken: process.env.SENTRY_AUTH_TOKEN,
org: "hydra-launcher",

View File

@@ -1,6 +1,6 @@
{
"name": "hydralauncher",
"version": "3.4.5",
"version": "3.1.5",
"description": "Hydra",
"main": "./out/main/index.js",
"author": "Los Broxas",
@@ -28,7 +28,8 @@
"build:win": "electron-vite build && electron-builder --win",
"build:mac": "electron-vite build && electron-builder --mac",
"build:linux": "electron-vite build && electron-builder --linux",
"prepare": "husky"
"prepare": "husky",
"knex:migrate:make": "knex --knexfile src/main/knexfile.ts migrate:make --esm"
},
"dependencies": {
"@electron-toolkit/preload": "^3.0.0",
@@ -41,24 +42,27 @@
"@reduxjs/toolkit": "^2.2.3",
"@sentry/react": "^8.47.0",
"@sentry/vite-plugin": "^2.22.7",
"@vanilla-extract/css": "^1.14.2",
"@vanilla-extract/dynamic": "^2.1.2",
"@vanilla-extract/recipes": "^0.5.2",
"auto-launch": "^5.0.6",
"axios": "^1.7.9",
"axios-cookiejar-support": "^5.0.5",
"classic-level": "^2.0.0",
"better-sqlite3": "^11.7.0",
"classnames": "^2.5.1",
"color": "^4.2.3",
"color.js": "^1.2.0",
"create-desktop-shortcuts": "^1.11.1",
"create-desktop-shortcuts": "^1.11.0",
"date-fns": "^3.6.0",
"dexie": "^4.0.10",
"diskusage": "^1.2.0",
"electron-log": "^5.2.4",
"electron-updater": "^6.6.2",
"electron-updater": "^6.3.9",
"file-type": "^19.6.0",
"i18next": "^23.11.2",
"i18next-browser-languagedetector": "^7.2.1",
"jsdom": "^24.0.0",
"jsonwebtoken": "^9.0.2",
"knex": "^3.1.0",
"lodash-es": "^4.17.21",
"parse-torrent": "^11.0.17",
"piscina": "^4.7.0",
@@ -68,11 +72,10 @@
"react-loading-skeleton": "^3.4.0",
"react-redux": "^9.1.1",
"react-router-dom": "^6.22.3",
"react-tooltip": "^5.28.0",
"sound-play": "^1.1.0",
"sudo-prompt": "^9.2.1",
"tar": "^7.4.3",
"tough-cookie": "^5.1.1",
"typeorm": "^0.3.20",
"user-agents": "^1.1.387",
"yaml": "^2.6.1",
"yup": "^1.5.0",
@@ -88,8 +91,9 @@
"@swc/core": "^1.4.16",
"@types/auto-launch": "^5.0.5",
"@types/color": "^3.0.6",
"@types/folder-hash": "^4.0.4",
"@types/jsdom": "^21.1.7",
"@types/jsonwebtoken": "^9.0.8",
"@types/jsonwebtoken": "^9.0.7",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.12.7",
"@types/parse-torrent": "^5.8.7",
@@ -97,13 +101,14 @@
"@types/react-dom": "^18.2.18",
"@types/sound-play": "^1.1.3",
"@types/user-agents": "^1.0.4",
"@vanilla-extract/vite-plugin": "^4.0.7",
"@vitejs/plugin-react": "^4.2.1",
"electron": "^31.7.7",
"electron-builder": "^26.0.12",
"electron-vite": "^2.3.0",
"electron": "^31.7.6",
"electron-builder": "^25.1.8",
"electron-vite": "^2.0.0",
"eslint": "^8.56.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^9.1.7",
"prettier": "^3.4.2",

View File

@@ -11,12 +11,11 @@ class HttpDownloader:
)
)
def start_download(self, url: str, save_path: str, header: str, out: str = None):
def start_download(self, url: str, save_path: str, header: str):
if self.download:
self.aria2.resume([self.download])
else:
downloads = self.aria2.add(url, options={"header": header, "dir": save_path, "out": out})
downloads = self.aria2.add(url, options={"header": header, "dir": save_path})
self.download = downloads[0]
def pause_download(self):

View File

@@ -28,14 +28,14 @@ if start_download_payload:
torrent_downloader = TorrentDownloader(torrent_session)
downloads[initial_download['game_id']] = torrent_downloader
try:
torrent_downloader.start_download(initial_download['url'], initial_download['save_path'])
torrent_downloader.start_download(initial_download['url'], initial_download['save_path'], "")
except Exception as e:
print("Error starting torrent download", e)
else:
http_downloader = HttpDownloader()
downloads[initial_download['game_id']] = http_downloader
try:
http_downloader.start_download(initial_download['url'], initial_download['save_path'], initial_download.get('header'), initial_download.get('out'))
http_downloader.start_download(initial_download['url'], initial_download['save_path'], initial_download.get('header'))
except Exception as e:
print("Error starting http download", e)
@@ -45,7 +45,7 @@ if start_seeding_payload:
torrent_downloader = TorrentDownloader(torrent_session, lt.torrent_flags.upload_mode)
downloads[seed['game_id']] = torrent_downloader
try:
torrent_downloader.start_download(seed['url'], seed['save_path'])
torrent_downloader.start_download(seed['url'], seed['save_path'], "")
except Exception as e:
print("Error starting seeding", e)
@@ -94,7 +94,7 @@ def seed_status():
@app.route("/healthcheck", methods=["GET"])
def healthcheck():
return "ok", 200
return "", 200
@app.route("/process-list", methods=["GET"])
def process_list():
@@ -140,18 +140,18 @@ def action():
if url.startswith('magnet'):
if existing_downloader and isinstance(existing_downloader, TorrentDownloader):
existing_downloader.start_download(url, data['save_path'])
existing_downloader.start_download(url, data['save_path'], "")
else:
torrent_downloader = TorrentDownloader(torrent_session)
downloads[game_id] = torrent_downloader
torrent_downloader.start_download(url, data['save_path'])
torrent_downloader.start_download(url, data['save_path'], "")
else:
if existing_downloader and isinstance(existing_downloader, HttpDownloader):
existing_downloader.start_download(url, data['save_path'], data.get('header'), data.get('out'))
existing_downloader.start_download(url, data['save_path'], data.get('header'))
else:
http_downloader = HttpDownloader()
downloads[game_id] = http_downloader
http_downloader.start_download(url, data['save_path'], data.get('header'), data.get('out'))
http_downloader.start_download(url, data['save_path'], data.get('header'))
downloading_game_id = game_id
@@ -159,8 +159,6 @@ def action():
downloader = downloads.get(game_id)
if downloader:
downloader.pause_download()
if downloading_game_id == game_id:
downloading_game_id = -1
elif action == 'cancel':
downloader = downloads.get(game_id)
@@ -169,7 +167,7 @@ def action():
elif action == 'resume_seeding':
torrent_downloader = TorrentDownloader(torrent_session, lt.torrent_flags.upload_mode)
downloads[game_id] = torrent_downloader
torrent_downloader.start_download(data['url'], data['save_path'])
torrent_downloader.start_download(data['url'], data['save_path'], "")
elif action == 'pause_seeding':
downloader = downloads.get(game_id)
if downloader:
@@ -182,3 +180,4 @@ def action():
if __name__ == "__main__":
app.run(host="0.0.0.0", port=int(http_port))

View File

@@ -102,7 +102,7 @@ class TorrentDownloader:
"http://bvarf.tracker.sh:2086/announce",
]
def start_download(self, magnet: str, save_path: str):
def start_download(self, magnet: str, save_path: str, header: str):
params = {'url': magnet, 'save_path': save_path, 'trackers': self.trackers, 'flags': self.flags}
self.torrent_handle = self.session.add_torrent(params)
self.torrent_handle.resume()

View File

@@ -1,5 +1,4 @@
const { default: axios } = require("axios");
const tar = require("tar");
const util = require("node:util");
const fs = require("node:fs");
const path = require("node:path");
@@ -7,12 +6,10 @@ const { spawnSync } = require("node:child_process");
const exec = util.promisify(require("node:child_process").exec);
const ludusaviVersion = "0.29.0";
const fileName = {
win32: `ludusavi-v${ludusaviVersion}-win64.zip`,
linux: `ludusavi-v${ludusaviVersion}-linux.tar.gz`,
darwin: `ludusavi-v${ludusaviVersion}-mac.tar.gz`,
win32: "ludusavi-v0.25.0-win64.zip",
linux: "ludusavi-v0.25.0-linux.zip",
darwin: "ludusavi-v0.25.0-mac.zip",
};
const downloadLudusavi = async () => {
@@ -22,7 +19,7 @@ const downloadLudusavi = async () => {
}
const file = fileName[process.platform];
const downloadUrl = `https://github.com/mtkennerly/ludusavi/releases/download/v${ludusaviVersion}/${file}`;
const downloadUrl = `https://github.com/mtkennerly/ludusavi/releases/download/v0.25.0/${file}`;
console.log(`Downloading ${file}...`);
@@ -34,18 +31,10 @@ const downloadLudusavi = async () => {
console.log(`Downloaded ${file}, extracting...`);
const pwd = process.cwd();
const targetPath = path.join(pwd, "ludusavi");
await fs.promises.mkdir(targetPath, { recursive: true });
if (process.platform === "win32") {
await exec(`npx extract-zip ${file} ${targetPath}`);
} else {
await tar.x({
file: file,
cwd: targetPath,
});
}
await exec(`npx extract-zip ${file} ${targetPath}`);
if (process.platform !== "win32") {
fs.chmodSync(path.join(targetPath, "ludusavi"), 0o755);
@@ -118,10 +107,7 @@ const copyAria2Macos = async () => {
};
const copyAria2 = () => {
const aria2Path =
process.platform === "win32" ? "aria2/aria2c.exe" : "aria2/aria2c";
if (fs.existsSync(aria2Path)) {
if (fs.existsSync("aria2")) {
console.log("Aria2 already exists, skipping download...");
return;
}

View File

@@ -49,14 +49,14 @@ fs.readdir(dist, async (err, files) => {
})
);
for (const upload of uploads) {
if (uploads.length > 0) {
await fetch(process.env.BUILD_WEBHOOK_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
upload,
uploads,
branchName: process.env.BRANCH_NAME,
version: packageJson.version,
githubActor: process.env.GITHUB_ACTOR,

File diff suppressed because one or more lines are too long

View File

@@ -1,481 +1,417 @@
{
"language_name": "العربية",
"language_name": "اَلْعَرَبِيَّةُ",
"app": {
"successfully_signed_in": "تم تسجيل الدخول بنجاح"
},
"home": {
"featured": ميز",
"surprise_me": "مفاجئني",
"no_results": م يتم العثور على نتائج",
"start_typing": "ابدأ بالكتابة للبحث...",
"hot": "الأكثر شهرة الآن",
"weekly": "📅 أفضل ألعاب الأسبوع",
"achievements": "🏆 ألعاب يجب إكمالها"
"featured": ُتَمَيِّز",
"surprise_me": "فَاجِئْنِي",
"no_results": َمْ يُعْثَرْ عَلَى نَتائِج",
"start_typing": "اِبْدَأْ بِالْكِتَابَةِ لِلْبَحْثِ...",
"hot": "اَلْأَكْثَرُ شُيُوعًا الْآن",
"weekly": "📅 أَفْضَلُ أَلْعَابِ الْأُسْبُوعِ",
"achievements": "🏆 أَلْعَابٌ لِلتَّغَلُّبِ عَلَيْهَا"
},
"sidebar": {
"catalogue": "الفهرس",
"downloads": "التنزيلات",
"settings": "الإعدادات",
"my_library": كتبتي",
"downloading_metadata": "{{title}} (جاري تنزيل البيانات الوصفية...)",
"paused": "{{title}} (معلق)",
"downloading": "{{title}} ({{percentage}} - جاري التنزيل...)",
"filter": صفية المكتبة",
"home": "الرئيسية",
"queued": "{{title}} (في قائمة الانتظار)",
"game_has_no_executable": "اللعبة لا تحتوي على ملف تشغيل",
"sign_in": سجيل الدخول",
"friends": "الأصدقاء",
"need_help": "تحتاج مساعدة؟",
"favorites": "المفضلة"
"catalogue": "الْفِهْرِسُ",
"downloads": "التَّنْزِيلَاتُ",
"settings": "الإعْدَادَاتُ",
"my_library": َكْتَبَتِي",
"downloading_metadata": "{{title}} (جَارٍ تَنْزِيلُ الْبَيَانَاتِ الْوَصْفِيَّةِ...)",
"paused": "{{title}} (مُوْقَفٌ)",
"downloading": "{{title}} ({{percentage}} - جَارٍ التَّنْزِيلُ...)",
"filter": َصْفِيَةُ الْمَكْتَبَةِ",
"home": "الرَّئِيسِيَّةُ",
"queued": "{{title}} (فِي الْانْتِظَارِ)",
"game_has_no_executable": "اللُّعْبَةُ لَيْسَ لَدَيْهَا مِلَفٌّ تَنْفِيذِيٌّ مُحَدَّدٌ",
"sign_in": َسْجِيلُ الدُّخُولِ",
"friends": "الْأَصْدِقَاءُ",
"need_help": "هَلْ تَحْتَاجُ إِلَى مُسَاعَدَةٍ؟"
},
"header": {
"search": حث الألعاب",
"home": "الرئيسية",
"catalogue": "الفهرس",
"downloads": "التنزيلات",
"search_results": "نتائج البحث",
"settings": "الإعدادات",
"version_available_install": "الإصدار {{version}} متوفر. انقر هنا لإعادة التشغيل والتثبيت.",
"version_available_download": "الإصدار {{version}} متوفر. انقر هنا للتنزيل."
"search": َحْثُ الْأَلْعَابِ",
"home": "الرَّئِيسِيَّةُ",
"catalogue": "الْفِهْرِسُ",
"downloads": "التَّنْزِيلَاتُ",
"search_results": َتائِجُ الْبَحْثِ",
"settings": "الإعْدَادَاتُ",
"version_available_install": "الْإِصْدَارُ {{version}} مَتَوَفِّرٌ. انْقُرْ هُنَا لِإِعَادَةِ التَّشْغِيلِ وَالتَّثْبِيتِ.",
"version_available_download": "الْإِصْدَارُ {{version}} مَتَوَفِّرٌ. انْقُرْ هُنَا لِلتَّنْزِيلِ."
},
"bottom_panel": {
"no_downloads_in_progress": "لا توجد تنزيلات قيد التقدم",
"downloading_metadata": "جاري تنزيل بيانات {{title}} الوصفية...",
"downloading": "جاري تنزيل {{title}}... ({{percentage}} مكتمل) - الوقت المتبقي {{eta}} - السرعة {{speed}}",
"calculating_eta": "جاري تنزيل {{title}}... ({{percentage}} مكتمل) - جاري حساب الوقت المتبقي...",
"checking_files": "جاري فحص ملفات {{title}}... ({{percentage}} مكتمل)"
"no_downloads_in_progress": َا تَوْجَدُ تَنْزِيلَاتٌ جَارِيَةٌ",
"downloading_metadata": َارٍ تَنْزِيلُ الْبَيَانَاتِ الْوَصْفِيَّةِ لِـ {{title}}...",
"downloading": َارٍ تَنْزِيلُ {{title}}... ({{percentage}} مَكْتُومٌ) - الِاكْتِمَالُ {{eta}} - {{speed}}",
"calculating_eta": َارٍ تَنْزِيلُ {{title}}... ({{percentage}} مَكْتُومٌ) - جَارٍ حِسَابُ الْوَقْتِ الْمُتَبَقِّي...",
"checking_files": َارٍ التَّحَقُّقُ مِنْ مَلَفَّاتِ {{title}}... ({{percentage}} مَكْتُومٌ)"
},
"catalogue": {
"search": صفية...",
"developers": "المطورون",
"genres": "الأنواع",
"tags": "الوسوم",
"publishers": "الناشرون",
"download_sources": صادر التنزيل",
"result_count": "{{resultCount}} نتيجة",
"filter_count": "{{filterCount}} متاح",
"clear_filters": سح {{filterCount}} المحددة"
"search": َصْفِيَةٌ...",
"developers": "الْمُطَوِّرُونَ",
"genres": "الْأَنْوَاعُ",
"tags": "الْعَلَامَاتُ",
"publishers": "النَّاشِرُونَ",
"download_sources": َصَادِرُ التَّنْزِيلِ",
"result_count": "{{resultCount}} نَتائِجُ",
"filter_count": "{{filterCount}} مَتَوَفِّرٌ",
"clear_filters": َسْحُ {{filterCount}} الْمُخْتَارَةِ"
},
"game_details": {
"open_download_options": تح خيارات التنزيل",
"download_options_zero": "لا توجد خيارات تنزيل",
"download_options_one": "خيار تنزيل واحد",
"download_options_other": "{{count}} خيارات تنزيل",
"updated_at": م التحديث في {{updated_at}}",
"install": ثبيت",
"resume": "استئناف",
"pause": "إيقاف مؤقت",
"cancel": لغاء",
"remove": زالة",
"space_left_on_disk": "{{space}} متبقي على القرص",
"eta": "الانتهاء المتوقع {{eta}}",
"calculating_eta": "جاري حساب الوقت المتبقي...",
"downloading_metadata": "جاري تنزيل البيانات الوصفية...",
"filter": صفية الإصدارات المعادة",
"requirements": تطلبات النظام",
"minimum": "الحد الأدنى",
"recommended": "مستحسن",
"paused": علق",
"release_date": اريخ الإصدار {{date}}",
"publisher": شر بواسطة {{publisher}}",
"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": تغيير المجلد الافتراضي، انتقل إلى <0>الإعدادات</0>",
"download_now": نزيل الآن",
"no_shop_details": "تعذر الحصول على تفاصيل المتجر.",
"download_options": يارات التنزيل",
"download_path": سار التنزيل",
"previous_screenshot": قطة الشاشة السابقة",
"next_screenshot": قطة الشاشة التالية",
"screenshot": قطة الشاشة {{number}}",
"open_screenshot": تح لقطة الشاشة {{number}}",
"download_settings": "إعدادات التنزيل",
"downloader": "أداة التنزيل",
"select_executable": حديد",
"no_executable_selected": م يتم تحديد ملف تشغيل",
"open_folder": تح المجلد",
"open_download_location": "عرض الملفات المنزلة",
"create_shortcut": نشاء اختصار على سطح المكتب",
"clear": سح",
"remove_files": زالة الملفات",
"remove_from_library_title": "هل أنت متأكد؟",
"remove_from_library_description": يتم إزالة {{game}} من مكتبتك",
"options": يارات",
"executable_section_title": "ملف التشغيل",
"executable_section_description": سار الملف الذي سيتم تشغيله عند النقر على \"تشغيل\"",
"downloads_section_title": "التنزيلات",
"downloads_section_description": حقق من التحديثات أو الإصدارات الأخرى لهذه اللعبة",
"danger_zone_section_title": نطقة الخطر",
"danger_zone_section_description": زالة هذه اللعبة من مكتبتك أو الملفات التي تم تنزيلها بواسطة Hydra",
"download_in_progress": "جاري التنزيل",
"download_paused": "التنزيل معلق",
"last_downloaded_option": يار التنزيل الأخير",
"create_shortcut_success": م إنشاء الاختصار بنجاح",
"create_shortcut_error": طأ في إنشاء الاختصار",
"nsfw_content_title": "هذه اللعبة تحتوي على محتوى غير لائق",
"nsfw_content_description": "{{title}} يحتوي على محتوى قد لا يكون مناسبًا لجميع الأعمار. هل تريد المتابعة؟",
"allow_nsfw_content": "متابعة",
"refuse_nsfw_content": "رجوع",
"stats": "الإحصائيات",
"download_count": "التنزيلات",
"player_count": "اللاعبون النشطون",
"download_error": "خيار التنزيل هذا غير متاح",
"download": نزيل",
"executable_path_in_use": "مسار التشغيل مستخدم بالفعل بواسطة \"{{game}}\"",
"warning": حذير:",
"hydra_needs_to_remain_open": هذا التنزيل، يجب أن يظل Hydra مفتوحًا حتى اكتماله. إذا تم إغلاق Hydra قبل الاكتمال، ستفقد تقدمك.",
"achievements": "الإنجازات",
"achievements_count": "الإنجازات {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": فظ سحابي",
"cloud_save_description": "احفظ تقدمك في السحابة واستمر في اللعب من أي جهاز",
"backups": "النسخ الاحتياطية",
"install_backup": ثبيت",
"delete_backup": ذف",
"create_backup": سخة احتياطية جديدة",
"last_backup_date": "آخر نسخة احتياطية في {{date}}",
"no_backup_preview": م يتم العثور على حفظات لهذا العنوان",
"restoring_backup": "جاري استعادة النسخة الاحتياطية ({{progress}} مكتمل)...",
"uploading_backup": "جاري رفع النسخة الاحتياطية...",
"no_backups": م تقم بإنشاء أي نسخ احتياطية لهذه اللعبة بعد",
"backup_uploaded": م رفع النسخة الاحتياطية",
"backup_deleted": م حذف النسخة الاحتياطية",
"backup_restored": م استعادة النسخة الاحتياطية",
"see_all_achievements": رض جميع الإنجازات",
"sign_in_to_see_achievements": جل الدخول لعرض الإنجازات",
"mapping_method_automatic": "تلقائي",
"mapping_method_manual": دوي",
"mapping_method_label": ريقة التعيين",
"files_automatically_mapped": م تعيين الملفات تلقائيًا",
"no_backups_created": م يتم إنشاء نسخ احتياطية لهذه اللعبة",
"manage_files": دارة الملفات",
"loading_save_preview": "جاري البحث عن حفظات اللعبة...",
"wine_prefix": "بادئة Wine",
"wine_prefix_description": "بادئة Wine المستخدمة لتشغيل هذه اللعبة",
"launch_options": يارات التشغيل",
"launch_options_description": مكن للمستخدمين المتقدمين إدخال تعديلات على خيارات التشغيل (ميزة تجريبية)",
"launch_options_placeholder": ا توجد معلمات محددة",
"no_download_option_info": "لا توجد معلومات متاحة",
"backup_deletion_failed": شل في حذف النسخة الاحتياطية",
"max_number_of_artifacts_reached": م الوصول إلى الحد الأقصى من النسخ الاحتياطية لهذه اللعبة",
"achievements_not_sync": "شاهد كيفية مزامنة إنجازاتك",
"manage_files_description": دارة الملفات التي سيتم نسخها احتياطيًا واستعادتها",
"select_folder": "حدد المجلد",
"backup_from": سخة احتياطية من {{date}}",
"custom_backup_location_set": م تعيين موقع نسخ احتياطي مخصص",
"no_directory_selected": م يتم تحديد مجلد",
"no_write_permission": "لا يمكن التنزيل إلى هذا المجلد. انقر هنا للمزيد من المعلومات.",
"reset_achievements": "إعادة تعيين الإنجازات",
"reset_achievements_description": "سيؤدي هذا إلى إعادة تعيين جميع إنجازات {{game}}",
"reset_achievements_title": "هل أنت متأكد؟",
"reset_achievements_success": "تم إعادة تعيين الإنجازات بنجاح",
"reset_achievements_error": "فشل في إعادة تعيين الإنجازات",
"download_error_gofile_quota_exceeded": "لقد تجاوزت الحصة الشهرية لـ Gofile. يرجى الانتظار حتى إعادة تعيين الحصة.",
"download_error_real_debrid_account_not_authorized": "حساب Real-Debrid الخاص بك غير مصرح له بإجراء تنزيلات جديدة. يرجى مراجعة إعدادات الحساب والمحاولة مرة أخرى.",
"download_error_not_cached_on_real_debrid": "هذا التنزيل غير متوفر على Real-Debrid وجلب حالة التنزيل من Real-Debrid غير متاح حاليًا.",
"download_error_not_cached_on_torbox": "هذا التنزيل غير متوفر على TorBox وجلب حالة التنزيل من TorBox غير متاح حاليًا.",
"game_removed_from_favorites": "تمت إزالة اللعبة من المفضلة",
"game_added_to_favorites": "تمت إضافة اللعبة إلى المفضلة"
"open_download_options": َتْحُ خِيَارَاتِ التَّنْزِيلِ",
"download_options_zero": َا تَوْجَدُ خِيَارَاتُ تَنْزِيلٍ",
"download_options_one": "{{count}} خِيَارُ تَنْزِيلٍ",
"download_options_other": "{{count}} خِيَارَاتُ تَنْزِيلٍ",
"updated_at": َمَّ التَّحْدِيثُ فِي {{updated_at}}",
"install": َثْبِيتٌ",
"resume": "اسْتِئْنَافٌ",
"pause": ِيقَافٌ",
"cancel": ِلْغَاءٌ",
"remove": ِزَالَةٌ",
"space_left_on_disk": "{{space}} مُتَبَقٍّ عَلَى الْقُرْصِ",
"eta": "الِاكْتِمَالُ {{eta}}",
"calculating_eta": َارٍ حِسَابُ الْوَقْتِ الْمُتَبَقِّي...",
"downloading_metadata": َارٍ تَنْزِيلُ الْبَيَانَاتِ الْوَصْفِيَّةِ...",
"filter": َصْفِيَةُ الْإِصْدَارَاتِ الْمُعَادِ تَغْلِيفُهَا",
"requirements": ُتَطَلَّبَاتُ النِّظَامِ",
"minimum": "الْأَدْنَى",
"recommended": "الْمُوَصَّى بِهِ",
"paused": ُوْقَفٌ",
"release_date": َمَّ الْإِصْدَارُ فِي {{date}}",
"publisher": ُشِرَ بِوَاسِطَةِ {{publisher}}",
"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": ِتَغْيِيرِ الْمَجَلَّدِ الافْتِرَاضِيِّ، اذْهَبْ إِلَى <0>الإعْدَادَاتِ</0>",
"download_now": َنْزِيلٌ الْآن",
"no_shop_details": "لَمْ يَتَمَكَّنْ مِنْ اسْتِرْدَادِ تَفَاصِيلِ الْمَتْجَرِ.",
"download_options": ِيَارَاتُ التَّنْزِيلِ",
"download_path": َسَارُ التَّنْزِيلِ",
"previous_screenshot": َقْطَةُ الشَّاشَةِ السَّابِقَةُ",
"next_screenshot": َقْطَةُ الشَّاشَةِ التَّالِيَةُ",
"screenshot": َقْطَةُ الشَّاشَةِ {{number}}",
"open_screenshot": َتْحُ لَقْطَةِ الشَّاشَةِ {{number}}",
"download_settings": "إعْدَادَاتُ التَّنْزِيلِ",
"downloader": "الْمُنَزِّلُ",
"select_executable": َحْدِيدٌ",
"no_executable_selected": َمْ يُحَدَّدْ مِلَفٌّ تَنْفِيذِيٌّ",
"open_folder": َتْحُ الْمَجَلَّدِ",
"open_download_location": "مُشَاهَدَةُ الْمَلَفَّاتِ الْمُنَزَّلَةِ",
"create_shortcut": ِنْشَاءُ طَرِيقٍ مُخْتَصَرٍ عَلَى سَطْحِ الْمَكْتَبِ",
"clear": َسْحٌ",
"remove_files": ِزَالَةُ الْمَلَفَّاتِ",
"remove_from_library_title": "هَلْ أَنْتَ مُتَأَكِّدٌ؟",
"remove_from_library_description": َيُؤَدِّي هَذَا إِلَى إِزَالَةِ {{game}} مِنْ مَكْتَبَتِكَ",
"options": ِيَارَاتٌ",
"executable_section_title": "الْمِلَفُّ التَّنْفِيذِيُّ",
"executable_section_description": َسَارُ الْمِلَفِّ الَّذِي سَيَتِمُّ تَنْفِيذُهُ عِنْدَ النَّقْرِ عَلَى \"لَعِبٌ\"",
"downloads_secion_title": "التَّنْزِيلَاتُ",
"downloads_section_description": َحَقَّقْ مِنَ التَّحْدِيثَاتِ أَوِ الْإِصْدَارَاتِ الْأُخْرَى لِهَذِهِ اللُّعْبَةِ",
"danger_zone_section_title": ِنْطَقَةُ الْخَطَرِ",
"danger_zone_section_description": ِزَالَةُ هَذِهِ اللُّعْبَةِ مِنْ مَكْتَبَتِكَ أَوِ الْمَلَفَّاتِ الْمُنَزَّلَةِ بِوَاسِطَةِ Hydra",
"download_in_progress": َارٍ التَّنْزِيلُ",
"download_paused": "التَّنْزِيلُ مُوْقَفٌ",
"last_downloaded_option": ِيَارُ التَّنْزِيلِ الْأَخِيرُ",
"create_shortcut_success": َمَّ إِنْشَاءُ الطَّرِيقِ الْمُخْتَصَرِ بِنَجَاحٍ",
"create_shortcut_error": َطَأٌ فِي إِنْشَاءِ الطَّرِيقِ الْمُخْتَصَرِ",
"nsfw_content_title": "هَذِهِ اللُّعْبَةُ تَحْتَوِي عَلَى مُحْتَوًى غَيْرِ لَائِقٍ",
"nsfw_content_description": "{{title}} تَحْتَوِي عَلَى مُحْتَوًى قَدْ لَا يَكُونُ مُنَاسِبًا لِجَمِيعِ الْأَعْمَارِ. هَلْ أَنْتَ مُتَأَكِّدٌ مِنْ أَنَّكَ تُرِيدُ الْمُتَابَعَةَ؟",
"allow_nsfw_content": "الْمُتَابَعَةُ",
"refuse_nsfw_content": "الرُّجُوعُ",
"stats": "الإحْصَائِيَّاتُ",
"download_count": "التَّنْزِيلَاتُ",
"player_count": "اللَّاعِبُونَ النَّشِطُونَ",
"download_error": "هَذَا خِيَارُ التَّنْزِيلِ غَيْرُ مَتَوَفِّرٍ",
"download": َنْزِيلٌ",
"executable_path_in_use": "الْمِلَفُّ التَّنْفِيذِيُّ مُسْتَخْدَمٌ بِوَاسِطَةِ \"{{game}}\"",
"warning": َنْبِيهٌ:",
"hydra_needs_to_remain_open": ِهَذَا التَّنْزِيلِ، يَجِبُ أَنْ يَبْقَى Hydra مَفْتُوحًا حَتَّى يَتِمَّ الِاكْتِمَالُ. إِذَا أُغْلِقَ Hydra قَبْلَ الِاكْتِمَالِ، سَتَفْقِدُ تَقَدُّمَكَ.",
"achievements": "الإِنْجَازَاتُ",
"achievements_count": "الإِنْجَازَاتُ {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": ِفْظٌ سَحَابِيٌّ",
"cloud_save_description": "احْفَظْ تَقَدُّمَكَ فِي السَّحَابَةِ وَاسْتَمِرَّ فِي اللَّعِبِ عَلَى أَيِّ جِهَازٍ",
"backups": "الْنُسَخُ الِاحْتِيَاطِيَّةُ",
"install_backup": َثْبِيتٌ",
"delete_backup": َذْفٌ",
"create_backup": ُسْخَةٌ احْتِيَاطِيَّةٌ جَدِيدَةٌ",
"last_backup_date": "آخِرُ نُسْخَةٍ احْتِيَاطِيَّةٍ فِي {{date}}",
"no_backup_preview": َمْ يُعْثَرْ عَلَى أَيِّ أَلْعَابٍ مَحْفُوظَةٍ لِهَذَا الْعُنْوَانِ",
"restoring_backup": َارٍ اسْتِعَادَةُ النُّسْخَةِ الِاحْتِيَاطِيَّةِ ({{progress}} مَكْتُومٌ)...",
"uploading_backup": َارٍ رَفْعُ النُّسْخَةِ الِاحْتِيَاطِيَّةِ...",
"no_backups": َمْ تَقُمْ بِإِنْشَاءِ أَيِّ نُسَخٍ احْتِيَاطِيَّةٍ لِهَذِهِ اللُّعْبَةِ بَعْدُ",
"backup_uploaded": َمَّ رَفْعُ النُّسْخَةِ الِاحْتِيَاطِيَّةِ",
"backup_deleted": َمَّ حَذْفُ النُّسْخَةِ الِاحْتِيَاطِيَّةِ",
"backup_restored": َمَّ اسْتِعَادَةُ النُّسْخَةِ الِاحْتِيَاطِيَّةِ",
"see_all_achievements": َرْضُ جَمِيعِ الإِنْجَازَاتِ",
"sign_in_to_see_achievements": َجِّلِ الدُّخُولَ لِعَرْضِ الإِنْجَازَاتِ",
"mapping_method_automatic": "آلِيٌّ",
"mapping_method_manual": َدَوِيٌّ",
"mapping_method_label": َرِيقَةُ التَّحْدِيدِ",
"files_automatically_mapped": َمَّ تَحْدِيدُ الْمَلَفَّاتِ تِلْقَائِيًّا",
"no_backups_created": َمْ تُنْشَأْ أَيُّ نُسَخٍ احْتِيَاطِيَّةٍ لِهَذِهِ اللُّعْبَةِ",
"manage_files": ِدَارَةُ الْمَلَفَّاتِ",
"loading_save_preview": َارٍ الْبَحْثُ عَنْ أَلْعَابٍ مَحْفُوظَةٍ...",
"wine_prefix": َادِئَةُ Wine",
"wine_prefix_description": َادِئَةُ Wine الْمُسْتَخْدَمَةُ لِتَشْغِيلِ هَذِهِ اللُّعْبَةِ",
"launch_options": ِيَارَاتُ الْإِطْلَاقِ",
"launch_options_description": ُمْكِنُ لِلْمُسْتَخْدِمِينَ الْمُتَقَدِّمِينَ إِدْخَالُ تَعْدِيلَاتٍ عَلَى خِيَارَاتِ الْإِطْلَاقِ",
"launch_options_placeholder": َمْ يُحَدَّدْ أَيُّ مُعَامِلٍ",
"no_download_option_info": َا تَوْجَدُ مَعْلُومَاتٌ مَتَوَفِّرَةٌ",
"backup_deletion_failed": َشَلَ فِي حَذْفِ النُّسْخَةِ الِاحْتِيَاطِيَّةِ",
"max_number_of_artifacts_reached": َمَّ بَلُوغُ الْعَدَدِ الْأَقْصَى لِلنُّسَخِ الِاحْتِيَاطِيَّةِ لِهَذِهِ اللُّعْبَةِ",
"achievements_not_sync": "تَعَرَّفْ عَلَى كَيْفِيَّةِ مَزْجِ إِنْجَازَاتِكَ",
"manage_files_description": ِدَارَةُ الْمَلَفَّاتِ الَّتِي سَيَتِمُّ نَسْخُهَا احْتِيَاطِيًّا وَاسْتِعَادَتُهَا",
"select_folder": "تَحْدِيدُ الْمَجَلَّدِ",
"backup_from": ُسْخَةٌ احْتِيَاطِيَّةٌ مِنْ {{date}}",
"custom_backup_location_set": َمَّ تَحْدِيدُ مَوْقِعِ النُّسْخَةِ الِاحْتِيَاطِيَّةِ الْمُخَصَّصِ",
"no_directory_selected": َمْ يُحَدَّدْ أَيُّ دَلِيلٍ"
},
"activation": {
"title": فعيل Hydra",
"installation_id": عرف التثبيت:",
"enter_activation_code": دخل رمز التفعيل الخاص بك",
"message": ذا كنت لا تعرف أين تطلب هذا، فأنت لا يجب أن يكون لديك هذا.",
"activate": فعيل",
"loading": "جاري التحميل..."
"title": َفْعِيلُ Hydra",
"installation_id": ُعَرِّفُ التَّثْبِيتِ:",
"enter_activation_code": َدْخِلْ رَمْزَ التَّفْعِيلِ",
"message": ِذَا كُنْتَ لَا تَعْرِفُ أَيْنَ تَطْلُبُ هَذَا، فَلا يَجِبُ أَنْ تَكُونَ لَدَيْكَ.",
"activate": َفْعِيلٌ",
"loading": َارٍ التَّحْمِيلُ..."
},
"downloads": {
"resume": "استئناف",
"pause": "إيقاف مؤقت",
"eta": "الانتهاء المتوقع {{eta}}",
"paused": علق",
"verifying": "جاري التحقق...",
"completed": كتمل",
"removed": "غير منزّل",
"cancel": لغاء",
"filter": صفية الألعاب المنزلة",
"remove": زالة",
"downloading_metadata": "جاري تنزيل البيانات الوصفية...",
"deleting": "جاري حذف المثبت...",
"delete": ذف المثبت",
"delete_modal_title": "هل أنت متأكد؟",
"delete_modal_description": يؤدي هذا إلى إزالة جميع ملفات التثبيت من جهازك",
"install": ثبيت",
"download_in_progress": "قيد التقدم",
"queued_downloads": "التنزيلات في قائمة الانتظار",
"downloads_completed": كتملة",
"queued": "في قائمة الانتظار",
"no_downloads_title": "لا شيء هنا",
"no_downloads_description": م تقم بتنزيل أي شيء باستخدام Hydra بعد، ولكن لم يفت الأوان للبدء.",
"checking_files": "جاري فحص الملفات...",
"seeding": "جاري التوزيع",
"stop_seeding": "إيقاف التوزيع",
"resume_seeding": "استئناف التوزيع",
"options": دارة"
"resume": "اسْتِئْنَافٌ",
"pause": ِيقَافٌ",
"eta": "الِاكْتِمَالُ {{eta}}",
"paused": ُوْقَفٌ",
"verifying": َارٍ التَّحَقُّقُ...",
"completed": َكْتُومٌ",
"removed": "لَمْ يُنَزَّلْ",
"cancel": ِلْغَاءٌ",
"filter": َصْفِيَةُ الْأَلْعَابِ الْمُنَزَّلَةِ",
"remove": ِزَالَةٌ",
"downloading_metadata": َارٍ تَنْزِيلُ الْبَيَانَاتِ الْوَصْفِيَّةِ...",
"deleting": َارٍ حَذْفُ الْمُثَبِّتِ...",
"delete": َذْفُ الْمُثَبِّتِ",
"delete_modal_title": "هَلْ أَنْتَ مُتَأَكِّدٌ؟",
"delete_modal_description": َيُؤَدِّي هَذَا إِلَى إِزَالَةِ جَمِيعِ مَلَفَّاتِ التَّثْبِيتِ مِنْ حَاسُوبِكَ",
"install": َثْبِيتٌ",
"download_in_progress": "جَارٍ التَّنْفِيذُ",
"queued_downloads": "التَّنْزِيلَاتُ فِي الْانْتِظَارِ",
"downloads_completed": َكْتُومٌ",
"queued": ِي الْانْتِظَارِ",
"no_downloads_title": "فَرَاغٌ تَامٌ",
"no_downloads_description": َمْ تَقُمْ بِتَنْزِيلِ أَيِّ شَيْءٍ بِاسْتِخْدَامِ Hydra بَعْدُ، لَكِنَّهُ لَيْسَ مُتَأَخِّرًا لِلْبَدْءِ.",
"checking_files": َارٍ التَّحَقُّقُ مِنَ الْمَلَفَّاتِ...",
"seeding": "الْبَذْرُ",
"stop_seeding": ِيقَافُ الْبَذْرِ",
"resume_seeding": "اسْتِئْنَافُ الْبَذْرِ",
"options": ِدَارَةٌ"
},
"settings": {
"downloads_path": سار التنزيلات",
"change": حديث",
"notifications": "الإشعارات",
"enable_download_notifications": ند اكتمال التنزيل",
"enable_repack_list_notifications": ند إضافة إصدار معاد جديد",
"real_debrid_api_token_label": مز Real-Debrid API",
"quit_app_instead_hiding": "لا تخفي Hydra عند الإغلاق",
"launch_with_system": شغيل Hydra مع بدء النظام",
"general": "عام",
"behavior": "السلوك",
"download_sources": صادر التنزيل",
"language": "اللغة",
"api_token": مز API",
"enable_real_debrid": فعيل Real-Debrid",
"real_debrid_description": "Real-Debrid هو أداة تنزيل غير مقيدة تتيح لك تنزيل الملفات بسرعة، محدودة فقط بسرعة اتصالك بالإنترنت.",
"debrid_invalid_token": مز API غير صالح",
"debrid_api_token_hint": مكنك الحصول على رمز API الخاص بك <0>هنا</0>",
"real_debrid_free_account_error": "الحساب \"{{username}}\" حساب مجاني. يرجى الاشتراك في Real-Debrid",
"debrid_linked_message": م ربط الحساب \"{{username}}\"",
"save_changes": فظ التغييرات",
"changes_saved": م حفظ التغييرات بنجاح",
"download_sources_description": يقوم Hydra بجلب روابط التنزيل من هذه المصادر. يجب أن يكون عنوان URL للمصدر رابطًا مباشرًا لملف .json يحتوي على روابط التنزيل.",
"validate_download_source": حقق",
"remove_download_source": زالة",
"removed_download_sources": "تمت إزالة مصادر التنزيل",
"cancel_button_confirmation_delete_all_sources": "لا",
"confirm_button_confirmation_delete_all_sources": "نعم، احذف كل شيء",
"description_confirmation_delete_all_sources": "سوف تقوم بحذف جميع مصادر التنزيل",
"title_confirmation_delete_all_sources": "احذف جميع مصادر التنزيل",
"button_delete_all_sources": "قم بإزالة جميع مصادر التنزيل",
"add_download_source": "إضافة مصدر",
"download_count_zero": "لا توجد خيارات تنزيل",
"download_count_one": "{{countFormatted}} خيار تنزيل",
"download_count_other": "{{countFormatted}} خيارات تنزيل",
"download_source_url": "عنوان مصدر التنزيل",
"add_download_source_description": "أدخل عنوان URL لملف .json",
"download_source_up_to_date": "محدث",
"download_source_errored": "خطأ",
"sync_download_sources": "مزامنة المصادر",
"removed_download_source": "تمت إزالة مصدر التنزيل",
"added_download_source": "تمت إضافة مصدر التنزيل",
"download_sources_synced": "تمت مزامنة جميع مصادر التنزيل",
"insert_valid_json_url": "أدخل عنوان JSON صالح",
"found_download_option_zero": "لم يتم العثور على خيارات تنزيل",
"found_download_option_one": "تم العثور على {{countFormatted}} خيار تنزيل",
"found_download_option_other": "تم العثور على {{countFormatted}} خيارات تنزيل",
"import": "استيراد",
"public": "عام",
"private": "خاص",
"friends_only": "الأصدقاء فقط",
"privacy": "الخصوصية",
"profile_visibility": "رؤية الملف الشخصي",
"profile_visibility_description": "اختر من يمكنه رؤية ملفك الشخصي ومكتبتك",
"required_field": "هذا الحقل مطلوب",
"source_already_exists": "هذا المصدر مضاف مسبقًا",
"must_be_valid_url": "يجب أن يكون المصدر عنوان URL صالح",
"blocked_users": "المستخدمون المحظورون",
"user_unblocked": "تم إلغاء حظر المستخدم",
"enable_achievement_notifications": "عند فتح إنجاز",
"launch_minimized": "تشغيل Hydra مصغرًا",
"disable_nsfw_alert": "تعطيل تنبيهات المحتوى غير اللائق",
"seed_after_download_complete": "التوزيع بعد اكتمال التنزيل",
"show_hidden_achievement_description": "عرض وصف الإنجازات المخفية قبل فتحها",
"account": "الحساب",
"no_users_blocked": "لا يوجد مستخدمون محظورون",
"subscription_active_until": "اشتراك Hydra Cloud نشط حتى {{date}}",
"manage_subscription": "إدارة الاشتراك",
"update_email": "تحديث البريد الإلكتروني",
"update_password": "تحديث كلمة المرور",
"current_email": "البريد الإلكتروني الحالي:",
"no_email_account": "لم تقم بتعيين بريد إلكتروني بعد",
"account_data_updated_successfully": "تم تحديث بيانات الحساب بنجاح",
"renew_subscription": "تجديد اشتراك Hydra Cloud",
"subscription_expired_at": "انتهى اشتراكك في {{date}}",
"no_subscription": "استمتع بـ Hydra بأفضل طريقة ممكنة",
"become_subscriber": "كن مشتركًا في Hydra Cloud",
"subscription_renew_cancelled": "تم تعطيل التجديد التلقائي",
"subscription_renews_on": "سيتم تجديد اشتراكك في {{date}}",
"bill_sent_until": "سيتم إرسال فاتورتك القادمة حتى هذا اليوم",
"no_themes": "يبدو أنه ليس لديك أي سمات بعد، لكن لا تقلق، انقر هنا لإنشاء أول تحفة فنية لك.",
"editor_tab_code": "الكود",
"editor_tab_info": "معلومات",
"editor_tab_save": "حفظ",
"web_store": "المتجر الإلكتروني",
"clear_themes": "مسح",
"create_theme": "إنشاء",
"create_theme_modal_title": "إنشاء سمة مخصصة",
"create_theme_modal_description": "إنشاء سمة جديدة لتخصيص مظهر Hydra",
"theme_name": "الاسم",
"insert_theme_name": "أدخل اسم السمة",
"set_theme": "تعيين السمة",
"unset_theme": "إلغاء تعيين السمة",
"delete_theme": "حذف السمة",
"edit_theme": "تعديل السمة",
"delete_all_themes": "حذف جميع السمات",
"delete_all_themes_description": "سيؤدي هذا إلى حذف جميع السمات المخصصة الخاصة بك",
"delete_theme_description": "سيؤدي هذا إلى حذف السمة {{theme}}",
"cancel": "إلغاء",
"appearance": "المظهر",
"enable_torbox": "تفعيل TorBox",
"torbox_description": "TorBox هي خدمة seedbox متميزة تنافس أفضل الخوادم في السوق.",
"torbox_account_linked": "تم ربط حساب TorBox",
"real_debrid_account_linked": "تم ربط حساب Real-Debrid",
"name_min_length": "يجب أن يكون اسم السمة على الأقل 3 أحرف",
"import_theme": "استيراد سمة",
"import_theme_description": "ستقوم باستيراد {{theme}} من متجر السمات",
"error_importing_theme": "خطأ في استيراد السمة",
"theme_imported": "تم استيراد السمة بنجاح"
"downloads_path": َسَارُ التَّنْزِيلَاتِ",
"change": َحْدِيثٌ",
"notifications": "الإِشْعَارَاتُ",
"enable_download_notifications": ِنْدَ اكْتِمَالِ التَّنْزِيلِ",
"enable_repack_list_notifications": ِنْدَ إِضَافَةِ إِصْدَارٍ مُعَادٍ تَغْلِيفِهِ جَدِيدٍ",
"real_debrid_api_token_label": َمْزُ واجهة برمجة التطبيقات Real-Debrid",
"quit_app_instead_hiding": "لا تُخْفِ Hydra عِنْدَ الإِغْلَاقِ",
"launch_with_system": َشْغِيلُ Hydra عِنْدَ بَدْءِ النِّظَامِ",
"general": َامٌ",
"behavior": "سُلُوكٌ",
"download_sources": َصَادِرُ التَّنْزِيلِ",
"language": "اللُّغَةُ",
"real_debrid_api_token": َمْزُ واجهة برمجة التطبيقات",
"enable_real_debrid": َمْكِينُ Real-Debrid",
"real_debrid_description": "Real-Debrid هُوَ مُنَزِّلٌ غَيْرُ مَقْيُودٍ يَتِيحُ لَكَ تَنْزِيلَ الْمَلَفَّاتِ بِسُرْعَةٍ، مَحْدُودٌ فَقَطْ بِسُرْعَةِ الْإِنْتَرْنِتِ لَدَيْكَ.",
"real_debrid_invalid_token": َمْزُ واجهة برمجة التطبيقات غَيْرُ صَالِحٍ",
"real_debrid_api_token_hint": ُمْكِنُكَ الْحُصُولُ عَلَى رَمْزِ واجهة برمجة التطبيقات <0>هُنَا</0>",
"real_debrid_free_account_error": "الْحِسَابُ \"{{username}}\" هُوَ حِسَابٌ مَجَّانِيٌّ. يَرْجَى الِاشْتِرَاكُ فِي Real-Debrid",
"real_debrid_linked_message": َمَّ رَبْطُ الْحِسَابِ \"{{username}}\"",
"save_changes": ِفْظُ التَّغْيِيرَاتِ",
"changes_saved": َمَّ حِفْظُ التَّغْيِيرَاتِ بِنَجَاحٍ",
"download_sources_description": َتَقُومُ Hydra بِجَلْبِ رَوَابِطِ التَّنْزِيلِ مِنْ هَذِهِ الْمَصَادِرِ. يَجِبُ أَنْ يَكُونَ عُنْوَانُ URL لِلْمَصْدَرِ رَابِطًا مُبَاشِرًا إِلَى مِلَفٍّ .json يَحْتَوِي عَلَى رَوَابِطِ التَّنْزِيلِ.",
"validate_download_source": َصْدِيقٌ",
"remove_download_source": ِزَالَةٌ",
"add_download_source": "إِضَافَةُ مَصْدَرٍ",
"download_count_zero": "لَا تَوْجَدُ خِيَارَاتُ تَنْزِيلٍ",
"download_count_one": "{{countFormatted}} خِيَارُ تَنْزِيلٍ",
"download_count_other": "{{countFormatted}} خِيَارَاتُ تَنْزِيلٍ",
"download_source_url": "عُنْوَانُ مَصْدَرِ التَّنْزِيلِ",
"add_download_source_description": "أَدْخِلْ عُنْوَانَ URL لِمِلَفٍّ .json",
"download_source_up_to_date": "مُحَدَّثٌ",
"download_source_errored": "خَطَأٌ",
"sync_download_sources": "مَزْجُ الْمَصَادِرِ",
"removed_download_source": "تَمَّ إِزَالَةُ مَصْدَرِ التَّنْزِيلِ",
"added_download_source": "تَمَّتْ إِضَافَةُ مَصْدَرِ التَّنْزِيلِ",
"download_sources_synced": "تَمَّ مَزْجُ جَمِيعِ مَصَادِرِ التَّنْزِيلِ",
"insert_valid_json_url": "أَدْخِلْ عُنْوَانَ JSON صَالِحًا",
"found_download_option_zero": "لَمْ يُعْثَرْ عَلَى خِيَارِ تَنْزِيلٍ",
"found_download_option_one": "عُثِرَ عَلَى {{countFormatted}} خِيَارِ تَنْزِيلٍ",
"found_download_option_other": "عُثِرَ عَلَى {{countFormatted}} خِيَارَاتِ تَنْزِيلٍ",
"import": "اسْتِيرَادٌ",
"public": "عَامٌ",
"private": "خَاصٌ",
"friends_only": "الْأَصْدِقَاءُ فَقَطْ",
"privacy": "الْخُصُوصِيَّةُ",
"profile_visibility": "رُؤْيَةُ الْمَلَفِّ الشَّخْصِيِّ",
"profile_visibility_description": "اخْتَرْ مَنْ يُمْكِنُهُ رُؤْيَةُ مَلَفِّكَ الشَّخْصِيِّ وَمَكْتَبَتِكَ",
"required_field": "هَذَا الْحَقْلُ مَطْلُوبٌ",
"source_already_exists": "تَمَّتْ إِضَافَةُ هَذَا الْمَصْدَرِ مِنْ قَبْلُ",
"must_be_valid_url": "يَجِبُ أَنْ يَكُونَ الْمَصْدَرُ عُنْوَانَ URL صَالِحًا",
"blocked_users": "الْمُسْتَخْدِمُونَ الْمَحْظُورُونَ",
"user_unblocked": "تَمَّ إِزَالَةُ حَظْرِ الْمُسْتَخْدِمِ",
"enable_achievement_notifications": "عِنْدَ فَتْحِ إِنْجَازٍ",
"launch_minimized": "تَشْغِيلُ Hydra مُصَغَّرًا",
"disable_nsfw_alert": "تَعْطِيلُ تَنْبِيهِ الْمُحْتَوَى غَيْرِ اللَّائِقِ",
"seed_after_download_complete": "الْبَذْرُ بَعْدَ اكْتِمَالِ التَّنْزِيلِ",
"show_hidden_achievement_description": "إِظْهَارُ وَصْفِ الإِنْجَازَاتِ الْمَخْفِيَّةِ قَبْلَ فَتْحِهَا"
},
"notifications": {
"download_complete": "اكتمل التنزيل",
"game_ready_to_install": "{{title}} جاهز للتثبيت",
"repack_list_updated": م تحديث قائمة الإصدارات المعادة",
"repack_count_one": "تمت إضافة {{count}} إصدار معاد",
"repack_count_other": "تمت إضافة {{count}} إصدارات معادة",
"new_update_available": "الإصدار {{version}} متوفر",
"restart_to_install_update": عد تشغيل Hydra لتثبيت التحديث",
"notification_achievement_unlocked_title": م فتح إنجاز لـ {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} و {{count}} أخرى تم فتحها"
"download_complete": "اكْتِمَالُ التَّنْزِيلِ",
"game_ready_to_install": "{{title}} جَاهِزٌ لِلتَّثْبِيتِ",
"repack_list_updated": َمَّ تَحْدِيثُ قَائِمَةِ الإِصْدَارَاتِ الْمُعَادَةِ تَغْلِيفُهَا",
"repack_count_one": "{{count}} إِصْدَارٌ مُعَادٌ تَغْلِيفُهُ أُضِيفَ",
"repack_count_other": "{{count}} إِصْدَارَاتٌ مُعَادَةٌ تَغْلِيفُهَا أُضِيفَتْ",
"new_update_available": "الْإِصْدَارُ {{version}} مَتَوَفِّرٌ",
"restart_to_install_update": َعِدْ تَشْغِيلَ Hydra لِتَثْبِيتِ التَّحْدِيثِ",
"notification_achievement_unlocked_title": َمَّ فَتْحُ إِنْجَازٍ لِـ {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} وَ{{count}} أُخْرَى تَمَّ فَتْحُهَا"
},
"system_tray": {
"open": تح Hydra",
"quit": "خروج"
"open": َتْحُ Hydra",
"quit": "الْخُرُوجُ"
},
"game_card": {
"no_downloads": "لا توجد تنزيلات متاحة"
"no_downloads": َا تَوْجَدُ تَنْزِيلَاتٌ مَتَوَفِّرَةٌ"
},
"binary_not_found_modal": {
"title": "البرامج غير مثبتة",
"description": م يتم العثور على ملفات تشغيل Wine أو Lutris على نظامك",
"instructions": حقق من الطريقة الصحيحة لتثبيت أي منها على توزيعة Linux الخاصة بك حتى تعمل اللعبة بشكل طبيعي"
"title": "الْبَرَامِجُ غَيْرُ مُثَبَّتَةٍ",
"description": َمْ يُعْثَرْ عَلَى مَلَفَّاتٍ تَنْفِيذِيَّةٍ لِـ Wine أَوْ Lutris عَلَى نِظَامِكَ",
"instructions": َحَقَّقْ مِنَ الطَّرِيقَةِ الصَّحِيحَةِ لِتَثْبِيتِ أَيٍّ مِنْهُمَا عَلَى تَوْزِيعَةِ Linux لَدَيْكَ لِتَعْمَلَ اللُّعْبَةُ بِشَكْلٍ طَبِيعِيٍّ"
},
"modal": {
"close": ر الإغلاق"
"close": ِرُّ الإِغْلَاقِ"
},
"forms": {
"toggle_password_visibility": بديل رؤية كلمة المرور"
"toggle_password_visibility": َبْدِيلُ رُؤْيَةِ كَلِمَةِ الْمَرُورِ"
},
"user_profile": {
"amount_hours": "{{amount}} ساعة",
"amount_minutes": "{{amount}} دقيقة",
"last_time_played": "آخر مرة لعب {{period}}",
"activity": "النشاط الأخير",
"library": "المكتبة",
"total_play_time": جمالي وقت اللعب",
"no_recent_activity_title": "لا شيء هنا...",
"no_recent_activity_description": م تلعب أي ألعاب مؤخرًا. حان الوقت لتغيير ذلك!",
"display_name": "اسم العرض",
"saving": "جاري الحفظ",
"save": فظ",
"edit_profile": عديل الملف الشخصي",
"saved_successfully": م الحفظ بنجاح",
"try_again": "يرجى المحاولة مرة أخرى",
"sign_out_modal_title": "هل أنت متأكد؟",
"cancel": لغاء",
"successfully_signed_out": م تسجيل الخروج بنجاح",
"sign_out": سجيل الخروج",
"playing_for": "جاري اللعب لمدة {{amount}}",
"sign_out_modal_text": كتبتك مرتبطة بحسابك الحالي. عند تسجيل الخروج، لن تكون مكتبتك مرئية، ولن يتم حفظ أي تقدم. هل تتابع تسجيل الخروج؟",
"add_friends": ضافة أصدقاء",
"add": ضافة",
"friend_code": مز الصديق",
"see_profile": "عرض الملف الشخصي",
"sending": "جاري الإرسال",
"friend_request_sent": م إرسال طلب الصداقة",
"friends": "الأصدقاء",
"friends_list": "قائمة الأصدقاء",
"user_not_found": "المستخدم غير موجود",
"block_user": ظر المستخدم",
"add_friend": ضافة صديق",
"request_sent": م إرسال الطلب",
"request_received": م استلام الطلب",
"accept_request": بول الطلب",
"ignore_request": جاهل الطلب",
"cancel_request": لغاء الطلب",
"undo_friendship": لغاء الصداقة",
"request_accepted": م قبول الطلب",
"user_blocked_successfully": م حظر المستخدم بنجاح",
"user_block_modal_text": يؤدي هذا إلى حظر {{displayName}}",
"blocked_users": "المستخدمون المحظورون",
"unblock": لغاء الحظر",
"no_friends_added": يس لديك أصدقاء مضافون",
"pending": "معلق",
"no_pending_invites": يس لديك دعوات معلقة",
"no_blocked_users": يس لديك مستخدمون محظورون",
"friend_code_copied": م نسخ رمز الصديق",
"undo_friendship_modal_text": يؤدي هذا إلى إلغاء صداقتك مع {{displayName}}",
"privacy_hint": ضبط من يمكنه رؤية هذا، انتقل إلى <0>الإعدادات</0>",
"locked_profile": "هذا الملف الشخصي خاص",
"image_process_failure": شل في معالجة الصورة",
"required_field": "هذا الحقل مطلوب",
"displayname_min_length": جب أن يكون اسم العرض على الأقل 3 أحرف",
"displayname_max_length": جب أن لا يتجاوز اسم العرض 50 حرفًا",
"report_profile": "الإبلاغ عن هذا الملف",
"report_reason": ماذا تقوم بالإبلاغ عن هذا الملف؟",
"report_description": علومات إضافية",
"report_description_placeholder": علومات إضافية",
"report": "الإبلاغ",
"report_reason_hate": طاب كراهية",
"report_reason_sexual_content": حتوى جنسي",
"report_reason_violence": نف",
"report_reason_spam": "بريد عشوائي",
"report_reason_other": "أخرى",
"profile_reported": م الإبلاغ عن الملف الشخصي",
"your_friend_code": مز الصديق الخاص بك:",
"upload_banner": فع بانر",
"uploading_banner": "جاري رفع البانر...",
"background_image_updated": م تحديث صورة الخلفية",
"stats": "الإحصائيات",
"achievements": "الإنجازات",
"games": "الألعاب",
"top_percentile": "الأعلى {{percentile}}%",
"ranking_updated_weekly": "يتم تحديث التصنيف أسبوعيًا",
"playing": "جاري لعب {{game}}",
"achievements_unlocked": "الإنجازات المفتوحة",
"earned_points": "النقاط المكتسبة",
"show_achievements_on_profile": رض إنجازاتك في ملفك الشخصي",
"show_points_on_profile": رض نقاطك المكتسبة في ملفك الشخصي"
"amount_hours": "{{amount}} سَاعَاتٌ",
"amount_minutes": "{{amount}} دَقَائِقُ",
"last_time_played": "آخِرُ مَرَّةٍ لُعِبَتْ {{period}}",
"activity": "النَّشَاطُ الْأَخِيرُ",
"library": "الْمَكْتَبَةُ",
"total_play_time": ِجْمَالِيُّ وَقْتِ اللَّعِبِ",
"no_recent_activity_title": "هَمَمْ... لَا شَيْءَ هُنَا",
"no_recent_activity_description": َمْ تَلْعَبْ أَيَّ أَلْعَابٍ مُؤَخَّرًا. حَانَ الْوَقْتُ لِتَغْيِيرِ ذَلِكَ!",
"display_name": "اسْمُ الْعَرْضِ",
"saving": َارٍ الْحِفْظُ",
"save": ِفْظٌ",
"edit_profile": َحْرِيرُ الْمَلَفِّ الشَّخْصِيِّ",
"saved_successfully": َمَّ الْحِفْظُ بِنَجَاحٍ",
"try_again": "الرَّجَاءُ الْمُحَاوَلَةُ مَرَّةً أُخْرَى",
"sign_out_modal_title": "هَلْ أَنْتَ مُتَأَكِّدٌ؟",
"cancel": ِلْغَاءٌ",
"successfully_signed_out": َمَّ تَسْجِيلُ الْخُرُوجِ بِنَجَاحٍ",
"sign_out": َسْجِيلُ الْخُرُوجِ",
"playing_for": َارِي اللَّعِبُ لِمُدَّةِ {{amount}}",
"sign_out_modal_text": َكْتَبَتُكَ مُرْتَبِطَةٌ بِحِسَابِكَ الْحَالِيِّ. عِنْدَ تَسْجِيلِ الْخُرُوجِ، لَنْ تَكُونَ مَكْتَبَتُكَ مَرْئِيَّةً بَعْدَ الْآنِ، وَلَنْ يَتِمَّ حِفْظُ أَيِّ تَقَدُّمٍ. هَلْ تُرِيدُ الْمُتَابَعَةَ مَعَ تَسْجِيلِ الْخُرُوجِ؟",
"add_friends": ِضَافَةُ الْأَصْدِقَاءِ",
"add": ِضَافَةٌ",
"friend_code": َمْزُ الصَّدِيقِ",
"see_profile": "رُؤْيَةُ الْمَلَفِّ الشَّخْصِيِّ",
"sending": َارٍ الْإِرْسَالُ",
"friend_request_sent": َمَّ إِرْسَالُ طَلَبِ الصَّدَاقَةِ",
"friends": "الْأَصْدِقَاءُ",
"friends_list": َائِمَةُ الْأَصْدِقَاءِ",
"user_not_found": "الْمُسْتَخْدِمُ غَيْرُ مَوْجُودٍ",
"block_user": َظْرُ الْمُسْتَخْدِمِ",
"add_friend": ِضَافَةُ صَدِيقٍ",
"request_sent": َمَّ إِرْسَالُ الطَّلَبِ",
"request_received": َمَّ اسْتِقْبَالُ الطَّلَبِ",
"accept_request": َبُولُ الطَّلَبِ",
"ignore_request": َجَاهُلُ الطَّلَبِ",
"cancel_request": ِلْغَاءُ الطَّلَبِ",
"undo_friendship": ِلْغَاءُ الصَّدَاقَةِ",
"request_accepted": َمَّ قَبُولُ الطَّلَبِ",
"user_blocked_successfully": َمَّ حَظْرُ الْمُسْتَخْدِمِ بِنَجَاحٍ",
"user_block_modal_text": َيُؤَدِّي هَذَا إِلَى حَظْرِ {{displayName}}",
"blocked_users": "الْمُسْتَخْدِمُونَ الْمَحْظُورُونَ",
"unblock": ِزَالَةُ الْحَظْرِ",
"no_friends_added": َيْسَ لَدَيْكَ أَصْدِقَاءٌ مُضَافُونَ",
"pending": َيْدُ الْانْتِظَارِ",
"no_pending_invites": َيْسَ لَدَيْكَ دَعَوَاتٌ قَيْدُ الْانْتِظَارِ",
"no_blocked_users": َيْسَ لَدَيْكَ مُسْتَخْدِمُونَ مَحْظُورُونَ",
"friend_code_copied": َمَّ نَسْخُ رَمْزِ الصَّدِيقِ",
"undo_friendship_modal_text": َيُؤَدِّي هَذَا إِلَى إِلْغَاءِ صَدَاقَتِكَ مَعَ {{displayName}}",
"privacy_hint": ِتَعْدِيلِ مَنْ يُمْكِنُهُ رُؤْيَةُ هَذَا، اذْهَبْ إِلَى <0>الإعْدَادَاتِ</0>",
"locked_profile": "هَذَا الْمَلَفُّ الشَّخْصِيُّ خَاصٌّ",
"image_process_failure": َشَلَ أَثْنَاءَ مُعَالَجَةِ الصُّورَةِ",
"required_field": "هَذَا الْحَقْلُ مَطْلُوبٌ",
"displayname_min_length": َجِبُ أَنْ يَكُونَ اسْمُ الْعَرْضِ عَلَى الْأَقَلِّ 3 أَحْرُفٍ",
"displayname_max_length": َجِبُ أَنْ يَكُونَ اسْمُ الْعَرْضِ عَلَى الْأَكْثَرِ 50 حَرْفًا",
"report_profile": "تَقْرِيرٌ عَنْ هَذَا الْمَلَفِّ الشَّخْصِيِّ",
"report_reason": ِمَاذَا تُقَدِّمُ تَقْرِيرًا عَنْ هَذَا الْمَلَفِّ الشَّخْصِيِّ؟",
"report_description": َعْلُومَاتٌ إِضَافِيَّةٌ",
"report_description_placeholder": َعْلُومَاتٌ إِضَافِيَّةٌ",
"report": "تَقْرِيرٌ",
"report_reason_hate": ِطَابُ الْكُرْهِ",
"report_reason_sexual_content": ُحْتَوًى جِنْسِيٌّ",
"report_reason_violence": ُنْفٌ",
"report_reason_spam": "رَاسِلَةٌ عَشْوَائِيَّةٌ",
"report_reason_other": "آخَرُ",
"profile_reported": َمَّ تَقْرِيرُ الْمَلَفِّ الشَّخْصِيِّ",
"your_friend_code": َمْزُ صَدِيقِكَ:",
"upload_banner": َفْعُ لَافِتَةٍ",
"uploading_banner": َارٍ رَفْعُ اللَّافِتَةِ...",
"background_image_updated": َمَّ تَحْدِيثُ صُورَةِ الْخَلْفِيَّةِ",
"stats": "الإحْصَائِيَّاتُ",
"achievements": "الإِنْجَازَاتُ",
"games": "الْأَلْعَابُ",
"top_percentile": "الْأَفْضَلُ {{percentile}}%",
"ranking_updated_weekly": "التَّرْتِيبُ يُحَدَّثُ أُسْبُوعِيًّا",
"playing": َارِي اللَّعِبُ {{game}}",
"achievements_unlocked": "الإِنْجَازَاتُ الْمَفْتُوحَةُ",
"earned_points": "النَّقَاطُ الْمَكْسُوبَةُ",
"show_achievements_on_profile": َرْضُ إِنْجَازَاتِكَ عَلَى مَلَفِّكَ الشَّخْصِيِّ",
"show_points_on_profile": َرْضُ النَّقَاطِ الْمَكْسُوبَةِ عَلَى مَلَفِّكَ الشَّخْصِيِّ"
},
"achievement": {
"achievement_unlocked": "تم فتح الإنجاز",
"user_achievements": نجازات {{displayName}}",
"your_achievements": نجازاتك",
"unlocked_at": م الفتح في: {{date}}",
"subscription_needed": حتاج إلى اشتراك Hydra Cloud لعرض هذا المحتوى",
"new_achievements_unlocked": م فتح {{achievementCount}} إنجازات جديدة من {{gameCount}} ألعاب",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} إنجازات",
"achievements_unlocked_for_game": م فتح {{achievementCount}} إنجازات جديدة لـ {{gameTitle}}",
"hidden_achievement_tooltip": "هذا إنجاز مخفي",
"achievement_earn_points": "احصل على {{points}} نقاط مع هذا الإنجاز",
"earned_points": "النقاط المكتسبة:",
"available_points": "النقاط المتاحة:",
"how_to_earn_achievements_points": يفية كسب نقاط الإنجازات؟"
"achievement_unlocked": "إِنْجَازٌ مَفْتُوحٌ",
"user_achievements": ِنْجَازَاتُ {{displayName}}",
"your_achievements": ِنْجَازَاتُكَ",
"unlocked_at": َمَّ الْفَتْحُ فِي: {{date}}",
"subscription_needed": َحْتَاجُ اشْتِرَاكُ Hydra Cloud لِرُؤْيَةِ هَذَا الْمُحْتَوَى",
"new_achievements_unlocked": َمَّ فَتْحُ {{achievementCount}} إِنْجَازَاتٍ جَدِيدَةٍ مِنْ {{gameCount}} أَلْعَابٍ",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} إِنْجَازَاتٍ",
"achievements_unlocked_for_game": َمَّ فَتْحُ {{achievementCount}} إِنْجَازَاتٍ جَدِيدَةٍ لِـ {{gameTitle}}",
"hidden_achievement_tooltip": "هَذَا إِنْجَازٌ مَخْفِيٌّ",
"achievement_earn_points": "اكْسِبْ {{points}} نَقَاطًا بِهَذَا الإِنْجَازِ",
"earned_points": "النَّقَاطُ الْمَكْسُوبَةُ:",
"available_points": "النَّقَاطُ الْمُتَوَفِّرَةُ:",
"how_to_earn_achievements_points": َيْفَ تَكْسِبُ نَقَاطَ الإِنْجَازَاتِ؟"
},
"hydra_cloud": {
"subscription_tour_title": "اشتراك Hydra Cloud",
"subscribe_now": "اشترك الآن",
"cloud_saving": فظ سحابي",
"cloud_achievements": "احفظ إنجازاتك على السحابة",
"animated_profile_picture": "صورة ملف متحركة",
"premium_support": "دعم ممتاز",
"show_and_compare_achievements": "اعرض وقارن إنجازاتك مع المستخدمين الآخرين",
"animated_profile_banner": "بانر ملف متحرك",
"subscription_tour_title": "اشْتِرَاكُ Hydra Cloud",
"subscribe_now": "اشْتَرِكِ الْآنَ",
"cloud_saving": ِفْظٌ سَحَابِيٌّ",
"cloud_achievements": "حِفْظُ إِنْجَازَاتِكَ فِي السَّحَابَةِ",
"animated_profile_picture": ُورُ الْمَلَفِّ الشَّخْصِيِّ الْمُتَحَرِّكَةِ",
"premium_support": "الدَّعْمُ الْمُتَقَدِّمُ",
"show_and_compare_achievements": "عَرْضٌ وَمُقَارَنَةُ إِنْجَازَاتِكَ مَعَ مُسْتَخْدِمِينَ آخَرِينَ",
"animated_profile_banner": "لَافِتَةُ الْمَلَفِّ الشَّخْصِيِّ الْمُتَحَرِّكَةِ",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": قد اكتشفت ميزة Hydra Cloud!",
"learn_more": "معرفة المزيد"
"hydra_cloud_feature_found": َقَدْ اكْتَشَفْتَ مِيزَةً مِنْ Hydra Cloud!",
"learn_more": "تَعَلَّمْ أَكْثَرَ"
}
}

View File

@@ -14,10 +14,8 @@
"paused": "{{title}} (Спынена)",
"downloading": "{{title}} ({{percentage}} - Сцягванне…)",
"filter": "Фільтар бібліятэкі",
"home": "Галоўная",
"favorites": "Улюбленыя"
"home": "Галоўная"
},
"header": {
"search": "Пошук",
"home": "Галоўная",
@@ -107,12 +105,6 @@
"notifications": "Апавяшчэнні",
"enable_download_notifications": "Па сканчэнні сцягванні",
"enable_repack_list_notifications": "Пры даданні новага рэпака",
"cancel_button_confirmation_delete_all_sources": "Няма",
"confirm_button_confirmation_delete_all_sources": "Так,выдаліць усё",
"description_confirmation_delete_all_sources": "Вы выдаліце ​​ўсе крыніцы сцягвання",
"title_confirmation_delete_all_sources": "Выдаліць усе крыніцы сцягвання",
"removed_download_sources": "Крыніцы сцягвання выдалены",
"button_delete_all_sources": "Премахнете всички източници на изтегляне",
"behavior": "Паводзіны",
"quit_app_instead_hiding": "Закрываць праграму замест таго, каб хаваць яе ў трэй",
"launch_with_system": "Запускаць праграму пры запуску сыстэмы"

View File

@@ -26,8 +26,7 @@
"game_has_no_executable": "Играта няма избран изпълним файл",
"sign_in": "Вписване",
"friends": "Приятели",
"need_help": "Имате нужда от помощ??",
"favorites": "Любими игри"
"need_help": "Имате нужда от помощ??"
},
"header": {
"search": "Търсене",
@@ -122,7 +121,7 @@
"options": "Опции",
"executable_section_title": "Стартиращ файл",
"executable_section_description": "Пътят на файла, който ще се изпълни, когато се щракне върху \"Пускане\"",
"downloads_section_title": "Свалени",
"downloads_secion_title": "Свалени",
"downloads_section_description": "Вижте актуализации или други версии на тази игра",
"danger_zone_section_title": "Опасна зона",
"danger_zone_section_description": "Премахнете тази игра от библиотеката си или от файловете, изтеглени от Hydra",
@@ -231,13 +230,13 @@
"behavior": "Поведение",
"download_sources": "Източници за изтегляне",
"language": "Език",
"api_token": "API Токен",
"real_debrid_api_token": "API Токен",
"enable_real_debrid": "Включи Real-Debrid",
"real_debrid_description": "Real-Debrid е неограничен даунлоудър, който ви позволява бързо да изтегляте файлове, ограничени само от скоростта на интернет..",
"debrid_invalid_token": "Невалиден API токен",
"debrid_api_token_hint": "Вземете своя API токен <0>тук</0>",
"real_debrid_invalid_token": "Невалиден API токен",
"real_debrid_api_token_hint": "Вземете своя API токен <0>тук</0>",
"real_debrid_free_account_error": "Акаунтът \"{{username}}\" е безплатен акаунт. Моля абонирай се за Real-Debrid",
"debrid_linked_message": "Акаунтът \"{{username}}\" е свързан",
"real_debrid_linked_message": "Акаунтът \"{{username}}\" е свързан",
"save_changes": "Запази промените",
"changes_saved": "Промените са успешно запазни",
"download_sources_description": "Hydra ще извлича връзките за изтегляне от тези източници. URL адресът на източника трябва да е директна връзка към .json файл, съдържащ връзките за изтегляне.",
@@ -253,12 +252,6 @@
"download_source_errored": "Сгрешен",
"sync_download_sources": "Синхронизирай източниците",
"removed_download_source": "Източника за сваляне е премахнат",
"cancel_button_confirmation_delete_all_sources": "не",
"confirm_button_confirmation_delete_all_sources": "Да, удалить все",
"description_confirmation_delete_all_sources": "Вы удалите все источники загрузки",
"title_confirmation_delete_all_sources": "Удалить все источники загрузки",
"removed_download_sources": "Шрифты удалены",
"button_delete_all_sources": "Удалить все источники загрузки",
"added_download_source": "Добавен източник за сваляне",
"download_sources_synced": "Всички източници за сваляне са синхронизирани",
"insert_valid_json_url": "Добавете ваиден JSON линк",

View File

@@ -20,12 +20,10 @@
"home": "Inici",
"queued": "{{title}} (En espera)",
"game_has_no_executable": "El joc encara no té un executable seleccionat",
"sign_in": "Entra",
"favorites": "Favorits"
"sign_in": "Entra"
},
"header": {
"search": "Cerca jocs",
"home": "Inici",
"catalogue": "Catàleg",
"downloads": "Baixades",
@@ -107,7 +105,7 @@
"options": "Opcions",
"executable_section_title": "Executable",
"executable_section_description": "Directori del fitxer des d'on s'executarà quan es cliqui a \"Executar\"",
"downloads_section_title": "Descàrregues",
"downloads_secion_title": "Descàrregues",
"downloads_section_description": "Comprova actualitzacions o altres versions del videojoc",
"danger_zone_section_title": "Zona de perill",
"danger_zone_section_description": "Elimina aquest videojoc del teu catàleg o els fitxers descarregats per Hydra",
@@ -163,24 +161,18 @@
"behavior": "Comportament",
"download_sources": "Fonts de descàrrega",
"language": "Idioma",
"api_token": "Testimoni API",
"real_debrid_api_token": "Testimoni API",
"enable_real_debrid": "Activa el Real Debrid",
"real_debrid_description": "Real-Debrid és un programa de descàrrega sense restriccions que us permet descarregar fitxers a l'instant i al màxim de la vostra velocitat d'Internet.",
"debrid_invalid_token": "Invalida el testimoni de l'API",
"debrid_api_token_hint": "Pots obtenir la teva clau de l'API <0>aquí</0>.",
"real_debrid_invalid_token": "Invalida el testimoni de l'API",
"real_debrid_api_token_hint": "Pots obtenir la teva clau de l'API <0>aquí</0>.",
"real_debrid_free_account_error": "L'usuari \"{{username}}\" és un compte gratuït. Si us plau subscriu-te a Real-Debrid",
"debrid_linked_message": "Compte \"{{username}}\" vinculat",
"real_debrid_linked_message": "Compte \"{{username}}\" vinculat",
"save_changes": "Desa els canvis",
"changes_saved": "Els canvis s'han desat correctament",
"download_sources_description": "Hydra buscarà els enllaços de descàrrega d'aquestes fonts. L'URL d'origen ha de ser un enllaç directe a un fitxer .json que contingui els enllaços de descàrrega.",
"validate_download_source": "Valida",
"remove_download_source": "Elimina",
"cancel_button_confirmation_delete_all_sources": "No",
"confirm_button_confirmation_delete_all_sources": "Sí, esborra-ho tot",
"description_confirmation_delete_all_sources": "Eliminareu totes les fonts de descàrrega",
"title_confirmation_delete_all_sources": "Suprimeix totes les fonts de baixada",
"removed_download_sources": "S'han eliminat les fonts de descàrrega",
"button_delete_all_sources": "Elimina totes les fonts de baixada",
"add_download_source": "Afegeix font",
"download_count_zero": "No hi ha baixades a la llista",
"download_count_one": "{{countFormatted}} a la llista de baixades",

View File

@@ -26,8 +26,7 @@
"game_has_no_executable": "Hra nemá zvolen žádný spustitelný soubor",
"sign_in": "Přihlásit se",
"friends": "Přátelé",
"need_help": "Potřebujete pomoc?",
"favorites": "Oblíbené"
"need_help": "Potřebujete pomoc?"
},
"header": {
"search": "Vyhledat hry",
@@ -44,21 +43,11 @@
"downloading_metadata": "Stahuji metadata: {{title}}…",
"downloading": "Stahuji {{title}}… ({{percentage}} staženo) - Odhadovaný čas {{eta}} - {{speed}}",
"calculating_eta": "Stahuji {{title}}… ({{percentage}} staženo) - Počítám zbývající čas…",
"checking_files": "Kontroluji soubory: {{title}}… ({{percentage}} ověřeno)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Instalace dokončena",
"installation_complete_message": "Běžné redistribuovatelné komponenty byly úspěšně nainstalovány"
"checking_files": "Kontroluji soubory: {{title}}… ({{percentage}} ověřeno)"
},
"catalogue": {
"search": "Filtr…",
"developers": "Vývojáři",
"genres": "Žánry",
"tags": "Tagy",
"publishers": "Vydavatelé",
"download_sources": "Zdroje stahování",
"result_count": "Výsledky: {{resultCount}}",
"filter_count": "Dostupné: {{filterCount}}",
"clear_filters": "Vyčistit vybrané filtry: {{filterCount}}"
"next_page": "Další strana",
"previous_page": "Předchozí strana"
},
"game_details": {
"open_download_options": "Otevřít možnosti stahování",
@@ -117,13 +106,12 @@
"open_download_location": "Zobrazit stažené soubory",
"create_shortcut": "Vytvořit zástupce na ploše",
"remove_files": "Odebrat soubory",
"clear": "Vyčistit",
"remove_from_library_title": "Jste si jisti?",
"remove_from_library_description": "Tohle odstraní {{game}} z vaší knihovny",
"options": "Možnosti",
"executable_section_title": "Spustitelné",
"executable_section_description": "Umístění souboru který bude spuštěn při kliknutí na \"Hrát\"",
"downloads_section_title": "Stažené soubory",
"downloads_secion_title": "Stažené soubory",
"downloads_section_description": "Zkontrolovat jestli není nová / odlišná verze hry",
"danger_zone_section_title": "Nebezpečná zóna",
"danger_zone_section_description": "Odebrat hru z knihovny / soubory stažené Hydrou",
@@ -171,9 +159,6 @@
"loading_save_preview": "Hledání uložených her...",
"wine_prefix": "Wine Prefix",
"wine_prefix_description": "Wine Prefix použit pro spuštění této hry",
"launch_options": "Možnosti spuštění",
"launch_options_description": "Pokročilí uživatelé mohou zadat speciální parametry spuštění (experimentální funkce)",
"launch_options_placeholder": "Žádné parametery nebyly specifikovány",
"no_download_option_info": "Žádné informace nejsou dostupny",
"backup_deletion_failed": "Nepovedlo se odstranit zálohu",
"max_number_of_artifacts_reached": "Dosáhli jste maximálního počtu záloh pro tuto hru",
@@ -181,23 +166,7 @@
"manage_files_description": "Spravovat, které soubory budou zálohovány a obnoveny",
"select_folder": "Vybrat složku",
"backup_from": "Zálohy z {{date}}",
"custom_backup_location_set": "Vlastní umístění záloh nastaveno",
"automatic_backup_from": "Automatická záloha z {{date}}",
"enable_automatic_cloud_sync": "Povolit automatické zálohy v cloudu",
"no_directory_selected": "Žádná složka není zvolena",
"no_write_permission": "Nemohu stahovat do této složky. Klikni sem pro více informací.",
"reset_achievements": "Resetovat achievementy",
"reset_achievements_description": "Toto zresetuje všechny achievementy pro hru {{game}}",
"reset_achievements_title": "Jste si jisti?",
"reset_achievements_success": "Achievementy úspěšně resetovány",
"reset_achievements_error": "Nepodařilo se resetovat achievementy",
"download_error_gofile_quota_exceeded": "Překročili jste vaši měsíční GoFile kvótu. Prosím vyčkejte na resetování kvóty.",
"download_error_real_debrid_account_not_authorized": "Váš Real-Debrid účet není autorizován pro vytváření nových stahování. Prosím zkontrolujte nastavení vašeho účtu a zkuste to znovu.",
"download_error_not_cached_on_real_debrid": "Toto stahování není dostupné na Real-Debrid a získávání informací o stahování z Real-Debrid není zatím dostupné.",
"download_error_not_cached_on_torbox": "Toto stahování není dostupné na TorBox a získávání informací o stahování z TorBox není zatím dostupné.",
"game_removed_from_favorites": "Hra odebrána z oblíbených",
"game_added_to_favorites": "Hra přidána do oblíbených",
"automatically_extract_downloaded_files": "Automaticky rozbalit stažené soubory"
"custom_backup_location_set": "Vlastní umístění záloh nastaveno"
},
"activation": {
"title": "Aktivovat hydru",
@@ -230,13 +199,7 @@
"queued": "V řadě",
"no_downloads_title": "Prázdno..",
"no_downloads_description": "Ještě jsi zatím nic nestáhl přes Hydru, ale furt není pozdě začít.",
"checking_files": "Kontroluji soubory…",
"seeding": "Seedování",
"stop_seeding": "Zastavování seedování",
"resume_seeding": "Obnovit seedování",
"options": "Spravovat",
"extract": "Rozbalit soubory",
"extracting": "Rozbalování souborů…"
"checking_files": "Kontroluji soubory…"
},
"settings": {
"downloads_path": "Umístění stahování",
@@ -251,13 +214,13 @@
"behavior": "Chování",
"download_sources": "Zdroje stahování",
"language": "Jazyk",
"api_token": "API Token",
"real_debrid_api_token": "API Token",
"enable_real_debrid": "Povolit Real-Debrid",
"real_debrid_description": "Real-Debrid je neomezený správce stahování, který umožňuje stahovat soubory v nejvyšší rychlosti vašeho internetu.",
"debrid_invalid_token": "Neplatný API token",
"debrid_api_token_hint": "API token můžeš sehnat <0>zde</0>",
"real_debrid_invalid_token": "Neplatný API token",
"real_debrid_api_token_hint": "API token můžeš sehnat <0>zde</0>",
"real_debrid_free_account_error": "Účet \"{{username}}\" má základní úroveň. Prosím předplaťte si Real-Debrid",
"debrid_linked_message": "Účet \"{{username}}\" je propojen",
"real_debrid_linked_message": "Účet \"{{username}}\" je propojen",
"save_changes": "Uložit změny",
"changes_saved": "Změny úspěšně uloženy",
"download_sources_description": "Hydra bude odsud sbírat soubory. Zdrojový odkaz musí být .json soubor obsahující odkazy na soubory.",
@@ -273,12 +236,6 @@
"download_source_errored": "Chyba",
"sync_download_sources": "Synchronizovat zdroje",
"removed_download_source": "Zdroj odebrán",
"cancel_button_confirmation_delete_all_sources": "Žádný",
"confirm_button_confirmation_delete_all_sources": "Ano, smazat vše",
"description_confirmation_delete_all_sources": "Smažete všechny zdroje stahování",
"title_confirmation_delete_all_sources": "Odstraňte všechny zdroje stahování",
"removed_download_sources": "Zdroje stahování byly odstraněny",
"button_delete_all_sources": "Odstraňte všechny zdroje stahování",
"added_download_source": "Zdroj přidán",
"download_sources_synced": "Všechny zdroje jsou synchronizovány",
"insert_valid_json_url": "Zadej platnou JSON adresu",
@@ -297,65 +254,9 @@
"must_be_valid_url": "Zdroj musí být platký odkaz URL",
"blocked_users": "Zablokovaní uživatelé",
"user_unblocked": "Uživatel byl odblokován",
"enable_achievement_notifications": "Když je odemčen achievement",
"enable_achievement_notifications": "Když je odemknut achievement",
"launch_minimized": "Spustit v minimalizovaném režimu",
"disable_nsfw_alert": "Deaktivovat upozornění na nevhodný obsah",
"seed_after_download_complete": "Seedovat až skončí stahování",
"show_hidden_achievement_description": "Zobrazit popisy skrytých achievementů dříve, než jsou odemčeny",
"account": "Účet",
"no_users_blocked": "Nemáte žádného uživatele zablokovaného",
"subscription_active_until": "Vaše Hydra cloud předplatné je platné do {{date}}",
"manage_subscription": "Spravovat předplatné",
"update_email": "Změnit email",
"update_password": "Změnit heslo",
"current_email": "Současný email:",
"no_email_account": "Zatím nemáte nastavený email",
"account_data_updated_successfully": "Data vašeho účtu byly úspěšně upraveny",
"renew_subscription": "Obnovit předplatné Hydra Cloud",
"subscription_expired_at": "Vaše předplatné vypršelo {{date}}",
"no_subscription": "Užijte si Hydru v nejlepší možné podobě",
"become_subscriber": "Připojit se k předplatnému Hydra Cloud",
"subscription_renew_cancelled": "Automatické obnovování je zrušenu",
"subscription_renews_on": "Vaše předplatné se obnoví {{date}}",
"bill_sent_until": "Vaše příští faktura bude odeslána nejpozději do tohoto dne",
"no_themes": "Vypadá to že ještě nemáte žádné vzhledy, ale nebojte, klikněte sem pro vytvoření vašeho prvního mistrovského díla!",
"editor_tab_code": "Kód",
"editor_tab_info": "Info",
"editor_tab_save": "Uložit",
"web_store": "Webový obchod",
"clear_themes": "Vyčistit",
"create_theme": "Vytvořit",
"create_theme_modal_title": "Vytvořit vlastní vzhled",
"create_theme_modal_description": "Vytvořte si vlastní styl, abyste si mohli ozdobit Hydru",
"theme_name": "Název",
"insert_theme_name": "Vložte název vzhledu",
"set_theme": "Nastavit vzhled",
"unset_theme": "Zrušit vzhled",
"delete_theme": "Odstranit vzhled",
"edit_theme": "Upravit vzhled",
"delete_all_themes": "Smazat všechny vzhledy",
"delete_all_themes_description": "Toto smaže všechny vaše vzhledy",
"delete_theme_description": "Toto smaže vzhled {{theme}}",
"cancel": "Zrušit",
"appearance": "Vzhled",
"enable_torbox": "Povolit TorBox",
"torbox_description": "TorBox je prémiový seedbox server který se vyrovná i těm nejlepším seedbox serverům na trhu.",
"torbox_account_linked": "TorBox účet propojen",
"create_real_debrid_account": "Klikni sem pokud ještě nemáš Real-Debrid účet",
"create_torbox_account": "Klikni sem pokud ještě nemáš TorBox účet",
"real_debrid_account_linked": "Real-Debrid účet propojen",
"name_min_length": "Název vzhledu musí být minimálně 3 znaky dlouhý",
"import_theme": "Vložit vzhled",
"import_theme_description": "Chystáte se vložit vzhled {{theme}} z obchodu vzhledů",
"error_importing_theme": "Nastala chyba při vkládání vzhledu",
"theme_imported": "Vzhled úspěšně vložen",
"enable_friend_request_notifications": "Při obdržení žádosti o přátelství",
"enable_auto_install": "Automaticky stahovat aktualizace",
"common_redist": "Běžné redistribuovatelné komponenty",
"common_redist_description": "Běžné redistribuovatelné komponenty jsou potřeba pro spuštění určitých her. Je doporučeno je nainstalovat, aby se předešlo problémům.",
"install_common_redist": "Nainstalovat",
"installing_common_redist": "Instalování…",
"show_download_speed_in_megabytes": "Ukázat rychlost stahování v megabytech"
"disable_nsfw_alert": "Deaktivovat upozornění na nevhodný obsah"
},
"notifications": {
"download_complete": "Stahování dokončeno",
@@ -365,20 +266,14 @@
"repack_count_other": "{{count}} repacky přidány",
"new_update_available": "Version {{version}} je dostupná",
"restart_to_install_update": "Restartuj Hydru pro aktualizaci",
"notification_achievement_unlocked_title": "Achievement pro {{game}} byl odemčen",
"notification_achievement_unlocked_body": "{{achievement}} a dalších {{count}} byly odemčeny",
"new_friend_request_description": "Obdrželi jste novou žádost o přátelství",
"new_friend_request_title": "Nová žádost o přátelství",
"extraction_complete": "Rozbalování dokončeno",
"game_extracted": "{{title}} úspěšně rozbaleno"
"notification_achievement_unlocked_title": "Achievement pro {{game}} byl odemknut",
"notification_achievement_unlocked_body": "{{achievement}} a dalších {{count}} byly odemknuty"
},
"system_tray": {
"open": "Otevřít Hydru",
"quit": "Odejít"
},
"game_card": {
"available_one": "Dostupné",
"available_other": "Dostupné",
"no_downloads": "Žádné možnosti stahování nenalezeny"
},
"binary_not_found_modal": {
@@ -461,17 +356,7 @@
"your_friend_code": "Tvůj kód přítele:",
"upload_banner": "Nahrát banner profilu",
"uploading_banner": "Nahrávání banneru",
"background_image_updated": "Obrázek pozadí byl změněn",
"stats": "Statistiky",
"achievements": "Achievementy",
"games": "Hry",
"top_percentile": "Top {{percentile}}%",
"ranking_updated_weekly": "Žebříčky jsou aktualizovány každý týden",
"playing": "Hraje {{game}}",
"achievements_unlocked": "Achievements odemčen",
"earned_points": "Získané body",
"show_achievements_on_profile": "Zobrazit vaše odemčené achievementy na profilu",
"show_points_on_profile": "Zobrazit vaše získané body na profilu"
"background_image_updated": "Obrázek pozadí byl změněn"
},
"achievement": {
"achievement_unlocked": "Achievement odemčen",
@@ -481,12 +366,7 @@
"subscription_needed": "Je vyžadováno předplatné Hydra Cloud pro zobrazení tohoto obsahu",
"new_achievements_unlocked": "Odemčeno {{achievementCount}} nových achievementů z {{gameCount}} her",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} achievementů",
"achievements_unlocked_for_game": "Odemčeno {{achievementCount}} nových achievementů pro {{gameTitle}}",
"hidden_achievement_tooltip": "Toho je skrytý achievement",
"achievement_earn_points": "Získej {{points}} bodů tímto achievementem",
"earned_points": "Získané body",
"available_points": "Dostupné body:",
"how_to_earn_achievements_points": "Jak získat body achievementů?"
"achievements_unlocked_for_game": "Odemčeno {{achievementCount}} nových achievementů pro {{gameTitle}}"
},
"hydra_cloud": {
"subscription_tour_title": "Předplatné Hydra Cloud",
@@ -496,10 +376,6 @@
"animated_profile_picture": "Animované profilové obrázky",
"premium_support": "Prémiová podpora",
"show_and_compare_achievements": "Zobraz a porovnej achievementy s ostatními uživateli",
"animated_profile_banner": "Animovaný banner na profilu",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Právě jste objevili funkci předplatného Hydra Cloud!",
"learn_more": "Zjistit více",
"debrid_description": "Stahovat až 4x rychleji s Nimbus"
"animated_profile_banner": "Animovaný banner na profilu"
}
}

View File

@@ -24,12 +24,10 @@
"queued": "{{title}} (I køen)",
"game_has_no_executable": "Spillet har ikke nogen eksekverbar fil valgt",
"sign_in": "Log ind",
"friends": "Venner",
"favorites": "Favoritter"
"friends": "Venner"
},
"header": {
"search": "Søg efter spil",
"home": "Hjem",
"catalogue": "Katalog",
"downloads": "Downloads",
@@ -111,7 +109,7 @@
"options": "Valgmuligheder",
"executable_section_title": "Eksekverbar fil",
"executable_section_description": "Sti til filen som skal bruges når \"Spil\" bliver klikket",
"downloads_section_title": "Downloads",
"downloads_secion_title": "Downloads",
"downloads_section_description": "Undersøg opdateringer eller andre versioner af dette spil",
"danger_zone_section_title": "Farezonen",
"danger_zone_section_description": "Fjern dette spil fra dit bibliotek eller filerne der er blevet downloadet af Hydra",
@@ -179,13 +177,13 @@
"behavior": "Opførsel",
"download_sources": "Download kilder",
"language": "Sprog",
"api_token": "API nøgle",
"real_debrid_api_token": "API nøgle",
"enable_real_debrid": "Slå Real-Debrid til",
"real_debrid_description": "Real-Debrid er en ubegrænset downloader der gør det muligt for dig at downloade filer med det samme og med den bedste udnyttelse af din internet hastighed.",
"debrid_invalid_token": "Ugyldig API nøgle",
"debrid_api_token_hint": "Du kan få din API nøgle <0>her</0>",
"real_debrid_invalid_token": "Ugyldig API nøgle",
"real_debrid_api_token_hint": "Du kan få din API nøgle <0>her</0>",
"real_debrid_free_account_error": "Brugeren \"{{username}}\" er en gratis bruger. Venligst abbonér på Real-Debrid",
"debrid_linked_message": "Brugeren \"{{username}}\" er forbundet",
"real_debrid_linked_message": "Brugeren \"{{username}}\" er forbundet",
"save_changes": "Gem ændringer",
"changes_saved": "Ændringer gemt successfuldt",
"download_sources_description": "Hydra vil hente download links fra disse kilder. Kilde URLen skal være et direkte link til en .json fil der indeholder download linkene.",
@@ -201,12 +199,6 @@
"download_source_errored": "Fejlede",
"sync_download_sources": "Synkronisér kilder",
"removed_download_source": "Download kilde fjernet",
"cancel_button_confirmation_delete_all_sources": "Ingen",
"confirm_button_confirmation_delete_all_sources": "Ja, slet alt",
"description_confirmation_delete_all_sources": "Du vil slette alle downloadkilder",
"title_confirmation_delete_all_sources": "Slet alle downloadkilder",
"removed_download_sources": "Download kilder fjernet",
"button_delete_all_sources": "Fjern alle downloadkilder",
"added_download_source": "Tilføjede download kilde",
"download_sources_synced": "Alle download kilder er synkroniserede",
"insert_valid_json_url": "Indsæt en gyldig JSON url",

View File

@@ -20,12 +20,10 @@
"home": "Home",
"queued": "{{title}} (In Warteschlange)",
"game_has_no_executable": "Spiel hat keine ausführbare Datei gewählt",
"sign_in": "Anmelden",
"favorites": "Favoriten"
"sign_in": "Anmelden"
},
"header": {
"search": "Spiele suchen",
"home": "Home",
"catalogue": "Katalog",
"downloads": "Downloads",
@@ -107,7 +105,7 @@
"options": "Optionen",
"executable_section_title": "Ausführbare Datei",
"executable_section_description": "Pfad der Datei, die bei Klick auf \"Play\" ausgeführt wird",
"downloads_section_title": "Downloads",
"downloads_secion_title": "Downloads",
"downloads_section_description": "Sieh dir Updates oder andere Versionen dieses Spiels an",
"danger_zone_section_title": "Gefahrenzone",
"danger_zone_section_description": "Entferne dieses Spiel aus deiner Bibliothek oder die von Hydra heruntergeladenen Dateien",
@@ -163,13 +161,13 @@
"behavior": "Verhalten",
"download_sources": "Download-Quellen",
"language": "Sprache",
"api_token": "API Token",
"real_debrid_api_token": "API Token",
"enable_real_debrid": "Real-Debrid aktivieren",
"real_debrid_description": "Real-Debrid ist ein unrestriktiver Downloader, der es dir ermöglicht Dateien sofort und mit deiner maximalen Internetgeschwindigkeit herunterzuladen.",
"debrid_invalid_token": "API token nicht gültig",
"debrid_api_token_hint": "<0>Hier</0> kannst du dir deinen API Token holen",
"real_debrid_invalid_token": "API token nicht gültig",
"real_debrid_api_token_hint": "<0>Hier</0> kannst du dir deinen API Token holen",
"real_debrid_free_account_error": "Das Konto \"{{username}}\" ist ein gratis account. Bitte abonniere Real-Debrid",
"debrid_linked_message": "Konto \"{{username}}\" verknüpft",
"real_debrid_linked_message": "Konto \"{{username}}\" verknüpft",
"save_changes": "Änderungen speichern",
"changes_saved": "Änderungen erfolgreich gespeichert",
"download_sources_description": "Hydra wird die Download-Links von diesen Quellen abrufen. Die Quell-URL muss ein direkter Link zu einer .json Datei, welche die Download-Links enthält, sein.",
@@ -185,12 +183,6 @@
"download_source_errored": "Fehlgeschlagen",
"sync_download_sources": "Quellen synchronisieren",
"removed_download_source": "Download-Quelle entfernt",
"cancel_button_confirmation_delete_all_sources": "Nein",
"confirm_button_confirmation_delete_all_sources": "Ja, alles löschen",
"description_confirmation_delete_all_sources": "Du löschen alle Downloadquellen",
"title_confirmation_delete_all_sources": "Löschen du alle Downloadquellen",
"removed_download_sources": "Download-Quellen entfernt",
"button_delete_all_sources": "Entfernen Sie alle Downloadquellen",
"added_download_source": "Download-Quelle hinzugefügt",
"download_sources_synced": "Alle Download-Quellen sind synchronisiert",
"insert_valid_json_url": "Füge eine gültige JSON URL ein",

View File

@@ -26,8 +26,7 @@
"game_has_no_executable": "Game has no executable selected",
"sign_in": "Sign in",
"friends": "Friends",
"need_help": "Need help?",
"favorites": "Favorites"
"need_help": "Need help?"
},
"header": {
"search": "Search games",
@@ -44,10 +43,7 @@
"downloading_metadata": "Downloading {{title}} metadata…",
"downloading": "Downloading {{title}}… ({{percentage}} complete) - Completion {{eta}} - {{speed}}",
"calculating_eta": "Downloading {{title}}… ({{percentage}} complete) - Calculating remaining time…",
"checking_files": "Checking {{title}} files… ({{percentage}} complete)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Installation complete",
"installation_complete_message": "Common redistributables installed successfully"
"checking_files": "Checking {{title}} files… ({{percentage}} complete)"
},
"catalogue": {
"search": "Filter…",
@@ -123,7 +119,7 @@
"options": "Options",
"executable_section_title": "Executable",
"executable_section_description": "Path of the file that will be executed when \"Play\" is clicked",
"downloads_section_title": "Downloads",
"downloads_secion_title": "Downloads",
"downloads_section_description": "Check out updates or other versions of this game",
"danger_zone_section_title": "Danger zone",
"danger_zone_section_description": "Remove this game from your library or the files downloaded by Hydra",
@@ -181,8 +177,6 @@
"manage_files_description": "Manage which files will be backed up and restored",
"select_folder": "Select folder",
"backup_from": "Backup from {{date}}",
"automatic_backup_from": "Automatic backup from {{date}}",
"enable_automatic_cloud_sync": "Enable automatic cloud sync",
"custom_backup_location_set": "Custom backup location set",
"no_directory_selected": "No directory selected",
"no_write_permission": "Cannot download into this directory. Click here to learn more.",
@@ -190,15 +184,7 @@
"reset_achievements_description": "This will reset all achievements for {{game}}",
"reset_achievements_title": "Are you sure?",
"reset_achievements_success": "Achievements successfully reset",
"reset_achievements_error": "Failed to reset achievements",
"download_error_gofile_quota_exceeded": "You have exceeded your Gofile monthly quota. Please await the quota to reset.",
"download_error_real_debrid_account_not_authorized": "Your Real-Debrid account is not authorized to make new downloads. Please check your account settings and try again.",
"download_error_not_cached_on_real_debrid": "This download is not available on Real-Debrid and polling download status from Real-Debrid is not yet available.",
"download_error_not_cached_on_torbox": "This download is not available on TorBox and polling download status from TorBox is not yet available.",
"download_error_not_cached_on_hydra": "This download is not available on Nimbus.",
"game_removed_from_favorites": "Game removed from favorites",
"game_added_to_favorites": "Game added to favorites",
"automatically_extract_downloaded_files": "Automatically extract downloaded files"
"reset_achievements_error": "Failed to reset achievements"
},
"activation": {
"title": "Activate Hydra",
@@ -235,9 +221,7 @@
"seeding": "Seeding",
"stop_seeding": "Stop seeding",
"resume_seeding": "Resume seeding",
"options": "Manage",
"extract": "Extract files",
"extracting": "Extracting files…"
"options": "Manage"
},
"settings": {
"downloads_path": "Downloads path",
@@ -252,13 +236,13 @@
"behavior": "Behavior",
"download_sources": "Download sources",
"language": "Language",
"api_token": "API Token",
"real_debrid_api_token": "API Token",
"enable_real_debrid": "Enable Real-Debrid",
"real_debrid_description": "Real-Debrid is an unrestricted downloader that allows you to quickly download files, only limited by your internet speed.",
"debrid_invalid_token": "Invalid API token",
"debrid_api_token_hint": "You can get your API token <0>here</0>",
"real_debrid_invalid_token": "Invalid API token",
"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",
"debrid_linked_message": "Account \"{{username}}\" linked",
"real_debrid_linked_message": "Account \"{{username}}\" linked",
"save_changes": "Save changes",
"changes_saved": "Changes successfully saved",
"download_sources_description": "Hydra will fetch the download links from these sources. The source URL must be a direct link to a .json file containing the download links.",
@@ -274,12 +258,6 @@
"download_source_errored": "Errored",
"sync_download_sources": "Sync sources",
"removed_download_source": "Download source removed",
"removed_download_sources": "Download sources removed",
"cancel_button_confirmation_delete_all_sources": "No",
"confirm_button_confirmation_delete_all_sources": "Yes, delete everything",
"title_confirmation_delete_all_sources": "Delete all download sources",
"description_confirmation_delete_all_sources": "You will delete all download sources",
"button_delete_all_sources": "Remove all",
"added_download_source": "Added download source",
"download_sources_synced": "All download sources are synced",
"insert_valid_json_url": "Insert a valid JSON url",
@@ -318,46 +296,7 @@
"become_subscriber": "Be Hydra Cloud",
"subscription_renew_cancelled": "Automatic renewal is disabled",
"subscription_renews_on": "Your subscription renews on {{date}}",
"bill_sent_until": "Your next bill will be sent until this day",
"no_themes": "Seems like you don't have any themes yet, but no worries, click here to create your first masterpiece.",
"editor_tab_code": "Code",
"editor_tab_info": "Info",
"editor_tab_save": "Save",
"web_store": "Web store",
"clear_themes": "Clear",
"create_theme": "Create",
"create_theme_modal_title": "Create custom theme",
"create_theme_modal_description": "Create a new theme to customize Hydra's appearance",
"theme_name": "Name",
"insert_theme_name": "Insert theme name",
"set_theme": "Set theme",
"unset_theme": "Unset theme",
"delete_theme": "Delete theme",
"edit_theme": "Edit theme",
"delete_all_themes": "Delete all themes",
"delete_all_themes_description": "This will delete all your custom themes",
"delete_theme_description": "This will delete the theme {{theme}}",
"cancel": "Cancel",
"appearance": "Appearance",
"enable_torbox": "Enable TorBox",
"torbox_description": "TorBox is your premium seedbox service rivaling even the best servers on the market.",
"torbox_account_linked": "TorBox account linked",
"create_real_debrid_account": "Click here if you don't have a Real-Debrid account yet",
"create_torbox_account": "Click here if you don't have a TorBox account yet",
"real_debrid_account_linked": "Real-Debrid account linked",
"name_min_length": "Theme name must be at least 3 characters long",
"import_theme": "Import theme",
"import_theme_description": "You will import {{theme}} from the theme store",
"error_importing_theme": "Error importing theme",
"theme_imported": "Theme imported successfully",
"enable_friend_request_notifications": "When a friend request is received",
"enable_auto_install": "Download updates automatically",
"common_redist": "Common redistributables",
"common_redist_description": "Common redistributables are required to run some games. Installing them is recommended to avoid issues.",
"install_common_redist": "Install",
"installing_common_redist": "Installing…",
"show_download_speed_in_megabytes": "Show download speed in megabytes per second",
"extract_files_by_default": "Extract files by default after download"
"bill_sent_until": "Your next bill will be sent until this day"
},
"notifications": {
"download_complete": "Download complete",
@@ -368,19 +307,13 @@
"new_update_available": "Version {{version}} available",
"restart_to_install_update": "Restart Hydra to install the update",
"notification_achievement_unlocked_title": "Achievement unlocked for {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} and other {{count}} were unlocked",
"new_friend_request_description": "You have received a new friend request",
"new_friend_request_title": "New friend request",
"extraction_complete": "Extraction complete",
"game_extracted": "{{title}} extracted successfully"
"notification_achievement_unlocked_body": "{{achievement}} and other {{count}} were unlocked"
},
"system_tray": {
"open": "Open Hydra",
"quit": "Quit"
},
"game_card": {
"available_one": "Available",
"available_other": "Available",
"no_downloads": "No downloads available"
},
"binary_not_found_modal": {
@@ -501,7 +434,6 @@
"animated_profile_banner": "Animated profile banner",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "You've just discovered a Hydra Cloud feature!",
"learn_more": "Learn More",
"debrid_description": "Download up to 4x faster with Nimbus"
"learn_more": "Learn More"
}
}

View File

@@ -26,8 +26,7 @@
"game_has_no_executable": "El juego no tiene un ejecutable seleccionado",
"sign_in": "Iniciar sesión",
"friends": "Amigos",
"need_help": "¿Necesitas ayuda?",
"favorites": "Favoritos"
"need_help": "¿Necesitas ayuda?"
},
"header": {
"search": "Buscar juegos",
@@ -44,9 +43,6 @@
"downloading_metadata": "Descargando metadatos de {{title}}…",
"downloading": "Descargando {{title}}… ({{percentage}} completado) - Finalizando {{eta}} - {{speed}}",
"calculating_eta": "Descargando {{title}}… ({{percentage}} completado) - Calculando tiempo restante…",
"installation_complete": "Instalación completada",
"installation_complete_message": "Common redistributables instalados exitosamente",
"installing_common_redist": "{{log}}…",
"checking_files": "Verificando archivos de {{title}}… ({{percentage}} completado)"
},
"catalogue": {
@@ -62,8 +58,6 @@
},
"game_details": {
"open_download_options": "Ver opciones de descargas",
"automatically_extract_downloaded_files": "Extraer automáticamente archivos descargados",
"download_error_not_cached_on_hydra": "Esta descarga no está disponible en Nimbus.",
"download_options_zero": "No hay opciones de descargas disponibles",
"download_options_one": "{{count}} opción de descarga",
"download_options_other": "{{count}} opciones de descargas",
@@ -124,7 +118,7 @@
"options": "Opciones",
"executable_section_title": "Ejecutable",
"executable_section_description": "Ruta del archivo que se ejecutará cuando se presione \"Jugar\"",
"downloads_section_title": "Descargas",
"downloads_secion_title": "Descargas",
"downloads_section_description": "Buscar actualizaciones u otras versiones de este juego",
"danger_zone_section_title": "Opciones Avanzadas",
"danger_zone_section_description": "Eliminar este juego de tu librería o los archivos descargados por Hydra (Esto solo eliminará los archivos de instalación y no el juego instalado)",
@@ -179,26 +173,9 @@
"manage_files_description": "Gestiona los archivos que serán respaldados y restaurados",
"select_folder": "Seleccionar carpeta",
"backup_from": "Copia de seguridad de {{date}}",
"automatic_backup_from": "Copia de seguridad automática de {{date}}",
"enable_automatic_cloud_sync": "Habilitar sincronización automática en la nube",
"custom_backup_location_set": "Se configuró la carpeta de copia de seguridad",
"clear": "Limpiar",
"no_directory_selected": "No se seleccionó un directorio",
"launch_options": "Opciones de Inicio",
"launch_options_description": "Los usuarios avanzados pueden introducir sus propias modificaciones de opciones de inicio (característica experimental)",
"launch_options_placeholder": "Sin parámetro específicado",
"no_write_permission": "No se puede descargar en este directorio. Presiona aquí para aprender más.",
"reset_achievements": "Reiniciar logros",
"reset_achievements_description": "Esto reiniciará todos los logros de {{game}}",
"reset_achievements_title": "¿Estás seguro?",
"reset_achievements_success": "Logros reiniciados exitosamente",
"reset_achievements_error": "Se produjo un error al reiniciar los logros",
"download_error_gofile_quota_exceeded": "Has excedido la cuota mensual de Gofile. Por favor espera a que se reinicie la cuota.",
"download_error_real_debrid_account_not_authorized": "Tu cuenta de Real-Debrid no está autorizada para nueva descargas. Por favor, revisa los ajustes de tu cuenta e intenta de nuevo.",
"download_error_not_cached_on_real_debrid": "Esta descarga no está disponible en Real-Debrid y el estado de descarga del sondeo de Real-Debrid aún no está disponible.",
"download_error_not_cached_on_torbox": "Esta descarga no está disponible en TorBox y el estado de descarga del sondeo aún no está disponible.",
"game_added_to_favorites": "Juego añadido a favoritos",
"game_removed_from_favorites": "Juego removido de favoritos"
"no_directory_selected": "No se seleccionó un directorio"
},
"activation": {
"title": "Activar Hydra",
@@ -235,19 +212,10 @@
"seeding": "Seeding",
"stop_seeding": "Detener seeding",
"resume_seeding": "Continuar seeding",
"extract": "Extraer archivos",
"extracting": "Extrayendo archivos…",
"options": "Gestionar"
},
"settings": {
"downloads_path": "Ruta de descarga",
"common_redist": "Common redistributables",
"common_redist_description": "Las Common redistributables son requeridos para ejecutar algunos juegos. Es recomendado instalarlos para evitar problemas.",
"create_real_debrid_account": "Presiona acá si no tienes una cuenta de Real-Debrid aún",
"create_torbox_account": "Presiona acá si no tienes una cuenta de TorBox aún",
"install_common_redist": "Instalar",
"installing_common_redist": "Instalando…",
"show_download_speed_in_megabytes": "Mostrar velocidad de descargar en megabytes por segundo",
"change": "Cambiar",
"notifications": "Notificaciones",
"enable_download_notifications": "Cuando se completa una descarga",
@@ -259,13 +227,13 @@
"behavior": "Otros",
"download_sources": "Fuentes de descarga",
"language": "Idioma",
"api_token": "Token API",
"real_debrid_api_token": "Token API",
"enable_real_debrid": "Activar Real-Debrid",
"real_debrid_description": "Real-Debrid es una forma de descargar sin restricciones archivos instantáneamente con la máxima velocidad de tu internet.",
"debrid_invalid_token": "Token de API inválido",
"debrid_api_token_hint": "Puedes obtener tu clave de API <0>aquí</0>",
"real_debrid_invalid_token": "Token de API inválido",
"real_debrid_api_token_hint": "Puedes obtener tu clave de API <0>aquí</0>",
"real_debrid_free_account_error": "La cuenta \"{{username}}\" es una cuenta gratuita. Por favor, suscríbete a Real-Debrid",
"debrid_linked_message": "Cuenta \"{{username}}\" vinculada",
"real_debrid_linked_message": "Cuenta \"{{username}}\" vinculada",
"save_changes": "Guardar cambios",
"changes_saved": "Ajustes guardados exitosamente",
"download_sources_description": "Hydra buscará los enlaces de descarga de estas fuentes. La URL de origen debe ser un enlace directo a un archivo .json que contenga los enlaces de descarga",
@@ -281,12 +249,6 @@
"download_source_errored": "Error",
"sync_download_sources": "Sincronizar fuentes",
"removed_download_source": "Fuente de descarga eliminada",
"cancel_button_confirmation_delete_all_sources": "No",
"confirm_button_confirmation_delete_all_sources": "Sí, eliminar todo",
"description_confirmation_delete_all_sources": "Eliminarás todas las fuentes de descarga",
"title_confirmation_delete_all_sources": "Eliminar todas las fuentes de descarga",
"removed_download_sources": "Fuentes de descarga eliminadas",
"button_delete_all_sources": "Eliminar todas las fuentes de descarga",
"added_download_source": "Fuente de descarga añadida",
"download_sources_synced": "Todas las fuentes de descargas están actualizadas.",
"insert_valid_json_url": "Introduce una URL JSON válida",
@@ -309,59 +271,10 @@
"launch_minimized": "Iniciar Hydra minimizado",
"disable_nsfw_alert": "Desactivar alerta NSFW",
"seed_after_download_complete": "Realizar seeding después de que se completa la descarga",
"show_hidden_achievement_description": "Ocultar descripción de logros ocultos antes de desbloquearlos",
"account": "Cuenta",
"account_data_updated_successfully": "Datos de la cuenta actualizados",
"bill_sent_until": "Tú próxima factura se enviará el {{date}}",
"current_email": "Correo actual:",
"manage_subscription": "Gestionar suscripción",
"no_email_account": "No has configurado un correo aún",
"no_subscription": "Disfruta Hydra de la mejor manera",
"no_users_blocked": "No tienes usuarios bloqueados",
"renew_subscription": "Renovar Hydra Cloud",
"subscription_active_until": "Tu Hydra Cloud está activa hasta {{date}}",
"subscription_expired_at": "Tú suscripción expiró el {{date}}",
"subscription_renew_cancelled": "Está desactivada la renovación automática",
"subscription_renews_on": "Tú suscripción se renueva el {{date}}",
"update_email": "Actualizar correo",
"update_password": "Actualizar contraseña",
"appearance": "Apariencia",
"become_subscriber": "Sé Hydra Cloud",
"cancel": "Cancelar",
"clear_themes": "Limpiar",
"create_theme": "Crear",
"create_theme_modal_description": "Crea un nuevo tema para personalizar la apariencia de Hydra",
"create_theme_modal_title": "Crear tema personalizado",
"delete_all_themes": "Eliminar todos los temas",
"delete_all_themes_description": "Esto eliminará todos tus temas personalizados",
"delete_theme": "Eliminar tema",
"delete_theme_description": "Esto eliminará el tema {{theme}}",
"edit_theme": "Editar tema",
"editor_tab_code": "Código",
"editor_tab_info": "Info",
"editor_tab_save": "Guardar",
"enable_torbox": "Habilitar TorBox",
"error_importing_theme": "Error al importar el tema",
"import_theme": "Importar tema",
"import_theme_description": "Vas a importar el tema {{theme}} desde la tienda de temas",
"insert_theme_name": "Introducí el nombre del tema",
"name_min_length": "El tema tiene que tener 3 carácteres de largo mínimo",
"no_themes": "Parece que no tenés ningún tema aún, pero no te preocupes, presiona acá para crear tu primer tema.",
"real_debrid_account_linked": "Cuenta de Real-Debrid vinculada",
"set_theme": "Establecer tema",
"theme_imported": "Tema importado exitosamente",
"theme_name": "Nombre",
"torbox_account_linked": "Cuenta de TorBox vinculada",
"torbox_description": "TorBox es tu servicio premium de seedbox que rivaliza incluso a los mejores servidores del mercado.",
"unset_theme": "Desactivar tema",
"web_store": "Tienda Web",
"enable_friend_request_notifications": "Cuando se recibe una solicitud de amistad",
"enable_auto_install": "Descargar actualizaciones automáticamente"
"show_hidden_achievement_description": "Ocultar descripción de logros ocultos antes de desbloquearlos"
},
"notifications": {
"download_complete": "Descarga completada",
"extraction_complete": "Extracción completada",
"game_extracted": "{{title}} extraído exitosamente",
"game_ready_to_install": "{{title}} está listo para instalarse",
"repack_list_updated": "Lista de repacks actualizadas",
"repack_count_one": "{{count}} repack ha sido añadido",
@@ -369,17 +282,13 @@
"new_update_available": "Version {{version}} disponible",
"restart_to_install_update": "Reinicia Hydra para instalar la actualización",
"notification_achievement_unlocked_title": "Logro desbloqueado de {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} y otros {{count}} fueron desbloqueados",
"new_friend_request_title": "Nueva solicitud de amistad",
"new_friend_request_description": "Has recibido una nueva solicitud de amistad"
"notification_achievement_unlocked_body": "{{achievement}} y otros {{count}} fueron desbloqueados"
},
"system_tray": {
"open": "Abrir Hydra",
"quit": "Salir"
},
"game_card": {
"available_one": "Disponible",
"available_other": "Disponibles",
"no_downloads": "No hay descargas disponibles"
},
"binary_not_found_modal": {
@@ -491,7 +400,6 @@
},
"hydra_cloud": {
"subscription_tour_title": "Suscripción Hydra Cloud",
"debrid_description": "Descargas hasta x4 más rápidas con Nimbus",
"subscribe_now": "Suscribirse ahora",
"cloud_saving": "Guardado en la nube",
"cloud_achievements": "Guarda tus logros en la nube",

View File

@@ -25,8 +25,7 @@
"queued": "{{title}} (Järjekorras)",
"game_has_no_executable": "Mängul pole käivitusfaili valitud",
"sign_in": "Logi sisse",
"friends": "Sõbrad",
"favorites": "Lemmikud"
"friends": "Sõbrad"
},
"header": {
"search": "Otsi mänge",
@@ -111,7 +110,7 @@
"options": "Valikud",
"executable_section_title": "Käivitusfail",
"executable_section_description": "Faili tee, mida käivitatakse \"Mängi\" nupule vajutades",
"downloads_section_title": "Allalaadimised",
"downloads_secion_title": "Allalaadimised",
"downloads_section_description": "Vaata uuendusi või selle mängu teisi versioone",
"danger_zone_section_title": "Ohutsoon",
"danger_zone_section_description": "Eemalda see mäng oma kogust või Hydra poolt allalaaditud failid",
@@ -214,13 +213,13 @@
"behavior": "Käitumine",
"download_sources": "Allalaadimise allikad",
"language": "Keel",
"api_token": "API Võti",
"real_debrid_api_token": "API Võti",
"enable_real_debrid": "Luba Real-Debrid",
"real_debrid_description": "Real-Debrid on piiranguteta allalaadija, mis võimaldab sul faile alla laadida koheselt ja sinu internetiühenduse parima kiirusega.",
"debrid_invalid_token": "Vigane API võti",
"debrid_api_token_hint": "Sa saad oma API võtme <0>siit</0>",
"real_debrid_invalid_token": "Vigane API võti",
"real_debrid_api_token_hint": "Sa saad oma API võtme <0>siit</0>",
"real_debrid_free_account_error": "Konto \"{{username}}\" on tasuta konto. Palun telli Real-Debrid",
"debrid_linked_message": "Konto \"{{username}}\" ühendatud",
"real_debrid_linked_message": "Konto \"{{username}}\" ühendatud",
"save_changes": "Salvesta muudatused",
"changes_saved": "Muudatused edukalt salvestatud",
"download_sources_description": "Hydra laeb allalaadimise lingid nendest allikatest. Allika URL peab olema otsene link .json failile, mis sisaldab allalaadimise linke.",
@@ -236,12 +235,6 @@
"download_source_errored": "Vigane",
"sync_download_sources": "Sünkroniseeri allikad",
"removed_download_source": "Allalaadimise allikas eemaldatud",
"cancel_button_confirmation_delete_all_sources": "Ei",
"confirm_button_confirmation_delete_all_sources": "Jah, kustuta kõik",
"description_confirmation_delete_all_sources": "Kustutate kõik allalaadimisallikad",
"title_confirmation_delete_all_sources": "Kustutage kõik allalaadimisallikad",
"removed_download_sources": "Allalaadimise allikas eemaldati",
"button_delete_all_sources": "Eemaldage kõik allalaadimisallikad",
"added_download_source": "Allalaadimise allikas lisatud",
"download_sources_synced": "Kõik allalaadimise allikad on sünkroniseeritud",
"insert_valid_json_url": "Sisesta kehtiv JSON url",

View File

@@ -14,10 +14,8 @@
"paused": "{{title}} (متوقف شده)",
"downloading": "{{title}} ({{percentage}} - در حال دانلود…)",
"filter": "فیلتر کردن کتابخانه",
"home": "خانه",
"favorites": "علاقه‌مندی‌ها"
"home": "خانه"
},
"header": {
"search": "جستجوی بازی‌ها",
"home": "خانه",
@@ -111,14 +109,8 @@
"launch_with_system": "زمانی که سیستم روشن می‌شود، هایدرا را باز کن",
"general": "کلی",
"behavior": "رفتار",
"cancel_button_confirmation_delete_all_sources": "خیر",
"confirm_button_confirmation_delete_all_sources": "ہاں، سب کچھ حذف کر دیں۔",
"description_confirmation_delete_all_sources": "آپ ڈاؤن لوڈ کے تمام ذرائع کو حذف کر دیں گے۔",
"title_confirmation_delete_all_sources": "تمام منابع دانلود را حذف کنید",
"removed_download_sources": "منابع دانلود حذف شد",
"button_delete_all_sources": "تمام منابع دانلود را حذف کنید",
"enable_real_debrid": "فعال‌سازی Real-Debrid",
"debrid_api_token_hint": "کلید API خود را از <ب0>اینجا</0> بگیرید.",
"real_debrid_api_token_hint": "کلید API خود را از <ب0>اینجا</0> بگیرید.",
"save_changes": "ذخیره تغییرات"
},
"notifications": {

View File

@@ -1,16 +1,9 @@
{
"language_name": "Français",
"app": {
"successfully_signed_in": "Connecté avec succès"
},
"home": {
"featured": "En vedette",
"surprise_me": "Surprenez-moi",
"no_results": "Aucun résultat trouvé",
"start_typing": "Commencez à taper pour rechercher...",
"hot": "Tendance",
"weekly": "📅 Meilleurs jeux de la semaine",
"achievements": "🏆 Jeux à terminer"
"no_results": "Aucun résultat trouvé"
},
"sidebar": {
"catalogue": "Catalogue",
@@ -19,46 +12,22 @@
"my_library": "Ma bibliothèque",
"downloading_metadata": "{{title}} (Téléchargement des métadonnées…)",
"paused": "{{title}} (En pause)",
"downloading": "{{title}} ({{percentage}} - Téléchargement…)",
"downloading": "{{title}} ({{percentage}} - Téléchargement en cours…)",
"filter": "Filtrer la bibliothèque",
"home": "Page d'accueil",
"queued": "{{title}} (En file d'attente)",
"game_has_no_executable": "Aucun exécutable sélectionné pour ce jeu",
"sign_in": "Se connecter",
"friends": "Amis",
"need_help": "Besoin d'aide ?",
"favorites": "Favoris"
"home": "Page daccueil"
},
"header": {
"search": "Rechercher",
"home": "Accueil",
"search": "Recherche",
"catalogue": "Catalogue",
"downloads": "Téléchargements",
"search_results": "Résultats de la recherche",
"settings": "Paramètres",
"version_available_install": "Version {{version}} disponible. Cliquez ici pour redémarrer et installer.",
"version_available_download": "Version {{version}} disponible. Cliquez ici pour télécharger."
"home": "Accueil"
},
"bottom_panel": {
"no_downloads_in_progress": "Aucun téléchargement en cours",
"downloading_metadata": "Téléchargement des métadonnées de {{title}}…",
"downloading": "Téléchargement de {{title}}… ({{percentage}} terminé) - Fin dans {{eta}} - {{speed}}",
"calculating_eta": "Téléchargement de {{title}}… ({{percentage}} terminé) - Calcul du temps restant…",
"checking_files": "Vérification des fichiers de {{title}}… ({{percentage}} terminé)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Installation terminée",
"installation_complete_message": "Redistribuables communs installés avec succès"
},
"catalogue": {
"search": "Filtrer…",
"developers": "Développeurs",
"genres": "Genres",
"tags": "Tags",
"publishers": "Éditeurs",
"download_sources": "Sources de téléchargement",
"result_count": "{{resultCount}} résultats",
"filter_count": "{{filterCount}} disponibles",
"clear_filters": "Effacer {{filterCount}} sélectionnés"
"downloading": "Téléchargement de {{title}}… ({{percentage}} terminé) - Fin dans {{eta}} - {{speed}}"
},
"game_details": {
"open_download_options": "Ouvrir les options de téléchargement",
@@ -66,139 +35,36 @@
"download_options_one": "{{count}} option de téléchargement",
"download_options_other": "{{count}} options de téléchargement",
"updated_at": "Mis à jour le {{updated_at}}",
"install": "Installer",
"resume": "Reprendre",
"pause": "Pause",
"cancel": "Annuler",
"remove": "Supprimer",
"space_left_on_disk": "{{space}} restants sur le disque",
"space_left_on_disk": "{{space}} restant sur le disque",
"eta": "Fin dans {{eta}}",
"calculating_eta": "Calcul du temps restant…",
"downloading_metadata": "Téléchargement des métadonnées…",
"downloading_metadata": "Téléchargement des métadonnées en cours…",
"filter": "Filtrer les repacks",
"requirements": "Configuration requise",
"minimum": "Minimum",
"recommended": "Recommandée",
"paused": "En pause",
"release_date": "Sorti le {{date}}",
"publisher": "Publié par {{publisher}}",
"publisher": "Édité par {{publisher}}",
"hours": "heures",
"minutes": "minutes",
"amount_hours": "{{amount}} heures",
"amount_minutes": "{{amount}} minutes",
"accuracy": "{{accuracy}}% précision",
"add_to_library": "Ajouter à la bibliothèque",
"remove_from_library": "Retirer de la bibliothèque",
"remove_from_library": "Supprimer de la bibliothèque",
"no_downloads": "Aucun téléchargement disponible",
"play_time": "{{amount}} de temps de jeu",
"last_time_played": "Dernière partie {{period}}",
"not_played_yet": "Vous n'avez pas encore joué à {{title}}",
"next_suggestion": "Suggestion suivante",
"play_time": "Joué pour {{amount}}",
"install": "Installer",
"play": "Jouer",
"deleting": "Suppression de l'installateur…",
"not_played_yet": "Vous n'avez pas encore joué à {{title}}",
"close": "Fermer",
"playing_now": "En cours de jeu",
"change": "Changer",
"repacks_modal_description": "Choisissez le repack que vous souhaitez télécharger",
"select_folder_hint": "Pour changer le dossier par défaut, allez dans les <0>Paramètres</0>",
"download_now": "Télécharger maintenant",
"no_shop_details": "Impossible d'obtenir les détails du magasin.",
"download_options": "Options de téléchargement",
"download_path": "Emplacement de téléchargement",
"previous_screenshot": "Capture précédente",
"next_screenshot": "Capture suivante",
"screenshot": "Capture d'écran {{number}}",
"open_screenshot": "Ouvrir la capture {{number}}",
"download_settings": "Paramètres de téléchargement",
"downloader": "Téléchargeur",
"select_executable": "Sélectionner",
"no_executable_selected": "Aucun exécutable sélectionné",
"open_folder": "Ouvrir le dossier",
"open_download_location": "Voir les fichiers téléchargés",
"create_shortcut": "Créer un raccourci sur le bureau",
"clear": "Effacer",
"remove_files": "Supprimer les fichiers",
"remove_from_library_title": "Êtes-vous sûr ?",
"remove_from_library_description": "Ceci supprimera {{game}} de votre bibliothèque",
"options": "Options",
"executable_section_title": "Exécutable",
"executable_section_description": "Chemin du fichier lancé quand \"Jouer\" est cliqué",
"downloads_section_title": "Téléchargements",
"downloads_section_description": "Découvrez les mises à jour ou autres versions de ce jeu",
"danger_zone_section_title": "Zone de danger",
"danger_zone_section_description": "Supprimez ce jeu de votre bibliothèque ou les fichiers téléchargés par Hydra",
"download_in_progress": "Téléchargement en cours",
"download_paused": "Téléchargement en pause",
"last_downloaded_option": "Dernière option téléchargée",
"create_shortcut_success": "Raccourci créé avec succès",
"create_shortcut_error": "Erreur lors de la création du raccourci",
"nsfw_content_title": "Ce jeu contient du contenu inapproprié",
"nsfw_content_description": "{{title}} contient du contenu pouvant ne pas convenir à tous les âges. Voulez-vous continuer ?",
"allow_nsfw_content": "Continuer",
"refuse_nsfw_content": "Retourner",
"stats": "Statistiques",
"download_count": "Téléchargements",
"player_count": "Joueurs actifs",
"download_error": "Cette option de téléchargement n'est pas disponible",
"download": "Télécharger",
"executable_path_in_use": "Exécutable déjà utilisé par \"{{game}}\"",
"warning": "Attention :",
"hydra_needs_to_remain_open": "Pour ce téléchargement, Hydra doit rester ouvert jusqu'à la fin. Si Hydra se ferme avant, la progression sera perdue.",
"achievements": "Succès",
"achievements_count": "Succès {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Sauvegarde Cloud",
"cloud_save_description": "Sauvegardez vos progrès dans le cloud et continuez à jouer sur n'importe quel appareil",
"backups": "Sauvegardes",
"install_backup": "Restaurer",
"delete_backup": "Supprimer",
"create_backup": "Nouvelle sauvegarde",
"last_backup_date": "Dernière sauvegarde le {{date}}",
"no_backup_preview": "Aucune sauvegarde trouvée pour ce titre",
"restoring_backup": "Restauration de la sauvegarde ({{progress}} terminé)…",
"uploading_backup": "Envoi de la sauvegarde…",
"no_backups": "Vous n'avez pas encore créé de sauvegarde pour ce jeu",
"backup_uploaded": "Sauvegarde envoyée",
"backup_deleted": "Sauvegarde supprimée",
"backup_restored": "Sauvegarde restaurée",
"see_all_achievements": "Voir tous les succès",
"sign_in_to_see_achievements": "Connectez-vous pour voir les succès",
"mapping_method_automatic": "Automatique",
"mapping_method_manual": "Manuel",
"mapping_method_label": "Méthode de mappage",
"files_automatically_mapped": "Fichiers mappés automatiquement",
"no_backups_created": "Aucune sauvegarde créée pour ce jeu",
"manage_files": "Gérer les fichiers",
"loading_save_preview": "Recherche de jeux sauvegardés…",
"wine_prefix": "Wine Prefix",
"wine_prefix_description": "Le préfixe Wine utilisé pour lancer ce jeu",
"launch_options": "Options de lancement",
"launch_options_description": "Les utilisateurs avancés peuvent modifier les options de lancement (fonction expérimentale)",
"launch_options_placeholder": "Aucun paramètre spécifié",
"no_download_option_info": "Pas d'information disponible",
"backup_deletion_failed": "Échec de la suppression de la sauvegarde",
"max_number_of_artifacts_reached": "Nombre maximal de sauvegardes atteint pour ce jeu",
"achievements_not_sync": "Voir comment synchroniser vos succès",
"manage_files_description": "Gérer les fichiers qui seront sauvegardés et restaurés",
"select_folder": "Sélectionner un dossier",
"backup_from": "Sauvegarde du {{date}}",
"automatic_backup_from": "Sauvegarde automatique du {{date}}",
"enable_automatic_cloud_sync": "Activer la synchronisation cloud automatique",
"custom_backup_location_set": "Emplacement de sauvegarde personnalisé défini",
"no_directory_selected": "Aucun dossier sélectionné",
"no_write_permission": "Impossible de télécharger dans ce dossier. Cliquez ici pour en savoir plus.",
"reset_achievements": "Réinitialiser les succès",
"reset_achievements_description": "Ceci réinitialisera tous les succès pour {{game}}",
"reset_achievements_title": "Êtes-vous sûr ?",
"reset_achievements_success": "Succès réinitialisés avec succès",
"reset_achievements_error": "Échec de la réinitialisation des succès",
"download_error_gofile_quota_exceeded": "Vous avez dépassé votre quota mensuel Gofile. Attendez la remise à zéro du quota.",
"download_error_real_debrid_account_not_authorized": "Votre compte Real-Debrid n'est pas autorisé à effectuer de nouveaux téléchargements. Veuillez vérifier les paramètres de votre compte et réessayer.",
"download_error_not_cached_on_real_debrid": "Ce téléchargement n'est pas disponible sur Real-Debrid, et le suivi n'est pas encore disponible.",
"download_error_not_cached_on_torbox": "Ce téléchargement n'est pas disponible sur TorBox, et le suivi n'est pas encore disponible.",
"download_error_not_cached_on_hydra": "Ce téléchargement n'est pas disponible sur Nimbus.",
"game_removed_from_favorites": "Jeu retiré des favoris",
"game_added_to_favorites": "Jeu ajouté aux favoris",
"automatically_extract_downloaded_files": "Extraire automatiquement les fichiers téléchargés"
"deleting": "Suppression du programme d'installation…",
"playing_now": "Jeu en cours",
"last_time_played": "Dernièrement joué {{period}}"
},
"activation": {
"title": "Activer Hydra",
@@ -215,292 +81,45 @@
"paused": "En pause",
"verifying": "Vérification en cours…",
"completed": "Terminé",
"removed": "Non téléchargé",
"cancel": "Annuler",
"filter": "Filtrer les jeux téléchargés",
"remove": "Supprimer",
"downloading_metadata": "Téléchargement des métadonnées en cours…",
"deleting": "Suppression du programme d'installation…",
"delete": "Supprimer le programme d'installation",
"delete_modal_title": "Êtes-vous sûr ?",
"delete_modal_description": "Cela supprimera tous les fichiers d'installation de votre ordinateur",
"install": "Installer",
"download_in_progress": "En cours",
"queued_downloads": "Téléchargements en attente",
"downloads_completed": "Terminés",
"queued": "En attente",
"no_downloads_title": "Tellement vide",
"no_downloads_description": "Vous n'avez encore rien téléchargé avec Hydra, mais il n'est jamais trop tard pour commencer.",
"checking_files": "Vérification des fichiers…",
"seeding": "Partage",
"stop_seeding": "Arrêter le partage",
"resume_seeding": "Reprendre le partage",
"options": "Gérer",
"extract": "Extraire les fichiers",
"extracting": "Extraction des fichiers…"
"delete_modal_title": "Es-tu sûr?",
"deleting": "Suppression du programme d'installation…",
"install": "Installer"
},
"settings": {
"downloads_path": "Chemin des téléchargements",
"change": "Mettre à jour",
"notifications": "Notifications",
"enable_download_notifications": "Lorsqu'un téléchargement est terminé",
"enable_repack_list_notifications": "Lorsqu'un nouveau repack est ajouté",
"real_debrid_api_token_label": "Jeton API Real-Debrid",
"quit_app_instead_hiding": "Ne pas masquer Hydra à la fermeture",
"launch_with_system": "Lancer Hydra au démarrage du système",
"general": "Général",
"behavior": "Comportement",
"download_sources": "Sources de téléchargement",
"language": "Langue",
"api_token": "Jeton API",
"enable_real_debrid": "Activer Real-Debrid",
"real_debrid_description": "Real-Debrid est un téléchargeur sans restriction qui vous permet de télécharger rapidement des fichiers, uniquement limités par votre vitesse Internet.",
"debrid_invalid_token": "Jeton API invalide",
"debrid_api_token_hint": "Vous pouvez obtenir votre jeton API <0>ici</0>",
"real_debrid_free_account_error": "Le compte \"{{username}}\" est un compte gratuit. Veuillez vous abonner à Real-Debrid",
"debrid_linked_message": "Compte \"{{username}}\" lié",
"save_changes": "Enregistrer les modifications",
"changes_saved": "Modifications enregistrées avec succès",
"download_sources_description": "Hydra récupère les liens de téléchargement à partir de ces sources. L'URL source doit être un lien direct vers un fichier .json contenant les liens de téléchargement.",
"validate_download_source": "Valider",
"remove_download_source": "Supprimer",
"add_download_source": "Ajouter une source",
"download_count_zero": "Aucune option de téléchargement",
"download_count_one": "{{countFormatted}} option de téléchargement",
"download_count_other": "{{countFormatted}} options de téléchargement",
"download_source_url": "URL de la source",
"add_download_source_description": "Insérez l'URL du fichier .json",
"download_source_up_to_date": "À jour",
"download_source_errored": "Erreur",
"sync_download_sources": "Synchroniser les sources",
"removed_download_source": "Source de téléchargement supprimée",
"removed_download_sources": "Sources de téléchargement supprimées",
"cancel_button_confirmation_delete_all_sources": "Non",
"confirm_button_confirmation_delete_all_sources": "Oui, tout supprimer",
"title_confirmation_delete_all_sources": "Supprimer toutes les sources de téléchargement",
"description_confirmation_delete_all_sources": "Vous supprimerez toutes les sources de téléchargement",
"button_delete_all_sources": "Tout supprimer",
"added_download_source": "Source de téléchargement ajoutée",
"download_sources_synced": "Toutes les sources de téléchargement sont synchronisées",
"insert_valid_json_url": "Insérez une URL JSON valide",
"found_download_option_zero": "Aucune option de téléchargement trouvée",
"found_download_option_one": "{{countFormatted}} option trouvée",
"found_download_option_other": "{{countFormatted}} options trouvées",
"import": "Importer",
"public": "Publique",
"private": "Privé",
"friends_only": "Amis uniquement",
"privacy": "Confidentialité",
"profile_visibility": "Visibilité du profil",
"profile_visibility_description": "Choisissez qui peut voir votre profil et bibliothèque",
"required_field": "Ce champ est requis",
"source_already_exists": "Cette source a déjà été ajoutée",
"must_be_valid_url": "La source doit être une URL valide",
"blocked_users": "Utilisateurs bloqués",
"user_unblocked": "Utilisateur débloqué",
"enable_achievement_notifications": "Quand un succès est débloqué",
"launch_minimized": "Lancer Hydra minimisé",
"disable_nsfw_alert": "Désactiver l'alerte NSFW",
"seed_after_download_complete": "Partager après téléchargement",
"show_hidden_achievement_description": "Afficher la description des succès cachés avant de les débloquer",
"account": "Compte",
"no_users_blocked": "Aucun utilisateur bloqué",
"subscription_active_until": "Votre Hydra Cloud est actif jusqu'au {{date}}",
"manage_subscription": "Gérer l'abonnement",
"update_email": "Modifier l'email",
"update_password": "Modifier le mot de passe",
"current_email": "Email actuel :",
"no_email_account": "Vous n'avez pas encore défini d'email",
"account_data_updated_successfully": "Informations du compte mises à jour",
"renew_subscription": "Renouveler Hydra Cloud",
"subscription_expired_at": "Votre abonnement a expiré le {{date}}",
"no_subscription": "Profitez d'Hydra de la meilleure façon possible",
"become_subscriber": "Devenir membre Hydra Cloud",
"subscription_renew_cancelled": "Le renouvellement automatique est désactivé",
"subscription_renews_on": "Votre abonnement sera renouvelé le {{date}}",
"bill_sent_until": "Votre prochaine facture sera envoyée à cette date",
"no_themes": "Vous n'avez pas encore de thèmes, cliquez ici pour créer votre premier chef-d'œuvre.",
"editor_tab_code": "Code",
"editor_tab_info": "Info",
"editor_tab_save": "Enregistrer",
"web_store": "Web store",
"clear_themes": "Effacer",
"create_theme": "Créer",
"create_theme_modal_title": "Créer un thème personnalisé",
"create_theme_modal_description": "Créer un nouveau thème pour personnaliser l'apparence d'Hydra",
"theme_name": "Nom du thème",
"insert_theme_name": "Entrez le nom du thème",
"set_theme": "Activer le thème",
"unset_theme": "Désactiver le thème",
"delete_theme": "Supprimer le thème",
"edit_theme": "Modifier le thème",
"delete_all_themes": "Supprimer tous les thèmes",
"delete_all_themes_description": "Cela supprimera tous vos thèmes personnalisés",
"delete_theme_description": "Cela supprimera le thème {{theme}}",
"cancel": "Annuler",
"appearance": "Apparence",
"enable_torbox": "Activer TorBox",
"torbox_description": "TorBox est votre service de seedbox premium qui rivalise avec les meilleurs serveurs du marché.",
"torbox_account_linked": "Compte TorBox lié",
"create_real_debrid_account": "Cliquez ici pour créer un compte Real-Debrid",
"create_torbox_account": "Cliquez ici pour créer un compte TorBox",
"real_debrid_account_linked": "Compte Real-Debrid lié",
"name_min_length": "Le nom du thème doit comporter au moins 3 caractères",
"import_theme": "Importer un thème",
"import_theme_description": "Vous allez importer {{theme}} du magasin de thèmes",
"error_importing_theme": "Erreur lors de l'importation du thème",
"theme_imported": "Thème importé avec succès",
"enable_friend_request_notifications": "Lors de réception de demande d'ami",
"enable_auto_install": "Télécharger les mises à jour automatiquement",
"common_redist": "Redistribuables communs",
"common_redist_description": "Certains jeux nécessitent les redistribuables communs. L'installation est recommandée.",
"install_common_redist": "Installer",
"installing_common_redist": "Installation…",
"show_download_speed_in_megabytes": "Afficher la vitesse de téléchargement en mégaoctets par seconde"
"enable_download_notifications": "Quand un téléchargement est terminé",
"enable_repack_list_notifications": "Quand un nouveau repack est ajouté",
"language": "Langue"
},
"notifications": {
"download_complete": "Téléchargement terminé",
"game_ready_to_install": "{{title}} est prêt à être installé",
"repack_list_updated": "Liste de repacks mise à jour",
"repack_count_one": "{{count}} repack ajouté",
"repack_count_other": "{{count}} repacks ajoutés",
"new_update_available": "Version {{version}} disponible",
"restart_to_install_update": "Redémarrez Hydra pour installer la mise à jour",
"notification_achievement_unlocked_title": "Succès débloqué pour {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} et {{count}} autre(s) débloqués",
"new_friend_request_description": "Vous avez reçu une nouvelle demande d'ami",
"new_friend_request_title": "Nouvelle demande d'ami",
"extraction_complete": "Extraction terminée",
"game_extracted": "{{title}} extrait avec succès"
"repack_count_other": "{{count}} repacks ajoutés"
},
"system_tray": {
"open": "Ouvrir Hydra",
"quit": "Quitter"
},
"game_card": {
"available_one": "Disponible",
"available_other": "Disponibles",
"no_downloads": "Aucun téléchargement disponible"
},
"binary_not_found_modal": {
"title": "Programmes non installés",
"description": "Les exécutables Wine ou Lutris sont introuvables sur votre système",
"instructions": "Vérifiez la bonne façon d'installer l'un d'entre eux sur votre distribution Linux afin que le jeu puisse fonctionner normalement"
"instructions": "Vérifiez la bonne façon d'installer l'un d'entre eux sur votre distribution Linux afin que le jeu puisse fonctionner normalement",
"title": "Programmes non installés"
},
"modal": {
"close": "Fermer la fenêtre"
},
"forms": {
"toggle_password_visibility": "Afficher/Masquer le mot de passe"
},
"user_profile": {
"amount_hours": "{{amount}} heures",
"amount_minutes": "{{amount}} minutes",
"last_time_played": "Dernière partie {{period}}",
"activity": "Activité récente",
"library": "Bibliothèque",
"total_play_time": "Temps de jeu total",
"no_recent_activity_title": "Hmm… rien ici",
"no_recent_activity_description": "Vous n'avez pas joué récemment. Il est temps d'y remédier !",
"display_name": "Nom d'affichage",
"saving": "Enregistrement",
"save": "Enregistrer",
"edit_profile": "Modifier le profil",
"saved_successfully": "Enregistré avec succès",
"try_again": "Veuillez réessayer",
"sign_out_modal_title": "Êtes-vous sûr ?",
"cancel": "Annuler",
"successfully_signed_out": "Déconnecté avec succès",
"sign_out": "Se déconnecter",
"playing_for": "En jeu depuis {{amount}}",
"sign_out_modal_text": "Votre bibliothèque est liée à ce compte. Si vous vous déconnectez, elle ne sera plus visible et la progression ne sera pas sauvegardée. Continuer ?",
"add_friends": "Ajouter des amis",
"add": "Ajouter",
"friend_code": "Code ami",
"see_profile": "Voir le profil",
"sending": "Envoi",
"friend_request_sent": "Demande d'ami envoyée",
"friends": "Amis",
"friends_list": "Liste d'amis",
"user_not_found": "Utilisateur introuvable",
"block_user": "Bloquer l'utilisateur",
"add_friend": "Ajouter un ami",
"request_sent": "Demande envoyée",
"request_received": "Demande reçue",
"accept_request": "Accepter la demande",
"ignore_request": "Ignorer la demande",
"cancel_request": "Annuler la demande",
"undo_friendship": "Retirer de la liste d'amis",
"request_accepted": "Demande acceptée",
"user_blocked_successfully": "Utilisateur bloqué avec succès",
"user_block_modal_text": "Vous allez bloquer {{displayName}}",
"blocked_users": "Utilisateurs bloqués",
"unblock": "Débloquer",
"no_friends_added": "Vous n'avez pas encore d'amis",
"pending": "En attente",
"no_pending_invites": "Aucune invitation en attente",
"no_blocked_users": "Aucun utilisateur bloqué",
"friend_code_copied": "Code ami copié",
"undo_friendship_modal_text": "Vous allez retirer {{displayName}} de vos amis",
"privacy_hint": "Pour changer qui voit ceci, allez dans les <0>Paramètres</0>",
"locked_profile": "Ce profil est privé",
"image_process_failure": "Erreur lors du traitement de l'image",
"required_field": "Ce champ est requis",
"displayname_min_length": "Le nom doit contenir au moins 3 caractères",
"displayname_max_length": "Le nom doit contenir au maximum 50 caractères",
"report_profile": "Signaler ce profil",
"report_reason": "Pourquoi signaler ce profil ?",
"report_description": "Informations supplémentaires",
"report_description_placeholder": "Infos en plus",
"report": "Signaler",
"report_reason_hate": "Discours de haine",
"report_reason_sexual_content": "Contenu sexuel",
"report_reason_violence": "Violence",
"report_reason_spam": "Spam",
"report_reason_other": "Autre",
"profile_reported": "Profil signalé",
"your_friend_code": "Votre code ami :",
"upload_banner": "Télécharger une bannière",
"uploading_banner": "Téléversement de la bannière…",
"background_image_updated": "Image de fond mise à jour",
"stats": "Statistiques",
"achievements": "Succès",
"games": "Jeux",
"top_percentile": "Top {{percentile}}%",
"ranking_updated_weekly": "Classement mis à jour chaque semaine",
"playing": "En train de jouer à {{game}}",
"achievements_unlocked": "Succès débloqués",
"earned_points": "Points gagnés",
"show_achievements_on_profile": "Afficher vos succès sur votre profil",
"show_points_on_profile": "Afficher vos points sur votre profil"
},
"achievement": {
"achievement_unlocked": "Succès débloqué",
"user_achievements": "Succès de {{displayName}}",
"your_achievements": "Vos succès",
"unlocked_at": "Débloqué le : {{date}}",
"subscription_needed": "Un abonnement Hydra Cloud est requis",
"new_achievements_unlocked": "{{achievementCount}} nouveaux succès débloqués sur {{gameCount}} jeux",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} succès",
"achievements_unlocked_for_game": "{{achievementCount}} nouveaux succès débloqués sur {{gameTitle}}",
"hidden_achievement_tooltip": "Ce succès est caché",
"achievement_earn_points": "Gagnez {{points}} points avec ce succès",
"earned_points": "Points gagnés :",
"available_points": "Points disponibles :",
"how_to_earn_achievements_points": "Comment gagner des points de succès ?"
},
"hydra_cloud": {
"subscription_tour_title": "Abonnement Hydra Cloud",
"subscribe_now": "S'abonner",
"cloud_saving": "Sauvegarde Cloud",
"cloud_achievements": "Sauvegardez vos succès dans le cloud",
"animated_profile_picture": "Photo de profil animée",
"premium_support": "Support premium",
"show_and_compare_achievements": "Montrez et comparez vos succès avec d'autres utilisateurs",
"animated_profile_banner": "Bannière de profil animée",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Vous avez découvert une fonctionnalité Hydra Cloud !",
"learn_more": "En savoir plus",
"debrid_description": "Téléchargez jusqu'à 4x plus vite avec Nimbus"
"catalogue": {
"next_page": "Page suivante",
"previous_page": "Page précédente"
}
}

View File

@@ -14,12 +14,10 @@
"paused": "{{title}} (Szünet)",
"downloading": "{{title}} ({{percentage}} - Letöltés…)",
"filter": "Könyvtár szűrése",
"home": "Főoldal",
"favorites": "Kedvenc játékok"
"home": "Főoldal"
},
"header": {
"search": "Keresés",
"home": "Főoldal",
"catalogue": "Katalógus",
"downloads": "Letöltések",
@@ -106,12 +104,6 @@
"change": "Frissítés",
"notifications": "Értesítések",
"enable_download_notifications": "Amikor egy letöltés befejeződik",
"cancel_button_confirmation_delete_all_sources": "Nem",
"confirm_button_confirmation_delete_all_sources": "Igen, törölj mindent",
"description_confirmation_delete_all_sources": "Törölni fog minden letöltési forrást",
"title_confirmation_delete_all_sources": "Törölje az összes letöltési forrást",
"removed_download_sources": "Betűtípusok eltávolítva",
"button_delete_all_sources": "Távolítsa el az összes letöltési forrást",
"enable_repack_list_notifications": "Amikor egy új repack hozzáadásra kerül"
},
"notifications": {

View File

@@ -20,12 +20,10 @@
"home": "Beranda",
"queued": "{{title}} (Antrian)",
"game_has_no_executable": "Game tidak punya file eksekusi yang dipilih",
"sign_in": "Masuk",
"favorites": "Favorit"
"sign_in": "Masuk"
},
"header": {
"search": "Cari game",
"home": "Beranda",
"catalogue": "Katalog",
"downloads": "Unduhan",
@@ -107,7 +105,7 @@
"options": "Opsi",
"executable_section_title": "Eksekusi",
"executable_section_description": "Path file eksekusi saat \"Main\" diklik",
"downloads_section_title": "Unduhan",
"downloads_secion_title": "Unduhan",
"downloads_section_description": "Cek update atau versi lain dari game ini",
"danger_zone_section_title": "Zona Berbahaya",
"danger_zone_section_description": "Hapus game ini dari perpustakaan kamu atau file yang diunduh oleh Hydra",
@@ -163,24 +161,18 @@
"behavior": "Perilaku",
"download_sources": "Sumber unduhan",
"language": "Bahasa",
"api_token": "Token API",
"real_debrid_api_token": "Token API",
"enable_real_debrid": "Aktifkan Real-Debrid",
"real_debrid_description": "Real-Debrid adalah downloader tanpa batas yang memungkinkan kamu untuk mengunduh file dengan cepat dan pada kecepatan terbaik dari Internet kamu.",
"debrid_invalid_token": "Token API tidak valid",
"debrid_api_token_hint": "Kamu bisa dapatkan token API di <0>sini</0>",
"real_debrid_invalid_token": "Token API tidak valid",
"real_debrid_api_token_hint": "Kamu bisa dapatkan token API di <0>sini</0>",
"real_debrid_free_account_error": "Akun \"{{username}}\" adalah akun gratis. Silakan berlangganan Real-Debrid",
"debrid_linked_message": "Akun \"{{username}}\" terhubung",
"real_debrid_linked_message": "Akun \"{{username}}\" terhubung",
"save_changes": "Simpan perubahan",
"changes_saved": "Perubahan disimpan berhasil",
"download_sources_description": "Hydra akan mencari link unduhan dari sini. URL harus menuju file .json dengan link unduhan.",
"validate_download_source": "Validasi",
"remove_download_source": "Hapus",
"cancel_button_confirmation_delete_all_sources": "TIDAK",
"confirm_button_confirmation_delete_all_sources": "Ya, hapus semuanya",
"description_confirmation_delete_all_sources": "Anda akan menghapus semua sumber unduhan",
"title_confirmation_delete_all_sources": "Hapus semua sumber unduhan",
"removed_download_sources": "Font dihapus",
"button_delete_all_sources": "Hapus semua sumber unduhan",
"add_download_source": "Tambahkan sumber",
"download_count_zero": "Tidak ada unduhan dalam daftar",
"download_count_one": "{{countFormatted}} unduhan dalam daftar",

View File

@@ -25,7 +25,6 @@ import cs from "./cs/translation.json";
import nb from "./nb/translation.json";
import et from "./et/translation.json";
import bg from "./bg/translation.json";
import uz from "./uz/translation.json";
export default {
"pt-BR": ptBR,
@@ -55,5 +54,4 @@ export default {
cs,
nb,
et,
uz,
};

View File

@@ -14,12 +14,10 @@
"paused": "{{title}} (In pausa)",
"downloading": "{{title}} ({{percentage}} - Download…)",
"filter": "Filtra libreria",
"home": "Home",
"favorites": "Preferiti"
"home": "Home"
},
"header": {
"search": "Cerca",
"home": "Home",
"catalogue": "Catalogo",
"downloads": "Download",
@@ -120,13 +118,7 @@
"general": "Generale",
"behavior": "Comportamento",
"enable_real_debrid": "Abilita Real Debrid",
"cancel_button_confirmation_delete_all_sources": "NO",
"confirm_button_confirmation_delete_all_sources": "Sì, cancella tutto",
"description_confirmation_delete_all_sources": "Eliminerai tutte le fonti di download",
"title_confirmation_delete_all_sources": "Elimina tutte le fonti di download",
"removed_download_sources": "Fonti di download rimosse",
"button_delete_all_sources": "Rimuovi tutte le fonti di download",
"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"
},
"notifications": {

View File

@@ -20,10 +20,8 @@
"home": "Басты бет",
"queued": "{{title}} (Кезекте)",
"game_has_no_executable": "Ойынды іске қосу файлы таңдалмаған",
"sign_in": "Кіру",
"favorites": "Таңдаулылар"
"sign_in": "Кіру"
},
"header": {
"search": "Іздеу",
"home": "Басты бет",
@@ -106,7 +104,7 @@
"options": "Параметрлер",
"executable_section_title": "Файл",
"executable_section_description": "\"Ойнау\" батырмасын басқанда іске қосылатын файл жолы",
"downloads_section_title": "Жүктеулер",
"downloads_secion_title": "Жүктеулер",
"downloads_section_description": "Ойынның жаңартулары немесе басқа нұсқалары бар-жоғын тексеру",
"danger_zone_section_title": "Қауіпті аймақ",
"danger_zone_section_description": "Осы ойынды кітапханаңыздан жою немесе Hydra жүктеген файлдарды жою",
@@ -161,24 +159,18 @@
"behavior": "Мінез-құлық",
"download_sources": "Жүктеу көздері",
"language": "Тіл",
"api_token": "API Кілті",
"real_debrid_api_token": "API Кілті",
"enable_real_debrid": "Real-Debrid-ті қосу",
"real_debrid_description": "Real-Debrid - бұл шектеусіз жүктеуші, ол интернетте орналастырылған файлдарды тез жүктеуге немесе жеке желі арқылы кез келген блоктарды айналып өтіп, оларды бірден плеерге беруге мүмкіндік береді.",
"debrid_invalid_token": "Қате API кілті",
"debrid_api_token_hint": "API кілтін <0>осы жерден</0> алуға болады",
"real_debrid_invalid_token": "Қате API кілті",
"real_debrid_api_token_hint": "API кілтін <0>осы жерден</0> алуға болады",
"real_debrid_free_account_error": "\"{{username}}\" аккаунты жазылымға ие емес. Real-Debrid жазылымын алыңыз",
"debrid_linked_message": "\"{{username}}\" аккаунты байланған",
"real_debrid_linked_message": "\"{{username}}\" аккаунты байланған",
"save_changes": "Өзгерістерді сақтау",
"changes_saved": "Өзгерістер сәтті сақталды",
"download_sources_description": "Hydra осы көздерден жүктеу сілтемелерін алады. URL-да жүктеу сілтемелері бар .json файлына тікелей сілтеме болуы керек.",
"validate_download_source": "Тексеру",
"remove_download_source": "Жою",
"cancel_button_confirmation_delete_all_sources": "Жоқ",
"confirm_button_confirmation_delete_all_sources": "Иә, бәрін жойыңыз",
"description_confirmation_delete_all_sources": "Барлық жүктеу көздерін жоясыз",
"title_confirmation_delete_all_sources": "Барлық жүктеу көздерін жойыңыз",
"removed_download_sources": "Қаріптер жойылды",
"button_delete_all_sources": "Барлық жүктеу көздерін жойыңыз",
"add_download_source": "Жүктеу көзін қосу",
"download_count_zero": "Жүктеулер тізімінде жоқ",
"download_count_one": "{{countFormatted}} жүктеу тізімде",

View File

@@ -14,10 +14,8 @@
"paused": "{{title}} (일시 정지됨)",
"downloading": "{{title}} ({{percentage}} - 다운로드 중…)",
"filter": "라이브러리 정렬",
"home": "홈",
"favorites": "즐겨찾기"
"home": "홈"
},
"header": {
"search": "게임 검색하기",
"home": "홈",
@@ -111,14 +109,8 @@
"launch_with_system": "컴퓨터가 시작되었을 때 Hydra 실행",
"general": "일반",
"behavior": "행동",
"cancel_button_confirmation_delete_all_sources": "아니요",
"confirm_button_confirmation_delete_all_sources": "네, 모두 삭제합니다",
"description_confirmation_delete_all_sources": "모든 다운로드 소스를 삭제합니다.",
"title_confirmation_delete_all_sources": "모든 다운로드 소스 삭제",
"removed_download_sources": "제거된 글꼴",
"button_delete_all_sources": "모든 다운로드 소스 제거",
"enable_real_debrid": "Real-Debrid 활성화",
"debrid_api_token_hint": "API 키를 <0>이곳</0>에서 얻으세요.",
"real_debrid_api_token_hint": "API 키를 <0>이곳</0>에서 얻으세요.",
"save_changes": "변경 사항 저장"
},
"notifications": {

View File

@@ -24,12 +24,10 @@
"queued": "{{title}} (I køen)",
"game_has_no_executable": "Spillet har ikke noen kjørbar fil valgt",
"sign_in": "Logge inn",
"friends": "Venner",
"favorites": "Favoritter"
"friends": "Venner"
},
"header": {
"search": "Søk efter spill",
"home": "Hjem",
"catalogue": "Katalog",
"downloads": "Nedlastinger",
@@ -111,7 +109,7 @@
"options": "Valgmuligheter",
"executable_section_title": "Kjørbar fil",
"executable_section_description": "Sti til filen som skal brukes når det trykkes på \"Spill\"",
"downloads_section_title": "Nedlastinger",
"downloads_secion_title": "Nedlastinger",
"downloads_section_description": "Sjekk for oppdateringer eller andre versjoner af dette spillet",
"danger_zone_section_title": "Faresonen",
"danger_zone_section_description": "Fjern dette spillet fra biblioteket ditt eller filene som har blitt lastet ned av Hydra",
@@ -179,13 +177,13 @@
"behavior": "Oppførsel",
"download_sources": "Nedlastingskilder",
"language": "Språk",
"api_token": "API nøkkel",
"real_debrid_api_token": "API nøkkel",
"enable_real_debrid": "Slå på Real-Debrid",
"real_debrid_description": "Real-Debrid er en ubegrenset nedlaster som gør det mulig for deg å laste ned filer med en gang og med den beste utnyttelsen av internethastigheten din.",
"debrid_invalid_token": "Ugyldig API nøkkel",
"debrid_api_token_hint": "Du kan få API nøkkelen din <0>her</0>",
"real_debrid_invalid_token": "Ugyldig API nøkkel",
"real_debrid_api_token_hint": "Du kan få API nøkkelen din <0>her</0>",
"real_debrid_free_account_error": "Brukeren \"{{username}}\" er en gratis bruker. Vennligst abboner på Real-Debrid",
"debrid_linked_message": "Brukeren \"{{username}}\" er forbunnet",
"real_debrid_linked_message": "Brukeren \"{{username}}\" er forbunnet",
"save_changes": "Lagre endringer",
"changes_saved": "Lagring av endringer vellykket",
"download_sources_description": "Hydra vil hente nedlastingslenker fra disse kildene. Kilde URLen skal være en direkte lenke til en .json fil som inneholder nedlastingslenkene.",
@@ -201,12 +199,6 @@
"download_source_errored": "Mislyktes",
"sync_download_sources": "Synkroniser kilder",
"removed_download_source": "Nedlastingskilde fjernet",
"cancel_button_confirmation_delete_all_sources": "Ingen",
"confirm_button_confirmation_delete_all_sources": "Ja, slett alt",
"description_confirmation_delete_all_sources": "Du vil slette alle nedlastingskilder",
"title_confirmation_delete_all_sources": "Slett alle nedlastingskilder",
"removed_download_sources": "Fonter fjernet",
"button_delete_all_sources": "Fjern alle nedlastingskilder",
"added_download_source": "La til Nedlastingskilde",
"download_sources_synced": "Alle nedlastingskilder er synkroniserte",
"insert_valid_json_url": "Innsett en gyldig JSON url",

View File

@@ -14,12 +14,10 @@
"paused": "{{title}} (Gepauzeerd)",
"downloading": "{{title}} ({{percentage}} - Downloading…)",
"filter": "Filter Bibliotheek",
"home": "Home",
"favorites": "Favorieten"
"home": "Home"
},
"header": {
"search": "Zoek spellen",
"home": "Home",
"catalogue": "Bibliotheek",
"downloads": "Downloads",
@@ -112,14 +110,8 @@
"launch_with_system": "Start Hydra bij het opstarten van het systeem",
"general": "Algemeen",
"behavior": "Gedrag",
"cancel_button_confirmation_delete_all_sources": "Nee",
"confirm_button_confirmation_delete_all_sources": "Ja, verwijder alles",
"description_confirmation_delete_all_sources": "Je verwijdert alle downloadbronnen",
"title_confirmation_delete_all_sources": "Verwijder alle downloadbronnen",
"removed_download_sources": "Downloadbronnen verwijderd",
"button_delete_all_sources": "Verwijder alle downloadbronnen",
"enable_real_debrid": "Enable Real-Debrid",
"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"
},
"notifications": {

View File

@@ -14,12 +14,10 @@
"paused": "{{title}} (Zatrzymano)",
"downloading": "{{title}} ({{percentage}} - Pobieranie…)",
"filter": "Filtruj biblioteke",
"home": "Główna",
"favorites": "Ulubione"
"home": "Główna"
},
"header": {
"search": "Szukaj",
"home": "Główna",
"catalogue": "Katalog",
"downloads": "Pobrane",
@@ -120,13 +118,8 @@
"general": "Ogólne",
"behavior": "Zachowania",
"language": "Język",
"cancel_button_confirmation_delete_all_sources": "NIE",
"confirm_button_confirmation_delete_all_sources": "Tak, usuń wszystko",
"description_confirmation_delete_all_sources": "Usuniesz wszystkie źródła pobierania",
"title_confirmation_delete_all_sources": "Usuń wszystkie źródła pobierania",
"button_delete_all_sources": "Usuń wszystkie źródła pobierania",
"enable_real_debrid": "Włącz Real-Debrid",
"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"
},
"notifications": {

View File

@@ -7,7 +7,7 @@
"featured": "Destaques",
"hot": "Populares",
"weekly": "📅 Mais baixados da semana",
"achievements": "🏆 Pra platinar",
"achievements": "🏆 Para platinar",
"surprise_me": "Surpreenda-me",
"no_results": "Nenhum resultado encontrado",
"start_typing": "Comece a digitar para pesquisar…"
@@ -26,8 +26,7 @@
"game_has_no_executable": "Jogo não possui executável selecionado",
"sign_in": "Login",
"friends": "Amigos",
"need_help": "Precisa de ajuda?",
"favorites": "Favoritos"
"need_help": "Precisa de ajuda?"
},
"header": {
"search": "Buscar jogos",
@@ -44,10 +43,7 @@
"downloading_metadata": "Baixando metadados de {{title}}…",
"downloading": "Baixando {{title}}… ({{percentage}} concluído) - Conclusão {{eta}} - {{speed}}",
"calculating_eta": "Baixando {{title}}… ({{percentage}} concluído) - Calculando tempo restante…",
"checking_files": "Verificando arquivos de {{title}}…",
"installing_common_redist": "{{log}}…",
"installation_complete": "Instalação concluída",
"installation_complete_message": "Componentes recomendados instalados com sucesso"
"checking_files": "Verificando arquivos de {{title}}…"
},
"game_details": {
"open_download_options": "Ver opções de download",
@@ -111,7 +107,7 @@
"remove_from_library_title": "Tem certeza?",
"executable_section_title": "Executável",
"executable_section_description": "O caminho do arquivo que será executado ao clicar em \"Jogar\"",
"downloads_section_title": "Downloads",
"downloads_secion_title": "Downloads",
"downloads_section_description": "Confira atualizações ou versões diferentes para este mesmo título",
"danger_zone_section_title": "Zona de perigo",
"danger_zone_section_description": "Remova o jogo da sua biblioteca ou os arquivos que foram baixados pelo Hydra",
@@ -167,8 +163,6 @@
"max_number_of_artifacts_reached": "Número máximo de backups atingido para este jogo",
"achievements_not_sync": "Veja como exibir suas conquistas no perfil",
"backup_from": "Backup de {{date}}",
"automatic_backup_from": "Backup automático de {{date}}",
"enable_automatic_cloud_sync": "Habilitar sincronização automática na nuvem",
"custom_backup_location_set": "Localização customizada selecionada",
"select_folder": "Selecione a pasta",
"manage_files_description": "Gerencie quais arquivos serão feitos backup",
@@ -178,16 +172,7 @@
"reset_achievements_description": "Isso irá resetar todas as conquistas de {{game}}",
"reset_achievements_title": "Tem certeza?",
"reset_achievements_success": "Conquistas resetadas com sucesso",
"reset_achievements_error": "Falha ao resetar conquistas",
"no_write_permission": "Não é possível baixar nesse diretório. Clique aqui para saber mais.",
"download_error_gofile_quota_exceeded": "Você excedeu sua cota mensal do Gofile. Por favor, aguarde a cota resetar.",
"download_error_real_debrid_account_not_authorized": "Sua conta do Real-Debrid não está autorizada a fazer novos downloads. Por favor, verifique sua assinatura e tente novamente.",
"download_error_not_cached_on_real_debrid": "Este download não está disponível no Real-Debrid e a verificação do status do download não está disponível.",
"download_error_not_cached_on_torbox": "Este download não está disponível no TorBox e a verificação do status do download não está disponível.",
"download_error_not_cached_on_hydra": "Este download não está disponível no Nimbus.",
"game_removed_from_favorites": "Jogo removido dos favoritos",
"game_added_to_favorites": "Jogo adicionado aos favoritos",
"automatically_extract_downloaded_files": "Extrair automaticamente os arquivos baixados"
"reset_achievements_error": "Falha ao resetar conquistas"
},
"activation": {
"title": "Ativação",
@@ -224,9 +209,7 @@
"seeding": "Semeando",
"stop_seeding": "Parar de semear",
"resume_seeding": "Semear",
"options": "Gerenciar",
"extract": "Extrair arquivos",
"extracting": "Extraindo arquivos…"
"options": "Gerenciar"
},
"settings": {
"downloads_path": "Diretório dos downloads",
@@ -241,13 +224,13 @@
"behavior": "Comportamento",
"download_sources": "Fontes de download",
"language": "Idioma",
"api_token": "Token de API",
"real_debrid_api_token": "Token de API",
"enable_real_debrid": "Habilitar Real-Debrid",
"debrid_api_token_hint": "Você pode obter seu token de API <0>aqui</0>",
"real_debrid_api_token_hint": "Você pode obter seu token 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.",
"debrid_invalid_token": "Token de API inválido",
"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",
"debrid_linked_message": "Conta \"{{username}}\" vinculada",
"real_debrid_linked_message": "Conta \"{{username}}\" vinculada",
"save_changes": "Salvar mudanças",
"changes_saved": "Ajustes salvos com sucesso",
"download_sources_description": "Hydra vai buscar links de download em todas as fontes habilitadas. A URL da fonte deve ser um link direto para um arquivo .json contendo uma lista de links.",
@@ -263,12 +246,6 @@
"download_source_errored": "Falhou",
"sync_download_sources": "Sincronizar",
"removed_download_source": "Fonte removida",
"removed_download_sources": "Fontes removidas",
"cancel_button_confirmation_delete_all_sources": "Não",
"confirm_button_confirmation_delete_all_sources": "Sim, excluir tudo",
"title_confirmation_delete_all_sources": "Remover todas as fontes de download",
"description_confirmation_delete_all_sources": "Você irá remover todas as fontes de download. Deseja prosseguir?",
"button_delete_all_sources": "Remover todas",
"added_download_source": "Fonte adicionada",
"download_sources_synced": "As fontes foram sincronizadas",
"insert_valid_json_url": "Insira a url de um JSON válido",
@@ -307,44 +284,7 @@
"become_subscriber": "Seja Hydra Cloud",
"subscription_renew_cancelled": "A renovação automática está desativada",
"subscription_renews_on": "Sua assinatura renova dia {{date}}",
"bill_sent_until": "Sua próxima cobrança será enviada até esse dia",
"no_themes": "Parece que você ainda não tem nenhum tema. Não se preocupe, clique aqui para criar sua primeira obra de arte.",
"editor_tab_save": "Salvar",
"web_store": "Loja de temas",
"clear_themes": "Limpar",
"create_theme": "Criar",
"create_theme_modal_title": "Criar tema customizado",
"create_theme_modal_description": "Criar novo tema para customizar a aparência do Hydra",
"theme_name": "Nome",
"insert_theme_name": "Insira o nome do tema",
"set_theme": "Habilitar tema",
"unset_theme": "Desabilitar tema",
"delete_theme": "Deletar tema",
"edit_theme": "Editar tema",
"delete_all_themes": "Deletar todos os temas",
"delete_all_themes_description": "Isso irá deletar todos os seus temas",
"delete_theme_description": "Isso irá deletar o tema {{theme}}",
"cancel": "Cancelar",
"appearance": "Aparência",
"enable_torbox": "Habilitar TorBox",
"torbox_description": "TorBox é o seu serviço de seedbox premium que rivaliza até com os melhores servidores do mercado.",
"torbox_account_linked": "Conta do TorBox vinculada",
"create_real_debrid_account": "Clique aqui se você ainda não tem uma conta do Real-Debrid",
"create_torbox_account": "Clique aqui se você ainda não tem uma conta do TorBox",
"real_debrid_account_linked": "Conta Real-Debrid associada",
"name_min_length": "O nome do tema deve ter pelo menos 3 caracteres",
"import_theme": "Importar tema",
"import_theme_description": "Você irá importar {{theme}} da loja de temas",
"error_importing_theme": "Erro ao importar tema",
"theme_imported": "Tema importado com sucesso",
"enable_friend_request_notifications": "Quando um pedido de amizade é recebido",
"enable_auto_install": "Baixar atualizações automaticamente",
"common_redist": "Componentes recomendados",
"common_redist_description": "Componentes recomendados são necessários para executar alguns jogos. A instalação deles é recomendada para evitar problemas.",
"install_common_redist": "Instalar",
"installing_common_redist": "Instalando…",
"show_download_speed_in_megabytes": "Exibir taxas de download em megabytes por segundo",
"extract_files_by_default": "Extrair arquivos automaticamente após o download"
"bill_sent_until": "Sua próxima cobrança será enviada até esse dia"
},
"notifications": {
"download_complete": "Download concluído",
@@ -353,19 +293,13 @@
"repack_count_one": "{{count}} novo repack",
"repack_count_other": "{{count}} novos repacks",
"new_update_available": "Versão {{version}} disponível",
"restart_to_install_update": "Reinicie o Hydra para instalar a nova versão",
"new_friend_request_title": "Novo pedido de amizade",
"new_friend_request_description": "Você recebeu um novo pedido de amizade",
"extraction_complete": "Extração concluída",
"game_extracted": "{{title}} extraído com sucesso"
"restart_to_install_update": "Reinicie o Hydra para instalar a nova versão"
},
"system_tray": {
"open": "Abrir Hydra",
"quit": "Fechar"
},
"game_card": {
"available_one": "Disponível",
"available_other": "Disponíveis",
"no_downloads": "Sem downloads disponíveis"
},
"binary_not_found_modal": {
@@ -496,7 +430,6 @@
"animated_profile_banner": "Banner animado no perfil",
"cloud_saving": "Saves de jogos em nuvem",
"hydra_cloud_feature_found": "Você descobriu uma funcionalidade Hydra Cloud!",
"learn_more": "Saiba mais",
"debrid_description": "Baixe até 4x mais rápido com Nimbus"
"learn_more": "Saiba mais"
}
}

View File

@@ -25,8 +25,7 @@
"queued": "{{title}} (Na fila)",
"game_has_no_executable": "O jogo não tem um executável selecionado",
"sign_in": "Iniciar sessão",
"friends": "Amigos",
"favorites": "Favoritos"
"friends": "Amigos"
},
"header": {
"search": "Procurar jogos",
@@ -102,12 +101,12 @@
"open_download_location": "Ver ficheiros transferidos",
"create_shortcut": "Criar atalho no ambiente de trabalho",
"remove_files": "Remover ficheiros",
"options": "Opções",
"options": "Gerir",
"remove_from_library_description": "Isto vai remover {{game}} da tua biblioteca",
"remove_from_library_title": "Tens a certeza?",
"executable_section_title": "Executável",
"executable_section_description": "O caminho do ficheiro que vai ser executado ao clicar em \"Jogar\"",
"downloads_section_title": "Transferências",
"downloads_secion_title": "Transferências",
"downloads_section_description": "Encontra atualizações ou versões diferentes para este mesmo título",
"danger_zone_section_title": "Zona de perigo",
"danger_zone_section_description": "Remove o jogo da tua biblioteca ou os ficheiros que foram transferidos pelo Hydra",
@@ -158,27 +157,7 @@
"no_download_option_info": "Sem informações disponíveis",
"backup_deletion_failed": "Falha ao apagar o backup",
"max_number_of_artifacts_reached": "Número máximo de backups atingido para este jogo",
"achievements_not_sync": "As tuas conquistas não estão sincronizadas",
"backup_from": "Backup de {{date}}",
"automatic_backup_from": "Backup automático de {{date}}",
"enable_automatic_cloud_sync": "Ativar sincronização automática na nuvem",
"custom_backup_location_set": "Localização customizada selecionada",
"select_folder": "Selecione a pasta",
"manage_files_description": "Gerencie quais arquivos serão feitos backup",
"clear": "Limpar",
"no_directory_selected": "Nenhum diretório selecionado",
"reset_achievements": "Repor conquistas",
"reset_achievements_description": "Isto irá apagar todas as conquistas de {{game}}",
"reset_achievements_title": "Tem certeza?",
"reset_achievements_success": "Conquistas repostas com sucesso",
"reset_achievements_error": "Falha ao repor conquistas",
"no_write_permission": "Não é possível descarregar neste diretório. Clique aqui para saber mais.",
"download_error_gofile_quota_exceeded": "Você excedeu sua cota mensal do Gofile. Por favor, aguarde o reset da cota.",
"download_error_real_debrid_account_not_authorized": "A sua conta do Real-Debrid não está autorizada a fazer novos downloads. Por favor, verifique a sua assinatura e tente novamente.",
"download_error_not_cached_on_real_debrid": "Este download não está disponível no Real-Debrid e a verificação do status do download não está disponível.",
"download_error_not_cached_on_torbox": "Este download não está disponível no TorBox e a verificação do status do download não está disponível.",
"game_removed_from_favorites": "Jogo removido dos favoritos",
"game_added_to_favorites": "Jogo adicionado aos favoritos"
"achievements_not_sync": "As tuas conquistas não estão sincronizadas"
},
"activation": {
"title": "Ativação",
@@ -211,11 +190,7 @@
"queued": "Na fila",
"no_downloads_title": "Nada por aqui…",
"no_downloads_description": "Ainda não descarregaste nada pelo Hydra, mas nunca é tarde para começar.",
"checking_files": "A verificar ficheiros…",
"seeding": "A semear",
"stop_seeding": "Parar de semear",
"resume_seeding": "Semear",
"options": "Opções"
"checking_files": "A verificar ficheiros…"
},
"settings": {
"downloads_path": "Local das transferências",
@@ -230,13 +205,13 @@
"behavior": "Comportamento",
"download_sources": "Fontes de transferência",
"language": "Idioma",
"api_token": "Token de API",
"real_debrid_api_token": "Token de API",
"enable_real_debrid": "Ativar Real-Debrid",
"debrid_api_token_hint": "Podes obter o teu token de API <0>aqui</0>",
"real_debrid_api_token_hint": "Podes obter o teu token de API <0>aqui</0>",
"real_debrid_description": "O Real-Debrid é um downloader sem restrições que permite descarregar ficheiros instantaneamente e com a melhor velocidade da tua Internet.",
"debrid_invalid_token": "Token de API inválido",
"real_debrid_invalid_token": "Token de API inválido",
"real_debrid_free_account_error": "A conta \"{{username}}\" é uma conta gratuita. Por favor, subscreve o Real-Debrid",
"debrid_linked_message": "Conta \"{{username}}\" associada",
"real_debrid_linked_message": "Conta \"{{username}}\" associada",
"save_changes": "Guardar alterações",
"changes_saved": "Alterações guardadas com sucesso",
"download_sources_description": "O Hydra vai procurar links de download em todas as fontes ativadas. O URL da fonte deve ser um link direto para um ficheiro .json que contenha uma lista de links.",
@@ -255,12 +230,6 @@
"download_source_errored": "Falhou",
"sync_download_sources": "Sincronizar",
"removed_download_source": "Fonte removida",
"cancel_button_confirmation_delete_all_sources": "Não",
"confirm_button_confirmation_delete_all_sources": "Sim, apague tudo",
"description_confirmation_delete_all_sources": "Irá remover todas as fontes de download",
"title_confirmation_delete_all_sources": "Remover todas as fontes de download",
"removed_download_sources": "Fontes de download removidas",
"button_delete_all_sources": "Remover todas",
"added_download_source": "Fonte adicionada",
"download_sources_synced": "As fontes foram sincronizadas",
"insert_valid_json_url": "Insere o URL de um JSON válido",
@@ -279,57 +248,7 @@
"must_be_valid_url": "A fonte deve ser um URL válido",
"blocked_users": "Utilizadores bloqueados",
"user_unblocked": "Utilizador desbloqueado",
"enable_achievement_notifications": "Quando uma conquista é desbloqueada",
"enable_friend_request_notifications": "Quando um pedido de amizade é recebido",
"launch_minimized": "Iniciar Hydra minimizado",
"disable_nsfw_alert": "Desativar alertas NSFW",
"seed_after_download_complete": "Semear após concluir o download",
"show_hidden_achievement_description": "Mostrar descrição de conquistas ocultas antes de as desbloquear",
"account": "Conta",
"no_users_blocked": "Não tem utilizadores bloqueados",
"subscription_active_until": "O teu Hydra Cloud está ativo até {{date}}",
"manage_subscription": "Gerir subscrições",
"update_email": "Atualizar email",
"update_password": "Atualizar password",
"current_email": "Email atual:",
"no_email_account": "Ainda não adicionou nenhum email à sua conta",
"account_data_updated_successfully": "Dados da conta atualizados com sucesso",
"renew_subscription": "Renovar Hydra Cloud",
"subscription_expired_at": "A sua subscrição expirou a {{date}}",
"no_subscription": "Aproveite o Hydra da melhor forma possível",
"become_subscriber": "Subscreva o Hydra Cloud",
"subscription_renew_cancelled": "A renovação automática está desativada",
"subscription_renews_on": "Sua assinatura renova dia {{date}}",
"bill_sent_until": "A próxima cobrança será enviada até esse dia",
"no_themes": "Parece que ainda não tem nenhum tema. Não se preocupe, clique aqui para criar a sua primeira obra de arte.",
"editor_tab_code": "Código",
"editor_tab_info": "Info",
"editor_tab_save": "Guardar",
"web_store": "Loja de temas",
"clear_themes": "Limpar",
"create_theme": "Criar",
"create_theme_modal_title": "Criar tema customizado",
"create_theme_modal_description": "Criar um novo tema para customizar a aparência do Hydra",
"theme_name": "Nome",
"insert_theme_name": "Insira o nome do tema",
"set_theme": "Definir tema",
"unset_theme": "Redefinir tema",
"delete_theme": "Apagar tema",
"edit_theme": "Editar tema",
"delete_all_themes": "Apagar todos os temas",
"delete_all_themes_description": "Isto irá apagar todos os seus temas",
"delete_theme_description": "Isto irá apagar o tema {{theme}}",
"cancel": "Cancelar",
"appearance": "Aparência",
"enable_torbox": "Ativar TorBox",
"torbox_description": "TorBox é um serviço de seedbox premium sendo um dos melhores servidores do mercado.",
"torbox_account_linked": "Conta do TorBox associada",
"real_debrid_account_linked": "Conta Real-Debrid associada",
"name_min_length": "O nome do tema deve ter pelo menos 3 caracteres",
"import_theme": "Importar tema",
"import_theme_description": "Irá importar {{theme}} da loja de temas",
"error_importing_theme": "Erro ao importar tema",
"theme_imported": "Tema importado com sucesso"
"enable_achievement_notifications": "Quando uma conquista é desbloqueada"
},
"notifications": {
"download_complete": "Transferência concluída",
@@ -338,17 +257,13 @@
"repack_count_one": "{{count}} novo repack",
"repack_count_other": "{{count}} novos repacks",
"new_update_available": "Versão {{version}} disponível",
"restart_to_install_update": "Reinicia o Hydra para instalar a nova versão",
"new_friend_request_title": "Novo pedido de amizade",
"new_friend_request_description": "Recebeste um novo pedido de amizade"
"restart_to_install_update": "Reinicia o Hydra para instalar a nova versão"
},
"system_tray": {
"open": "Abrir o Hydra",
"quit": "Sair"
},
"game_card": {
"available_one": "Disponível",
"available_other": "Disponíveis",
"no_downloads": "Sem downloads disponíveis"
},
"binary_not_found_modal": {
@@ -358,16 +273,7 @@
},
"catalogue": {
"next_page": "Página seguinte",
"previous_page": "Página anterior",
"search": "Filtrar…",
"developers": "Desenvolvedores",
"genres": "Géneros",
"tags": "Marcadores",
"publishers": "Distribuidoras",
"download_sources": "Fontes de download",
"result_count": "{{resultCount}} resultados",
"filter_count": "{{filterCount}} disponíveis",
"clear_filters": "Limpar {{filterCount}} selecionados"
"previous_page": "Página anterior"
},
"modal": {
"close": "Botão de fechar"
@@ -444,17 +350,7 @@
"profile_reported": "Perfil denunciado",
"your_friend_code": "O teu código de amigo:",
"upload_banner": "Fazer upload do banner",
"uploading_banner": "A fazer upload do banner…",
"background_image_updated": "Imagem de fundo salva",
"stats": "Estatísticas",
"achievements": "conquistas",
"games": "Jogos",
"ranking_updated_weekly": "O ranking é atualizado semanalmente",
"playing": "A jogar {{game}}",
"achievements_unlocked": "Conquistas desbloqueadas",
"earned_points": "Pontos ganhos",
"show_achievements_on_profile": "Mostre as suas conquistas no perfil",
"show_points_on_profile": "Mostre os seus pontos ganhos no perfil"
"uploading_banner": "A fazer upload do banner…"
},
"achievement": {
"achievement_unlocked": "Conquista desbloqueada",
@@ -462,25 +358,15 @@
"user_achievements": "Conquistas de {{displayName}}",
"unlocked_at": "Desbloqueada em: {{date}}",
"subscription_needed": "Precisas de uma subscrição Hydra Cloud para visualizar este conteúdo",
"new_achievements_unlocked": "{{achievementCount}} novas conquistas de {{gameCount}} jogos",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} conquistas",
"achievements_unlocked_for_game": "Desbloqueadas {{achievementCount}} novas conquistas em {{gameTitle}}",
"hidden_achievement_tooltip": "Esta é uma conquista oculta",
"achievement_earn_points": "Ganhe {{points}} pontos com essa conquista",
"earned_points": "Pontos ganhos:",
"available_points": "Pontos disponíveis:",
"how_to_earn_achievements_points": "Como desbloquear pontos nas conquistas?"
"new_achievements_unlocked": "{{achievementCount}} novas conquistas de {{gameCount}} jogos"
},
"hydra_cloud": {
"subscription_tour_title": "Subscrição Hydra Cloud",
"subscribe_now": "Subscreve agora",
"cloud_achievements": "Gravação de conquistas na nuvem",
"animated_profile_picture": "Fotos de perfil animadas",
"premium_support": "Suporte Premium",
"premium_support": "Apoio Premium",
"show_and_compare_achievements": "Mostra e compara as tuas conquistas com as de outros utilizadores",
"animated_profile_banner": "Banner animado no perfil",
"cloud_saving": "Progresso dos jogos na nuvem",
"hydra_cloud_feature_found": "Descubriste uma funcionalidade Hydra Cloud!",
"learn_more": "Saber mais"
"animated_profile_banner": "Banner animado no perfil"
}
}

View File

@@ -14,12 +14,10 @@
"paused": "{{title}} (Pauzat)",
"downloading": "{{title}} ({{percentage}} - Se descarcă...)",
"filter": "Filtrează biblioteca",
"home": "Acasă",
"favorites": "Favorite"
"home": "Acasă"
},
"header": {
"search": "Caută jocuri",
"home": "Acasă",
"catalogue": "Catalog",
"downloads": "Descărcări",
@@ -126,19 +124,13 @@
"general": "General",
"behavior": "Comportament",
"language": "Limbă",
"api_token": "Token API",
"cancel_button_confirmation_delete_all_sources": "Nu",
"confirm_button_confirmation_delete_all_sources": "Da, șterge totul",
"description_confirmation_delete_all_sources": "Veți șterge toate sursele de descărcare",
"title_confirmation_delete_all_sources": "Ștergeți toate sursele de descărcare",
"removed_download_sources": "Sursele de descărcare au fost eliminate",
"button_delete_all_sources": "Eliminați toate sursele de descărcare",
"real_debrid_api_token": "Token API",
"enable_real_debrid": "Activează Real-Debrid",
"real_debrid_description": "Real-Debrid este un descărcător fără restricții care îți permite să descarci fișiere instantaneu și la cea mai bună viteză a internetului tău.",
"debrid_invalid_token": "Token API invalid",
"debrid_api_token_hint": "Poți obține token-ul tău API <0>aici</0>",
"real_debrid_invalid_token": "Token API invalid",
"real_debrid_api_token_hint": "Poți obține token-ul tău API <0>aici</0>",
"real_debrid_free_account_error": "Contul \"{{username}}\" este un cont gratuit. Te rugăm să te abonezi la Real-Debrid",
"debrid_linked_message": "Contul \"{{username}}\" a fost legat",
"real_debrid_linked_message": "Contul \"{{username}}\" a fost legat",
"save_changes": "Salvează modificările",
"changes_saved": "Modificările au fost salvate cu succes"
},

View File

@@ -7,10 +7,10 @@
"featured": "Рекомендации",
"surprise_me": "Удиви меня",
"no_results": "Ничего не найдено",
"hot": "Сейчас популярно",
"start_typing": "Начинаю вводить текст...",
"hot": "Сейчас в топе",
"start_typing": "Начинаю вводить текст для поиска...",
"weekly": "📅 Лучшие игры недели",
"achievements": "🏆 Игры с достижениями"
"achievements": "🏆 Игры, в которых нужно победить"
},
"sidebar": {
"catalogue": "Каталог",
@@ -26,8 +26,7 @@
"game_has_no_executable": "Файл запуска игры не выбран",
"sign_in": "Войти",
"friends": "Друзья",
"need_help": "Нужна помощь?",
"favorites": "Избранное"
"need_help": "Нужна помощь?"
},
"header": {
"search": "Поиск",
@@ -36,7 +35,7 @@
"downloads": "Загрузки",
"search_results": "Результаты поиска",
"settings": "Настройки",
"version_available_install": "Доступна версия {{version}}. Нажмите здесь для установки.",
"version_available_install": "Доступна версия {{version}}. Нажмите здесь для перезапуска и установки.",
"version_available_download": "Доступна версия {{version}}. Нажмите здесь для загрузки."
},
"bottom_panel": {
@@ -44,16 +43,13 @@
"downloading_metadata": "Загрузка метаданных {{title}}…",
"downloading": "Загрузка {{title}}… ({{percentage}} завершено) - Окончание {{eta}} - {{speed}}",
"calculating_eta": "Загрузка {{title}}… ({{percentage}} завершено) - Подсчёт оставшегося времени…",
"checking_files": "Проверка файлов {{title}}… ({{percentage}} завершено)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Установка завершена",
"installation_complete_message": "Библиотеки успешно установлены"
"checking_files": "Проверка файлов {{title}}… ({{percentage}} завершено)"
},
"catalogue": {
"search": "Фильтр…",
"developers": "Разработчики",
"genres": "Жанры",
"tags": "Теги",
"tags": "Маркеры",
"publishers": "Издательства",
"download_sources": "Источники загрузки",
"result_count": "{{resultCount}} результатов",
@@ -123,7 +119,7 @@
"options": "Настройки",
"executable_section_title": "Файл",
"executable_section_description": "Путь к файлу, который будет запущен при нажатии на \"Play\"",
"downloads_section_title": "Загрузки",
"downloads_secion_title": "Загрузки",
"downloads_section_description": "Проверить наличие обновлений или других версий игры",
"danger_zone_section_title": "Опасная зона",
"danger_zone_section_description": "Вы можете удалить эту игру из вашей библиотеки или файлы скачанные из Hydra",
@@ -181,23 +177,12 @@
"manage_files_description": "Управляйте файлами, которые будут сохраняться и восстанавливаться",
"select_folder": "Выбрать папку",
"backup_from": "Резервная копия от {{date}}",
"automatic_backup_from": "Автоматическая резервная копия от {{date}}",
"enable_automatic_cloud_sync": "Включить автоматическую синхронизацию в облаке",
"custom_backup_location_set": "Установлено настраиваемое местоположение резервной копии",
"no_directory_selected": "Не выбран каталог",
"no_write_permission": "Невозможно загрузить в эту директорию. Нажмите здесь, чтобы узнать больше.",
"reset_achievements": "Сброс достижений",
"reset_achievements_description": "Это сбросит все достижения для {{game}}",
"reset_achievements_title": "Вы уверены?",
"reset_achievements_success": "Достижения успешно сброшены",
"reset_achievements_error": "Не удалось сбросить достижения",
"download_error_gofile_quota_exceeded": "Вы превысили месячную квоту Gofile. Пожалуйста, подождите, пока квота не будет восстановлена.",
"download_error_real_debrid_account_not_authorized": "Ваш аккаунт Real-Debrid не авторизован для осуществления новых загрузок. Пожалуйста, проверьте настройки учетной записи и повторите попытку.",
"download_error_not_cached_on_real_debrid": "Эта загрузка недоступна на Real-Debrid, и получение статуса загрузки с Real-Debrid пока недоступно.",
"download_error_not_cached_on_torbox": "Эта загрузка недоступна на TorBox, и получить статус загрузки с TorBox пока невозможно.",
"game_added_to_favorites": "Игра добавлена в избранное",
"game_removed_from_favorites": "Игра удалена из избранного",
"automatically_extract_downloaded_files": "Автоматическая распаковка загруженных файлов"
"reset_achievements_error": "Не удалось сбросить достижения"
},
"activation": {
"title": "Активировать Hydra",
@@ -234,9 +219,7 @@
"seeding": "Раздача",
"stop_seeding": "Остановить раздачу",
"resume_seeding": "Продолжить раздачу",
"options": "Управлять",
"extract": "Распаковать файлы",
"extracting": "Распаковка файлов…"
"options": "Управлять"
},
"settings": {
"downloads_path": "Путь загрузок",
@@ -254,13 +237,13 @@
"behavior": "Поведение",
"download_sources": "Источники загрузки",
"language": "Язык",
"api_token": "API Ключ",
"real_debrid_api_token": "API Ключ",
"enable_real_debrid": "Включить Real-Debrid",
"real_debrid_description": "Real-Debrid - это неограниченный загрузчик, который позволяет быстро скачивать файлы, размещенные в Интернете, или мгновенно передавать их в плеер через частную сеть, позволяющую обходить любые блокировки.",
"debrid_invalid_token": "Неверный API ключ",
"debrid_api_token_hint": "API ключ можно получить <0>здесь</0>",
"real_debrid_invalid_token": "Неверный API ключ",
"real_debrid_api_token_hint": "API ключ можно получить <0>здесь</0>",
"real_debrid_free_account_error": "Аккаунт \"{{username}}\" - не имеет подписки. Пожалуйста, оформите подписку на Real-Debrid",
"debrid_linked_message": "Привязан аккаунт \"{{username}}\"",
"real_debrid_linked_message": "Привязан аккаунт \"{{username}}\"",
"save_changes": "Сохранить изменения",
"changes_saved": "Изменения успешно сохранены",
"download_sources_description": "Hydra будет получать ссылки на загрузки из этих источников. URL должна содержать прямую ссылку на .json-файл с ссылками для загрузок.",
@@ -275,15 +258,9 @@
"download_source_up_to_date": "Обновлён",
"download_source_errored": "Ошибка",
"sync_download_sources": "Обновить источники",
"removed_download_source": "Источник удален",
"cancel_button_confirmation_delete_all_sources": "Нет",
"confirm_button_confirmation_delete_all_sources": "Да, удалить все",
"description_confirmation_delete_all_sources": "Вы удалите все источники",
"title_confirmation_delete_all_sources": "Удалить все источники",
"removed_download_sources": "Источники удалены",
"button_delete_all_sources": "Удалить все источники",
"added_download_source": "Источник добавлен",
"download_sources_synced": "Все источники обновлены",
"removed_download_source": "Источник загрузок удален",
"added_download_source": "Источник загрузок добавлен",
"download_sources_synced": "Все источники загрузок синхронизированы",
"insert_valid_json_url": "Вставьте действительный URL JSON-файла",
"found_download_option_zero": "Не найдено вариантов загрузки",
"found_download_option_one": "Найден {{countFormatted}} вариант загрузки",
@@ -291,7 +268,7 @@
"import": "Импортировать",
"blocked_users": "Заблокированные пользователи",
"friends_only": "Только для друзей",
"must_be_valid_url": "У источника должен быть правильный URL",
"must_be_valid_url": "Источник должен быть действительным URL-адресом.",
"privacy": "Конфиденциальность",
"private": "Частный",
"profile_visibility": "Видимость профиля",
@@ -317,45 +294,7 @@
"become_subscriber": "Станьте обладателем Hydra Cloud",
"subscription_renew_cancelled": "Автоматическое продление отключено",
"subscription_renews_on": "Ваша подписка продлевается на {{date}}",
"bill_sent_until": "Ваш следующий счет будет отправлен до этого дня",
"no_themes": "Похоже, что у вас еще нет тем, но не волнуйтесь, нажмите здесь, чтобы создать свой первый шедевр",
"editor_tab_code": "Код",
"editor_tab_info": "Информация",
"editor_tab_save": "Сохранить",
"web_store": "Веб-магазин",
"clear_themes": "Очистить",
"create_theme": "Создать",
"create_theme_modal_title": "Создать пользовательскую тему",
"create_theme_modal_description": "Создать новую тему для настройки внешнего вида Hydra",
"theme_name": "Название",
"insert_theme_name": "Вставить название темы",
"set_theme": "Установить тему",
"unset_theme": "Снять тему",
"delete_theme": "Удалить тему",
"edit_theme": "Редактировать тему",
"delete_all_themes": "Удалить все темы",
"delete_all_themes_description": "Это удалит все ваши пользовательские темы",
"delete_theme_description": "Это приведет к удалению темы {{theme}}",
"cancel": "Отменить",
"appearance": "Внешний вид",
"enable_torbox": "Включить TorBox",
"torbox_description": "TorBox - это ваш премиум-сервис, конкурирующий даже с лучшими серверами на рынке.",
"torbox_account_linked": "Аккаунт TorBox привязан",
"real_debrid_account_linked": "Аккаунт Real-Debrid привязан",
"create_real_debrid_account": "Нажмите здесь, если у вас еще нет аккаунта Real-Debrid",
"create_torbox_account": "Нажмите здесь, если у вас еще нет учетной записи TorBox",
"name_min_length": "Название темы должно содержать не менее 3 символов",
"import_theme": "Импортировать тему",
"import_theme_description": "Вы импортируете {{theme}} из магазина тем",
"error_importing_theme": "Ошибка при импорте темы",
"theme_imported": "Тема успешно импортирована",
"enable_friend_request_notifications": "При получении запроса на добавление в друзья",
"enable_auto_install": "Загружать обновления автоматически",
"common_redist": "Библиотеки",
"common_redist_description": "Для запуска некоторых игр требуются библиотеки. Во избежание проблем рекомендуется установить их.",
"install_common_redist": "Установить",
"installing_common_redist": "Установка…",
"show_download_speed_in_megabytes": "Показать скорость загрузки в мегабайтах в секунду"
"bill_sent_until": "Ваш следующий счет будет отправлен до этого дня"
},
"notifications": {
"download_complete": "Загрузка завершена",
@@ -366,19 +305,13 @@
"new_update_available": "Доступна новая версия {{version}}",
"restart_to_install_update": "Перезапустите Hydra для установки обновления",
"notification_achievement_unlocked_title": "Достижение разблокировано для {{game}}",
"notification_achievement_unlocked_body": "были разблокированы {{achievement}} и другие {{count}}",
"new_friend_request_title": "Новый запрос на добавление в друзья",
"new_friend_request_description": "Вы получили новый запрос на добавление в друзья",
"extraction_complete": "Распаковка завершена",
"game_extracted": "{{title}} успешно распакован"
"notification_achievement_unlocked_body": "были разблокированы {{achievement}} и другие {{count}}"
},
"system_tray": {
"open": "Открыть Hydra",
"quit": "Выйти"
},
"game_card": {
"available_one": "Доступный",
"available_other": "Доступный",
"no_downloads": "Нет доступных источников"
},
"binary_not_found_modal": {
@@ -463,13 +396,11 @@
"uploading_banner": "Загрузка баннера...",
"background_image_updated": "Фоновое изображение обновлено",
"stats": "Статистика",
"achievements": "Достижения",
"games": "Игры",
"top_percentile": "Топ {{percentile}}%",
"ranking_updated_weekly": "Рейтинг обновляется еженедельно",
"playing": "Играет в {{game}}",
"achievements_unlocked": "Достижения разблокированы",
"earned_points": "Заработано очков:",
"show_achievements_on_profile": "Покажите свои достижения в профиле",
"show_points_on_profile": "Показывать заработанные очки в своем профиле"
},
@@ -493,13 +424,12 @@
"subscribe_now": "Подпишитесь прямо сейчас",
"cloud_saving": "Сохранение в облаке",
"cloud_achievements": "Сохраняйте свои достижения в облаке",
"animated_profile_picture": "Анимированные аватарки",
"animated_profile_picture": "Анимированные фотографии профиля",
"premium_support": "Премиальная поддержка",
"show_and_compare_achievements": "Показывайте и сравнивайте свои достижения с достижениями других пользователей",
"animated_profile_banner": "Анимированный баннер профиля",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Вы только что открыли для себя функцию Hydra Cloud!",
"learn_more": "Подробнее",
"debrid_description": "Скачивайте в 4 раза быстрее с Nimbus"
"learn_more": "Подробнее"
}
}

View File

@@ -16,7 +16,7 @@
"catalogue": "Katalog",
"downloads": "İndirilenler",
"settings": "Ayarlar",
"my_library": "Kütüphane",
"my_library": "Kütüphanem",
"downloading_metadata": "{{title}} (Meta verileri indiriliyor…)",
"paused": "{{title}} (Durduruldu)",
"downloading": "{{title}} ({{percentage}} - İndiriliyor…)",
@@ -26,8 +26,7 @@
"game_has_no_executable": "Oyun için bir çalıştırılabilir dosya seçilmedi",
"sign_in": "Giriş yap",
"friends": "Arkadaşlar",
"need_help": "Yardıma mı ihtiyacınız var?",
"favorites": "Favoriler"
"need_help": "Yardıma mı ihtiyacınız var?"
},
"header": {
"search": "Oyunları ara",
@@ -36,18 +35,15 @@
"downloads": "İndirilenler",
"search_results": "Arama sonuçları",
"settings": "Ayarlar",
"version_available_install": "{{version}} sürümü mevcut. Yüklemek ve yeniden başlatmak için buraya tıklayın.",
"version_available_download": "{{version}} sürümü mevcut. İndirmek için buraya tıklayın."
"version_available_install": "Sürüm {{version}} mevcut. Yüklemek ve yeniden başlatmak için buraya tıklayın.",
"version_available_download": "Sürüm {{version}} mevcut. İndirmek için buraya tıklayın."
},
"bottom_panel": {
"no_downloads_in_progress": "Devam eden indirme yok",
"downloading_metadata": "{{title}} meta verileri indiriliyor…",
"downloading": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Tamamlanma: {{eta}} - Hız: {{speed}}",
"downloading": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Tamamlama: {{eta}} - Hız: {{speed}}",
"calculating_eta": "{{title}} indiriliyor… ({{percentage}} tamamlandı) - Kalan süre hesaplanıyor…",
"checking_files": "{{title}} dosyaları kontrol ediliyor… ({{percentage}} tamamlandı)",
"installing_common_redist": "{{log}}…",
"installation_complete": "İndirme tamamlandı",
"installation_complete_message": "Genel bağımlılıklar başarıyla yüklendi."
"checking_files": "{{title}} dosyaları kontrol ediliyor… ({{percentage}} tamamlandı)"
},
"catalogue": {
"search": "Filtrele…",
@@ -119,14 +115,14 @@
"clear": "Temizle",
"remove_files": "Dosyaları kaldır",
"remove_from_library_title": "Emin misiniz?",
"remove_from_library_description": "Bu işlem sonrasında {{game}} oyunu kütüphanenizden kaldıracaktır",
"remove_from_library_description": "Bu işlem {{game}} oyununu kütüphanenizden kaldıracaktır",
"options": "Seçenekler",
"executable_section_title": "Çalıştırılabilir dosya",
"executable_section_description": "\"Oyna\" butonuna tıklandığında çalıştırılacak dosyanın yolu",
"downloads_section_title": "İndirmeler",
"executable_section_description": "\"Oyna\" tıklandığında çalıştırılacak dosyanın yolu",
"downloads_secion_title": "İndirmeler",
"downloads_section_description": "Bu oyun için güncellemeleri veya diğer sürümleri kontrol edin",
"danger_zone_section_title": "Tehlike bölgesi",
"danger_zone_section_description": "Bu oyunu kütüphanenizden kaldırın veya Hydra tarafından indirilen dosyaları silin.",
"danger_zone_section_description": "Bu oyunu kütüphanenizden veya Hydra tarafından indirilen dosyaları kaldırın",
"download_in_progress": "İndirme devam ediyor",
"download_paused": "İndirme durduruldu",
"last_downloaded_option": "Son indirilen seçenek",
@@ -144,8 +140,8 @@
"executable_path_in_use": "\"{{game}}\" tarafından kullanılan çalıştırılabilir dosya",
"warning": "Uyarı:",
"hydra_needs_to_remain_open": "Bu indirmenin tamamlanması için Hydra açık kalmalıdır. Eğer Hydra kapanırsa, ilerleme kaydedilmez.",
"achievements": "Başarımlar",
"achievements_count": "Başarımlar {{unlockedCount}}/{{achievementsCount}}",
"achievements": "Başarılar",
"achievements_count": "Başarılar {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Bulut kaydı",
"cloud_save_description": "İlerlemenizi buluta kaydedin ve herhangi bir cihazda oynamaya devam edin",
"backups": "Yedekler",
@@ -153,15 +149,15 @@
"delete_backup": "Sil",
"create_backup": "Yeni yedek oluştur",
"last_backup_date": "{{date}} tarihindeki son yedek",
"no_backup_preview": "Bu oyun için bir kayıt dosyası bulunamadı",
"no_backup_preview": "Bu oyun için kayıtlı oyun bulunamadı",
"restoring_backup": "Yedek geri yükleniyor ({{progress}} tamamlandı)…",
"uploading_backup": "Yedek yükleniyor…",
"no_backups": "Bu oyun için henüz bir yedek oluşturmadınız",
"backup_uploaded": "Yedek yüklendi",
"backup_deleted": "Yedek silindi",
"backup_restored": "Yedek geri yüklendi",
"see_all_achievements": "Tüm başarımları gör",
"sign_in_to_see_achievements": "Başarımları görmek için oturum açın",
"see_all_achievements": "Tüm başarıları gör",
"sign_in_to_see_achievements": "Başarıları görmek için giriş yapın",
"mapping_method_automatic": "Otomatik",
"mapping_method_manual": "Manuel",
"mapping_method_label": "Eşleme yöntemi",
@@ -172,39 +168,29 @@
"wine_prefix": "Wine Prefix",
"wine_prefix_description": "Bu oyunu çalıştırmak için kullanılan Wine Prefix",
"launch_options": "Başlatma Seçenekleri",
"launch_options_description": "İleri düzey kullanıcılar, başlatma seçeneklerine parametreler girebilir (deneysel özellik)",
"launch_options_description": "İleri düzey kullanıcılar, başlatma seçeneklerine değişiklikler girebilir (deneysel özellik)",
"launch_options_placeholder": "Belirtilen bir parametre yok",
"no_download_option_info": "Bilgi mevcut değil",
"backup_deletion_failed": "Yedek silinemedi",
"max_number_of_artifacts_reached": "Bu oyun için maksimum yedek sayısına ulaşıldı",
"achievements_not_sync": "Başarımlarınızı senkronize etmeyi öğrenin",
"achievements_not_sync": "Başarılarınızı senkronize etmeyi öğrenin",
"manage_files_description": "Hangi dosyaların yedeklenip geri yükleneceğini yönetin",
"select_folder": "Klasör seç",
"backup_from": "{{date}} tarihinden yedek",
"automatic_backup_from": "{{date}} tarihinden otomatik kayıt",
"enable_automatic_cloud_sync": "Otomatik bulut kaydı senkronizasyonunu aktifleştir",
"custom_backup_location_set": "Özel yedekleme konumu ayarlandı",
"no_directory_selected": "Bir dizin seçilmedi",
"no_write_permission": "Bu dizine indirme yapılamaz. Daha fazla bilgi için buraya tıklayın.",
"reset_achievements": "Başarımları sıfırla",
"reset_achievements_description": "Bu işlem {{game}} için tüm başarımları sıfırlar",
"reset_achievements": "Başarıları sıfırla",
"reset_achievements_description": "Bu işlem {{game}} için tüm başarıları sıfırlar",
"reset_achievements_title": "Emin misiniz?",
"reset_achievements_success": "Başarımlar başarıyla sıfırlandı",
"reset_achievements_error": "Başarımlar sıfırlanamadı",
"download_error_gofile_quota_exceeded": "Gofile aylık kotanızı doldurdunuz. Kotanın yenilenmesini bekleyin.",
"download_error_real_debrid_account_not_authorized": "Real-Debrid hesabınız yeni indirme işlemleri yapmak için yetkilendirilmemiş. Lütfen hesap ayarlarınızı kontrol edip tekrar deneyin.",
"download_error_not_cached_on_real_debrid": "Bu indirme Real-Debrid üzerinde mevcut değil ve Real-Debrid'den indirme durumu henüz sorgulanamıyor.",
"download_error_not_cached_on_torbox": "Bu indirme TorBox'ta mevcut değil ve TorBox'tan indirme durumu henüz sorgulanamıyor.",
"download_error_not_cached_on_hydra": "Bu indirme Nimbus'ta mevcut değil.",
"game_removed_from_favorites": "Oyun favorilerden silindi",
"game_added_to_favorites": "Oyun favorilere eklendi",
"automatically_extract_downloaded_files": "Yüklenmiş dosyaları otomatik olarak çıkart"
"reset_achievements_success": "Başarılar başarıyla sıfırlandı",
"reset_achievements_error": "Başarılar sıfırlanamadı"
},
"activation": {
"title": "Hydra'yı Aktive Et",
"installation_id": "Kurulum Kimliği:",
"enter_activation_code": "Aktivasyon kodunuzu girin",
"message": "Bunu nasıl edineceğini bilmiyorsan, buna sahip olmamalısın.",
"message": "Bunu nereden soracağınızı bilmiyorsanız, bu sizin için olmamalı.",
"activate": "Aktive Et",
"loading": "Yükleniyor…"
},
@@ -219,7 +205,7 @@
"cancel": "İptal Et",
"filter": "İndirilen oyunları filtrele",
"remove": "Kaldır",
"downloading_metadata": "Meta verileri indiriliyor…",
"downloading_metadata": "Metadata indiriliyor…",
"deleting": "Yükleyici siliniyor…",
"delete": "Yükleyiciyi kaldır",
"delete_modal_title": "Emin misiniz?",
@@ -235,9 +221,7 @@
"seeding": "Paylaşılıyor",
"stop_seeding": "Paylaşımı durdur",
"resume_seeding": "Paylaşımı sürdür",
"options": "Yönet",
"extract": "Dosyaları çıkart",
"extracting": "Dosyalar çıkartılıyor…"
"options": "Yönet"
},
"settings": {
"downloads_path": "İndirme yolu",
@@ -246,31 +230,25 @@
"enable_download_notifications": "Bir indirme tamamlandığında",
"enable_repack_list_notifications": "Yeni bir repack eklendiğinde",
"real_debrid_api_token_label": "Real-Debrid API anahtarı",
"quit_app_instead_hiding": "Hydra'yı kapatınca sistem tepsisine gitmesin",
"quit_app_instead_hiding": "Hydra'yı kapatırken gizlemeyin",
"launch_with_system": "Hydra'yı sistem başlatıldığında çalıştır",
"general": "Genel",
"behavior": "Davranış",
"download_sources": "İndirme kaynakları",
"language": "Dil",
"api_token": "API Anahtarı",
"real_debrid_api_token": "API Anahtarı",
"enable_real_debrid": "Real-Debrid'i Etkinleştir",
"real_debrid_description": "Real-Debrid, yalnızca internet hızınızla sınırlı olarak hızlı dosya indirmenizi sağlayan sınırsız bir indirici.",
"debrid_invalid_token": "Geçersiz API anahtarı",
"debrid_api_token_hint": "API anahtarınızı <0>buradan</0> alabilirsiniz",
"real_debrid_invalid_token": "Geçersiz API anahtarı",
"real_debrid_api_token_hint": "API anahtarınızı <0>buradan</0> alabilirsiniz",
"real_debrid_free_account_error": "\"{{username}}\" hesabı ücretsiz bir hesaptır. Lütfen Real-Debrid abonesi olun",
"debrid_linked_message": "\"{{username}}\" hesabı bağlandı",
"real_debrid_linked_message": "\"{{username}}\" hesabı bağlandı",
"save_changes": "Değişiklikleri Kaydet",
"changes_saved": "Değişiklikler başarıyla kaydedildi",
"download_sources_description": "Hydra, indirme bağlantılarını bu kaynaklardan alacak. Kaynak URL, indirme bağlantılarını içeren bir .json dosyasına doğrudan bir bağlantı olmalıdır.",
"validate_download_source": "Doğrula",
"remove_download_source": "Kaldır",
"add_download_source": "Kaynak ekle",
"cancel_button_confirmation_delete_all_sources": "Hayır",
"confirm_button_confirmation_delete_all_sources": "Evet, her şeyi sil",
"description_confirmation_delete_all_sources": "Tüm indirme kaynaklarını sileceksiniz",
"title_confirmation_delete_all_sources": "Tüm indirme kaynaklarını sil",
"removed_download_sources": "Yazı tipleri kaldırıldı",
"button_delete_all_sources": "Tüm indirme kaynaklarını kaldır",
"download_count_zero": "İndirme seçeneği yok",
"download_count_one": "{{countFormatted}} indirme seçeneği",
"download_count_other": "{{countFormatted}} indirme seçeneği",
@@ -298,65 +276,11 @@
"must_be_valid_url": "Kaynak geçerli bir URL olmalıdır",
"blocked_users": "Engellenen kullanıcılar",
"user_unblocked": "Kullanıcının engeli kaldırıldı",
"enable_achievement_notifications": "Bir başarım kilidi açıldığında",
"enable_achievement_notifications": "Bir başarı kilidi açıldığında",
"launch_minimized": "Hydra'yı küçültülmüş başlat",
"disable_nsfw_alert": "NSFW uyarısını devre dışı bırak",
"seed_after_download_complete": "İndirme tamamlandıktan sonra paylaş",
"show_hidden_achievement_description": "Gizli başarımıklamalarını kilitlenmeden önce göster",
"account": "Hesap",
"no_users_blocked": "Hiçbir kullanıcıyı engellemediniz",
"subscription_active_until": "Hydra Cloud'unuz {{date}} tarihine kadar aktif",
"manage_subscription": "Aboneliği yönet",
"update_email": "E-posta'yı güncelle",
"update_password": "Şifreyi güncelle",
"current_email": "Aktif e-posta'nız",
"no_email_account": "Henüz ayarlanmış bir e-postanız yok",
"account_data_updated_successfully": "Hesap bilgileri başarıyla güncellendi",
"renew_subscription": "Hydra Cloud'u yenile",
"subscription_expired_at": "Aboneliğiniz {{date}} tarihinde sona erdi",
"no_subscription": "Hydra'yı en iyi şekilde deneyimleyin",
"become_subscriber": "Hydra Cloud'lu ol",
"subscription_renew_cancelled": "Otomatik yenileme devre dışı",
"subscription_renews_on": "Aboneliğiniz {{date}} tarihinde yenilenecek",
"bill_sent_until": "Bir sonraki faturanız bu tarihe kadar gönderilecek",
"no_themes": "Henüz bir temanız yok gibi görünüyor, ama endişelenmeyin, ilk şaheserinizi oluşturmak için buraya tıklayın.",
"editor_tab_code": "Kod",
"editor_tab_info": "Bilgi",
"editor_tab_save": "Kaydet",
"web_store": "İnternet mağazası",
"clear_themes": "Temizle",
"create_theme": "Oluştur",
"create_theme_modal_title": "Tema oluştur",
"create_theme_modal_description": "Hydra'nın görünümünü özelleştirmek için yeni bir tema oluştur",
"theme_name": "İsim",
"insert_theme_name": "Tema ismini gir",
"set_theme": "Temayı seç",
"unset_theme": "Tema seçimini kaldır",
"delete_theme": "Temayı sil",
"edit_theme": "Temayı düzenle",
"delete_all_themes": "Tüm temaları sil",
"delete_all_themes_description": "Bu tüm temalarınızı silecektir",
"delete_theme_description": "Bu {{theme}} temasını silecektir",
"cancel": "İptal",
"appearance": "Görünüm",
"enable_torbox": "TorBox'u etkinleştir",
"torbox_description": "TorBox, piyasadaki en iyi sunucularla bile rekabet edebilen premium seedbox hizmetinizdir.",
"torbox_account_linked": "TorBox hesabı bağlandı",
"create_real_debrid_account": "Henüz bir Real-Debrid hesabınız yoksa buraya tıklayın",
"create_torbox_account": "Henüz bir TorBox hesabınız yoksa buraya tıklayın",
"real_debrid_account_linked": "Real-Debrid hesabı bağlandı",
"name_min_length": "Tema ismi en az 3 karakter uzunluğunda olmalıdır",
"import_theme": "Temayı içe aktar",
"import_theme_description": "{{theme}} teması, tema mağazasından içeri aktarılacak",
"error_importing_theme": "Temayı içe aktarmada bir sorun oluştu",
"theme_imported": "Tema başarıyla içe aktarıldı",
"enable_friend_request_notifications": "Bir arkadaşlık isteği alındığında",
"enable_auto_install": "Güncellemeleri otomatik yükle",
"common_redist": "Ortak bağımlılıklar",
"common_redist_description": "Bazı oyunların çalışabilmesi için genel bağımlılıklar gereklidir. Sorun yaşamamak için bunların yüklenmesi önerilir.",
"install_common_redist": "Yükle",
"installing_common_redist": "Yükleniyor…",
"show_download_speed_in_megabytes": "İndirme hızını megabayt/saniye (MB/s) cinsinden göster"
"show_hidden_achievement_description": "Gizli başarııklamalarını kilitlenmeden önce göster"
},
"notifications": {
"download_complete": "İndirme tamamlandı",
@@ -364,23 +288,17 @@
"repack_list_updated": "Repack listesi güncellendi",
"repack_count_one": "{{count}} repack eklendi",
"repack_count_other": "{{count}} repack eklendi",
"new_update_available": "{{version}} sürümü mevcut",
"new_update_available": "Sürüm {{version}} mevcut",
"restart_to_install_update": "Güncellemeyi yüklemek için Hydra'yı yeniden başlatın",
"notification_achievement_unlocked_title": "{{game}} için başarım kilidi açıldı",
"notification_achievement_unlocked_body": "{{achievement}} ve diğer {{count}} başarımıldı",
"new_friend_request_description": "Yeni bir arkadaşlık isteğin var",
"new_friend_request_title": "Yeni arkadaşlık isteği",
"extraction_complete": ıkartma tamamlandı",
"game_extracted": "{{title}} başarıyla çıkartıldı"
"notification_achievement_unlocked_title": "{{game}} için başarı kilidi açıldı",
"notification_achievement_unlocked_body": "{{achievement}} ve diğer {{count}} başarılarıldı"
},
"system_tray": {
"open": "Hydra'yı Aç",
"quit": ık"
},
"game_card": {
"no_downloads": "İndirilebilir içerik bulunmuyor",
"available_one": "Mevcut",
"available_other": "Mevcut"
"no_downloads": "İndirilebilir içerik bulunmuyor"
},
"binary_not_found_modal": {
"title": "Programlar Yüklü Değil",
@@ -413,7 +331,7 @@
"successfully_signed_out": "Başarıyla çıkış yapıldı",
"sign_out": ıkış yap",
"playing_for": "{{amount}} oynanıyor",
"sign_out_modal_text": "Kütüphaneniz mevcut hesabınıza bağlı. Oturumu kapattığınızda kütüphaneniz görünür olmayacak ve herhangi bir ilerleme kaydedilmeyecek. Oturumu kapatmaya devam etmek istiyor musunuz?",
"sign_out_modal_text": "Kütüphaneniz mevcut hesabınıza bağlı. Çıkış yaptığınızda kütüphaneniz görünür olmayacak ve herhangi bir ilerleme kaydedilmeyecek. Çıkışa devam etmek istiyor musunuz?",
"add_friends": "Arkadaş Ekle",
"add": "Ekle",
"friend_code": "Arkadaş kodu",
@@ -464,43 +382,42 @@
"uploading_banner": "Afiş yükleniyor…",
"background_image_updated": "Arka plan görüntüsü güncellendi",
"stats": "İstatistikler",
"achievements": "Başarımlar",
"achievements": "Başarılar",
"games": "Oyunlar",
"top_percentile": "En üst {{percentile}}%",
"ranking_updated_weekly": "Sıralama haftalık olarak güncellenir",
"playing": "{{game}} oynanıyor",
"achievements_unlocked": "Başarımlar açıldı",
"achievements_unlocked": "Başarılar açıldı",
"earned_points": "Kazanılan puanlar",
"show_achievements_on_profile": "Başarımlarınızı profilinizde gösterin",
"show_achievements_on_profile": "Başarılarınızı profilinizde gösterin",
"show_points_on_profile": "Kazandığınız puanları profilinizde gösterin"
},
"achievement": {
"achievement_unlocked": "Başarımıldı",
"user_achievements": "{{displayName}} oyununun Başarımları",
"your_achievements": "Başarımlarınız",
"achievement_unlocked": "Başarııldı",
"user_achievements": "{{displayName}}'in Başarıları",
"your_achievements": "Başarılarınız",
"unlocked_at": "Açılma zamanı: {{date}}",
"subscription_needed": "Bu içeriği görmek için bir Hydra Cloud aboneliği gereklidir",
"new_achievements_unlocked": "{{gameCount}} oyundan {{achievementCount}} yeni başarımıldı",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} başarım",
"achievements_unlocked_for_game": "{{gameTitle}} oyunu için {{achievementCount}} yeni başarımıldı",
"hidden_achievement_tooltip": "Bu gizli bir başarımdır",
"achievement_earn_points": "Bu başarım ile {{points}} puan kazanın",
"new_achievements_unlocked": "{{gameCount}} oyundan {{achievementCount}} yeni başarııldı",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} başarı",
"achievements_unlocked_for_game": "{{gameTitle}} oyunu için {{achievementCount}} yeni başarııldı",
"hidden_achievement_tooltip": "Bu gizli bir başarıdır",
"achievement_earn_points": "Bu başarı ile {{points}} puan kazanın",
"earned_points": "Kazanılan puanlar:",
"available_points": "Mevcut puanlar:",
"how_to_earn_achievements_points": "Başarım puanları nasıl kazanılır?"
"how_to_earn_achievements_points": "Başarı puanları nasıl kazanılır?"
},
"hydra_cloud": {
"subscription_tour_title": "Hydra Cloud Aboneliği",
"subscribe_now": "Şimdi abone olun",
"cloud_saving": "Bulut kaydetme",
"cloud_achievements": "Başarımlarınızı buluta kaydedin",
"cloud_achievements": "Başarılarınızı buluta kaydedin",
"animated_profile_picture": "Animasyonlu profil resimleri",
"premium_support": "Premium Destek",
"show_and_compare_achievements": "Başarımlarınızı diğer kullanıcılarla karşılaştırın ve gösterin",
"show_and_compare_achievements": "Başarılarınızı diğer kullanıcılarla karşılaştırın ve gösterin",
"animated_profile_banner": "Animasyonlu profil afişi",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Bir Hydra Cloud özelliği keşfettiniz!",
"learn_more": "Daha Fazla Bilgi Edinin",
"debrid_description": "Nimbus ile 4 kata kadar daha hızlı indirin"
"learn_more": "Daha Fazla Bilgi Edinin"
}
}

View File

@@ -6,11 +6,7 @@
"home": {
"featured": "Рекомендоване",
"surprise_me": "Здивуй мене",
"no_results": "Результатів не знайдено",
"start_typing": "Почніть набирати текст для пошуку...",
"hot": "Гарячі новинки",
"weekly": "📅 Найкращі ігри цього тижня",
"achievements": "🏆 Ігри на проходження"
"no_results": "Результатів не знайдено"
},
"sidebar": {
"catalogue": "Каталог",
@@ -24,10 +20,7 @@
"home": "Головна",
"game_has_no_executable": "Не було вибрано файл для запуску гри",
"queued": "{{title}} в черзі",
"sign_in": "Увійти",
"favorites": "Улюблені",
"friends": "Друзі",
"need_help": "Потрібна допомога?"
"sign_in": "Увійти"
},
"header": {
"search": "Пошук",
@@ -43,22 +36,11 @@
"no_downloads_in_progress": "Немає активних завантажень",
"downloading_metadata": "Завантаження метаданих {{title}}…",
"downloading": "Завантаження {{title}}… ({{percentage}} завершено) - Закінчення {{eta}} - {{speed}}",
"calculating_eta": "Завантаження {{title}}… ({{percentage}} завершено) - Обчислення залишкового часу…",
"checking_files": "Перевірка файлів {{title}} ({{percentage}} виповнено)",
"installing_common_redist": "{{log}}…",
"installation_complete": "Встановлення завершено",
"installation_complete_message": "Загальні розповсюджувані файли успішно встановлено"
"calculating_eta": "Завантаження {{title}}… ({{percentage}} завершено) - Обчислення залишкового часу…"
},
"catalogue": {
"search": "Фільтрувати…",
"developers": "Розробники",
"genres": "Жанри",
"tags": "Теги",
"publishers": "Видавці",
"download_sources": "Джерела",
"result_count": "{{resultCount}} результатів",
"filter_count": "{{filterCount}} доступно",
"clear_filters": "Очистити {{filterCount}} вибрані"
"next_page": "Наступна сторінка",
"previous_page": "Попередня сторінка"
},
"game_details": {
"open_download_options": "Відкрити варіанти завантаження",
@@ -102,31 +84,18 @@
"download_now": "Завантажити зараз",
"calculating_eta": "Обчислення залишкового часу…",
"create_shortcut": "Створити ярлик на робочому столі",
"create_shortcut_success": "Ярлик успішно створено",
"create_shortcut_error": "Виникла помилка під час створення ярлику",
"nsfw_content_title": "Ця гра містить неприйнятний контент",
"nsfw_content_description": "{{title}} містить вміст, який може бути непридатним для всіх вікових груп. Ви впевнені, що хочете продовжити?",
"allow_nsfw_content": "Продовжити",
"refuse_nsfw_content": "Вернутись назад",
"stats": "Статистика",
"clear": "Очистити",
"danger_zone_section_description": "Видалити цю гру з вашої бібліотеки або файли скачані Hydra",
"danger_zone_section_title": "Небезпечна зона",
"player_count": "Грають зараз",
"download": "Завантажити",
"download_count": "Завантажень",
"download_in_progress": "Триває завантаження.",
"download_options": "Варіантів завантаження",
"download_path": "Тека для завантажень",
"download_paused": "Завантаження призупинено",
"download_settings": "Налаштування завантаження",
"download_error": "Цей варіант завантаження не доступний",
"downloader": "Завантажувач",
"downloads_section_title": "Завантаження",
"downloads_secion_title": "Завантаження",
"downloads_section_description": "Перевірити наявність оновлень або інших версій гри",
"executable_section_description": "Шлях до файлу, який буде запущений при натисканні на кнопку \"Play\"",
"executable_section_title": "Файл",
"executable_path_in_use": "Виконуваний файл наразі використовується \"{{game}}\"",
"last_downloaded_option": "Останній варіант завантаження",
"next_screenshot": "Наступний скрішнот",
"no_executable_selected": "Файл не вибрано",
@@ -141,64 +110,7 @@
"remove_from_library_description": "{{game}} буде видалено з вашої бібліотеки",
"remove_from_library_title": "Ви впевнені?",
"screenshot": "Скріншот",
"select_executable": "Обрати",
"warning": "Попередження:",
"hydra_needs_to_remain_open": "Hydra повинна залишатись відкритою до завершення завантаження. Якщо Hydra закриється до завершення, ви втратите прогрес.",
"achievements": "Досягнення",
"achievements_count": "Досягнень {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Хмарне Збереження",
"cloud_save_description": "Збережіть свій ігровий процесс у хмарі та продовжіть грати з любого пристрою",
"backups": "Резервні копії",
"install_backup": "Встановити",
"delete_backup": "Видалити",
"create_backup": "Нова резервна копія",
"last_backup_date": "Остання резервна копія {{date}}",
"no_backup_preview": "Не було знайдено жодних збережень для цієї гри.",
"restoring_backup": "Відновлення резервної копії ({{progress}} виконано)…",
"uploading_backup": "Вивантаження резервної копії…",
"no_backups": "Ви ще не створили жодних резеврних копій для цієї гри",
"backup_uploaded": "Резервна копія вивантажена",
"backup_deleted": "Резервна копія видалена",
"backup_restored": "Резервна копія відновлена",
"see_all_achievements": "Переглянути всі досягнення",
"sign_in_to_see_achievements": "Увійдіть, що б переглянути усі досягнення",
"mapping_method_automatic": "Автоматичний",
"mapping_method_manual": "Ручний",
"mapping_method_label": "Спосіб визначення файлів для резервного копіювання",
"files_automatically_mapped": "Hydra автоматично вибере файли для резервного копіювання",
"no_backups_created": "Для цієї гри не було створено резервних копій",
"manage_files": "Керувати файлами",
"loading_save_preview": "Виконується пошук збережень гри...",
"wine_prefix": "Префікс Wine",
"wine_prefix_description": "Префікс Wine використовувався для запуску цієї гри",
"launch_options": "Параметри загрузки",
"launch_options_description": "Досвідчені користувачі можуть ввести власні модифікації до параметрів запуску (експериментальна функція).",
"launch_options_placeholder": "Параметри не вказано",
"no_download_option_info": "Немає інформації",
"backup_deletion_failed": "Виникла помилка при видалені резервної копії",
"max_number_of_artifacts_reached": "Максимальну кількість резервних копій для цієї гри досягнуто",
"achievements_not_sync": "Дізнайтеся, як синхронізувати свої досягнення",
"manage_files_description": "Керуйте файлами, які буде збережено та відновлено",
"select_folder": "Обрати папку",
"backup_from": "Резервна копія від {{date}}",
"automatic_backup_from": "Автоматична резервна копія від {{date}}",
"enable_automatic_cloud_sync": "Увімкнути автоматичну синхронізацію з хмарою",
"custom_backup_location_set": "Встановлено користувацьке місце збереження резервної копії",
"no_directory_selected": "Папку не було вибрано",
"no_write_permission": "Неможливо завантажити у дану папку. Натисніть сюда щоб дізнатись більше.",
"reset_achievements": "Скинути досягнення",
"reset_achievements_description": "Це скине всі досягнення для {{game}}",
"reset_achievements_title": "Ви впевнені?",
"reset_achievements_success": "Досягнення успішно скинуто",
"reset_achievements_error": "Не вдалося скинути досягнення",
"download_error_gofile_quota_exceeded": "Ви перевищили місячну квоту Gofile. Будь ласка, дочекайтесь, поки квота скинеться.",
"download_error_real_debrid_account_not_authorized": "Ваш обліковий запис Real-Debrid не авторизований для нових завантажень. Будь ласка, перевірте налаштування облікового запису та спробуйте ще раз.",
"download_error_not_cached_on_real_debrid": "Це завантаження недоступне на Real-Debrid, і перевірка статусу завантаження з Real-Debrid наразі недоступна.",
"download_error_not_cached_on_torbox": "Це завантаження недоступне на TorBox, і перевірка статусу завантаження з TorBox наразі недоступна.",
"download_error_not_cached_on_hydra": "Це завантаження недоступне через Nimbus.",
"game_removed_from_favorites": "Гра видалена з улюбленних",
"game_added_to_favorites": "Гра була добавлена у улюблені",
"automatically_extract_downloaded_files": "Автоматично розархівувати завантаженні файли"
"select_executable": "Обрати"
},
"activation": {
"title": "Активувати Hydra",
@@ -230,14 +142,7 @@
"no_downloads_title": "Тут так пусто...",
"queued": "В черзі",
"queued_downloads": "Завантаження в черзі",
"removed": "Не завантажено",
"checking_files": "Перевірка файлів…",
"seeding": "Сідінг",
"stop_seeding": "Зупинити сідінг",
"resume_seeding": "Продовжити сідінг",
"options": "Налаштування",
"extract": "Розархівувати файли",
"extracting": "Розархівовування файлів…"
"removed": "Не завантажено"
},
"settings": {
"downloads_path": "Тека завантажень",
@@ -269,118 +174,32 @@
"import": "Імпортувати",
"insert_valid_json_url": "Вставте дійсний URL JSON-файлу",
"language": "Мова",
"cancel_button_confirmation_delete_all_sources": "немає",
"confirm_button_confirmation_delete_all_sources": "Так, видалити все",
"description_confirmation_delete_all_sources": "Ви видалите всі джерела завантаження",
"title_confirmation_delete_all_sources": "Видалити всі джерела завантаження",
"removed_download_sources": "Джерела завантажень видалено",
"button_delete_all_sources": "Видаліть усі джерела завантаження",
"api_token": "API-токен",
"debrid_api_token_hint": "API токен можливо отримати <0>тут</0>",
"real_debrid_api_token": "API-токен",
"real_debrid_api_token_hint": "API токен можливо отримати <0>тут</0>",
"real_debrid_api_token_label": "Real-Debrid API-токен",
"real_debrid_description": "Real-Debrid — це необмежений завантажувач, який дозволяє швидко завантажувати файли, розміщені в Інтернеті, або миттєво передавати їх у плеєр через приватну мережу, що дозволяє обходити будь-які блокування.",
"real_debrid_free_account_error": "Акаунт \"{{username}}\" - не має наявної підписки. Будь ласка, оформіть підписку на Real-Debrid",
"debrid_invalid_token": "Невірний API-токен",
"debrid_linked_message": "Акаунт \"{{username}}\" привязаний",
"real_debrid_invalid_token": "Невірний API-токен",
"real_debrid_linked_message": "Акаунт \"{{username}}\" привязаний",
"remove_download_source": "Видалити",
"removed_download_source": "Джерело завантажень було видалено",
"save_changes": "Зберегти зміни",
"sync_download_sources": "Синхронізувати джерела",
"validate_download_source": "Перевірити",
"public": "Публічний",
"private": "Приватний",
"friends_only": "Тільки для друзів",
"privacy": "Приватність",
"profile_visibility": "Видимість профілю",
"profile_visibility_description": "Оберіть хто може бачити ваш профіль та бібліотеку",
"required_field": "Це поле обов'язкове",
"source_already_exists": "Це джерело уже додано",
"must_be_valid_url": "Джерело має бути дійсною URL-адресою",
"blocked_users": "Заблоковані користувачі",
"user_unblocked": "Користувача було розблоковано",
"enable_achievement_notifications": "Коли отримано нове досягнення",
"launch_minimized": "Запустити Hydra у згорнутому вигляді",
"disable_nsfw_alert": "Вимкнути сповіщення про NSFW",
"seed_after_download_complete": "Cідувати по завершенню завантажень",
"show_hidden_achievement_description": "Показувати опис прихованих досягнень до їх розблокування",
"account": "Акаунт",
"no_users_blocked": "У вас немає заблокованих користувачів",
"subscription_active_until": "Ваша підписка на Hydra Cloud активна до {{date}}",
"manage_subscription": "Керування підпискою",
"update_email": "Змінити електронну пошту",
"update_password": "Зміна паролю",
"current_email": "Поточна електронна пошта",
"no_email_account": "Ви ще не вказали електронну пошту",
"account_data_updated_successfully": "Дані облікового запису успішно оновлено",
"renew_subscription": "Поновити Hydra Cloud",
"subscription_expired_at": "Ваша підписка закінчилася {{date}}",
"no_subscription": "Насолоджуйтесь Hydra найкращим можливим чином",
"become_subscriber": "Придбати підписку Hydra Cloud",
"subscription_renew_cancelled": "Автоматичне поновлення виключено",
"subscription_renews_on": "Ваша підписка поновиться {{date}}",
"bill_sent_until": "Ваш наступний рахунок буде надіслано до цього дня",
"no_themes": "Схоже, у вас ще немає тем, але не хвилюйтеся, натисніть тут, щоб створити свій перший шедевр.",
"editor_tab_code": "Код",
"editor_tab_info": "Інформація",
"editor_tab_save": "Зберегти",
"web_store": "Інтернет-магазин",
"clear_themes": "Очистити",
"create_theme": "Створити",
"create_theme_modal_title": "Створити користувацьку тему",
"create_theme_modal_description": "Створіть нову тему для налаштування зовнішнього вигляду Hydra",
"theme_name": "Назва",
"insert_theme_name": "Введіть назву теми",
"set_theme": "Включити тему",
"unset_theme": "Виключити тему",
"delete_theme": "Видалити тему",
"edit_theme": "Редагувати тему",
"delete_all_themes": "Видалити усі теми",
"delete_all_themes_description": "Це видалить усі ваші користувацькі теми",
"delete_theme_description": "Це видалить тему {{theme}}",
"cancel": "Відмінити",
"appearance": "Вигляд",
"enable_torbox": "Включити TorBox",
"torbox_description": "TorBox — це ваш преміум-сервіс для сідінгу, що конкурує навіть з найкращими серверами на ринку.",
"torbox_account_linked": "TorBox акаунт прив'язано",
"create_real_debrid_account": "Натисніть тут, якщо у вас ще немає облікового запису Real-Debrid",
"create_torbox_account": "Натисніть тут, якщо у вас ще немає облікового запису TorBox",
"real_debrid_account_linked": "Real-Debrid акаунт прив'язано",
"name_min_length": "Назва теми повинна містити не менше 3 символів",
"import_theme": "Імпортувати тему",
"import_theme_description": "Ви імпортуєте {{theme}} з магазину тем",
"error_importing_theme": "Помилка при імпорті теми",
"theme_imported": "Тема успішно імпортована",
"enable_friend_request_notifications": "При отриманні запиту на дружбу",
"enable_auto_install": "Автоматично завантажувати оновлення",
"common_redist": "Загальні розповсюджувані компоненти",
"common_redist_description": "Загальні розповсюджувані компоненти необхідні для запуску деяких ігор. Рекомендується їх встановити, щоб уникнути проблем.",
"install_common_redist": "Встановити",
"installing_common_redist": "Встановлюється…",
"show_download_speed_in_megabytes": "Показувати швидкість завантаження в мегабайтах на секунду"
"validate_download_source": "Перевірити"
},
"notifications": {
"download_complete": "Завантаження завершено",
"game_ready_to_install": "{{title}} готова до встановлення",
"repack_list_updated": "Список репаків оновлено",
"repack_count_one": "{{count}} репак додано",
"repack_count_other": "{{count}} репаків додано",
"new_update_available": "Версія {{version}} доступна",
"restart_to_install_update": "Перезавантажте Hydra, щоб встановити оновлення",
"notification_achievement_unlocked_title": "Розблоковано досягнення для {{game}}",
"notification_achievement_unlocked_body": "{{achievement}} та інші {{count}} було розблоковано",
"new_friend_request_description": "Ви отримали новий запит на дружбу",
"new_friend_request_title": "Новий запит на дружбу",
"extraction_complete": "Витягування завершено",
"game_extracted": "{{title}} успішно витягнуто"
"repack_count_other": "{{count}} репаків додано"
},
"system_tray": {
"open": "Відкрити Hydra",
"quit": "Вийти"
},
"game_card": {
"no_downloads": "Немає доступних завантажень",
"available_one": "Доступний",
"available_other": "Доступні"
"no_downloads": "Немає доступних завантажень"
},
"binary_not_found_modal": {
"title": "Програми не встановлені",
@@ -413,94 +232,6 @@
"sign_out_modal_title": "Ви впевнені?",
"successfully_signed_out": "Успішний вихід з акаунту",
"total_play_time": "Всього зіграно",
"try_again": "Будь ласка, попробуйте ще раз",
"add_friends": "Добавити друзів",
"add": "Добавити",
"friend_code": "Код друга",
"see_profile": "Переглянути профіль",
"sending": "Надсилання",
"friend_request_sent": "Запит на дружбу було надіслано",
"friends": "Друзі",
"friends_list": "Список друзів",
"user_not_found": "Користувача не найдено",
"block_user": "Заблокувати користувача",
"add_friend": "Добавити друга",
"request_sent": "Запит надіслано",
"request_received": "Запит отримано",
"accept_request": "Прийняти запит",
"ignore_request": "Ігнорувати запит",
"cancel_request": "Скасувати запит",
"undo_friendship": "Видалити з друзів",
"request_accepted": "Запит прийнято",
"user_blocked_successfully": "Користувач успішно заблокований",
"user_block_modal_text": "Це заблокує {{displayName}}",
"blocked_users": "Заблоковані користувачі",
"unblock": "Розблокувати",
"no_friends_added": "У вас немає доданих друзів",
"pending": "Очікування",
"no_pending_invites": "У вас немає запитів, що очікують на підтвердження",
"no_blocked_users": "У вас немає заблокованих користувачів",
"friend_code_copied": "Код друга скопійовано",
"undo_friendship_modal_text": "Це видалить з друзів {{displayName}}",
"privacy_hint": "Щоб налаштувати, хто може це бачити, перейдіть до <0>Settings</0>",
"locked_profile": "Цей профіль приватний",
"image_process_failure": "Помилка при обробці зображення",
"required_field": "Це поле обов'язкове",
"displayname_min_length": "Ім'я користувача повинно містити не менше 3 символів",
"displayname_max_length": "Ім'я користувача повинно містити не більше 50 символів",
"report_profile": "Повідомити про цей профіль",
"report_reason": "Чому ви повідомляєте про цей профіль?",
"report_description": "Додаткова інформація",
"report_description_placeholder": "Додаткова інформація",
"report": "Повідомити",
"report_reason_hate": "Мова ненависті",
"report_reason_sexual_content": "Сексуальний контент",
"report_reason_violence": "Насильство",
"report_reason_spam": "Спам",
"report_reason_other": "Інше",
"profile_reported": "Профіль повідомлено",
"your_friend_code": "Ваш код друга:",
"upload_banner": "Upload banner",
"uploading_banner": "Завантажити банер...",
"background_image_updated": "Фонове зображення оновлено",
"stats": "Статистика",
"achievements": "Досягнення",
"games": "Ігри",
"top_percentile": "Топ {{percentile}}%",
"ranking_updated_weekly": "Рейтинг оновлюється щотижня",
"playing": "Грає у {{game}}",
"achievements_unlocked": "Досягнень розблоковано",
"earned_points": "Отримано балів",
"show_achievements_on_profile": "Покажіть свої досягнення у своєму профілі",
"show_points_on_profile": "Покажіть ваші отриманні бали у своєму профілі"
},
"achievement": {
"achievement_unlocked": "Досягнення розблоковано",
"user_achievements": "Досягнення користувача {{displayName}}",
"your_achievements": "Ваші досягнення",
"unlocked_at": "Розблоковано: {{date}}",
"subscription_needed": "Для перегляду цього контенту потрібна підписка на Hydra Cloud",
"new_achievements_unlocked": "Розблоковано {{achievementCount}} нових досягнень з {{gameCount}} ігор",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} досягнень",
"achievements_unlocked_for_game": "Розблоковано {{achievementCount}} нових досягнень у грі {{gameTitle}}",
"hidden_achievement_tooltip": "Це приховане досягнення",
"achievement_earn_points": " Отримайте {{points}} балів за це досягнення",
"earned_points": "Отримано балів:",
"available_points": "Доступно балів:",
"how_to_earn_achievements_points": "Як заробляти бали за досягнення?"
},
"hydra_cloud": {
"subscription_tour_title": "Підписка Hydra Cloud",
"subscribe_now": "Підписатися зараз",
"cloud_saving": "Збереження в хмарі",
"cloud_achievements": "Зберігайте свої досягнення в хмарі",
"animated_profile_picture": "Анімовані аватари",
"premium_support": "Преміум-підтримка",
"show_and_compare_achievements": "Показуйте та порівнюйте свої досягнення з іншими користувачами",
"animated_profile_banner": "Анімований банер профілю",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Ви щойно виявили функцію Hydra Cloud!",
"learn_more": "Дізнатися більше",
"debrid_description": "Завантажуйте до 4 разів швидше з Nimbus"
"try_again": "Будь ласка, попробуйте ще раз"
}
}

View File

@@ -1,476 +0,0 @@
{
"language_name": "Uzbek",
"app": {
"successfully_signed_in": "Kirish muvaffaqiyatli amalga oshirildi"
},
"home": {
"featured": "Tavsiya etilgan",
"surprise_me": "Hayratda qoldir",
"no_results": "Natijalar topilmadi",
"hot": "Eng mashhur",
"start_typing": "Yozishni boshlayapman ...",
"weekly": "📅 Haftaning eng yaxshi o'yinlari",
"achievements": "🏆 Yutuqlar bilan o'yinlar"
},
"sidebar": {
"catalogue": "Katalog",
"downloads": "Yuklab olishlar",
"settings": "Sozlamalar",
"my_library": "Mening kutubxonam",
"downloading_metadata": "{{title}} (Metamaʼlumotlar yuklanmoqda…)",
"paused": "{{title}} (To'xtatildi)",
"downloading": "{{title}} ({{percentage}} - Yuklanmoqda…)",
"filter": "Qidiruv",
"home": "Asosiy",
"queued": "{{title}} (Navbatda)",
"game_has_no_executable": "Oʻyinni ishga tushirish fayli tanlanmagan",
"sign_in": "Kirish",
"friends": "Do'stlar",
"need_help": "Yordam kerakmi?",
"favorites": "Sevimlilar"
},
"header": {
"search": "Qidirish",
"home": "Asosiy",
"catalogue": "Katalog",
"downloads": "Yuklab olishlar",
"search_results": "Qidiruv natijalari",
"settings": "Sozlamalar",
"version_available_install": "{{version}} versiyasi mavjud. Oʻrnatish uchun shu yerni bosing.",
"version_available_download": "{{version}} versiyasi mavjud. Yuklab olish uchun shu yerni bosing."
},
"bottom_panel": {
"no_downloads_in_progress": "Faol yuklab olishlar yo'q",
"downloading_metadata": "Metamaʼlumotlar yuklanmoqda {{title}}…",
"downloading": "Yuklanmoqda {{title}}… ({{percentage}} yakunlandi) - Tugash vaqti {{eta}} - {{speed}}",
"calculating_eta": "Yuklanmoqda {{title}}… ({{percentage}} yakunlandi) - Qolgan vaqt hisoblanmoqda…",
"checking_files": "Fayllar tekshirilmoqda {{title}}… ({{percentage}} yakunlandi)",
"installing_common_redist": "{{log}}…",
"installation_complete": "O'rnatish yakunlandi",
"installation_complete_message": "Kutubxonalar muvaffaqiyatli o'rnatildi"
},
"catalogue": {
"search": "Filter…",
"developers": "Ishlab chiquvchilar",
"genres": "Janrlar",
"tags": "Teglar",
"publishers": "Nashriyotlar",
"download_sources": "Yuklab olish manbalari",
"result_count": "{{resultCount}} natija",
"filter_count": "{{filterCount}} mavjud",
"clear_filters": "{{filterCount}} tanlangan filtrni tozalash"
},
"game_details": {
"play_time": "O'ynalgan vaqt {{amount}}",
"last_time_played": "Oxirgi ishga tushirilgan {{period}}",
"not_played_yet": "Siz hali {{title}}ni o'ynamagansiz",
"next_suggestion": "Keyingi taklif",
"play": "O'ynash",
"deleting": "O'rnatuvchi o'chirilmoqda…",
"close": "Yopish",
"playing_now": "Hozir o'ynalmoqda",
"change": "O'zgartirish",
"repacks_modal_description": "Yuklab olish uchun repakni tanlang",
"select_folder_hint": "Standart yuklab olish jildini o'zgartirish uchun <0>Sozlamalar</0>ni oching",
"download_now": "Hozir yuklab olish",
"no_shop_details": "Tavsif olib bo'lmadi",
"download_options": "Manbalar",
"download_path": "Yuklab olish yo'li",
"previous_screenshot": "Oldingi skrinshot",
"next_screenshot": "Keyingi skrinshot",
"screenshot": "Skrinshot {{number}}",
"open_screenshot": "{{number}}-skrinshotni ochish",
"download_settings": "Yuklab olish sozlamalari",
"downloader": "Yuklovchi",
"select_executable": "Tanlash",
"no_executable_selected": "Fayl tanlanmagan",
"open_folder": "Jildni ochish",
"open_download_location": "Yuklab olish jildini ko'rish",
"create_shortcut": "Ish stoliga yorliq yaratish",
"clear": "Tozalash",
"remove_files": "Fayllarni o'chirish",
"remove_from_library_title": "Ishonchingiz komilmi?",
"remove_from_library_description": "{{game}} kutubxonangizdan o'chiriladi.",
"options": "Sozlamalar",
"executable_section_title": "Fayl",
"executable_section_description": "\"O'ynash\" tugmasi bosilganda ishga tushiriladigan fayl yo'li",
"downloads_section_title": "Yuklab olishlar",
"downloads_section_description": "Yangilanishlar yoki o'yinning boshqa versiyalarini tekshirish",
"danger_zone_section_title": "Xavfli zona",
"danger_zone_section_description": "Bu o'yinni kutubxonangizdan yoki Hydradan yuklab olingan fayllarni o'chirishingiz mumkin",
"download_in_progress": "Yuklab olish davom etmoqda",
"download_paused": "Yuklab olish to'xtatilgan",
"last_downloaded_option": "Oxirgi yuklab olish varianti",
"create_shortcut_success": "Yorliq yaratildi",
"create_shortcut_error": "Yorliq yaratib bo'lmadi",
"allow_nsfw_content": "Davom etish",
"download": "Yuklab olish",
"download_count": "Yuklab olishlar",
"download_error": "Bu yuklab olish varianti mavjud emas",
"executable_path_in_use": "Bajarish fayli allaqachon \"{{game}}\" tomonidan ishlatilmoqda",
"nsfw_content_description": "{{title}} barcha yoshdagilar uchun mos bo'lmasligi mumkin bo'lgan tarkibni o'z ichiga oladi. \nDavom etishni xohlaysizmi?",
"nsfw_content_title": "Bu o'yin nomunosib tarkibga ega",
"refuse_nsfw_content": "Orqaga",
"stats": "Statistika",
"player_count": "Faol o'yinchilar",
"warning": "Ogohlantirish:",
"hydra_needs_to_remain_open": "Bu yuklab olish uchun Hydra tugaguncha ochiq qolishi kerak. Agar Hydra tugashidan oldin yopilsa, jarayonni yo'qotasiz.",
"achievements": "Yutuqlar",
"achievements_count": "Yutuqlar {{unlockedCount}}/{{achievementsCount}}",
"cloud_save": "Bulutli saqlash",
"cloud_save_description": "O'yin jarayoningizni bulutda saqlang va istalgan qurilmada o'ynashni davom ettiring",
"backups": "Zaxira nusxalar",
"install_backup": "O'rnatish",
"delete_backup": "O'chirish",
"create_backup": "Yangi zaxira nusxa yaratish",
"last_backup_date": "Oxirgi zaxira nusxa {{date}} dan",
"no_backup_preview": "Bu sarlavha uchun saqlashlar topilmadi",
"restoring_backup": "Zaxira nusxa tiklanmoqda ({{progress}} yakunlandi)…",
"uploading_backup": "Zaxira nusxa yuklanmoqda…",
"no_backups": "Siz hali bu o'yin uchun zaxira nusxa yaratmagansiz",
"backup_uploaded": "Zaxira nusxa yuklandi",
"backup_deleted": "Zaxira nusxa o'chirildi",
"backup_restored": "Zaxira nusxa tiklandi",
"see_all_achievements": "Barcha yutuqlarni ko'rish",
"sign_in_to_see_achievements": "Yutuqlarni ko'rish uchun tizimga kiring",
"mapping_method_automatic": "Avtomatik",
"mapping_method_manual": "Qo'lda",
"mapping_method_label": "Moslashtirish usuli",
"files_automatically_mapped": "Fayllar avtomatik moslashtirildi",
"no_backups_created": "Bu o'yin uchun zaxira nusxalar yaratilmagan",
"manage_files": "Fayllarni boshqarish",
"loading_save_preview": "Saqlashlar qidirilmoqda…",
"wine_prefix": "Wine prefiksi",
"wine_prefix_description": "Bu o'yinni ishga tushirish uchun ishlatiladigan Wine prefiksi",
"launch_options": "Ishga tushirish parametrlari",
"launch_options_description": "Tajribali foydalanuvchilar ishga tushirish parametrlarini o'zgartirishi mumkin",
"launch_options_placeholder": "Parametr ko'rsatilmagan",
"no_download_option_info": "Ma'lumot mavjud emas",
"backup_deletion_failed": "Zaxira nusxani o'chirib bo'lmadi",
"max_number_of_artifacts_reached": "Bu o'yin uchun maksimal zaxira nusxalar soniga yetildi",
"achievements_not_sync": "Yutuqlaringiz sinxronlanmagan",
"manage_files_description": "Saqlanishi va tiklanishi kerak bo'lgan fayllarni boshqaring",
"select_folder": "Jildni tanlash",
"backup_from": "{{date}} dan zaxira nusxa",
"automatic_backup_from": "{{date}} dan avtomatik zaxira nusxa",
"enable_automatic_cloud_sync": "Avtomatik bulutli sinxronlashni yoqish",
"custom_backup_location_set": "Maxsus zaxira nusxa joylashuvi o'rnatildi",
"no_directory_selected": "Katalog tanlanmagan",
"no_write_permission": "Bu katalogga yuklab bo'lmaydi. Ko'proq ma'lumot olish uchun bu yerga bosing.",
"reset_achievements": "Yutuqlarni tiklash",
"reset_achievements_description": "Bu {{game}} uchun barcha yutuqlarni tiklaydi",
"reset_achievements_title": "Ishonchingiz komilmi?",
"reset_achievements_success": "Yutuqlar muvaffaqiyatli tiklandi",
"reset_achievements_error": "Yutuqlarni tiklab bo'lmadi",
"download_error_gofile_quota_exceeded": "Siz Gofile oylik kvotangizni oshirib yubordingiz. Iltimos, kvota tiklanguncha kuting.",
"download_error_real_debrid_account_not_authorized": "Sizning Real-Debrid hisobingiz yangi yuklab olishlar uchun avtorizatsiya qilinmagan. Iltimos, hisob sozlamalarini tekshiring va qaytadan urinib ko'ring.",
"download_error_not_cached_on_real_debrid": "Bu yuklab olish Real-Debrid'da mavjud emas, va Real-Debrid'dan yuklab olish holatini olish hozircha mavjud emas.",
"download_error_not_cached_on_torbox": "Bu yuklab olish TorBox'da mavjud emas, va TorBox'dan yuklab olish holatini olish hozircha mumkin emas.",
"game_added_to_favorites": "O'yin sevimlilarga qo'shildi",
"game_removed_from_favorites": "O'yin sevimlilardan olib tashlandi",
"automatically_extract_downloaded_files": "Yuklab olingan fayllarni avtomatik chiqarish"
},
"activation": {
"title": "Hydra'ni faollashtirish",
"installation_id": "O'rnatish ID'si:",
"enter_activation_code": "Faollashtirish kodini kiriting",
"message": "Agar qayerdan so'rash kerakligini bilmasangiz, u sizda bo'lmasligi kerak.",
"activate": "Faollashtirish",
"loading": "Yuklanmoqda…"
},
"downloads": {
"resume": "Davom ettirish",
"pause": "To'xtatib turish",
"eta": "Tugash vaqti {{eta}}",
"paused": "To'xtatilgan",
"verifying": "Tekshirilmoqda…",
"completed": "Yakunlandi",
"removed": "Yuklab olinmagan",
"cancel": "Bekor qilish",
"filter": "Yuklab olingan o'yinlarni qidirish",
"remove": "O'chirish",
"downloading_metadata": "Metamaʼlumotlar yuklanmoqda…",
"deleting": "O'rnatuvchi o'chirilmoqda…",
"delete": "O'rnatuvchini o'chirish",
"delete_modal_title": "Ishonchingiz komilmi?",
"delete_modal_description": "Bu kompyuteringizdan barcha o'rnatuvchilarni o'chiradi",
"install": "O'rnatish",
"download_in_progress": "Jarayonda",
"queued_downloads": "Navbatdagi yuklab olishlar",
"downloads_completed": "Yakunlangan",
"queued": "Navbatda",
"no_downloads_title": "Bu yer juda bo'sh...",
"no_downloads_description": "Siz hali Hydra orqali hech narsa yuklab olmadingiz, lekin boshlash uchun hech qachon kech emas.",
"checking_files": "Fayllar tekshirilmoqda…",
"seeding": "Ulashish",
"stop_seeding": "Ulashishni to'xtatish",
"resume_seeding": "Ulashishni davom ettirish",
"options": "Boshqarish",
"extract": "Fayllarni chiqarish",
"extracting": "Fayllar chiqarilmoqda…"
},
"settings": {
"downloads_path": "Yuklab olish yo'li",
"change": "O'zgartirish",
"notifications": "Bildirishnomalar",
"enable_download_notifications": "Yuklab olish tugaganda",
"enable_achievement_notifications": "Yutuq ochilganda",
"enable_repack_list_notifications": "Yangi repak qo'shilganda",
"real_debrid_api_token_label": "Real-Debrid API-tokeni",
"quit_app_instead_hiding": "Ilovani trayga yig'ish o'rniga yopish",
"launch_with_system": "Hydra'ni tizim bilan birga ishga tushirish",
"launch_minimized": "Hydra'ni yig'ilgan holda ishga tushirish",
"disable_nsfw_alert": "Noqulay kontent haqida ogohlantirishni o'chirish",
"general": "Asosiy",
"behavior": "Xatti-harakat",
"download_sources": "Yuklab olish manbalari",
"language": "Til",
"api_token": "API kalit",
"enable_real_debrid": "Real-Debrid'ni yoqish",
"real_debrid_description": "Real-Debrid - bu cheksiz yuklab oluvchi bo'lib, internetda joylashtirilgan fayllarni tezda yuklab olishga yoki ularni xususiy tarmoq orqali pleerga zudlik bilan o'tkazishga imkon beradi, bu esa har qanday blokirovkalarni chetlab o'tishga imkon beradi.",
"debrid_invalid_token": "Noto'g'ri API kalit",
"debrid_api_token_hint": "API kalitni <0>bu yerda</0> olish mumkin",
"real_debrid_free_account_error": "\"{{username}}\" hisobi - obunaga ega emas. Iltimos, Real-Debrid obunasini rasmiylashtiring",
"debrid_linked_message": "\"{{username}}\" hisobi bog'langan",
"save_changes": "O'zgarishlarni saqlash",
"changes_saved": "O'zgarishlar muvaffaqiyatli saqlandi",
"download_sources_description": "Hydra yuklab olish havolalarini ushbu manbalardan oladi. URL yuklab olish uchun havolalar bilan .json-fayliga to'g'ridan-to'g'ri havolani o'z ichiga olishi kerak.",
"validate_download_source": "Tekshirish",
"remove_download_source": "O'chirish",
"add_download_source": "Manba qo'shish",
"download_count_zero": "Ro'yxatda yuklab olishlar yo'q",
"download_count_one": "Ro'yxatda {{countFormatted}} ta yuklab olish",
"download_count_other": "Ro'yxatda {{countFormatted}} ta yuklab olish",
"download_source_url": "Manba havolasi",
"add_download_source_description": ".json-fayliga havolani joylang",
"download_source_up_to_date": "Yangilangan",
"download_source_errored": "Xato",
"sync_download_sources": "Manbalarni yangilash",
"removed_download_source": "Manba o'chirildi",
"cancel_button_confirmation_delete_all_sources": "Yo'q",
"confirm_button_confirmation_delete_all_sources": "Ha, barchasini o'chirish",
"description_confirmation_delete_all_sources": "Siz barcha manbalarni o'chirasiz",
"title_confirmation_delete_all_sources": "Barcha manbalarni o'chirish",
"removed_download_sources": "Manbalar o'chirildi",
"button_delete_all_sources": "Barcha manbalarni o'chirish",
"added_download_source": "Manba qo'shildi",
"download_sources_synced": "Barcha manbalar yangilandi",
"insert_valid_json_url": "Amaldagi JSON-fayl URL'ini kiriting",
"found_download_option_zero": "Yuklab olish variantlari topilmadi",
"found_download_option_one": "{{countFormatted}} yuklab olish varianti topildi",
"found_download_option_other": "{{countFormatted}} yuklab olish varianti topildi",
"import": "Import qilish",
"blocked_users": "Bloklangan foydalanuvchilar",
"friends_only": "Faqat do'stlar uchun",
"must_be_valid_url": "Manbada to'g'ri URL bo'lishi kerak",
"privacy": "Maxfiylik",
"private": "Shaxsiy",
"profile_visibility": "Profil ko'rinuvchanligi",
"profile_visibility_description": "Kim sizning profilingiz va kutubxonangizni ko'ra olishini tanlang",
"public": "Ommaviy",
"required_field": "Bu maydon to'ldirilishi shart",
"source_already_exists": "Bu manba allaqachon qo'shilgan",
"user_unblocked": "Foydalanuvchi blokdan chiqarildi",
"seed_after_download_complete": "Yuklab olish tugagandan so'ng ulashish",
"show_hidden_achievement_description": "Yashirin yutuqlarning tavsifini ularni olishdan oldin ko'rsatish",
"account": "Hisob",
"no_users_blocked": "Sizda bloklangan foydalanuvchilar yo'q",
"subscription_active_until": "Hydra Cloud obunangiz {{date}} ga qadar faol",
"manage_subscription": "Obunani boshqarish",
"update_email": "Elektron pochtani yangilash",
"update_password": "Parolni yangilash",
"current_email": "Joriy elektron pochta:",
"no_email_account": "Siz hali elektron pochta o'rnatmagansiz",
"account_data_updated_successfully": "Hisob ma'lumotlari muvaffaqiyatli yangilandi",
"renew_subscription": "Hydra Cloud obunasini yangilash",
"subscription_expired_at": "Obunangiz muddati {{date}} da tugagan",
"no_subscription": "Hydra'dan maksimal darajada bahramand bo'ling",
"become_subscriber": "Hydra Cloud egasiga aylaning",
"subscription_renew_cancelled": "Avtomatik yangilash o'chirilgan",
"subscription_renews_on": "Obunangiz {{date}} da yangilanadi",
"bill_sent_until": "Keyingi hisobingiz shu kungacha yuboriladi",
"no_themes": "Sizda hali mavzular yo'qqa o'xshaydi, lekin tashvishlanmang, birinchi shoh asaringizni yaratish uchun shu yerni bosing",
"editor_tab_code": "Kod",
"editor_tab_info": "Ma'lumot",
"editor_tab_save": "Saqlash",
"web_store": "Veb-do'kon",
"clear_themes": "Tozalash",
"create_theme": "Yaratish",
"create_theme_modal_title": "Maxsus mavzu yaratish",
"create_theme_modal_description": "Hydra ko'rinishini sozlash uchun yangi mavzu yaratish",
"theme_name": "Nomi",
"insert_theme_name": "Mavzu nomini kiriting",
"set_theme": "Mavzuni o'rnatish",
"unset_theme": "Mavzuni olib tashlash",
"delete_theme": "Mavzuni o'chirish",
"edit_theme": "Mavzuni tahrirlash",
"delete_all_themes": "Barcha mavzularni o'chirish",
"delete_all_themes_description": "Bu barcha maxsus mavzularingizni o'chiradi",
"delete_theme_description": "Bu {{theme}} mavzusini o'chirishga olib keladi",
"cancel": "Bekor qilish",
"appearance": "Tashqi ko'rinish",
"enable_torbox": "TorBox'ni yoqish",
"torbox_description": "TorBox - bu bozordagi eng yaxshi serverlar bilan ham raqobatlashadigan premium xizmatingiz.",
"torbox_account_linked": "TorBox hisobi bog'langan",
"real_debrid_account_linked": "Real-Debrid hisobi bog'langan",
"create_real_debrid_account": "Agar sizda hali Real-Debrid hisobi bo'lmasa, shu yerni bosing",
"create_torbox_account": "Agar sizda hali TorBox hisobi bo'lmasa, shu yerni bosing",
"name_min_length": "Mavzu nomi kamida 3 ta belgi bo'lishi kerak",
"import_theme": "Mavzuni import qilish",
"import_theme_description": "Siz {{theme}} mavzusini mavzular do'konidan import qilmoqdasiz",
"error_importing_theme": "Mavzuni import qilishda xato",
"theme_imported": "Mavzu muvaffaqiyatli import qilindi",
"enable_friend_request_notifications": "Do'stlar so'rovi olinganda",
"enable_auto_install": "Yangilanishlarni avtomatik yuklab olish",
"common_redist": "Kutubxonalar",
"common_redist_description": "Ba'zi o'yinlarni ishga tushirish uchun kutubxonalar talab qilinadi. Muammolarning oldini olish uchun ularni o'rnatish tavsiya etiladi.",
"install_common_redist": "O'rnatish",
"installing_common_redist": "O'rnatilmoqda…",
"show_download_speed_in_megabytes": "Yuklab olish tezligini sekundiga megabaytlarda ko'rsatish"
},
"notifications": {
"download_complete": "Yuklab olish yakunlandi",
"game_ready_to_install": "{{title}} o'rnatishga tayyor",
"repack_list_updated": "Repaklar ro'yxati yangilandi",
"repack_count_one": "{{count}} repak qo'shildi",
"repack_count_other": "{{count}} repak qo'shildi",
"new_update_available": "Yangi {{version}} versiyasi mavjud",
"restart_to_install_update": "Yangilanishni o'rnatish uchun Hydra'ni qayta ishga tushiring",
"notification_achievement_unlocked_title": "{{game}} uchun yutuq ochildi",
"notification_achievement_unlocked_body": "{{achievement}} va boshqa {{count}} ta yutuq ochildi",
"new_friend_request_title": "Yangi do'stlik so'rovi",
"new_friend_request_description": "Siz yangi do'stlik so'rovini oldingiz",
"extraction_complete": "Arxivdan chiqarish yakunlandi",
"game_extracted": "{{title}} muvaffaqiyatli arxivdan chiqarildi"
},
"system_tray": {
"open": "Hydra'ni ochish",
"quit": "Chiqish"
},
"game_card": {
"available_one": "Mavjud",
"available_other": "Mavjud",
"no_downloads": "Mavjud manbalar yo'q"
},
"binary_not_found_modal": {
"title": "Dasturlar o'rnatilmagan",
"description": "Wine yoki Lutris topilmadi",
"instructions": "O'yin to'g'ri ishlashi uchun Linux distributivingizga ulardan birini o'rnatishning to'g'ri usulini bilib oling"
},
"modal": {
"close": "Yopish"
},
"forms": {
"toggle_password_visibility": "Parolni ko'rsatish"
},
"user_profile": {
"amount_hours": "{{amount}} soat",
"amount_minutes": "{{amount}} daqiqa",
"last_time_played": "Oxirgi o'yin {{period}}",
"activity": "So'nggi faollik",
"library": "Kutubxona",
"total_play_time": "Jami o'ynalgan vaqt",
"no_recent_activity_title": "Hmm... Bu yerda hech narsa yo'q",
"no_recent_activity_description": "Siz uzoq vaqtdan beri o'ynamagansiz. Buni o'zgartirish vaqti keldi!",
"display_name": "Ko'rsatiladigan ism",
"saving": "Saqlanmoqda",
"save": "Saqlash",
"edit_profile": "Profilni tahrirlash",
"saved_successfully": "Muvaffaqiyatli saqlandi",
"try_again": "Iltimos, qayta urinib ko'ring",
"sign_out_modal_title": "Ishonchingiz komilmi?",
"cancel": "Bekor qilish",
"successfully_signed_out": "Tizimdan muvaffaqiyatli chiqdingiz",
"sign_out": "Chiqish",
"playing_for": "{{amount}} o'ynalgan",
"sign_out_modal_text": "Sizning kutubxonangiz joriy hisob qaydnomangizga bog'langan. Tizimdan chiqsangiz, kutubxonangiz mavjud bo'lmaydi va progress saqlanmaydi. Chiqasizmi?",
"add_friends": "Do'stlar qo'shish",
"add": "Qo'shish",
"friend_code": "Do'st kodi",
"see_profile": "Profilni ko'rish",
"sending": "Yuborilmoqda",
"friend_request_sent": "Do'stlik so'rovi yuborildi",
"friends": "Do'stlar",
"friends_list": "Do'stlar ro'yxati",
"user_not_found": "Foydalanuvchi topilmadi",
"block_user": "Foydalanuvchini bloklash",
"add_friend": "Do'st qo'shish",
"request_sent": "So'rov yuborildi",
"request_received": "So'rov qabul qilindi",
"accept_request": "So'rovni qabul qilish",
"ignore_request": "So'rovni e'tiborsiz qoldirish",
"cancel_request": "So'rovni bekor qilish",
"undo_friendship": "Do'stni o'chirish",
"request_accepted": "So'rov qabul qilindi",
"user_blocked_successfully": "Foydalanuvchi muvaffaqiyatli bloklandi",
"user_block_modal_text": "{{displayName}} bloklanadi",
"blocked_users": "Bloklangan foydalanuvchilar",
"unblock": "Blokdan chiqarish",
"no_friends_added": "Siz hali hech qanday do'st qo'shmagansiz",
"pending": "Kutilmoqda",
"no_pending_invites": "Sizda javob kutayotgan so'rovlar yo'q",
"no_blocked_users": "Siz hech kimni bloklamagansiz",
"friend_code_copied": "Do'st kodi nusxalandi",
"displayname_max_length": "Ko'rsatiladigan ism 50 ta belgidan oshmasligi kerak",
"displayname_min_length": "Ko'rsatiladigan ism kamida 3 ta belgidan iborat bo'lishi kerak",
"image_process_failure": "Rasmni qayta ishlashda xatolik yuz berdi",
"locked_profile": "Bu profil shaxsiy",
"privacy_hint": "Uni kimlar ko'rishi mumkinligini belgilash uchun <0>Sozlamalar</0>ga o'ting",
"profile_reported": "Profil haqida xabar berildi",
"report": "Xabar berish",
"report_description": "Qo'shimcha ma'lumot",
"report_description_placeholder": "Qo'shimcha ma'lumot",
"report_profile": "Bu profil haqida shikoyat qilish",
"report_reason": "Nega bu profil haqida shikoyat qilyapsiz?",
"report_reason_hate": "Nafrat qo'zg'atish",
"report_reason_other": "Boshqa",
"report_reason_sexual_content": "Jinsiy tarkib",
"report_reason_spam": "Spam",
"report_reason_violence": "Zo'ravonlik",
"required_field": "Bu maydon to'ldirilishi shart",
"undo_friendship_modal_text": "Bu {{displayName}} bilan do'stligingizni bekor qiladi",
"your_friend_code": "Sizning do'st kodingiz:",
"upload_banner": "Banner yuklash",
"uploading_banner": "Banner yuklanmoqda...",
"background_image_updated": "Fon rasmi yangilandi",
"stats": "Statistika",
"achievements": "Yutuqlar",
"games": "O'yinlar",
"top_percentile": "Yuqori {{percentile}}%",
"ranking_updated_weekly": "Reyting har hafta yangilanadi",
"playing": "{{game}}ni o'ynayapti",
"achievements_unlocked": "Yutuqlar ochildi",
"earned_points": "To'plangan ballar:",
"show_achievements_on_profile": "Yutuqlaringizni profilingizda ko'rsating",
"show_points_on_profile": "To'plangan ballarni profilingizda ko'rsating"
},
"achievement": {
"achievement_unlocked": "Yutuq ochildi",
"user_achievements": "{{displayName}}ning yutuqlari",
"your_achievements": "Sizning yutuqlaringiz",
"unlocked_at": "Ochilgan sana: {{date}}",
"subscription_needed": "Bu kontentni ko'rish uchun Hydra Cloud obunasi kerak",
"new_achievements_unlocked": "{{gameCount}} o'yindan {{achievementCount}} ta yangi yutuq ochildi",
"achievement_progress": "{{unlockedCount}}/{{totalCount}} yutuq",
"achievements_unlocked_for_game": "{{gameTitle}} uchun {{achievementCount}} ta yangi yutuq ochildi",
"hidden_achievement_tooltip": "Bu yashirin yutuq",
"achievement_earn_points": "Bu yutuq bilan {{points}} ball to'plang",
"earned_points": "To'plangan ballar:",
"available_points": "Mavjud ballar:",
"how_to_earn_achievements_points": "Yutuq ballarini qanday to'plash mumkin?"
},
"hydra_cloud": {
"subscription_tour_title": "Hydra Cloud obunasi",
"subscribe_now": "Hoziroq obuna bo'ling",
"cloud_saving": "Bulutli saqlash",
"cloud_achievements": "Yutuqlaringizni bulutda saqlang",
"animated_profile_picture": "Animatsiyali profil rasmi",
"premium_support": "Premium qo'llab-quvvatlash",
"show_and_compare_achievements": "Yutuqlaringizni boshqa foydalanuvchilarning yutuqlari bilan solishtiring va ko'rsating",
"animated_profile_banner": "Animatsiyali profil banneri",
"hydra_cloud": "Hydra Cloud",
"hydra_cloud_feature_found": "Siz hozirgina Hydra Cloud funksiyasini kashf etdingiz!",
"learn_more": "Batafsil ma'lumot",
"debrid_description": "Nimbus bilan 4 barobar tezroq yuklab oling"
}
}

View File

@@ -25,8 +25,7 @@
"queued": "{{title}} (已加入下载队列)",
"game_has_no_executable": "未选择游戏的可执行文件",
"sign_in": "登入",
"friends": "好友",
"favorites": "收藏"
"friends": "好友"
},
"header": {
"search": "搜索游戏",
@@ -111,7 +110,7 @@
"options": "选项",
"executable_section_title": "可执行文件",
"executable_section_description": "点击 \"Play\" 时将执行的文件的路径",
"downloads_section_title": "下载",
"downloads_secion_title": "下载",
"downloads_section_description": "查看此游戏的更新或其他版本",
"danger_zone_section_title": "危险操作",
"danger_zone_section_description": "从您的库或Hydra下载的文件中删除此游戏",
@@ -214,24 +213,18 @@
"behavior": "行为",
"download_sources": "下载源",
"language": "语言",
"api_token": "API 令牌",
"real_debrid_api_token": "API 令牌",
"enable_real_debrid": "启用 Real-Debrid",
"real_debrid_description": "Real-Debrid 是一个无限制的下载器,允许您以最快的互联网速度即时下载文件。",
"debrid_invalid_token": "无效的 API 令牌",
"debrid_api_token_hint": "您可以从<0>这里</0>获取API密钥.",
"real_debrid_invalid_token": "无效的 API 令牌",
"real_debrid_api_token_hint": "您可以从<0>这里</0>获取API密钥.",
"real_debrid_free_account_error": "账户 \"{{username}}\" 是免费账户。请订阅 Real-Debrid",
"debrid_linked_message": "账户 \"{{username}}\" 已链接",
"real_debrid_linked_message": "账户 \"{{username}}\" 已链接",
"save_changes": "保存更改",
"changes_saved": "更改已成功保存",
"download_sources_description": "Hydra 将从这些源获取下载链接。源 URL 必须是直接链接到包含下载链接的 .json 文件。",
"validate_download_source": "验证",
"remove_download_source": "移除",
"cancel_button_confirmation_delete_all_sources": "不",
"confirm_button_confirmation_delete_all_sources": "是的,删除所有内容",
"description_confirmation_delete_all_sources": "您将删除所有下载源",
"title_confirmation_delete_all_sources": "删除所有下载源",
"removed_download_sources": "已删除字体",
"button_delete_all_sources": "删除所有下载源",
"add_download_source": "添加源",
"download_count_zero": "列表中无下载",
"download_count_one": "列表中有 {{countFormatted}} 个下载",

View File

@@ -7,17 +7,13 @@ export const defaultDownloadsPath = app.getPath("downloads");
export const isStaging = import.meta.env.MAIN_VITE_API_URL.includes("staging");
export const levelDatabasePath = path.join(
app.getPath("userData"),
`hydra-db${isStaging ? "-staging" : ""}`
export const databaseDirectory = path.join(app.getPath("appData"), "hydra");
export const databasePath = path.join(
databaseDirectory,
isStaging ? "hydra_test.db" : "hydra.db"
);
export const commonRedistPath = path.join(
app.getPath("userData"),
"CommonRedist"
);
export const logsPath = path.join(app.getPath("userData"), "logs");
export const logsPath = path.join(app.getPath("appData"), "hydra", "logs");
export const seedsPath = app.isPackaged
? path.join(process.resourcesPath, "seeds")
@@ -30,5 +26,3 @@ export const achievementSoundPath = app.isPackaged
export const backupsPath = path.join(app.getPath("userData"), "Backups");
export const appVersion = app.getVersion() + (isStaging ? "-staging" : "");
export const MAIN_LOOP_INTERVAL = 1500;

27
src/main/data-source.ts Normal file
View File

@@ -0,0 +1,27 @@
import { DataSource } from "typeorm";
import {
DownloadQueue,
Game,
GameShopCache,
UserPreferences,
UserAuth,
GameAchievement,
UserSubscription,
} from "@main/entity";
import { databasePath } from "./constants";
export const dataSource = new DataSource({
type: "better-sqlite3",
entities: [
Game,
UserAuth,
UserPreferences,
UserSubscription,
GameShopCache,
DownloadQueue,
GameAchievement,
],
synchronize: false,
database: databasePath,
});

View File

@@ -0,0 +1,25 @@
import {
Entity,
PrimaryGeneratedColumn,
CreateDateColumn,
UpdateDateColumn,
OneToOne,
JoinColumn,
} from "typeorm";
import type { Game } from "./game.entity";
@Entity("download_queue")
export class DownloadQueue {
@PrimaryGeneratedColumn()
id: number;
@OneToOne("Game", "downloadQueue")
@JoinColumn()
game: Game;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -0,0 +1,19 @@
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity("game_achievement")
export class GameAchievement {
@PrimaryGeneratedColumn()
id: number;
@Column("text")
objectId: string;
@Column("text")
shop: string;
@Column("text", { nullable: true })
unlockedAchievements: string | null;
@Column("text", { nullable: true })
achievements: string | null;
}

View File

@@ -0,0 +1,35 @@
import {
Entity,
PrimaryColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
import type { GameShop } from "@types";
@Entity("game_shop_cache")
export class GameShopCache {
@PrimaryColumn("text", { unique: true })
objectID: string;
@Column("text")
shop: GameShop;
@Column("text", { nullable: true })
serializedData: string;
/**
* @deprecated Use IndexedDB's `howLongToBeatEntries` instead
*/
@Column("text", { nullable: true })
howLongToBeatSerializedData: string;
@Column("text", { nullable: true })
language: string;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -0,0 +1,90 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
OneToOne,
} from "typeorm";
import type { GameShop, GameStatus } from "@types";
import { Downloader } from "@shared";
import type { DownloadQueue } from "./download-queue.entity";
@Entity("game")
export class Game {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { unique: true })
objectID: string;
@Column("text", { unique: true, nullable: true })
remoteId: string | null;
@Column("text")
title: string;
@Column("text", { nullable: true })
iconUrl: string | null;
@Column("text", { nullable: true })
folderName: string | null;
@Column("text", { nullable: true })
downloadPath: string | null;
@Column("text", { nullable: true })
executablePath: string | null;
@Column("text", { nullable: true })
launchOptions: string | null;
@Column("text", { nullable: true })
winePrefixPath: string | null;
@Column("int", { default: 0 })
playTimeInMilliseconds: number;
@Column("text")
shop: GameShop;
@Column("text", { nullable: true })
status: GameStatus | null;
@Column("int", { default: Downloader.Torrent })
downloader: Downloader;
/**
* Progress is a float between 0 and 1
*/
@Column("float", { default: 0 })
progress: number;
@Column("int", { default: 0 })
bytesDownloaded: number;
@Column("datetime", { nullable: true })
lastTimePlayed: Date | null;
@Column("float", { default: 0 })
fileSize: number;
@Column("text", { nullable: true })
uri: string | null;
@OneToOne("DownloadQueue", "game")
downloadQueue: DownloadQueue;
@Column("boolean", { default: false })
isDeleted: boolean;
@Column("boolean", { default: false })
shouldSeed: boolean;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

8
src/main/entity/index.ts Normal file
View File

@@ -0,0 +1,8 @@
export * from "./game.entity";
export * from "./user-auth.entity";
export * from "./user-preferences.entity";
export * from "./user-subscription.entity";
export * from "./game-shop-cache.entity";
export * from "./game.entity";
export * from "./game-achievements.entity";
export * from "./download-queue.entity";

View File

@@ -0,0 +1,45 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
OneToOne,
} from "typeorm";
import { UserSubscription } from "./user-subscription.entity";
@Entity("user_auth")
export class UserAuth {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { default: "" })
userId: string;
@Column("text", { default: "" })
displayName: string;
@Column("text", { nullable: true })
profileImageUrl: string | null;
@Column("text", { nullable: true })
backgroundImageUrl: string | null;
@Column("text", { default: "" })
accessToken: string;
@Column("text", { default: "" })
refreshToken: string;
@Column("int", { default: 0 })
tokenExpirationTimestamp: number;
@OneToOne("UserSubscription", "user")
subscription: UserSubscription | null;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -0,0 +1,55 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
} from "typeorm";
@Entity("user_preferences")
export class UserPreferences {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { nullable: true })
downloadsPath: string | null;
@Column("text", { default: "en" })
language: string;
@Column("text", { nullable: true })
realDebridApiToken: string | null;
@Column("boolean", { default: false })
downloadNotificationsEnabled: boolean;
@Column("boolean", { default: false })
repackUpdatesNotificationsEnabled: boolean;
@Column("boolean", { default: true })
achievementNotificationsEnabled: boolean;
@Column("boolean", { default: false })
preferQuitInsteadOfHiding: boolean;
@Column("boolean", { default: false })
runAtStartup: boolean;
@Column("boolean", { default: false })
startMinimized: boolean;
@Column("boolean", { default: false })
disableNsfwAlert: boolean;
@Column("boolean", { default: true })
seedAfterDownloadComplete: boolean;
@Column("boolean", { default: false })
showHiddenAchievementsDescription: boolean;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -0,0 +1,42 @@
import type { SubscriptionStatus } from "@types";
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
OneToOne,
JoinColumn,
} from "typeorm";
import { UserAuth } from "./user-auth.entity";
@Entity("user_subscription")
export class UserSubscription {
@PrimaryGeneratedColumn()
id: number;
@Column("text", { default: "" })
subscriptionId: string;
@OneToOne("UserAuth", "subscription")
@JoinColumn()
user: UserAuth;
@Column("text", { default: "" })
status: SubscriptionStatus;
@Column("text", { default: "" })
planId: string;
@Column("text", { default: "" })
planName: string;
@Column("datetime", { nullable: true })
expiresAt: Date | null;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}

View File

@@ -1,11 +1,7 @@
import { WindowManager } from "@main/services";
import { registerEvent } from "../register-event";
import { WindowManager } from "@main/services";
const openEditorWindow = async (
_event: Electron.IpcMainInvokeEvent,
themeId: string
) => {
WindowManager.openEditorWindow(themeId);
};
const openEditorWindow = async (_event: Electron.IpcMainInvokeEvent) =>
WindowManager.openEditorWindow();
registerEvent("openEditorWindow", openEditorWindow);

View File

@@ -1,13 +1,10 @@
import jwt from "jsonwebtoken";
import { userAuthRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { db, levelKeys } from "@main/level";
import type { Auth } from "@types";
const getSessionHash = async (_event: Electron.IpcMainInvokeEvent) => {
const auth = await db.get<string, Auth>(levelKeys.auth, {
valueEncoding: "json",
});
const auth = await userAuthRepository.findOne({ where: { id: 1 } });
if (!auth) return null;
const payload = jwt.decode(auth.accessToken) as jwt.JwtPayload;

View File

@@ -1,29 +1,35 @@
import { registerEvent } from "../register-event";
import { DownloadManager, HydraApi, gamesPlaytime } from "@main/services";
import { db, downloadsSublevel, gamesSublevel, levelKeys } from "@main/level";
import { dataSource } from "@main/data-source";
import { DownloadQueue, Game, UserAuth, UserSubscription } from "@main/entity";
import { PythonRPC } from "@main/services/python-rpc";
const signOut = async (_event: Electron.IpcMainInvokeEvent) => {
const databaseOperations = db
.batch([
{
type: "del",
key: levelKeys.auth,
},
{
type: "del",
key: levelKeys.user,
},
])
const databaseOperations = dataSource
.transaction(async (transactionalEntityManager) => {
await transactionalEntityManager.getRepository(DownloadQueue).delete({});
await transactionalEntityManager.getRepository(Game).delete({});
await transactionalEntityManager
.getRepository(UserAuth)
.delete({ id: 1 });
await transactionalEntityManager
.getRepository(UserSubscription)
.delete({ id: 1 });
})
.then(() => {
/* Removes all games being played */
gamesPlaytime.clear();
return Promise.all([gamesSublevel.clear(), downloadsSublevel.clear()]);
});
/* Cancels any ongoing downloads */
DownloadManager.cancelDownload();
/* Disconnects libtorrent */
PythonRPC.kill();
HydraApi.handleSignOut();
await Promise.all([

View File

@@ -1,8 +1,47 @@
import type { AppUpdaterEvent } from "@types";
import { registerEvent } from "../register-event";
import { UpdateManager } from "@main/services/update-manager";
import updater, { UpdateInfo } from "electron-updater";
import { WindowManager } from "@main/services";
import { app } from "electron";
import { publishNotificationUpdateReadyToInstall } from "@main/services/notifications";
const { autoUpdater } = updater;
const sendEvent = (event: AppUpdaterEvent) => {
WindowManager.mainWindow?.webContents.send("autoUpdaterEvent", event);
};
const sendEventsForDebug = false;
const isAutoInstallAvailable =
process.platform !== "darwin" && process.env.PORTABLE_EXECUTABLE_FILE == null;
const mockValuesForDebug = () => {
sendEvent({ type: "update-available", info: { version: "1.3.0" } });
sendEvent({ type: "update-downloaded" });
};
const newVersionInfo = { version: "" };
const checkForUpdates = async (_event: Electron.IpcMainInvokeEvent) => {
return UpdateManager.checkForUpdates();
autoUpdater
.once("update-available", (info: UpdateInfo) => {
sendEvent({ type: "update-available", info });
newVersionInfo.version = info.version;
})
.once("update-downloaded", () => {
sendEvent({ type: "update-downloaded" });
publishNotificationUpdateReadyToInstall(newVersionInfo.version);
});
if (app.isPackaged) {
autoUpdater.autoDownload = isAutoInstallAvailable;
autoUpdater.checkForUpdates();
} else if (sendEventsForDebug) {
mockValuesForDebug();
}
return isAutoInstallAvailable;
};
registerEvent("checkForUpdates", checkForUpdates);

View File

@@ -4,15 +4,11 @@ import updater from "electron-updater";
const { autoUpdater } = updater;
export const restartAndInstallUpdate = () => {
const restartAndInstallUpdate = async (_event: Electron.IpcMainInvokeEvent) => {
autoUpdater.removeAllListeners();
if (app.isPackaged) {
autoUpdater.quitAndInstall(false);
}
};
const restartAndInstallUpdateEvent = async (
_event: Electron.IpcMainInvokeEvent
) => restartAndInstallUpdate();
registerEvent("restartAndInstallUpdate", restartAndInstallUpdateEvent);
registerEvent("restartAndInstallUpdate", restartAndInstallUpdate);

View File

@@ -1,10 +1,10 @@
import { getSteamAppDetails, logger } from "@main/services";
import { gameShopCacheRepository } from "@main/repository";
import { getSteamAppDetails } from "@main/services";
import type { ShopDetails, GameShop } from "@types";
import type { ShopDetails, GameShop, SteamAppDetails } from "@types";
import { registerEvent } from "../register-event";
import { steamGamesWorker } from "@main/workers";
import { gamesShopCacheSublevel, levelKeys } from "@main/level";
const getLocalizedSteamAppDetails = async (
objectId: string,
@@ -39,27 +39,35 @@ const getGameShopDetails = async (
language: string
): Promise<ShopDetails | null> => {
if (shop === "steam") {
const cachedData = await gamesShopCacheSublevel.get(
levelKeys.gameShopCacheItem(shop, objectId, language)
);
const cachedData = await gameShopCacheRepository.findOne({
where: { objectID: objectId, language },
});
const appDetails = getLocalizedSteamAppDetails(objectId, language).then(
(result) => {
if (result) {
gamesShopCacheSublevel
.put(levelKeys.gameShopCacheItem(shop, objectId, language), result)
.catch((err) => {
logger.error("Could not cache game details", err);
});
gameShopCacheRepository.upsert(
{
objectID: objectId,
shop: "steam",
language,
serializedData: JSON.stringify(result),
},
["objectID"]
);
}
return result;
}
);
if (cachedData) {
const cachedGame = cachedData?.serializedData
? (JSON.parse(cachedData?.serializedData) as SteamAppDetails)
: null;
if (cachedGame) {
return {
...cachedData,
...cachedGame,
objectId,
} as ShopDetails;
}

View File

@@ -1,14 +1,14 @@
import { db, levelKeys } from "@main/level";
import { registerEvent } from "../register-event";
import { HydraApi } from "@main/services";
import { userPreferencesRepository } from "@main/repository";
import type { TrendingGame } from "@types";
const getTrendingGames = async (_event: Electron.IpcMainInvokeEvent) => {
const language = await db
.get<string, string>(levelKeys.language, {
valueEncoding: "utf-8",
})
.then((language) => language || "en");
const userPreferences = await userPreferencesRepository.findOne({
where: { id: 1 },
});
const language = userPreferences?.language || "en";
const trendingGames = await HydraApi.get<TrendingGame[]>(
"/games/trending",

View File

@@ -1,14 +1,19 @@
import { registerEvent } from "../register-event";
import type { GameShop } from "@types";
import { Ludusavi } from "@main/services";
import { gamesSublevel, levelKeys } from "@main/level";
import { gameRepository } from "@main/repository";
const getGameBackupPreview = async (
_event: Electron.IpcMainInvokeEvent,
objectId: string,
shop: GameShop
) => {
const game = await gamesSublevel.get(levelKeys.game(shop, objectId));
const game = await gameRepository.findOne({
where: {
objectID: objectId,
shop,
},
});
return Ludusavi.getBackupPreview(shop, objectId, game?.winePrefixPath);
};

View File

@@ -1,6 +1,44 @@
import { CloudSync } from "@main/services";
import { HydraApi, logger, Ludusavi, WindowManager } from "@main/services";
import { registerEvent } from "../register-event";
import fs from "node:fs";
import path from "node:path";
import * as tar from "tar";
import crypto from "node:crypto";
import type { GameShop } from "@types";
import axios from "axios";
import os from "node:os";
import { backupsPath } from "@main/constants";
import { app } from "electron";
import { normalizePath } from "@main/helpers";
import { gameRepository } from "@main/repository";
const bundleBackup = async (
shop: GameShop,
objectId: string,
winePrefix: string | null
) => {
const backupPath = path.join(backupsPath, `${shop}-${objectId}`);
// Remove existing backup
if (fs.existsSync(backupPath)) {
fs.rmSync(backupPath, { recursive: true });
}
await Ludusavi.backupGame(shop, objectId, backupPath, winePrefix);
const tarLocation = path.join(backupsPath, `${crypto.randomUUID()}.tar`);
await tar.create(
{
gzip: false,
file: tarLocation,
cwd: backupPath,
},
["."]
);
return tarLocation;
};
const uploadSaveGame = async (
_event: Electron.IpcMainInvokeEvent,
@@ -8,12 +46,66 @@ const uploadSaveGame = async (
shop: GameShop,
downloadOptionTitle: string | null
) => {
return CloudSync.uploadSaveGame(
objectId,
const game = await gameRepository.findOne({
where: {
objectID: objectId,
shop,
},
});
const bundleLocation = await bundleBackup(
shop,
downloadOptionTitle,
CloudSync.getBackupLabel(false)
objectId,
game?.winePrefixPath ?? null
);
fs.stat(bundleLocation, async (err, stat) => {
if (err) {
logger.error("Failed to get zip file stats", err);
throw err;
}
const { uploadUrl } = await HydraApi.post<{
id: string;
uploadUrl: string;
}>("/profile/games/artifacts", {
artifactLengthInBytes: stat.size,
shop,
objectId,
hostname: os.hostname(),
homeDir: normalizePath(app.getPath("home")),
downloadOptionTitle,
platform: os.platform(),
});
fs.readFile(bundleLocation, async (err, fileBuffer) => {
if (err) {
logger.error("Failed to read zip file", err);
throw err;
}
await axios.put(uploadUrl, fileBuffer, {
headers: {
"Content-Type": "application/tar",
},
onUploadProgress: (progressEvent) => {
logger.log(progressEvent);
},
});
WindowManager.mainWindow?.webContents.send(
`on-upload-complete-${objectId}-${shop}`,
true
);
fs.rm(bundleLocation, (err) => {
if (err) {
logger.error("Failed to remove tar file", err);
throw err;
}
});
});
});
};
registerEvent("uploadSaveGame", uploadSaveGame);

View File

@@ -1,13 +0,0 @@
import { HydraApi } from "@main/services";
import { registerEvent } from "../register-event";
const createDownloadSources = async (
_event: Electron.IpcMainInvokeEvent,
urls: string[]
) => {
await HydraApi.post("/profile/download-sources", {
urls,
});
};
registerEvent("createDownloadSources", createDownloadSources);

View File

@@ -1,8 +0,0 @@
import { HydraApi } from "@main/services";
import { registerEvent } from "../register-event";
const getDownloadSources = async (_event: Electron.IpcMainInvokeEvent) => {
return HydraApi.get("/profile/download-sources");
};
registerEvent("getDownloadSources", getDownloadSources);

View File

@@ -1,18 +0,0 @@
import { HydraApi } from "@main/services";
import { registerEvent } from "../register-event";
const removeDownloadSource = async (
_event: Electron.IpcMainInvokeEvent,
url?: string,
removeAll = false
) => {
const params = new URLSearchParams({
all: removeAll.toString(),
});
if (url) params.set("url", url);
return HydraApi.delete(`/profile/download-sources?${params.toString()}`);
};
registerEvent("removeDownloadSource", removeDownloadSource);

View File

@@ -1,21 +1,15 @@
import fs from "node:fs";
import path from "node:path";
import { registerEvent } from "../register-event";
const checkFolderWritePermission = async (
_event: Electron.IpcMainInvokeEvent,
testPath: string
) => {
const testFilePath = path.join(testPath, ".hydra-write-test");
try {
fs.writeFileSync(testFilePath, "");
fs.rmSync(testFilePath);
return true;
} catch (err) {
return false;
}
};
path: string
) =>
new Promise((resolve) => {
fs.access(path, fs.constants.W_OK, (err) => {
resolve(!err);
});
});
registerEvent("checkFolderWritePermission", checkFolderWritePermission);

View File

@@ -0,0 +1,44 @@
import { Document as YMLDocument } from "yaml";
import { Game } from "@main/entity";
import path from "node:path";
export const generateYML = (game: Game) => {
const slugifiedGameTitle = game.title.replace(/\s/g, "-").toLocaleLowerCase();
const doc = new YMLDocument({
name: game.title,
game_slug: slugifiedGameTitle,
slug: `${slugifiedGameTitle}-installer`,
version: "Installer",
runner: "wine",
script: {
game: {
prefix: "$GAMEDIR",
arch: "win64",
working_dir: "$GAMEDIR",
},
installer: [
{
task: {
name: "create_prefix",
arch: "win64",
prefix: "$GAMEDIR",
},
},
{
task: {
executable: path.join(
game.downloadPath!,
game.folderName!,
"setup.exe"
),
name: "wineexec",
prefix: "$GAMEDIR",
},
},
],
},
});
return doc.toString();
};

View File

@@ -1,16 +1,15 @@
import { userPreferencesRepository } from "@main/repository";
import { defaultDownloadsPath } from "@main/constants";
import { db, levelKeys } from "@main/level";
import type { UserPreferences } from "@types";
export const getDownloadsPath = async () => {
const userPreferences = await db.get<string, UserPreferences | null>(
levelKeys.userPreferences,
{
valueEncoding: "json",
}
);
const userPreferences = await userPreferencesRepository.findOne({
where: {
id: 1,
},
});
if (userPreferences?.downloadsPath) return userPreferences.downloadsPath;
if (userPreferences && userPreferences.downloadsPath)
return userPreferences.downloadsPath;
return defaultDownloadsPath;
};

View File

@@ -1,7 +0,0 @@
export const parseLaunchOptions = (params?: string | null): string[] => {
if (!params) {
return [];
}
return params.split(" ");
};

View File

@@ -13,14 +13,11 @@ import "./catalogue/get-developers";
import "./hardware/get-disk-free-space";
import "./hardware/check-folder-write-permission";
import "./library/add-game-to-library";
import "./library/add-game-to-favorites";
import "./library/remove-game-from-favorites";
import "./library/create-game-shortcut";
import "./library/close-game";
import "./library/delete-game-folder";
import "./library/get-game-by-object-id";
import "./library/get-library";
import "./library/extract-game-download";
import "./library/open-game";
import "./library/open-game-executable-path";
import "./library/open-game-installer";
@@ -32,39 +29,33 @@ import "./library/remove-game";
import "./library/remove-game-from-library";
import "./library/select-game-wine-prefix";
import "./library/reset-game-achievements";
import "./library/toggle-automatic-cloud-sync";
import "./misc/open-checkout";
import "./misc/open-external";
import "./misc/show-open-dialog";
import "./misc/get-features";
import "./misc/show-item-in-folder";
import "./misc/get-badges";
import "./misc/install-common-redist";
import "./misc/can-install-common-redist";
import "./torrenting/cancel-game-download";
import "./torrenting/pause-game-download";
import "./torrenting/resume-game-download";
import "./torrenting/start-game-download";
import "./torrenting/pause-game-seed";
import "./torrenting/resume-game-seed";
import "./torrenting/check-debrid-availability";
import "./user-preferences/get-user-preferences";
import "./user-preferences/update-user-preferences";
import "./user-preferences/auto-launch";
import "./autoupdater/check-for-updates";
import "./autoupdater/restart-and-install-update";
import "./user-preferences/authenticate-real-debrid";
import "./user-preferences/authenticate-torbox";
import "./download-sources/put-download-source";
import "./auth/sign-out";
import "./auth/open-auth-window";
import "./aparence/open-editor-window";
import "./auth/get-session-hash";
import "./user/get-user";
import "./user/get-blocked-users";
import "./user/block-user";
import "./user/unblock-user";
import "./user/get-user-friends";
import "./user/get-auth";
import "./user/get-user-stats";
import "./user/report-user";
import "./user/get-unlocked-achievements";
@@ -84,19 +75,6 @@ import "./cloud-save/upload-save-game";
import "./cloud-save/delete-game-artifact";
import "./cloud-save/select-game-backup-path";
import "./notifications/publish-new-repacks-notification";
import "./themes/add-custom-theme";
import "./themes/delete-custom-theme";
import "./themes/get-all-custom-themes";
import "./themes/delete-all-custom-themes";
import "./themes/update-custom-theme";
import "./themes/open-editor-window";
import "./themes/get-custom-theme-by-id";
import "./themes/get-active-custom-theme";
import "./themes/close-editor-window";
import "./themes/toggle-custom-theme";
import "./download-sources/create-download-sources";
import "./download-sources/remove-download-source";
import "./download-sources/get-download-sources";
import { isPortableVersion } from "@main/helpers";
ipcMain.handle("ping", () => "pong");

View File

@@ -1,25 +0,0 @@
import { registerEvent } from "../register-event";
import { gamesSublevel, levelKeys } from "@main/level";
import type { GameShop } from "@types";
const addGameToFavorites = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
) => {
const gameKey = levelKeys.game(shop, objectId);
const game = await gamesSublevel.get(gameKey);
if (!game) return;
try {
await gamesSublevel.put(gameKey, {
...game,
favorite: true,
});
} catch (error) {
throw new Error(`Failed to update game favorite status: ${error}`);
}
};
registerEvent("addGameToFavorites", addGameToFavorites);

View File

@@ -1,55 +1,57 @@
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import type { Game, GameShop } from "@types";
import type { GameShop } from "@types";
import { steamGamesWorker } from "@main/workers";
import { createGame } from "@main/services/library-sync";
import { steamUrlBuilder } from "@shared";
import { updateLocalUnlockedAchievements } from "@main/services/achievements/update-local-unlocked-achivements";
import { downloadsSublevel, gamesSublevel, levelKeys } from "@main/level";
import { updateLocalUnlockedAchivements } from "@main/services/achievements/update-local-unlocked-achivements";
const addGameToLibrary = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string,
title: string
title: string,
shop: GameShop
) => {
const gameKey = levelKeys.game(shop, objectId);
const game = await gamesSublevel.get(gameKey);
return gameRepository
.update(
{
objectID: objectId,
},
{
shop,
status: null,
isDeleted: false,
}
)
.then(async ({ affected }) => {
if (!affected) {
const steamGame = await steamGamesWorker.run(Number(objectId), {
name: "getById",
});
if (game) {
await downloadsSublevel.del(gameKey);
const iconUrl = steamGame?.clientIcon
? steamUrlBuilder.icon(objectId, steamGame.clientIcon)
: null;
await gamesSublevel.put(gameKey, {
...game,
isDeleted: false,
await gameRepository.insert({
title,
iconUrl,
objectID: objectId,
shop,
});
}
const game = await gameRepository.findOne({
where: { objectID: objectId },
});
updateLocalUnlockedAchivements(game!);
createGame(game!).catch(() => {});
});
} else {
const steamGame = await steamGamesWorker.run(Number(objectId), {
name: "getById",
});
const iconUrl = steamGame?.clientIcon
? steamUrlBuilder.icon(objectId, steamGame.clientIcon)
: null;
const game: Game = {
title,
iconUrl,
objectId,
shop,
remoteId: null,
isDeleted: false,
playTimeInMilliseconds: 0,
lastTimePlayed: null,
};
await gamesSublevel.put(levelKeys.game(shop, objectId), game);
await createGame(game).catch(() => {});
updateLocalUnlockedAchievements(game);
}
};
registerEvent("addGameToLibrary", addGameToLibrary);

View File

@@ -1,11 +1,10 @@
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { logger } from "@main/services";
import sudo from "sudo-prompt";
import { app } from "electron";
import { PythonRPC } from "@main/services/python-rpc";
import { ProcessPayload } from "@main/services/download/types";
import { gamesSublevel, levelKeys } from "@main/level";
import { GameShop } from "@types";
const getKillCommand = (pid: number) => {
if (process.platform == "win32") {
@@ -17,14 +16,15 @@ const getKillCommand = (pid: number) => {
const closeGame = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
gameId: number
) => {
const processes =
(await PythonRPC.rpc.get<ProcessPayload[] | null>("/process-list")).data ||
[];
const game = await gamesSublevel.get(levelKeys.game(shop, objectId));
const game = await gameRepository.findOne({
where: { id: gameId, isDeleted: false },
});
if (!game) return;

View File

@@ -1,18 +1,18 @@
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { IsNull, Not } from "typeorm";
import createDesktopShortcut from "create-desktop-shortcuts";
import path from "node:path";
import { app } from "electron";
import { removeSymbolsFromName } from "@shared";
import { GameShop } from "@types";
import { gamesSublevel, levelKeys } from "@main/level";
const createGameShortcut = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
id: number
): Promise<boolean> => {
const gameKey = levelKeys.game(shop, objectId);
const game = await gamesSublevel.get(gameKey);
const game = await gameRepository.findOne({
where: { id, executablePath: Not(IsNull()) },
});
if (game) {
const filePath = game.executablePath;

View File

@@ -1,55 +1,61 @@
import path from "node:path";
import fs from "node:fs";
import { gameRepository } from "@main/repository";
import { getDownloadsPath } from "../helpers/get-downloads-path";
import { logger } from "@main/services";
import { registerEvent } from "../register-event";
import { GameShop } from "@types";
import { downloadsSublevel, levelKeys } from "@main/level";
const deleteGameFolder = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
gameId: number
): Promise<void> => {
const downloadKey = levelKeys.game(shop, objectId);
const download = await downloadsSublevel.get(downloadKey);
const game = await gameRepository.findOne({
where: [
{
id: gameId,
isDeleted: false,
status: "removed",
},
{
id: gameId,
progress: 1,
isDeleted: false,
},
],
});
if (!download?.folderName) return;
if (!game) return;
const folderPath = path.join(
download.downloadPath ?? (await getDownloadsPath()),
download.folderName
);
if (game.folderName) {
const folderPath = path.join(
game.downloadPath ?? (await getDownloadsPath()),
game.folderName
);
const metaPath = `${folderPath}.meta`;
const deleteFile = async (filePath: string, isDirectory = false) => {
if (fs.existsSync(filePath)) {
if (fs.existsSync(folderPath)) {
await new Promise<void>((resolve, reject) => {
fs.rm(
filePath,
{
recursive: isDirectory,
force: true,
maxRetries: 5,
retryDelay: 200,
},
folderPath,
{ recursive: true, force: true, maxRetries: 5, retryDelay: 200 },
(error) => {
if (error) {
logger.error(error);
reject();
}
resolve();
}
);
});
}
};
}
await deleteFile(folderPath, true);
await deleteFile(metaPath);
await downloadsSublevel.del(downloadKey);
await gameRepository.update(
{ id: gameId },
{ downloadPath: null, folderName: null, status: null, progress: 0 }
);
};
registerEvent("deleteGameFolder", deleteGameFolder);

View File

@@ -1,46 +0,0 @@
import { registerEvent } from "../register-event";
import { GameShop } from "@types";
import path from "node:path";
import { GameFilesManager } from "@main/services";
import { downloadsSublevel, gamesSublevel, levelKeys } from "@main/level";
import { FILE_EXTENSIONS_TO_EXTRACT } from "@shared";
const extractGameDownload = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
): Promise<boolean> => {
const gameKey = levelKeys.game(shop, objectId);
const [download, game] = await Promise.all([
downloadsSublevel.get(gameKey),
gamesSublevel.get(gameKey),
]);
if (!download || !game) return false;
await downloadsSublevel.put(gameKey, {
...download,
extracting: true,
});
const gameFilesManager = new GameFilesManager(shop, objectId);
if (
FILE_EXTENSIONS_TO_EXTRACT.some((ext) => download.folderName?.endsWith(ext))
) {
gameFilesManager.extractDownloadedFile();
} else {
gameFilesManager
.extractFilesInDirectory(
path.join(download.downloadPath, download.folderName!)
)
.then(() => {
gameFilesManager.setExtractionComplete(false);
});
}
return true;
};
registerEvent("extractGameDownload", extractGameDownload);

View File

@@ -1,21 +1,16 @@
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { gamesSublevel, downloadsSublevel, levelKeys } from "@main/level";
import type { GameShop } from "@types";
const getGameByObjectId = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
) => {
const gameKey = levelKeys.game(shop, objectId);
const [game, download] = await Promise.all([
gamesSublevel.get(gameKey),
downloadsSublevel.get(gameKey),
]);
if (!game || game.isDeleted) return null;
return { id: gameKey, ...game, download };
};
) =>
gameRepository.findOne({
where: {
objectID: objectId,
isDeleted: false,
},
});
registerEvent("getGameByObjectId", getGameByObjectId);

View File

@@ -1,26 +1,17 @@
import type { LibraryGame } from "@types";
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { downloadsSublevel, gamesSublevel } from "@main/level";
const getLibrary = async (): Promise<LibraryGame[]> => {
return gamesSublevel
.iterator()
.all()
.then((results) => {
return Promise.all(
results
.filter(([_key, game]) => game.isDeleted === false)
.map(async ([key, game]) => {
const download = await downloadsSublevel.get(key);
return {
id: key,
...game,
download: download ?? null,
};
})
);
});
};
const getLibrary = async () =>
gameRepository.find({
where: {
isDeleted: false,
},
relations: {
downloadQueue: true,
},
order: {
createdAt: "desc",
},
});
registerEvent("getLibrary", getLibrary);

View File

@@ -1,14 +1,14 @@
import { shell } from "electron";
import { gameRepository } from "@main/repository";
import { registerEvent } from "../register-event";
import { gamesSublevel, levelKeys } from "@main/level";
import { GameShop } from "@types";
const openGameExecutablePath = async (
_event: Electron.IpcMainInvokeEvent,
shop: GameShop,
objectId: string
gameId: number
) => {
const game = await gamesSublevel.get(levelKeys.game(shop, objectId));
const game = await gameRepository.findOne({
where: { id: gameId, isDeleted: false },
});
if (!game || !game.executablePath) return;

Some files were not shown because too many files have changed in this diff Show More