mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Compare commits
33 Commits
v1.4.1
...
44405b4aae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44405b4aae | ||
|
|
842cec2fee | ||
|
|
c6ad937619 | ||
|
|
a6ab095ff9 | ||
|
|
9a085bcb17 | ||
|
|
6d7be1c7f2 | ||
|
|
25cd51cee9 | ||
|
|
495de204d1 | ||
|
|
8e5f4d55c9 | ||
|
|
184fd65c76 | ||
|
|
15817f9b27 | ||
|
|
79671ac30e | ||
|
|
1d5db612fd | ||
|
|
d30016304b | ||
|
|
f0fd125e37 | ||
|
|
9ed4b85d5a | ||
|
|
f607d806d0 | ||
|
|
c0ddb5f816 | ||
|
|
fc563532e1 | ||
|
|
98248903c6 | ||
|
|
5870111d11 | ||
|
|
bb23c25690 | ||
|
|
4084c8dafc | ||
|
|
cb1dde1b79 | ||
|
|
1691711a52 | ||
|
|
b5d8f6c01c | ||
|
|
db86b5408a | ||
|
|
4be2c2868b | ||
|
|
c6197a9f92 | ||
|
|
dd861d7d1c | ||
|
|
e65f8c46f9 | ||
|
|
082e1316c1 | ||
|
|
a4b5e72d82 |
2
.github/workflows/crowdin.yml
vendored
2
.github/workflows/crowdin.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
- name: crowdin action
|
- name: crowdin action
|
||||||
uses: crowdin/github-action@v2
|
uses: crowdin/github-action@v2
|
||||||
with:
|
with:
|
||||||
|
|||||||
4
.github/workflows/docker-publish.yml
vendored
4
.github/workflows/docker-publish.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Install python
|
- name: Install python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Extract Docker metadata
|
- name: Extract Docker metadata
|
||||||
id: meta
|
id: meta
|
||||||
|
|||||||
6
.github/workflows/docs-publish.yml
vendored
6
.github/workflows/docs-publish.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
- name: Install python
|
- name: Install python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
@@ -32,7 +32,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- pre-commit
|
- pre-commit
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
@@ -54,7 +54,7 @@ jobs:
|
|||||||
needs:
|
needs:
|
||||||
- pre-commit
|
- pre-commit
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- name: Configure Git Credentials
|
- name: Configure Git Credentials
|
||||||
run: |
|
run: |
|
||||||
git config user.name github-actions[bot]
|
git config user.name github-actions[bot]
|
||||||
|
|||||||
4
.github/workflows/repo-maintenance.yml
vendored
4
.github/workflows/repo-maintenance.yml
vendored
@@ -212,9 +212,9 @@ jobs:
|
|||||||
}
|
}
|
||||||
|
|
||||||
const CUTOFF_1_DAYS = 180;
|
const CUTOFF_1_DAYS = 180;
|
||||||
const CUTOFF_1_COUNT = 10;
|
const CUTOFF_1_COUNT = 20;
|
||||||
const CUTOFF_2_DAYS = 365;
|
const CUTOFF_2_DAYS = 365;
|
||||||
const CUTOFF_2_COUNT = 20;
|
const CUTOFF_2_COUNT = 40;
|
||||||
|
|
||||||
const cutoff1Date = new Date();
|
const cutoff1Date = new Date();
|
||||||
cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS);
|
cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS);
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ The homepage team appreciates all effort and interest from the community in fili
|
|||||||
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
|
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
|
||||||
- Discussions with a marked answer will be automatically closed.
|
- Discussions with a marked answer will be automatically closed.
|
||||||
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
|
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
|
||||||
- Feature requests that do not meet the following thresholds will be closed: 10 "up-votes" after 180 days of inactivity or 20 "up-votes" after 365 days.
|
- Feature requests that do not meet the following thresholds will be closed: 20 "up-votes" after 180 days of inactivity or 40 "up-votes" after 365 days.
|
||||||
|
|
||||||
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
|
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
|
||||||
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.
|
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ fullWidth: true
|
|||||||
|
|
||||||
### Maximum Group Columns
|
### Maximum Group Columns
|
||||||
|
|
||||||
You can set the maximum number of columns of groups on larger screen sizes (note this is only for groups with the default `style: columns`, not groups with `stle: row`) by adding:
|
You can set the maximum number of columns of groups on larger screen sizes (note this is only for groups with the default `style: columns`, not groups with `style: row`) by adding:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
maxGroupColumns: 8 # default is 4 for services, 6 for bookmarks, max 8
|
maxGroupColumns: 8 # default is 4 for services, 6 for bookmarks, max 8
|
||||||
|
|||||||
@@ -17,9 +17,15 @@ The account you made the API token for also needs the following **Assigned globa
|
|||||||
|
|
||||||
Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`.
|
Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`.
|
||||||
|
|
||||||
|
| Authentik Version | Homepage Widget Version |
|
||||||
|
| ----------------- | ----------------------- |
|
||||||
|
| < 2025.8.0 | 1 (default) |
|
||||||
|
| >= 2025.8.0 | 2 |
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
widget:
|
widget:
|
||||||
type: authentik
|
type: authentik
|
||||||
url: http://authentik.host.or.ip:port
|
url: http://authentik.host.or.ip:port
|
||||||
key: api_token
|
key: api_token
|
||||||
|
version: 2 # optional, default is 1
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -139,10 +139,12 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||||||
- [TubeArchivist](tubearchivist.md)
|
- [TubeArchivist](tubearchivist.md)
|
||||||
- [UniFi Controller](unifi-controller.md)
|
- [UniFi Controller](unifi-controller.md)
|
||||||
- [Unmanic](unmanic.md)
|
- [Unmanic](unmanic.md)
|
||||||
|
- [Unraid](unraid.md)
|
||||||
- [Uptime Kuma](uptime-kuma.md)
|
- [Uptime Kuma](uptime-kuma.md)
|
||||||
- [UptimeRobot](uptimerobot.md)
|
- [UptimeRobot](uptimerobot.md)
|
||||||
- [UrBackup](urbackup.md)
|
- [UrBackup](urbackup.md)
|
||||||
- [Vikunja](vikunja.md)
|
- [Vikunja](vikunja.md)
|
||||||
|
- [Wallos](wallos.md)
|
||||||
- [Watchtower](watchtower.md)
|
- [Watchtower](watchtower.md)
|
||||||
- [WGEasy](wgeasy.md)
|
- [WGEasy](wgeasy.md)
|
||||||
- [WhatsUpDocker](whatsupdocker.md)
|
- [WhatsUpDocker](whatsupdocker.md)
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ This widget is compatible with [TriliumNext](https://github.com/TriliumNext/Note
|
|||||||
|
|
||||||
Find (or create) your ETAPI key under `Options > ETAPI > Create new ETAPI token`.
|
Find (or create) your ETAPI key under `Options > ETAPI > Create new ETAPI token`.
|
||||||
|
|
||||||
|
Allowed fields: `["version", "notesCount", "dbSize"]`
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
widget:
|
widget:
|
||||||
type: trilium
|
type: trilium
|
||||||
|
|||||||
28
docs/widgets/services/unraid.md
Normal file
28
docs/widgets/services/unraid.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
title: Unraid
|
||||||
|
description: Unraid Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [Unraid](https://unraid.net/).
|
||||||
|
|
||||||
|
The Unraid widget allows you to monitor the resources of an Unraid server.
|
||||||
|
|
||||||
|
**Minimum Requirements:**
|
||||||
|
|
||||||
|
- Unraid 7.2 -or- Unraid Connect plugin 2025.08.19.1850
|
||||||
|
- API key with the **GUEST** (read only) role: [Managing API Keys](https://docs.unraid.net/go/managing-api-keys)
|
||||||
|
|
||||||
|
The widget can display metrics for selected Unraid pools. If using one of the "pool" fields, you must also add the pool name to the settings.
|
||||||
|
|
||||||
|
**Allowed fields:** `["cpu","memoryPercent","memoryAvailable","memoryUsed","notifications","arrayFreeSpace","arrayUsedSpace","arrayUsedPercent","status","pool1UsedSpace","pool1FreeSpace","pool1UsedPercent","pool2UsedSpace","pool2FreeSpace","pool2UsedPercent","pool3UsedSpace","pool3FreeSpace","pool3UsedPercent","pool4UsedSpace","pool4FreeSpace","pool4UsedPercent"]`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: unraid
|
||||||
|
url: https://unraid.host.or.ip
|
||||||
|
key: api-key
|
||||||
|
pool1: pool1name # required only if using pool1 fields
|
||||||
|
pool2: pool2name # required only if using pool2 fields
|
||||||
|
pool3: pool3name # required only if using pool3 fields
|
||||||
|
pool4: pool4name # required only if using pool4 fields
|
||||||
|
```
|
||||||
@@ -165,10 +165,12 @@ nav:
|
|||||||
- widgets/services/tubearchivist.md
|
- widgets/services/tubearchivist.md
|
||||||
- widgets/services/unifi-controller.md
|
- widgets/services/unifi-controller.md
|
||||||
- widgets/services/unmanic.md
|
- widgets/services/unmanic.md
|
||||||
|
- widgets/services/unraid.md
|
||||||
- widgets/services/uptime-kuma.md
|
- widgets/services/uptime-kuma.md
|
||||||
- widgets/services/uptimerobot.md
|
- widgets/services/uptimerobot.md
|
||||||
- widgets/services/urbackup.md
|
- widgets/services/urbackup.md
|
||||||
- widgets/services/vikunja.md
|
- widgets/services/vikunja.md
|
||||||
|
- widgets/services/wallos.md
|
||||||
- widgets/services/watchtower.md
|
- widgets/services/watchtower.md
|
||||||
- widgets/services/wgeasy.md
|
- widgets/services/wgeasy.md
|
||||||
- widgets/services/whatsupdocker.md
|
- widgets/services/whatsupdocker.md
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "homepage",
|
"name": "homepage",
|
||||||
"version": "1.4.1",
|
"version": "1.4.6",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "npx only-allow pnpm",
|
"preinstall": "npx only-allow pnpm",
|
||||||
@@ -72,6 +72,7 @@
|
|||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"onlyBuiltDependencies": [
|
"onlyBuiltDependencies": [
|
||||||
|
"osx-temperature-sensor",
|
||||||
"sharp"
|
"sharp"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1083,5 +1083,27 @@
|
|||||||
"nextMonthlyCost": "Next Month",
|
"nextMonthlyCost": "Next Month",
|
||||||
"previousMonthlyCost": "Prev. Month",
|
"previousMonthlyCost": "Prev. Month",
|
||||||
"nextRenewingSubscription": "Next Payment"
|
"nextRenewingSubscription": "Next Payment"
|
||||||
|
},
|
||||||
|
"unraid": {
|
||||||
|
"STARTED": "Started",
|
||||||
|
"STOPPED": "Stopped",
|
||||||
|
"NEW_ARRAY": "New Array",
|
||||||
|
"RECON_DISK": "Reconstructing Disk",
|
||||||
|
"DISABLE_DISK": "Disk Disabled",
|
||||||
|
"SWAP_DSBL": "Swap Disable",
|
||||||
|
"INVALID_EXPANSION": "Invalid Expansion",
|
||||||
|
"PARITY_NOT_BIGGEST": "Parity Not Biggest",
|
||||||
|
"TOO_MANY_MISSING_DISKS": "Too Many Missing Disks",
|
||||||
|
"NEW_DISK_TOO_SMALL": "New Disk Too Small",
|
||||||
|
"NO_DATA_DISKS": "No Data Disks",
|
||||||
|
"notifications": "Notifications",
|
||||||
|
"status": "Status",
|
||||||
|
"cpu": "CPU",
|
||||||
|
"memoryUsed": "Memory Used",
|
||||||
|
"memoryAvailable": "Memory Available",
|
||||||
|
"arrayUsed": "Array Used",
|
||||||
|
"arrayFree": "Array Free",
|
||||||
|
"poolUsed": "{{pool}} Used",
|
||||||
|
"poolFree": "{{pool}} Free"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@
|
|||||||
"response_data": "Données de réponse"
|
"response_data": "Données de réponse"
|
||||||
},
|
},
|
||||||
"weather": {
|
"weather": {
|
||||||
"current": "Localisation actuelle",
|
"current": "Emplacement actuel",
|
||||||
"allow": "Cliquez pour autoriser",
|
"allow": "Cliquez pour autoriser",
|
||||||
"updating": "Mise à jour",
|
"updating": "Mise à jour",
|
||||||
"wait": "Veuillez patienter"
|
"wait": "Veuillez patienter"
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"load": "Charge",
|
"load": "Charge",
|
||||||
"temp": "Température",
|
"temp": "Température",
|
||||||
"max": "Max",
|
"max": "Max",
|
||||||
"uptime": "Démarré depuis"
|
"uptime": "Actif"
|
||||||
},
|
},
|
||||||
"unifi": {
|
"unifi": {
|
||||||
"users": "Utilisateurs",
|
"users": "Utilisateurs",
|
||||||
@@ -1073,15 +1073,15 @@
|
|||||||
"containers": "Conteneurs"
|
"containers": "Conteneurs"
|
||||||
},
|
},
|
||||||
"filebrowser": {
|
"filebrowser": {
|
||||||
"available": "Available",
|
"available": "Disponible",
|
||||||
"used": "Used",
|
"used": "Utilisé",
|
||||||
"total": "Total"
|
"total": "Total"
|
||||||
},
|
},
|
||||||
"wallos": {
|
"wallos": {
|
||||||
"activeSubscriptions": "Subscriptions",
|
"activeSubscriptions": "Abonnements",
|
||||||
"thisMonthlyCost": "This Month",
|
"thisMonthlyCost": "Ce mois",
|
||||||
"nextMonthlyCost": "Next Month",
|
"nextMonthlyCost": "Mois prochain",
|
||||||
"previousMonthlyCost": "Prev. Month",
|
"previousMonthlyCost": "Mois précédent",
|
||||||
"nextRenewingSubscription": "Next Payment"
|
"nextRenewingSubscription": "Prochain paiement"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -451,7 +451,7 @@
|
|||||||
"crit": "Krytyczyny",
|
"crit": "Krytyczyny",
|
||||||
"read": "Read",
|
"read": "Read",
|
||||||
"write": "Zapis",
|
"write": "Zapis",
|
||||||
"gpu": "Karta graficzna",
|
"gpu": "GPU",
|
||||||
"mem": "Pamięć",
|
"mem": "Pamięć",
|
||||||
"swap": "Swap"
|
"swap": "Swap"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -212,7 +212,7 @@
|
|||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Semear"
|
||||||
},
|
},
|
||||||
"qnap": {
|
"qnap": {
|
||||||
"cpuUsage": "Utilização do CPU",
|
"cpuUsage": "Utilização do CPU",
|
||||||
@@ -223,39 +223,39 @@
|
|||||||
"invalid": "Inválido"
|
"invalid": "Inválido"
|
||||||
},
|
},
|
||||||
"deluge": {
|
"deluge": {
|
||||||
"download": "Download",
|
"download": "Baixar",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Semear"
|
||||||
},
|
},
|
||||||
"develancacheui": {
|
"develancacheui": {
|
||||||
"cachehitbytes": "‘Bytes’ de Acerto na Memória transitória",
|
"cachehitbytes": "‘Bytes’ de Acerto na Memória transitória",
|
||||||
"cachemissbytes": "‘Bytes’ de Falha de Memória transitória"
|
"cachemissbytes": "‘Bytes’ de Falha de Memória transitória"
|
||||||
},
|
},
|
||||||
"downloadstation": {
|
"downloadstation": {
|
||||||
"download": "Download",
|
"download": "Baixar",
|
||||||
"upload": "Upload",
|
"upload": "Envio de Dados",
|
||||||
"leech": "Leech",
|
"leech": "Sanguessuga",
|
||||||
"seed": "Seed"
|
"seed": "Semear"
|
||||||
},
|
},
|
||||||
"sonarr": {
|
"sonarr": {
|
||||||
"wanted": "Desejados",
|
"wanted": "Desejados",
|
||||||
"queued": "Em fila de espera",
|
"queued": "Em fila de espera",
|
||||||
"series": "Series",
|
"series": "Séries",
|
||||||
"queue": "Queue",
|
"queue": "Fila",
|
||||||
"unknown": "Unknown"
|
"unknown": "Desconhecido"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Desejado",
|
||||||
"missing": "Em falta",
|
"missing": "Em falta",
|
||||||
"queued": "Queued",
|
"queued": "Na Fila",
|
||||||
"movies": "Movies",
|
"movies": "Filmes",
|
||||||
"queue": "Queue",
|
"queue": "Fila",
|
||||||
"unknown": "Unknown"
|
"unknown": "Desconhecido"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Desejado",
|
||||||
"queued": "Queued",
|
"queued": "Na Fila",
|
||||||
"artists": "Artistas"
|
"artists": "Artistas"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
|
|||||||
@@ -241,7 +241,7 @@
|
|||||||
"sonarr": {
|
"sonarr": {
|
||||||
"wanted": "Розыск",
|
"wanted": "Розыск",
|
||||||
"queued": "В очереди",
|
"queued": "В очереди",
|
||||||
"series": "Серии",
|
"series": "Сериалы",
|
||||||
"queue": "Очередь",
|
"queue": "Очередь",
|
||||||
"unknown": "Неизвестно"
|
"unknown": "Неизвестно"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -61,9 +61,9 @@
|
|||||||
"wlan_devices": "Zariadenia WLAN",
|
"wlan_devices": "Zariadenia WLAN",
|
||||||
"lan_users": "Použ. LAN",
|
"lan_users": "Použ. LAN",
|
||||||
"wlan_users": "Použ. WLAN",
|
"wlan_users": "Použ. WLAN",
|
||||||
"up": "UP",
|
"up": "BEŽÍ",
|
||||||
"down": "NEBEŽÍ",
|
"down": "NEBEŽÍ",
|
||||||
"wait": "Please wait",
|
"wait": "Čakajte, prosím",
|
||||||
"empty_data": "Stav podsystému neznámy"
|
"empty_data": "Stav podsystému neznámy"
|
||||||
},
|
},
|
||||||
"docker": {
|
"docker": {
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
"error": "Chyba",
|
"error": "Chyba",
|
||||||
"response": "Odpoveď",
|
"response": "Odpoveď",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"not_available": "Not Available"
|
"not_available": "Nedostupné"
|
||||||
},
|
},
|
||||||
"emby": {
|
"emby": {
|
||||||
"playing": "Prehrávané",
|
"playing": "Prehrávané",
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
"offline_alt": "Offline",
|
"offline_alt": "Offline",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"total": "Celkom",
|
"total": "Celkom",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"pv_power": "Produkcia",
|
"pv_power": "Produkcia",
|
||||||
@@ -141,11 +141,11 @@
|
|||||||
"connectionStatusDisconnecting": "Odpájanie",
|
"connectionStatusDisconnecting": "Odpájanie",
|
||||||
"connectionStatusDisconnected": "Odpojené",
|
"connectionStatusDisconnected": "Odpojené",
|
||||||
"connectionStatusConnected": "Pripojené",
|
"connectionStatusConnected": "Pripojené",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"maxDown": "Max. sťahovanie",
|
"maxDown": "Max. sťahovanie",
|
||||||
"maxUp": "Max. nahrávanie",
|
"maxUp": "Max. nahrávanie",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"received": "Prijaté",
|
"received": "Prijaté",
|
||||||
"sent": "Odoslané",
|
"sent": "Odoslané",
|
||||||
"externalIPAddress": "Ext. IP",
|
"externalIPAddress": "Ext. IP",
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
"plex": {
|
"plex": {
|
||||||
"streams": "Aktívne vysielanie",
|
"streams": "Aktívne vysielanie",
|
||||||
"albums": "Albumy",
|
"albums": "Albumy",
|
||||||
"movies": "Movies",
|
"movies": "Filmov",
|
||||||
"tv": "Seriály"
|
"tv": "Seriály"
|
||||||
},
|
},
|
||||||
"sabnzbd": {
|
"sabnzbd": {
|
||||||
@@ -199,18 +199,18 @@
|
|||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Aktívne",
|
"active": "Aktívne",
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"download": "Download"
|
"download": "Download"
|
||||||
},
|
},
|
||||||
"transmission": {
|
"transmission": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
"qbittorrent": {
|
"qbittorrent": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
},
|
},
|
||||||
"deluge": {
|
"deluge": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
},
|
},
|
||||||
"downloadstation": {
|
"downloadstation": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
@@ -242,25 +242,25 @@
|
|||||||
"wanted": "Žiadané",
|
"wanted": "Žiadané",
|
||||||
"queued": "V poradí",
|
"queued": "V poradí",
|
||||||
"series": "Series",
|
"series": "Series",
|
||||||
"queue": "Queue",
|
"queue": "Poradie",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Wanted",
|
||||||
"missing": "Chýbajúce",
|
"missing": "Chýbajúce",
|
||||||
"queued": "Queued",
|
"queued": "V poradí",
|
||||||
"movies": "Movies",
|
"movies": "Filmov",
|
||||||
"queue": "Queue",
|
"queue": "Poradie",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Wanted",
|
||||||
"queued": "Queued",
|
"queued": "V poradí",
|
||||||
"artists": "Interpreti"
|
"artists": "Interpreti"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Wanted",
|
||||||
"queued": "Queued",
|
"queued": "V poradí",
|
||||||
"books": "Knihy"
|
"books": "Knihy"
|
||||||
},
|
},
|
||||||
"bazarr": {
|
"bazarr": {
|
||||||
@@ -273,19 +273,19 @@
|
|||||||
"available": "Dostupné"
|
"available": "Dostupné"
|
||||||
},
|
},
|
||||||
"jellyseerr": {
|
"jellyseerr": {
|
||||||
"pending": "Pending",
|
"pending": "Čakajúce",
|
||||||
"approved": "Approved",
|
"approved": "Schválené",
|
||||||
"available": "Available"
|
"available": "Dostupné"
|
||||||
},
|
},
|
||||||
"overseerr": {
|
"overseerr": {
|
||||||
"pending": "Pending",
|
"pending": "Čakajúce",
|
||||||
"processing": "Spracovávané",
|
"processing": "Spracovávané",
|
||||||
"approved": "Approved",
|
"approved": "Schválené",
|
||||||
"available": "Available"
|
"available": "Dostupné"
|
||||||
},
|
},
|
||||||
"netalertx": {
|
"netalertx": {
|
||||||
"total": "Total",
|
"total": "Celkom",
|
||||||
"connected": "Connected",
|
"connected": "Pripojené",
|
||||||
"new_devices": "Nové zariadenia",
|
"new_devices": "Nové zariadenia",
|
||||||
"down_alerts": "Upozornenia o výpadkoch"
|
"down_alerts": "Upozornenia o výpadkoch"
|
||||||
},
|
},
|
||||||
@@ -296,26 +296,26 @@
|
|||||||
"gravity": "Gravity"
|
"gravity": "Gravity"
|
||||||
},
|
},
|
||||||
"adguard": {
|
"adguard": {
|
||||||
"queries": "Queries",
|
"queries": "Požiadaviek",
|
||||||
"blocked": "Blocked",
|
"blocked": "Blokované",
|
||||||
"filtered": "Filtrované",
|
"filtered": "Filtrované",
|
||||||
"latency": "Odozva"
|
"latency": "Odozva"
|
||||||
},
|
},
|
||||||
"speedtest": {
|
"speedtest": {
|
||||||
"upload": "Upload",
|
"upload": "Nahrávanie",
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"ping": "Ping"
|
"ping": "Odozva"
|
||||||
},
|
},
|
||||||
"portainer": {
|
"portainer": {
|
||||||
"running": "Running",
|
"running": "Beží",
|
||||||
"stopped": "Zastavené",
|
"stopped": "Zastavené",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"suwayomi": {
|
"suwayomi": {
|
||||||
"download": "Downloaded",
|
"download": "Downloaded",
|
||||||
"nondownload": "Non-Downloaded",
|
"nondownload": "Non-Downloaded",
|
||||||
"read": "Read",
|
"read": "Read",
|
||||||
"unread": "Unread",
|
"unread": "Neprečítané",
|
||||||
"downloadedread": "Downloaded & Read",
|
"downloadedread": "Downloaded & Read",
|
||||||
"downloadedunread": "Downloaded & Unread",
|
"downloadedunread": "Downloaded & Unread",
|
||||||
"nondownloadedread": "Non-Downloaded & Read",
|
"nondownloadedread": "Non-Downloaded & Read",
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
"ago": "Pred {{value}}"
|
"ago": "Pred {{value}}"
|
||||||
},
|
},
|
||||||
"technitium": {
|
"technitium": {
|
||||||
"totalQueries": "Queries",
|
"totalQueries": "Požiadaviek",
|
||||||
"totalNoError": "Success",
|
"totalNoError": "Success",
|
||||||
"totalServerFailure": "Failures",
|
"totalServerFailure": "Failures",
|
||||||
"totalNxDomain": "NX Domains",
|
"totalNxDomain": "NX Domains",
|
||||||
@@ -344,12 +344,12 @@
|
|||||||
"totalAuthoritative": "Authoritative",
|
"totalAuthoritative": "Authoritative",
|
||||||
"totalRecursive": "Recursive",
|
"totalRecursive": "Recursive",
|
||||||
"totalCached": "Cached",
|
"totalCached": "Cached",
|
||||||
"totalBlocked": "Blocked",
|
"totalBlocked": "Blokované",
|
||||||
"totalDropped": "Dropped",
|
"totalDropped": "Dropped",
|
||||||
"totalClients": "Klienti"
|
"totalClients": "Klienti"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
"queue": "Queue",
|
"queue": "Poradie",
|
||||||
"processed": "Spracované",
|
"processed": "Spracované",
|
||||||
"errored": "Chybné",
|
"errored": "Chybné",
|
||||||
"saved": "Uložené"
|
"saved": "Uložené"
|
||||||
@@ -360,10 +360,10 @@
|
|||||||
"middleware": "Midlvér"
|
"middleware": "Midlvér"
|
||||||
},
|
},
|
||||||
"trilium": {
|
"trilium": {
|
||||||
"version": "Version",
|
"version": "Verzia",
|
||||||
"notesCount": "Notes",
|
"notesCount": "Notes",
|
||||||
"dbSize": "Database Size",
|
"dbSize": "Database Size",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"navidrome": {
|
"navidrome": {
|
||||||
"nothing_streaming": "No Active Streams",
|
"nothing_streaming": "No Active Streams",
|
||||||
@@ -372,7 +372,7 @@
|
|||||||
"npm": {
|
"npm": {
|
||||||
"enabled": "Povolené",
|
"enabled": "Povolené",
|
||||||
"disabled": "Zakázané",
|
"disabled": "Zakázané",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"coinmarketcap": {
|
"coinmarketcap": {
|
||||||
"configure": "Nastavte jednu alebo viac kryptomien na sledovanie",
|
"configure": "Nastavte jednu alebo viac kryptomien na sledovanie",
|
||||||
@@ -389,7 +389,7 @@
|
|||||||
"prowlarr": {
|
"prowlarr": {
|
||||||
"enableIndexers": "Indexery",
|
"enableIndexers": "Indexery",
|
||||||
"numberOfGrabs": "Zachytení",
|
"numberOfGrabs": "Zachytení",
|
||||||
"numberOfQueries": "Queries",
|
"numberOfQueries": "Požiadaviek",
|
||||||
"numberOfFailGrabs": "Neúspešné zachytenia",
|
"numberOfFailGrabs": "Neúspešné zachytenia",
|
||||||
"numberOfFailQueries": "Neúspešné dopyty"
|
"numberOfFailQueries": "Neúspešné dopyty"
|
||||||
},
|
},
|
||||||
@@ -404,48 +404,48 @@
|
|||||||
"transferRate": "Rate"
|
"transferRate": "Rate"
|
||||||
},
|
},
|
||||||
"mastodon": {
|
"mastodon": {
|
||||||
"user_count": "Users",
|
"user_count": "Používateľov",
|
||||||
"status_count": "Príspevky",
|
"status_count": "Príspevky",
|
||||||
"domain_count": "Domény"
|
"domain_count": "Domény"
|
||||||
},
|
},
|
||||||
"medusa": {
|
"medusa": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Wanted",
|
||||||
"queued": "Queued",
|
"queued": "V poradí",
|
||||||
"series": "Series"
|
"series": "Series"
|
||||||
},
|
},
|
||||||
"minecraft": {
|
"minecraft": {
|
||||||
"players": "Hráči",
|
"players": "Hráči",
|
||||||
"version": "Verzia",
|
"version": "Verzia",
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"up": "Online",
|
"up": "Online",
|
||||||
"down": "Offline"
|
"down": "Offline"
|
||||||
},
|
},
|
||||||
"miniflux": {
|
"miniflux": {
|
||||||
"read": "Prečítané",
|
"read": "Prečítané",
|
||||||
"unread": "Unread"
|
"unread": "Neprečítané"
|
||||||
},
|
},
|
||||||
"authentik": {
|
"authentik": {
|
||||||
"users": "Users",
|
"users": "Používateľov",
|
||||||
"loginsLast24H": "Prihlás. (24 hod.)",
|
"loginsLast24H": "Prihlás. (24 hod.)",
|
||||||
"failedLoginsLast24H": "Neúspešné prihlás. (24 hod.)"
|
"failedLoginsLast24H": "Neúspešné prihlás. (24 hod.)"
|
||||||
},
|
},
|
||||||
"proxmox": {
|
"proxmox": {
|
||||||
"mem": "MEM",
|
"mem": "RAM",
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"lxc": "LXC",
|
"lxc": "LXC",
|
||||||
"vms": "Virtuálne stroje"
|
"vms": "Virtuálne stroje"
|
||||||
},
|
},
|
||||||
"glances": {
|
"glances": {
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"load": "Load",
|
"load": "Záťaž",
|
||||||
"wait": "Please wait",
|
"wait": "Čakajte, prosím",
|
||||||
"temp": "TEMP",
|
"temp": "TEMP",
|
||||||
"_temp": "Teplota",
|
"_temp": "Teplota",
|
||||||
"warn": "Upozornení",
|
"warn": "Upozornení",
|
||||||
"uptime": "UP",
|
"uptime": "BEŽÍ",
|
||||||
"total": "Total",
|
"total": "Celkom",
|
||||||
"free": "Free",
|
"free": "Voľné",
|
||||||
"used": "Used",
|
"used": "Využité",
|
||||||
"days": "d",
|
"days": "d",
|
||||||
"hours": "h",
|
"hours": "h",
|
||||||
"crit": "Kritické",
|
"crit": "Kritické",
|
||||||
@@ -461,7 +461,7 @@
|
|||||||
"search": "Hľadať",
|
"search": "Hľadať",
|
||||||
"custom": "Vlastné",
|
"custom": "Vlastné",
|
||||||
"visit": "Navštíviť",
|
"visit": "Navštíviť",
|
||||||
"url": "URL",
|
"url": "URL adresa",
|
||||||
"searchsuggestion": "Návrh"
|
"searchsuggestion": "Návrh"
|
||||||
},
|
},
|
||||||
"wmo": {
|
"wmo": {
|
||||||
@@ -474,49 +474,49 @@
|
|||||||
"3-day": "Oblačno",
|
"3-day": "Oblačno",
|
||||||
"3-night": "Cloudy",
|
"3-night": "Cloudy",
|
||||||
"45-day": "Hmlisto",
|
"45-day": "Hmlisto",
|
||||||
"45-night": "Foggy",
|
"45-night": "Hmlisto",
|
||||||
"48-day": "Foggy",
|
"48-day": "Hmlisto",
|
||||||
"48-night": "Foggy",
|
"48-night": "Hmlisto",
|
||||||
"51-day": "Mierne mrholenie",
|
"51-day": "Mierne mrholenie",
|
||||||
"51-night": "Light Drizzle",
|
"51-night": "Light Drizzle",
|
||||||
"53-day": "Mrholenie",
|
"53-day": "Mrholenie",
|
||||||
"53-night": "Drizzle",
|
"53-night": "Drizzle",
|
||||||
"55-day": "Silné mrholenie",
|
"55-day": "Silné mrholenie",
|
||||||
"55-night": "Heavy Drizzle",
|
"55-night": "Silné mrholenie",
|
||||||
"56-day": "Mierne mrazivé mrholenie",
|
"56-day": "Mierne mrazivé mrholenie",
|
||||||
"56-night": "Light Freezing Drizzle",
|
"56-night": "Light Freezing Drizzle",
|
||||||
"57-day": "Mrazivé mrholenie",
|
"57-day": "Mrazivé mrholenie",
|
||||||
"57-night": "Freezing Drizzle",
|
"57-night": "Freezing Drizzle",
|
||||||
"61-day": "Slabý dážď",
|
"61-day": "Slabý dážď",
|
||||||
"61-night": "Light Rain",
|
"61-night": "Slabý dážď",
|
||||||
"63-day": "Dážď",
|
"63-day": "Dážď",
|
||||||
"63-night": "Rain",
|
"63-night": "Dážď",
|
||||||
"65-day": "Silný dážď",
|
"65-day": "Silný dážď",
|
||||||
"65-night": "Heavy Rain",
|
"65-night": "Silný dážď",
|
||||||
"66-day": "Mrazivý dážď",
|
"66-day": "Mrazivý dážď",
|
||||||
"66-night": "Mrznúci dážď",
|
"66-night": "Mrznúci dážď",
|
||||||
"67-day": "Mrznúci dážď",
|
"67-day": "Mrznúci dážď",
|
||||||
"67-night": "Mrznúci dážď",
|
"67-night": "Mrznúci dážď",
|
||||||
"71-day": "Mierne sneženie",
|
"71-day": "Mierne sneženie",
|
||||||
"71-night": "Light Snow",
|
"71-night": "Slabé sneženie",
|
||||||
"73-day": "Sneženie",
|
"73-day": "Sneženie",
|
||||||
"73-night": "Snow",
|
"73-night": "Sneženie",
|
||||||
"75-day": "Silné sneženie",
|
"75-day": "Silné sneženie",
|
||||||
"75-night": "Heavy Snow",
|
"75-night": "Husté sneženie",
|
||||||
"77-day": "Snehové vločky",
|
"77-day": "Snehové vločky",
|
||||||
"77-night": "Snow Grains",
|
"77-night": "Snow Grains",
|
||||||
"80-day": "Mierne prehánky",
|
"80-day": "Mierne prehánky",
|
||||||
"80-night": "Light Showers",
|
"80-night": "Mierne prehánky",
|
||||||
"81-day": "Prehánky",
|
"81-day": "Prehánky",
|
||||||
"81-night": "Showers",
|
"81-night": "Prehánky",
|
||||||
"82-day": "Silné prehánky",
|
"82-day": "Silné prehánky",
|
||||||
"82-night": "Heavy Showers",
|
"82-night": "Silné prehánky",
|
||||||
"85-day": "Snehové prehánky",
|
"85-day": "Snehové prehánky",
|
||||||
"85-night": "Snow Showers",
|
"85-night": "Snehové prehánky",
|
||||||
"86-day": "Snow Showers",
|
"86-day": "Snehové prehánky",
|
||||||
"86-night": "Snow Showers",
|
"86-night": "Snehové prehánky",
|
||||||
"95-day": "Búrka",
|
"95-day": "Búrka",
|
||||||
"95-night": "Thunderstorm",
|
"95-night": "Búrka",
|
||||||
"96-day": "Búrka s krupobitím",
|
"96-day": "Búrka s krupobitím",
|
||||||
"96-night": "Thunderstorm With Hail",
|
"96-night": "Thunderstorm With Hail",
|
||||||
"99-day": "Thunderstorm With Hail",
|
"99-day": "Thunderstorm With Hail",
|
||||||
@@ -529,17 +529,17 @@
|
|||||||
"up_to_date": "Aktuálny",
|
"up_to_date": "Aktuálny",
|
||||||
"child_bridges": "Podradené premostenia",
|
"child_bridges": "Podradené premostenia",
|
||||||
"child_bridges_status": "{{ok}}/{{total}}",
|
"child_bridges_status": "{{ok}}/{{total}}",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"pending": "Pending",
|
"pending": "Čakajúce",
|
||||||
"down": "Down"
|
"down": "Down"
|
||||||
},
|
},
|
||||||
"healthchecks": {
|
"healthchecks": {
|
||||||
"new": "Nový",
|
"new": "Nový",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"grace": "V dodatočnej lehote",
|
"grace": "V dodatočnej lehote",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"paused": "Pozastavené",
|
"paused": "Pozastavené",
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"last_ping": "Poslendný ping",
|
"last_ping": "Poslendný ping",
|
||||||
"never": "Zatiaľ žiadne ping-y"
|
"never": "Zatiaľ žiadne ping-y"
|
||||||
},
|
},
|
||||||
@@ -549,27 +549,27 @@
|
|||||||
"containers_failed": "Zlyhané"
|
"containers_failed": "Zlyhané"
|
||||||
},
|
},
|
||||||
"autobrr": {
|
"autobrr": {
|
||||||
"approvedPushes": "Approved",
|
"approvedPushes": "Schválené",
|
||||||
"rejectedPushes": "Odmietnuté",
|
"rejectedPushes": "Odmietnuté",
|
||||||
"filters": "Filtre",
|
"filters": "Filtre",
|
||||||
"indexers": "Indexers"
|
"indexers": "Indexers"
|
||||||
},
|
},
|
||||||
"tubearchivist": {
|
"tubearchivist": {
|
||||||
"downloads": "Queue",
|
"downloads": "Poradie",
|
||||||
"videos": "Videá",
|
"videos": "Videá",
|
||||||
"channels": "Kanály",
|
"channels": "Kanály",
|
||||||
"playlists": "Playlisty"
|
"playlists": "Playlisty"
|
||||||
},
|
},
|
||||||
"truenas": {
|
"truenas": {
|
||||||
"load": "Záťaž systému",
|
"load": "Záťaž systému",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"alerts": "Alerts"
|
"alerts": "Upozornenia"
|
||||||
},
|
},
|
||||||
"pyload": {
|
"pyload": {
|
||||||
"speed": "Rýchlosť",
|
"speed": "Rýchlosť",
|
||||||
"active": "Active",
|
"active": "Active",
|
||||||
"queue": "Queue",
|
"queue": "Poradie",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"gluetun": {
|
"gluetun": {
|
||||||
"public_ip": "Verejná IP",
|
"public_ip": "Verejná IP",
|
||||||
@@ -585,18 +585,18 @@
|
|||||||
"channelNetwork": "Sieť",
|
"channelNetwork": "Sieť",
|
||||||
"signalStrength": "Sila",
|
"signalStrength": "Sila",
|
||||||
"signalQuality": "Kvalita",
|
"signalQuality": "Kvalita",
|
||||||
"symbolQuality": "Quality",
|
"symbolQuality": "Kvalita",
|
||||||
"networkRate": "Bitrate",
|
"networkRate": "Bitrate",
|
||||||
"clientIP": "Klient"
|
"clientIP": "Klient"
|
||||||
},
|
},
|
||||||
"scrutiny": {
|
"scrutiny": {
|
||||||
"passed": "Úspešný",
|
"passed": "Úspešný",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"paperlessngx": {
|
"paperlessngx": {
|
||||||
"inbox": "Schránka správ",
|
"inbox": "Schránka správ",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"peanut": {
|
"peanut": {
|
||||||
"battery_charge": "Nabitie batérie",
|
"battery_charge": "Nabitie batérie",
|
||||||
@@ -607,13 +607,13 @@
|
|||||||
"low_battery": "Slabá batéria"
|
"low_battery": "Slabá batéria"
|
||||||
},
|
},
|
||||||
"nextdns": {
|
"nextdns": {
|
||||||
"wait": "Please Wait",
|
"wait": "Čakajte, prosím",
|
||||||
"no_devices": "Informácie o zariadení nezískané"
|
"no_devices": "Informácie o zariadení nezískané"
|
||||||
},
|
},
|
||||||
"mikrotik": {
|
"mikrotik": {
|
||||||
"cpuLoad": "Využitie CPU",
|
"cpuLoad": "Využitie CPU",
|
||||||
"memoryUsed": "Využitie pamäte",
|
"memoryUsed": "Využitie pamäte",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"numberOfLeases": "Pridelené adresy"
|
"numberOfLeases": "Pridelené adresy"
|
||||||
},
|
},
|
||||||
"xteve": {
|
"xteve": {
|
||||||
@@ -628,7 +628,7 @@
|
|||||||
"limit": "Limit"
|
"limit": "Limit"
|
||||||
},
|
},
|
||||||
"opnsense": {
|
"opnsense": {
|
||||||
"cpu": "CPU Load",
|
"cpu": "Zátaž procesora",
|
||||||
"memory": "Aktívna pamäť",
|
"memory": "Aktívna pamäť",
|
||||||
"wanUpload": "WAN nahrávanie",
|
"wanUpload": "WAN nahrávanie",
|
||||||
"wanDownload": "WAN sťahovanie"
|
"wanDownload": "WAN sťahovanie"
|
||||||
@@ -640,20 +640,20 @@
|
|||||||
"layers": "Vrstvy"
|
"layers": "Vrstvy"
|
||||||
},
|
},
|
||||||
"octoprint": {
|
"octoprint": {
|
||||||
"printer_state": "Status",
|
"printer_state": "Stav",
|
||||||
"temp_tool": "Teplota extrudéra",
|
"temp_tool": "Teplota extrudéra",
|
||||||
"temp_bed": "Teplota podložky",
|
"temp_bed": "Teplota podložky",
|
||||||
"job_completion": "Priebeh"
|
"job_completion": "Priebeh"
|
||||||
},
|
},
|
||||||
"cloudflared": {
|
"cloudflared": {
|
||||||
"origin_ip": "Zdrojová IP",
|
"origin_ip": "Zdrojová IP",
|
||||||
"status": "Status"
|
"status": "Stav"
|
||||||
},
|
},
|
||||||
"pfsense": {
|
"pfsense": {
|
||||||
"load": "Priemerné zaťaženie",
|
"load": "Priemerné zaťaženie",
|
||||||
"memory": "Využitie pamäte",
|
"memory": "Využitie pamäte",
|
||||||
"wanStatus": "Stav WAN",
|
"wanStatus": "Stav WAN",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"temp": "Temp",
|
"temp": "Temp",
|
||||||
"disk": "Využitie disku",
|
"disk": "Využitie disku",
|
||||||
@@ -666,15 +666,15 @@
|
|||||||
"memory_usage": "Pamäť"
|
"memory_usage": "Pamäť"
|
||||||
},
|
},
|
||||||
"immich": {
|
"immich": {
|
||||||
"users": "Users",
|
"users": "Používateľov",
|
||||||
"photos": "Fotografie",
|
"photos": "Fotografií",
|
||||||
"videos": "Videos",
|
"videos": "Videí",
|
||||||
"storage": "Úložisko"
|
"storage": "Úložisko"
|
||||||
},
|
},
|
||||||
"uptimekuma": {
|
"uptimekuma": {
|
||||||
"up": "Weby dostupné",
|
"up": "Weby dostupné",
|
||||||
"down": "Weby nedostupné",
|
"down": "Weby nedostupné",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"incident": "Udalosť",
|
"incident": "Udalosť",
|
||||||
"m": "m"
|
"m": "m"
|
||||||
},
|
},
|
||||||
@@ -691,8 +691,8 @@
|
|||||||
},
|
},
|
||||||
"diskstation": {
|
"diskstation": {
|
||||||
"days": "Days",
|
"days": "Days",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"volumeAvailable": "Available"
|
"volumeAvailable": "Dostupné"
|
||||||
},
|
},
|
||||||
"mylar": {
|
"mylar": {
|
||||||
"series": "Series",
|
"series": "Series",
|
||||||
@@ -700,15 +700,15 @@
|
|||||||
"wanted": "Wanted"
|
"wanted": "Wanted"
|
||||||
},
|
},
|
||||||
"photoprism": {
|
"photoprism": {
|
||||||
"albums": "Albums",
|
"albums": "Albumov",
|
||||||
"photos": "Photos",
|
"photos": "Fotografií",
|
||||||
"videos": "Videos",
|
"videos": "Videí",
|
||||||
"people": "Ľudia"
|
"people": "Ľudia"
|
||||||
},
|
},
|
||||||
"fileflows": {
|
"fileflows": {
|
||||||
"queue": "Queue",
|
"queue": "Poradie",
|
||||||
"processing": "Processing",
|
"processing": "Processing",
|
||||||
"processed": "Processed",
|
"processed": "Spracované",
|
||||||
"time": "Čas"
|
"time": "Čas"
|
||||||
},
|
},
|
||||||
"firefly": {
|
"firefly": {
|
||||||
@@ -730,7 +730,7 @@
|
|||||||
"numshares": "Zdieľané položky"
|
"numshares": "Zdieľané položky"
|
||||||
},
|
},
|
||||||
"kopia": {
|
"kopia": {
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"size": "Veľkosť",
|
"size": "Veľkosť",
|
||||||
"lastrun": "Naposledy spustené",
|
"lastrun": "Naposledy spustené",
|
||||||
"nextrun": "Nasledujúce spustenie",
|
"nextrun": "Nasledujúce spustenie",
|
||||||
@@ -753,10 +753,10 @@
|
|||||||
"gatus": {
|
"gatus": {
|
||||||
"up": "Sites Up",
|
"up": "Sites Up",
|
||||||
"down": "Sites Down",
|
"down": "Sites Down",
|
||||||
"uptime": "Uptime"
|
"uptime": "Dostupnosť"
|
||||||
},
|
},
|
||||||
"ghostfolio": {
|
"ghostfolio": {
|
||||||
"gross_percent_today": "Today",
|
"gross_percent_today": "Dnes",
|
||||||
"gross_percent_1y": "Jeden rok",
|
"gross_percent_1y": "Jeden rok",
|
||||||
"gross_percent_max": "Za celý čas"
|
"gross_percent_max": "Za celý čas"
|
||||||
},
|
},
|
||||||
@@ -778,22 +778,22 @@
|
|||||||
"calibreweb": {
|
"calibreweb": {
|
||||||
"books": "Books",
|
"books": "Books",
|
||||||
"authors": "Autori",
|
"authors": "Autori",
|
||||||
"categories": "Categories",
|
"categories": "Kategórie",
|
||||||
"series": "Series"
|
"series": "Series"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadCount": "Queue",
|
"downloadCount": "Poradie",
|
||||||
"downloadBytesRemaining": "Remaining",
|
"downloadBytesRemaining": "Zostávajúce",
|
||||||
"downloadTotalBytes": "Size",
|
"downloadTotalBytes": "Veľkosť",
|
||||||
"downloadSpeed": "Speed"
|
"downloadSpeed": "Speed"
|
||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Súborov"
|
||||||
},
|
},
|
||||||
"azuredevops": {
|
"azuredevops": {
|
||||||
"result": "Výsledok",
|
"result": "Výsledok",
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"buildId": "ID zostavy",
|
"buildId": "ID zostavy",
|
||||||
"succeeded": "Úspešný",
|
"succeeded": "Úspešný",
|
||||||
"notStarted": "Nespustený",
|
"notStarted": "Nespustený",
|
||||||
@@ -802,10 +802,10 @@
|
|||||||
"inProgress": "Prebieha",
|
"inProgress": "Prebieha",
|
||||||
"totalPrs": "Počet PR-ok",
|
"totalPrs": "Počet PR-ok",
|
||||||
"myPrs": "Moje PR-ka",
|
"myPrs": "Moje PR-ka",
|
||||||
"approved": "Approved"
|
"approved": "Schválené"
|
||||||
},
|
},
|
||||||
"gamedig": {
|
"gamedig": {
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"name": "Meno",
|
"name": "Meno",
|
||||||
@@ -814,7 +814,7 @@
|
|||||||
"players": "Players",
|
"players": "Players",
|
||||||
"maxPlayers": "Maximálny počet hráčov",
|
"maxPlayers": "Maximálny počet hráčov",
|
||||||
"bots": "Boti",
|
"bots": "Boti",
|
||||||
"ping": "Ping"
|
"ping": "Odozva"
|
||||||
},
|
},
|
||||||
"urbackup": {
|
"urbackup": {
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
@@ -824,39 +824,39 @@
|
|||||||
},
|
},
|
||||||
"mealie": {
|
"mealie": {
|
||||||
"recipes": "Recepty",
|
"recipes": "Recepty",
|
||||||
"users": "Users",
|
"users": "Používateľov",
|
||||||
"categories": "Categories",
|
"categories": "Kategórie",
|
||||||
"tags": "Štítky"
|
"tags": "Štítky"
|
||||||
},
|
},
|
||||||
"openmediavault": {
|
"openmediavault": {
|
||||||
"downloading": "Sťahovanie",
|
"downloading": "Sťahovanie",
|
||||||
"total": "Total",
|
"total": "Celkom",
|
||||||
"running": "Running",
|
"running": "Beží",
|
||||||
"stopped": "Stopped",
|
"stopped": "Stopped",
|
||||||
"passed": "Passed",
|
"passed": "Passed",
|
||||||
"failed": "Failed"
|
"failed": "Failed"
|
||||||
},
|
},
|
||||||
"openwrt": {
|
"openwrt": {
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"cpuLoad": "Záťaž CPU priem. (5m)",
|
"cpuLoad": "Záťaž CPU priem. (5m)",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"bytesTx": "Prenesených",
|
"bytesTx": "Prenesených",
|
||||||
"bytesRx": "Received"
|
"bytesRx": "Prijaté"
|
||||||
},
|
},
|
||||||
"uptimerobot": {
|
"uptimerobot": {
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"lastDown": "Posledný čas nedostupnosti",
|
"lastDown": "Posledný čas nedostupnosti",
|
||||||
"downDuration": "Trvanie nedostupnosti",
|
"downDuration": "Trvanie nedostupnosti",
|
||||||
"sitesUp": "Sites Up",
|
"sitesUp": "Sites Up",
|
||||||
"sitesDown": "Sites Down",
|
"sitesDown": "Sites Down",
|
||||||
"paused": "Paused",
|
"paused": "Pozastavené",
|
||||||
"notyetchecked": "Neskontrolované",
|
"notyetchecked": "Neskontrolované",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"seemsdown": "Javí sa nedostupný",
|
"seemsdown": "Javí sa nedostupný",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"unknown": "Unknown"
|
"unknown": "Neznáme"
|
||||||
},
|
},
|
||||||
"calendar": {
|
"calendar": {
|
||||||
"inCinemas": "V kinách",
|
"inCinemas": "V kinách",
|
||||||
@@ -872,13 +872,13 @@
|
|||||||
"saves": "Saves",
|
"saves": "Saves",
|
||||||
"states": "States",
|
"states": "States",
|
||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Celková veľkosť"
|
||||||
},
|
},
|
||||||
"mailcow": {
|
"mailcow": {
|
||||||
"domains": "Domains",
|
"domains": "Domains",
|
||||||
"mailboxes": "Mailboxes",
|
"mailboxes": "Mailboxes",
|
||||||
"mails": "Mails",
|
"mails": "Mails",
|
||||||
"storage": "Storage"
|
"storage": "Úložisko"
|
||||||
},
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Upozornenia",
|
"warnings": "Upozornenia",
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
"plantit": {
|
"plantit": {
|
||||||
"events": "Udalosti",
|
"events": "Udalosti",
|
||||||
"plants": "Rastliny",
|
"plants": "Rastliny",
|
||||||
"photos": "Photos",
|
"photos": "Fotografií",
|
||||||
"species": "Druhy"
|
"species": "Druhy"
|
||||||
},
|
},
|
||||||
"gitea": {
|
"gitea": {
|
||||||
@@ -908,13 +908,13 @@
|
|||||||
"galleries": "Galérie",
|
"galleries": "Galérie",
|
||||||
"performers": "Herci",
|
"performers": "Herci",
|
||||||
"studios": "Štúdiá",
|
"studios": "Štúdiá",
|
||||||
"movies": "Movies",
|
"movies": "Filmov",
|
||||||
"tags": "Tags",
|
"tags": "Štítky",
|
||||||
"oCount": "O Count"
|
"oCount": "O Count"
|
||||||
},
|
},
|
||||||
"tandoor": {
|
"tandoor": {
|
||||||
"users": "Users",
|
"users": "Používateľov",
|
||||||
"recipes": "Recipes",
|
"recipes": "Recepty",
|
||||||
"keywords": "Kľúčové slová"
|
"keywords": "Kľúčové slová"
|
||||||
},
|
},
|
||||||
"homebox": {
|
"homebox": {
|
||||||
@@ -922,18 +922,18 @@
|
|||||||
"totalWithWarranty": "So zárukou",
|
"totalWithWarranty": "So zárukou",
|
||||||
"locations": "Umiestnenia",
|
"locations": "Umiestnenia",
|
||||||
"labels": "Štítky",
|
"labels": "Štítky",
|
||||||
"users": "Users",
|
"users": "Používateľov",
|
||||||
"totalValue": "Celková hodnota"
|
"totalValue": "Celková hodnota"
|
||||||
},
|
},
|
||||||
"crowdsec": {
|
"crowdsec": {
|
||||||
"alerts": "Alerts",
|
"alerts": "Upozornenia",
|
||||||
"bans": "Bany"
|
"bans": "Bany"
|
||||||
},
|
},
|
||||||
"wgeasy": {
|
"wgeasy": {
|
||||||
"connected": "Connected",
|
"connected": "Pripojené",
|
||||||
"enabled": "Enabled",
|
"enabled": "Enabled",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"swagdashboard": {
|
"swagdashboard": {
|
||||||
"proxied": "Proxied",
|
"proxied": "Proxied",
|
||||||
@@ -942,26 +942,26 @@
|
|||||||
"banned": "Zabanovaný"
|
"banned": "Zabanovaný"
|
||||||
},
|
},
|
||||||
"myspeed": {
|
"myspeed": {
|
||||||
"ping": "Ping",
|
"ping": "Odozva",
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload"
|
"upload": "Nahrávanie"
|
||||||
},
|
},
|
||||||
"stocks": {
|
"stocks": {
|
||||||
"stocks": "Stocks",
|
"stocks": "Stocks",
|
||||||
"loading": "Loading",
|
"loading": "Načítava sa",
|
||||||
"open": "Open - US Market",
|
"open": "Open - US Market",
|
||||||
"closed": "Closed - US Market",
|
"closed": "Closed - US Market",
|
||||||
"invalidConfiguration": "Invalid Configuration"
|
"invalidConfiguration": "Invalid Configuration"
|
||||||
},
|
},
|
||||||
"frigate": {
|
"frigate": {
|
||||||
"cameras": "Cameras",
|
"cameras": "Cameras",
|
||||||
"uptime": "Uptime",
|
"uptime": "Dostupnosť",
|
||||||
"version": "Version"
|
"version": "Verzia"
|
||||||
},
|
},
|
||||||
"linkwarden": {
|
"linkwarden": {
|
||||||
"links": "Links",
|
"links": "Odkazy",
|
||||||
"collections": "Collections",
|
"collections": "Collections",
|
||||||
"tags": "Tags"
|
"tags": "Štítky"
|
||||||
},
|
},
|
||||||
"zabbix": {
|
"zabbix": {
|
||||||
"unclassified": "Not classified",
|
"unclassified": "Not classified",
|
||||||
@@ -972,38 +972,38 @@
|
|||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
},
|
},
|
||||||
"lubelogger": {
|
"lubelogger": {
|
||||||
"vehicle": "Vehicle",
|
"vehicle": "Vozidlo",
|
||||||
"vehicles": "Vehicles",
|
"vehicles": "Vozidlá",
|
||||||
"serviceRecords": "Service Records",
|
"serviceRecords": "Service Records",
|
||||||
"reminders": "Reminders",
|
"reminders": "Reminders",
|
||||||
"nextReminder": "Next Reminder",
|
"nextReminder": "Next Reminder",
|
||||||
"none": "None"
|
"none": "Žiadne"
|
||||||
},
|
},
|
||||||
"vikunja": {
|
"vikunja": {
|
||||||
"projects": "Active Projects",
|
"projects": "Aktívne projekty",
|
||||||
"tasks7d": "Tasks Due This Week",
|
"tasks7d": "Tasks Due This Week",
|
||||||
"tasksOverdue": "Overdue Tasks",
|
"tasksOverdue": "Overdue Tasks",
|
||||||
"tasksInProgress": "Tasks In Progress"
|
"tasksInProgress": "Tasks In Progress"
|
||||||
},
|
},
|
||||||
"headscale": {
|
"headscale": {
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"address": "Address",
|
"address": "Adresa",
|
||||||
"last_seen": "Last Seen",
|
"last_seen": "Last Seen",
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"offline": "Offline"
|
"offline": "Offline"
|
||||||
},
|
},
|
||||||
"beszel": {
|
"beszel": {
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"systems": "Systems",
|
"systems": "Systems",
|
||||||
"up": "Up",
|
"up": "Beží",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"paused": "Paused",
|
"paused": "Pozastavené",
|
||||||
"pending": "Pending",
|
"pending": "Čakajúce",
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"updated": "Updated",
|
"updated": "Updated",
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"memory": "MEM",
|
"memory": "RAM",
|
||||||
"disk": "Disk",
|
"disk": "Disk",
|
||||||
"network": "NET"
|
"network": "NET"
|
||||||
},
|
},
|
||||||
@@ -1011,14 +1011,14 @@
|
|||||||
"apps": "Apps",
|
"apps": "Apps",
|
||||||
"synced": "Synced",
|
"synced": "Synced",
|
||||||
"outOfSync": "Out Of Sync",
|
"outOfSync": "Out Of Sync",
|
||||||
"healthy": "Healthy",
|
"healthy": "Zdravý",
|
||||||
"degraded": "Degraded",
|
"degraded": "Degraded",
|
||||||
"progressing": "Progressing",
|
"progressing": "Progressing",
|
||||||
"missing": "Missing",
|
"missing": "Missing",
|
||||||
"suspended": "Suspended"
|
"suspended": "Suspended"
|
||||||
},
|
},
|
||||||
"spoolman": {
|
"spoolman": {
|
||||||
"loading": "Loading"
|
"loading": "Načítava sa"
|
||||||
},
|
},
|
||||||
"gitlab": {
|
"gitlab": {
|
||||||
"groups": "Groups",
|
"groups": "Groups",
|
||||||
@@ -1027,8 +1027,8 @@
|
|||||||
"projects": "Projects"
|
"projects": "Projects"
|
||||||
},
|
},
|
||||||
"apcups": {
|
"apcups": {
|
||||||
"status": "Status",
|
"status": "Stav",
|
||||||
"load": "Load",
|
"load": "Záťaž",
|
||||||
"bcharge": "Battery Charge",
|
"bcharge": "Battery Charge",
|
||||||
"timeleft": "Time Left"
|
"timeleft": "Time Left"
|
||||||
},
|
},
|
||||||
@@ -1037,45 +1037,45 @@
|
|||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"archived": "Archived",
|
"archived": "Archived",
|
||||||
"highlights": "Highlights",
|
"highlights": "Highlights",
|
||||||
"lists": "Lists",
|
"lists": "Zoznamy",
|
||||||
"tags": "Tags"
|
"tags": "Štítky"
|
||||||
},
|
},
|
||||||
"slskd": {
|
"slskd": {
|
||||||
"slskStatus": "Network",
|
"slskStatus": "Network",
|
||||||
"connected": "Connected",
|
"connected": "Pripojené",
|
||||||
"disconnected": "Disconnected",
|
"disconnected": "Odpojené",
|
||||||
"updateStatus": "Update",
|
"updateStatus": "Update",
|
||||||
"update_yes": "Available",
|
"update_yes": "Dostupné",
|
||||||
"update_no": "Up to Date",
|
"update_no": "Up to Date",
|
||||||
"downloads": "Downloads",
|
"downloads": "Downloads",
|
||||||
"uploads": "Uploads",
|
"uploads": "Uploads",
|
||||||
"sharedFiles": "Files"
|
"sharedFiles": "Files"
|
||||||
},
|
},
|
||||||
"jellystat": {
|
"jellystat": {
|
||||||
"songs": "Songs",
|
"songs": "Skladieb",
|
||||||
"movies": "Movies",
|
"movies": "Filmov",
|
||||||
"episodes": "Episodes",
|
"episodes": "Epizód",
|
||||||
"other": "Other"
|
"other": "Ostatné"
|
||||||
},
|
},
|
||||||
"checkmk": {
|
"checkmk": {
|
||||||
"serviceErrors": "Service issues",
|
"serviceErrors": "Service issues",
|
||||||
"hostErrors": "Host issues"
|
"hostErrors": "Host issues"
|
||||||
},
|
},
|
||||||
"komodo": {
|
"komodo": {
|
||||||
"total": "Total",
|
"total": "Celkom",
|
||||||
"running": "Running",
|
"running": "Beží",
|
||||||
"stopped": "Stopped",
|
"stopped": "Stopped",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"unhealthy": "Unhealthy",
|
"unhealthy": "Nezdravý",
|
||||||
"unknown": "Unknown",
|
"unknown": "Neznáme",
|
||||||
"servers": "Servers",
|
"servers": "Servers",
|
||||||
"stacks": "Stacks",
|
"stacks": "Stacks",
|
||||||
"containers": "Containers"
|
"containers": "Containers"
|
||||||
},
|
},
|
||||||
"filebrowser": {
|
"filebrowser": {
|
||||||
"available": "Available",
|
"available": "Dostupné",
|
||||||
"used": "Used",
|
"used": "Využité",
|
||||||
"total": "Total"
|
"total": "Celkom"
|
||||||
},
|
},
|
||||||
"wallos": {
|
"wallos": {
|
||||||
"activeSubscriptions": "Subscriptions",
|
"activeSubscriptions": "Subscriptions",
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
"wlan_users": "WLAN Kullanıcıları",
|
"wlan_users": "WLAN Kullanıcıları",
|
||||||
"up": "UP",
|
"up": "UP",
|
||||||
"down": "Aşağı",
|
"down": "Aşağı",
|
||||||
"wait": "Please wait",
|
"wait": "Lütfen bekleyin",
|
||||||
"empty_data": "Alt sistem durumu bilinmiyor"
|
"empty_data": "Alt sistem durumu bilinmiyor"
|
||||||
},
|
},
|
||||||
"docker": {
|
"docker": {
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"partial": "Parçalı"
|
"partial": "Parçalı"
|
||||||
},
|
},
|
||||||
"ping": {
|
"ping": {
|
||||||
"error": "Error",
|
"error": "Hata",
|
||||||
"ping": "Gecikme",
|
"ping": "Gecikme",
|
||||||
"down": "İndirme",
|
"down": "İndirme",
|
||||||
"up": "Yükleme",
|
"up": "Yükleme",
|
||||||
@@ -91,11 +91,11 @@
|
|||||||
},
|
},
|
||||||
"siteMonitor": {
|
"siteMonitor": {
|
||||||
"http_status": "HTTPS durumu",
|
"http_status": "HTTPS durumu",
|
||||||
"error": "Error",
|
"error": "Hata",
|
||||||
"response": "Yanıt",
|
"response": "Yanıt",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"up": "Up",
|
"up": "Up",
|
||||||
"not_available": "Not Available"
|
"not_available": "Mevcut Değil"
|
||||||
},
|
},
|
||||||
"emby": {
|
"emby": {
|
||||||
"playing": "Oynatılıyor",
|
"playing": "Oynatılıyor",
|
||||||
@@ -108,11 +108,11 @@
|
|||||||
"songs": "Şarkılar"
|
"songs": "Şarkılar"
|
||||||
},
|
},
|
||||||
"esphome": {
|
"esphome": {
|
||||||
"offline": "Offline",
|
"offline": "Çevrimdışı",
|
||||||
"offline_alt": "Offline",
|
"offline_alt": "Çevrimdışı",
|
||||||
"online": "Çevrimiçi",
|
"online": "Çevrimiçi",
|
||||||
"total": "Total",
|
"total": "Toplam",
|
||||||
"unknown": "Unknown"
|
"unknown": "Bilinmiyor"
|
||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"pv_power": "Üretim",
|
"pv_power": "Üretim",
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
"unread": "Okunmamış"
|
"unread": "Okunmamış"
|
||||||
},
|
},
|
||||||
"fritzbox": {
|
"fritzbox": {
|
||||||
"connectionStatus": "Status",
|
"connectionStatus": "Durum",
|
||||||
"connectionStatusUnconfigured": "Yapılandırılmamış",
|
"connectionStatusUnconfigured": "Yapılandırılmamış",
|
||||||
"connectionStatusConnecting": "Bağlanıyor",
|
"connectionStatusConnecting": "Bağlanıyor",
|
||||||
"connectionStatusAuthenticating": "Kimlik doğrulanıyor",
|
"connectionStatusAuthenticating": "Kimlik doğrulanıyor",
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
"connectionStatusDisconnecting": "Bağlantı kesiliyor...",
|
"connectionStatusDisconnecting": "Bağlantı kesiliyor...",
|
||||||
"connectionStatusDisconnected": "Bağlantı kesildi",
|
"connectionStatusDisconnected": "Bağlantı kesildi",
|
||||||
"connectionStatusConnected": "Bağlandı",
|
"connectionStatusConnected": "Bağlandı",
|
||||||
"uptime": "Uptime",
|
"uptime": "Çalışma Süresi",
|
||||||
"maxDown": "Max. Indirme",
|
"maxDown": "Max. Indirme",
|
||||||
"maxUp": "Max. Gönderme",
|
"maxUp": "Max. Gönderme",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
@@ -168,17 +168,17 @@
|
|||||||
"passes": "Geçilenler"
|
"passes": "Geçilenler"
|
||||||
},
|
},
|
||||||
"tautulli": {
|
"tautulli": {
|
||||||
"playing": "Playing",
|
"playing": "Oynatılıyor",
|
||||||
"transcoding": "Transcoding",
|
"transcoding": "Dönüştürülüyor",
|
||||||
"bitrate": "Bitrate",
|
"bitrate": "Bit Oranı",
|
||||||
"no_active": "No Active Streams",
|
"no_active": "Aktif akış yok",
|
||||||
"plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor"
|
"plex_connection_error": "Plex Bağlantısı Kontrol Ediliyor"
|
||||||
},
|
},
|
||||||
"omada": {
|
"omada": {
|
||||||
"connectedAp": "Bağlı AP'ler",
|
"connectedAp": "Bağlı AP'ler",
|
||||||
"activeUser": "Aktif cihazlar",
|
"activeUser": "Aktif cihazlar",
|
||||||
"alerts": "Alarmlar",
|
"alerts": "Alarmlar",
|
||||||
"connectedGateways": "Connected gateways",
|
"connectedGateways": "Bağlı ağ geçitleri",
|
||||||
"connectedSwitches": "Bağlı anahtarlar"
|
"connectedSwitches": "Bağlı anahtarlar"
|
||||||
},
|
},
|
||||||
"nzbget": {
|
"nzbget": {
|
||||||
@@ -189,30 +189,30 @@
|
|||||||
"plex": {
|
"plex": {
|
||||||
"streams": "Aktif Akış",
|
"streams": "Aktif Akış",
|
||||||
"albums": "Albümler",
|
"albums": "Albümler",
|
||||||
"movies": "Movies",
|
"movies": "Filmler",
|
||||||
"tv": "TV Showları"
|
"tv": "TV Showları"
|
||||||
},
|
},
|
||||||
"sabnzbd": {
|
"sabnzbd": {
|
||||||
"rate": "Rate",
|
"rate": "Oran",
|
||||||
"queue": "Kuyruk",
|
"queue": "Kuyruk",
|
||||||
"timeleft": "Kalan Zaman"
|
"timeleft": "Kalan Zaman"
|
||||||
},
|
},
|
||||||
"rutorrent": {
|
"rutorrent": {
|
||||||
"active": "Aktif",
|
"active": "Aktif",
|
||||||
"upload": "Upload",
|
"upload": "Yükleme",
|
||||||
"download": "Download"
|
"download": "İndirme"
|
||||||
},
|
},
|
||||||
"transmission": {
|
"transmission": {
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"upload": "Upload",
|
"upload": "Yükleme",
|
||||||
"leech": "Leech",
|
"leech": "Tüketici",
|
||||||
"seed": "Seed"
|
"seed": "Sağlayıcı"
|
||||||
},
|
},
|
||||||
"qbittorrent": {
|
"qbittorrent": {
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"upload": "Upload",
|
"upload": "Yükleme",
|
||||||
"leech": "Leech",
|
"leech": "Tüketici",
|
||||||
"seed": "Seed"
|
"seed": "Sağlayıcı"
|
||||||
},
|
},
|
||||||
"qnap": {
|
"qnap": {
|
||||||
"cpuUsage": "İşlemci Kullanımı",
|
"cpuUsage": "İşlemci Kullanımı",
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
"invalid": "Geçersiz"
|
"invalid": "Geçersiz"
|
||||||
},
|
},
|
||||||
"deluge": {
|
"deluge": {
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
@@ -233,25 +233,25 @@
|
|||||||
"cachemissbytes": "Önbellek Kaçırılan Byte"
|
"cachemissbytes": "Önbellek Kaçırılan Byte"
|
||||||
},
|
},
|
||||||
"downloadstation": {
|
"downloadstation": {
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"upload": "Upload",
|
"upload": "Yükleme",
|
||||||
"leech": "Leech",
|
"leech": "Tüketici",
|
||||||
"seed": "Seed"
|
"seed": "Sağlayıcı"
|
||||||
},
|
},
|
||||||
"sonarr": {
|
"sonarr": {
|
||||||
"wanted": "İstendi",
|
"wanted": "İstendi",
|
||||||
"queued": "Sırada",
|
"queued": "Sırada",
|
||||||
"series": "Series",
|
"series": "Seriler",
|
||||||
"queue": "Queue",
|
"queue": "Kuyruk",
|
||||||
"unknown": "Unknown"
|
"unknown": "Bilinmeyen"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "İstendi",
|
||||||
"missing": "Eksik",
|
"missing": "Eksik",
|
||||||
"queued": "Queued",
|
"queued": "Kuyrukta",
|
||||||
"movies": "Movies",
|
"movies": "Filmler",
|
||||||
"queue": "Queue",
|
"queue": "Kuyruk",
|
||||||
"unknown": "Unknown"
|
"unknown": "Bilinmeyen"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "Wanted",
|
||||||
@@ -273,9 +273,9 @@
|
|||||||
"available": "Kullanılabilir"
|
"available": "Kullanılabilir"
|
||||||
},
|
},
|
||||||
"jellyseerr": {
|
"jellyseerr": {
|
||||||
"pending": "Pending",
|
"pending": "Bekleyen",
|
||||||
"approved": "Approved",
|
"approved": "Onaylı",
|
||||||
"available": "Available"
|
"available": "Kullanılabilir"
|
||||||
},
|
},
|
||||||
"overseerr": {
|
"overseerr": {
|
||||||
"pending": "Pending",
|
"pending": "Pending",
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
"available": "Available"
|
"available": "Available"
|
||||||
},
|
},
|
||||||
"netalertx": {
|
"netalertx": {
|
||||||
"total": "Total",
|
"total": "Toplam",
|
||||||
"connected": "Connected",
|
"connected": "Connected",
|
||||||
"new_devices": "Yeni Cihazlar",
|
"new_devices": "Yeni Cihazlar",
|
||||||
"down_alerts": "Hata Uyarıları"
|
"down_alerts": "Hata Uyarıları"
|
||||||
@@ -302,24 +302,24 @@
|
|||||||
"latency": "Gecikme"
|
"latency": "Gecikme"
|
||||||
},
|
},
|
||||||
"speedtest": {
|
"speedtest": {
|
||||||
"upload": "Upload",
|
"upload": "Yükleme",
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"ping": "Ping"
|
"ping": "Gecikme"
|
||||||
},
|
},
|
||||||
"portainer": {
|
"portainer": {
|
||||||
"running": "Running",
|
"running": "Çalışıyor",
|
||||||
"stopped": "Durduruldu",
|
"stopped": "Durduruldu",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"suwayomi": {
|
"suwayomi": {
|
||||||
"download": "Downloaded",
|
"download": "İndirilen",
|
||||||
"nondownload": "Non-Downloaded",
|
"nondownload": "İndirilmemiş",
|
||||||
"read": "Read",
|
"read": "Okunan",
|
||||||
"unread": "Unread",
|
"unread": "Okunmamış",
|
||||||
"downloadedread": "Downloaded & Read",
|
"downloadedread": "İndirildi & Okundu",
|
||||||
"downloadedunread": "Downloaded & Unread",
|
"downloadedunread": "İndirildi & Okunmadı",
|
||||||
"nondownloadedread": "Non-Downloaded & Read",
|
"nondownloadedread": "İndirilmedi & Okundu",
|
||||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
"nondownloadedunread": "İndirilmedi & Okunmadı"
|
||||||
},
|
},
|
||||||
"tailscale": {
|
"tailscale": {
|
||||||
"address": "Adres",
|
"address": "Adres",
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
"ago": "{{value}} Önce"
|
"ago": "{{value}} Önce"
|
||||||
},
|
},
|
||||||
"technitium": {
|
"technitium": {
|
||||||
"totalQueries": "Queries",
|
"totalQueries": "Sorgular",
|
||||||
"totalNoError": "Başarılı",
|
"totalNoError": "Başarılı",
|
||||||
"totalServerFailure": "Başarısızlıklar",
|
"totalServerFailure": "Başarısızlıklar",
|
||||||
"totalNxDomain": "NX Alan Adları",
|
"totalNxDomain": "NX Alan Adları",
|
||||||
@@ -344,12 +344,12 @@
|
|||||||
"totalAuthoritative": "Yetkili",
|
"totalAuthoritative": "Yetkili",
|
||||||
"totalRecursive": "Tekrarlamalı",
|
"totalRecursive": "Tekrarlamalı",
|
||||||
"totalCached": "Önbelleğe alındı",
|
"totalCached": "Önbelleğe alındı",
|
||||||
"totalBlocked": "Blocked",
|
"totalBlocked": "Engellenen",
|
||||||
"totalDropped": "Bırakıldı",
|
"totalDropped": "Bırakıldı",
|
||||||
"totalClients": "Alıcılar"
|
"totalClients": "Alıcılar"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
"queue": "Queue",
|
"queue": "Kuyruk",
|
||||||
"processed": "İşlendi",
|
"processed": "İşlendi",
|
||||||
"errored": "Hatalı",
|
"errored": "Hatalı",
|
||||||
"saved": "Kaydedildi"
|
"saved": "Kaydedildi"
|
||||||
@@ -360,19 +360,19 @@
|
|||||||
"middleware": "Ara Katman"
|
"middleware": "Ara Katman"
|
||||||
},
|
},
|
||||||
"trilium": {
|
"trilium": {
|
||||||
"version": "Version",
|
"version": "Sürüm",
|
||||||
"notesCount": "Notes",
|
"notesCount": "Notlar",
|
||||||
"dbSize": "Database Size",
|
"dbSize": "Veritabanı Boyutu",
|
||||||
"unknown": "Unknown"
|
"unknown": "Bilinmeyen"
|
||||||
},
|
},
|
||||||
"navidrome": {
|
"navidrome": {
|
||||||
"nothing_streaming": "No Active Streams",
|
"nothing_streaming": "Aktif akış yok",
|
||||||
"please_wait": "Lütfen Bekleyin"
|
"please_wait": "Lütfen Bekleyin"
|
||||||
},
|
},
|
||||||
"npm": {
|
"npm": {
|
||||||
"enabled": "Etkin",
|
"enabled": "Etkin",
|
||||||
"disabled": "Devre Dışı",
|
"disabled": "Devre Dışı",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"coinmarketcap": {
|
"coinmarketcap": {
|
||||||
"configure": "İzleme için bir veya daha fazla kripto para birimi yapılandırın",
|
"configure": "İzleme için bir veya daha fazla kripto para birimi yapılandırın",
|
||||||
@@ -383,46 +383,46 @@
|
|||||||
},
|
},
|
||||||
"gotify": {
|
"gotify": {
|
||||||
"apps": "Uygulamalar",
|
"apps": "Uygulamalar",
|
||||||
"clients": "Clients",
|
"clients": "İstemciler",
|
||||||
"messages": "İletiler"
|
"messages": "İletiler"
|
||||||
},
|
},
|
||||||
"prowlarr": {
|
"prowlarr": {
|
||||||
"enableIndexers": "Dizin Oluşturucular",
|
"enableIndexers": "İndeksleyici",
|
||||||
"numberOfGrabs": "Yakalamalar",
|
"numberOfGrabs": "Yakalamalar",
|
||||||
"numberOfQueries": "Queries",
|
"numberOfQueries": "Sorgular",
|
||||||
"numberOfFailGrabs": "Başarısız Yakalamalar",
|
"numberOfFailGrabs": "Başarısız Yakalamalar",
|
||||||
"numberOfFailQueries": "Başarısız Sorgular"
|
"numberOfFailQueries": "Başarısız Sorgular"
|
||||||
},
|
},
|
||||||
"jackett": {
|
"jackett": {
|
||||||
"configured": "Yapılandırılmış",
|
"configured": "Yapılandırılmış",
|
||||||
"errored": "Errored"
|
"errored": "Hatalı"
|
||||||
},
|
},
|
||||||
"strelaysrv": {
|
"strelaysrv": {
|
||||||
"numActiveSessions": "Aktif Sezonlar",
|
"numActiveSessions": "Aktif Sezonlar",
|
||||||
"numConnections": "Bağlantı Sayısı",
|
"numConnections": "Bağlantı Sayısı",
|
||||||
"dataRelayed": "Aktarılan",
|
"dataRelayed": "Aktarılan",
|
||||||
"transferRate": "Rate"
|
"transferRate": "Oran"
|
||||||
},
|
},
|
||||||
"mastodon": {
|
"mastodon": {
|
||||||
"user_count": "Users",
|
"user_count": "Kullanıcılar",
|
||||||
"status_count": "Gönderiler",
|
"status_count": "Gönderiler",
|
||||||
"domain_count": "Etki Alanları"
|
"domain_count": "Etki Alanları"
|
||||||
},
|
},
|
||||||
"medusa": {
|
"medusa": {
|
||||||
"wanted": "Wanted",
|
"wanted": "İstendi",
|
||||||
"queued": "Queued",
|
"queued": "Sırada",
|
||||||
"series": "Series"
|
"series": "Series"
|
||||||
},
|
},
|
||||||
"minecraft": {
|
"minecraft": {
|
||||||
"players": "Oyuncular",
|
"players": "Oyuncular",
|
||||||
"version": "Versiyon",
|
"version": "Versiyon",
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"up": "Online",
|
"up": "Online",
|
||||||
"down": "Offline"
|
"down": "Offline"
|
||||||
},
|
},
|
||||||
"miniflux": {
|
"miniflux": {
|
||||||
"read": "Okunan",
|
"read": "Okunmuş",
|
||||||
"unread": "Unread"
|
"unread": "Okunmamış"
|
||||||
},
|
},
|
||||||
"authentik": {
|
"authentik": {
|
||||||
"users": "Users",
|
"users": "Users",
|
||||||
@@ -443,7 +443,7 @@
|
|||||||
"_temp": "Sıcaklık",
|
"_temp": "Sıcaklık",
|
||||||
"warn": "Uyarı",
|
"warn": "Uyarı",
|
||||||
"uptime": "UP",
|
"uptime": "UP",
|
||||||
"total": "Total",
|
"total": "Toplam",
|
||||||
"free": "Free",
|
"free": "Free",
|
||||||
"used": "Used",
|
"used": "Used",
|
||||||
"days": "d",
|
"days": "d",
|
||||||
@@ -470,57 +470,57 @@
|
|||||||
"1-day": "Çoğunlukla Güneşli",
|
"1-day": "Çoğunlukla Güneşli",
|
||||||
"1-night": "Çoğunlukla Açık",
|
"1-night": "Çoğunlukla Açık",
|
||||||
"2-day": "Parçalı Bulutlu",
|
"2-day": "Parçalı Bulutlu",
|
||||||
"2-night": "Partly Cloudy",
|
"2-night": "Parçalı Bulutlu",
|
||||||
"3-day": "Bulutlu",
|
"3-day": "Bulutlu",
|
||||||
"3-night": "Cloudy",
|
"3-night": "Bulutlu",
|
||||||
"45-day": "Sisli",
|
"45-day": "Sisli",
|
||||||
"45-night": "Foggy",
|
"45-night": "Sisli",
|
||||||
"48-day": "Foggy",
|
"48-day": "Sisli",
|
||||||
"48-night": "Foggy",
|
"48-night": "Sisli",
|
||||||
"51-day": "Az Çiseleyen Yağmur",
|
"51-day": "Az Çiseleyen Yağmur",
|
||||||
"51-night": "Light Drizzle",
|
"51-night": "Hafif Çiseleme",
|
||||||
"53-day": "Çiseleyen Yağmur",
|
"53-day": "Çiseleyen Yağmur",
|
||||||
"53-night": "Drizzle",
|
"53-night": "Çiseleme",
|
||||||
"55-day": "Çok Çiseleyen Yağmur",
|
"55-day": "Çok Çiseleyen Yağmur",
|
||||||
"55-night": "Heavy Drizzle",
|
"55-night": "Yoğun Çiseleme",
|
||||||
"56-day": "Soğuk Az Çiseleyen Yağmur",
|
"56-day": "Soğuk Az Çiseleyen Yağmur",
|
||||||
"56-night": "Light Freezing Drizzle",
|
"56-night": "Hafif Dondurucu Çiseleme",
|
||||||
"57-day": "Soğuk Çiseleyen Yağmur",
|
"57-day": "Soğuk Çiseleyen Yağmur",
|
||||||
"57-night": "Freezing Drizzle",
|
"57-night": "Dondurucu Çiseleme",
|
||||||
"61-day": "Hafif Yağmur",
|
"61-day": "Hafif Yağmur",
|
||||||
"61-night": "Light Rain",
|
"61-night": "Hafif Yağmur",
|
||||||
"63-day": "Yağmur",
|
"63-day": "Yağmur",
|
||||||
"63-night": "Rain",
|
"63-night": "Yağmur",
|
||||||
"65-day": "Çok Yağmur",
|
"65-day": "Çok Yağmur",
|
||||||
"65-night": "Heavy Rain",
|
"65-night": "Şiddetli Yağmur",
|
||||||
"66-day": "Dondurucu Yağmur",
|
"66-day": "Dondurucu Yağmur",
|
||||||
"66-night": "Freezing Rain",
|
"66-night": "Dondurucu Yağmur",
|
||||||
"67-day": "Freezing Rain",
|
"67-day": "Dondurucu Yağmur",
|
||||||
"67-night": "Freezing Rain",
|
"67-night": "Dondurucu Yağmur",
|
||||||
"71-day": "Hafif Kar",
|
"71-day": "Hafif Kar",
|
||||||
"71-night": "Light Snow",
|
"71-night": "Hafif Kar",
|
||||||
"73-day": "Kar",
|
"73-day": "Kar",
|
||||||
"73-night": "Snow",
|
"73-night": "Kar",
|
||||||
"75-day": "Çok Kar",
|
"75-day": "Çok Kar",
|
||||||
"75-night": "Heavy Snow",
|
"75-night": "Yoğun Kar",
|
||||||
"77-day": "Kar Taneleri",
|
"77-day": "Kar Taneleri",
|
||||||
"77-night": "Snow Grains",
|
"77-night": "Kar Taneleri",
|
||||||
"80-day": "Hafif Sağanak",
|
"80-day": "Hafif Sağanak",
|
||||||
"80-night": "Light Showers",
|
"80-night": "Hafif Sağanak",
|
||||||
"81-day": "Sağanak",
|
"81-day": "Sağanak",
|
||||||
"81-night": "Showers",
|
"81-night": "Sağanak",
|
||||||
"82-day": "Yoğun Sağanak",
|
"82-day": "Yoğun Sağanak",
|
||||||
"82-night": "Heavy Showers",
|
"82-night": "Yoğun Sağanak",
|
||||||
"85-day": "Karlı Sağanak",
|
"85-day": "Karlı Sağanak",
|
||||||
"85-night": "Snow Showers",
|
"85-night": "Karlı Sağanak",
|
||||||
"86-day": "Snow Showers",
|
"86-day": "Karlı Sağanak",
|
||||||
"86-night": "Snow Showers",
|
"86-night": "Karlı Sağanak",
|
||||||
"95-day": "Gök Gürültülü Fırtına",
|
"95-day": "Gök Gürültülü Fırtına",
|
||||||
"95-night": "Thunderstorm",
|
"95-night": "Fırtına",
|
||||||
"96-day": "Dolu İle Gök Gürültülü Fırtına",
|
"96-day": "Dolu İle Gök Gürültülü Fırtına",
|
||||||
"96-night": "Thunderstorm With Hail",
|
"96-night": "Dolu Yağışlı Fırtına",
|
||||||
"99-day": "Thunderstorm With Hail",
|
"99-day": "Dolu Yağışlı Fırtına",
|
||||||
"99-night": "Thunderstorm With Hail"
|
"99-night": "Dolu Yağışlı Fırtına"
|
||||||
},
|
},
|
||||||
"homebridge": {
|
"homebridge": {
|
||||||
"available_update": "Sistem",
|
"available_update": "Sistem",
|
||||||
@@ -530,7 +530,7 @@
|
|||||||
"child_bridges": "Alt Köprüler",
|
"child_bridges": "Alt Köprüler",
|
||||||
"child_bridges_status": "{{ok}}/{{total}}",
|
"child_bridges_status": "{{ok}}/{{total}}",
|
||||||
"up": "Up",
|
"up": "Up",
|
||||||
"pending": "Pending",
|
"pending": "Bekleyen",
|
||||||
"down": "Down"
|
"down": "Down"
|
||||||
},
|
},
|
||||||
"healthchecks": {
|
"healthchecks": {
|
||||||
@@ -539,7 +539,7 @@
|
|||||||
"grace": "Tolerans Döneminde",
|
"grace": "Tolerans Döneminde",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"paused": "Duraklatıldı",
|
"paused": "Duraklatıldı",
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"last_ping": "Son Ping",
|
"last_ping": "Son Ping",
|
||||||
"never": "Henüz ping yok"
|
"never": "Henüz ping yok"
|
||||||
},
|
},
|
||||||
@@ -549,65 +549,65 @@
|
|||||||
"containers_failed": "Başarısız"
|
"containers_failed": "Başarısız"
|
||||||
},
|
},
|
||||||
"autobrr": {
|
"autobrr": {
|
||||||
"approvedPushes": "Approved",
|
"approvedPushes": "Onaylı",
|
||||||
"rejectedPushes": "Reddedildi",
|
"rejectedPushes": "Reddedildi",
|
||||||
"filters": "Süzgeçler",
|
"filters": "Süzgeçler",
|
||||||
"indexers": "Indexers"
|
"indexers": "İndeksleyici"
|
||||||
},
|
},
|
||||||
"tubearchivist": {
|
"tubearchivist": {
|
||||||
"downloads": "Queue",
|
"downloads": "Kuyruk",
|
||||||
"videos": "Videolar",
|
"videos": "Videolar",
|
||||||
"channels": "Kanallar",
|
"channels": "Kanallar",
|
||||||
"playlists": "Oynatma Listeleri"
|
"playlists": "Oynatma Listeleri"
|
||||||
},
|
},
|
||||||
"truenas": {
|
"truenas": {
|
||||||
"load": "Sistem Yükü",
|
"load": "Sistem Yükü",
|
||||||
"uptime": "Uptime",
|
"uptime": "Çalışma Süresi",
|
||||||
"alerts": "Alerts"
|
"alerts": "Alarmlar"
|
||||||
},
|
},
|
||||||
"pyload": {
|
"pyload": {
|
||||||
"speed": "Hız",
|
"speed": "Hız",
|
||||||
"active": "Active",
|
"active": "Aktif",
|
||||||
"queue": "Queue",
|
"queue": "Kuyruk",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"gluetun": {
|
"gluetun": {
|
||||||
"public_ip": "Açık IP",
|
"public_ip": "Açık IP",
|
||||||
"region": "Bölge",
|
"region": "Bölge",
|
||||||
"country": "Ülke",
|
"country": "Ülke",
|
||||||
"port_forwarded": "Port Forwarded"
|
"port_forwarded": "Yönlendirilen Port"
|
||||||
},
|
},
|
||||||
"hdhomerun": {
|
"hdhomerun": {
|
||||||
"channels": "Channels",
|
"channels": "Kanallar",
|
||||||
"hd": "HD",
|
"hd": "HD",
|
||||||
"tunerCount": "Ayarlayıcılar",
|
"tunerCount": "Ayarlayıcılar",
|
||||||
"channelNumber": "Kanal",
|
"channelNumber": "Kanal",
|
||||||
"channelNetwork": "Ağ",
|
"channelNetwork": "Ağ",
|
||||||
"signalStrength": "Sağlamlık",
|
"signalStrength": "Sağlamlık",
|
||||||
"signalQuality": "Kalite",
|
"signalQuality": "Kalite",
|
||||||
"symbolQuality": "Quality",
|
"symbolQuality": "Kalite",
|
||||||
"networkRate": "Bitrate",
|
"networkRate": "Bit Oranı",
|
||||||
"clientIP": "Alıcı"
|
"clientIP": "Alıcı"
|
||||||
},
|
},
|
||||||
"scrutiny": {
|
"scrutiny": {
|
||||||
"passed": "Geçti",
|
"passed": "Geçti",
|
||||||
"failed": "Failed",
|
"failed": "Başarısız",
|
||||||
"unknown": "Unknown"
|
"unknown": "Bilinmeyen"
|
||||||
},
|
},
|
||||||
"paperlessngx": {
|
"paperlessngx": {
|
||||||
"inbox": "Gelen Kutusu",
|
"inbox": "Gelen Kutusu",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"peanut": {
|
"peanut": {
|
||||||
"battery_charge": "Pil Yüzdesi",
|
"battery_charge": "Pil Yüzdesi",
|
||||||
"ups_load": "UPS Yükü",
|
"ups_load": "UPS Yükü",
|
||||||
"ups_status": "UPS Durumu",
|
"ups_status": "UPS Durumu",
|
||||||
"online": "Online",
|
"online": "Çevrimiçi",
|
||||||
"on_battery": "Pilde",
|
"on_battery": "Pilde",
|
||||||
"low_battery": "Düşük Pil"
|
"low_battery": "Düşük Pil"
|
||||||
},
|
},
|
||||||
"nextdns": {
|
"nextdns": {
|
||||||
"wait": "Please Wait",
|
"wait": "Lütfen Bekleyin",
|
||||||
"no_devices": "Cihaz Verisi Alınamadı"
|
"no_devices": "Cihaz Verisi Alınamadı"
|
||||||
},
|
},
|
||||||
"mikrotik": {
|
"mikrotik": {
|
||||||
@@ -640,14 +640,14 @@
|
|||||||
"layers": "Katmanlar"
|
"layers": "Katmanlar"
|
||||||
},
|
},
|
||||||
"octoprint": {
|
"octoprint": {
|
||||||
"printer_state": "Status",
|
"printer_state": "Durum",
|
||||||
"temp_tool": "Araç sıcaklığı",
|
"temp_tool": "Araç sıcaklığı",
|
||||||
"temp_bed": "Yatak sıcaklığı",
|
"temp_bed": "Yatak sıcaklığı",
|
||||||
"job_completion": "Tamamlanma"
|
"job_completion": "Tamamlanma"
|
||||||
},
|
},
|
||||||
"cloudflared": {
|
"cloudflared": {
|
||||||
"origin_ip": "Gerçek IP",
|
"origin_ip": "Gerçek IP",
|
||||||
"status": "Status"
|
"status": "Durum"
|
||||||
},
|
},
|
||||||
"pfsense": {
|
"pfsense": {
|
||||||
"load": "Ort. Yükleme",
|
"load": "Ort. Yükleme",
|
||||||
@@ -706,9 +706,9 @@
|
|||||||
"people": "İnsan"
|
"people": "İnsan"
|
||||||
},
|
},
|
||||||
"fileflows": {
|
"fileflows": {
|
||||||
"queue": "Queue",
|
"queue": "Kuyruk",
|
||||||
"processing": "Processing",
|
"processing": "İşleniyor",
|
||||||
"processed": "Processed",
|
"processed": "İşlendi",
|
||||||
"time": "Zaman"
|
"time": "Zaman"
|
||||||
},
|
},
|
||||||
"firefly": {
|
"firefly": {
|
||||||
@@ -730,7 +730,7 @@
|
|||||||
"numshares": "Paylaşılan Öğeler"
|
"numshares": "Paylaşılan Öğeler"
|
||||||
},
|
},
|
||||||
"kopia": {
|
"kopia": {
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"size": "Boyut",
|
"size": "Boyut",
|
||||||
"lastrun": "Son Çalışma",
|
"lastrun": "Son Çalışma",
|
||||||
"nextrun": "Sonraki Çalışma",
|
"nextrun": "Sonraki Çalışma",
|
||||||
@@ -773,27 +773,27 @@
|
|||||||
},
|
},
|
||||||
"whatsupdocker": {
|
"whatsupdocker": {
|
||||||
"monitoring": "İzleme",
|
"monitoring": "İzleme",
|
||||||
"updates": "Updates"
|
"updates": "Güncellemeler"
|
||||||
},
|
},
|
||||||
"calibreweb": {
|
"calibreweb": {
|
||||||
"books": "Books",
|
"books": "Kitaplar",
|
||||||
"authors": "Yazarlar",
|
"authors": "Yazarlar",
|
||||||
"categories": "Categories",
|
"categories": "Kategoriler",
|
||||||
"series": "Series"
|
"series": "Seriler"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
"downloadCount": "Queue",
|
"downloadCount": "Kuyruk",
|
||||||
"downloadBytesRemaining": "Remaining",
|
"downloadBytesRemaining": "Kalan",
|
||||||
"downloadTotalBytes": "Size",
|
"downloadTotalBytes": "Boyut",
|
||||||
"downloadSpeed": "Speed"
|
"downloadSpeed": "Hız"
|
||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "Series",
|
"seriesCount": "Series",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "Dosyalar"
|
||||||
},
|
},
|
||||||
"azuredevops": {
|
"azuredevops": {
|
||||||
"result": "Sonuç",
|
"result": "Sonuç",
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"buildId": "Yapı Kimliği",
|
"buildId": "Yapı Kimliği",
|
||||||
"succeeded": "Başarılı",
|
"succeeded": "Başarılı",
|
||||||
"notStarted": "Henüz Başlamadı",
|
"notStarted": "Henüz Başlamadı",
|
||||||
@@ -805,7 +805,7 @@
|
|||||||
"approved": "Approved"
|
"approved": "Approved"
|
||||||
},
|
},
|
||||||
"gamedig": {
|
"gamedig": {
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"name": "İsim",
|
"name": "İsim",
|
||||||
@@ -830,7 +830,7 @@
|
|||||||
},
|
},
|
||||||
"openmediavault": {
|
"openmediavault": {
|
||||||
"downloading": "İndiriliyor",
|
"downloading": "İndiriliyor",
|
||||||
"total": "Total",
|
"total": "Toplam",
|
||||||
"running": "Running",
|
"running": "Running",
|
||||||
"stopped": "Stopped",
|
"stopped": "Stopped",
|
||||||
"passed": "Passed",
|
"passed": "Passed",
|
||||||
@@ -845,7 +845,7 @@
|
|||||||
"bytesRx": "Received"
|
"bytesRx": "Received"
|
||||||
},
|
},
|
||||||
"uptimerobot": {
|
"uptimerobot": {
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"uptime": "Uptime",
|
"uptime": "Uptime",
|
||||||
"lastDown": "Son Kesinti",
|
"lastDown": "Son Kesinti",
|
||||||
"downDuration": "Kesinti Süresi",
|
"downDuration": "Kesinti Süresi",
|
||||||
@@ -933,7 +933,7 @@
|
|||||||
"connected": "Connected",
|
"connected": "Connected",
|
||||||
"enabled": "Enabled",
|
"enabled": "Enabled",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"swagdashboard": {
|
"swagdashboard": {
|
||||||
"proxied": "Proxy Üzerinden",
|
"proxied": "Proxy Üzerinden",
|
||||||
@@ -943,7 +943,7 @@
|
|||||||
},
|
},
|
||||||
"myspeed": {
|
"myspeed": {
|
||||||
"ping": "Ping",
|
"ping": "Ping",
|
||||||
"download": "Download",
|
"download": "İndirme",
|
||||||
"upload": "Upload"
|
"upload": "Upload"
|
||||||
},
|
},
|
||||||
"stocks": {
|
"stocks": {
|
||||||
@@ -989,7 +989,7 @@
|
|||||||
"name": "Name",
|
"name": "Name",
|
||||||
"address": "Address",
|
"address": "Address",
|
||||||
"last_seen": "Last Seen",
|
"last_seen": "Last Seen",
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"offline": "Offline"
|
"offline": "Offline"
|
||||||
},
|
},
|
||||||
@@ -1000,7 +1000,7 @@
|
|||||||
"down": "Down",
|
"down": "Down",
|
||||||
"paused": "Paused",
|
"paused": "Paused",
|
||||||
"pending": "Pending",
|
"pending": "Pending",
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"updated": "Updated",
|
"updated": "Updated",
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"memory": "MEM",
|
"memory": "MEM",
|
||||||
@@ -1027,7 +1027,7 @@
|
|||||||
"projects": "Projects"
|
"projects": "Projects"
|
||||||
},
|
},
|
||||||
"apcups": {
|
"apcups": {
|
||||||
"status": "Status",
|
"status": "Durum",
|
||||||
"load": "Load",
|
"load": "Load",
|
||||||
"bcharge": "Battery Charge",
|
"bcharge": "Battery Charge",
|
||||||
"timeleft": "Time Left"
|
"timeleft": "Time Left"
|
||||||
@@ -1041,13 +1041,13 @@
|
|||||||
"tags": "Tags"
|
"tags": "Tags"
|
||||||
},
|
},
|
||||||
"slskd": {
|
"slskd": {
|
||||||
"slskStatus": "Network",
|
"slskStatus": "Ağ",
|
||||||
"connected": "Connected",
|
"connected": "Connected",
|
||||||
"disconnected": "Disconnected",
|
"disconnected": "Disconnected",
|
||||||
"updateStatus": "Update",
|
"updateStatus": "Güncelleme",
|
||||||
"update_yes": "Available",
|
"update_yes": "Available",
|
||||||
"update_no": "Up to Date",
|
"update_no": "Up to Date",
|
||||||
"downloads": "Downloads",
|
"downloads": "İndirmeler",
|
||||||
"uploads": "Uploads",
|
"uploads": "Uploads",
|
||||||
"sharedFiles": "Files"
|
"sharedFiles": "Files"
|
||||||
},
|
},
|
||||||
@@ -1062,8 +1062,8 @@
|
|||||||
"hostErrors": "Host issues"
|
"hostErrors": "Host issues"
|
||||||
},
|
},
|
||||||
"komodo": {
|
"komodo": {
|
||||||
"total": "Total",
|
"total": "Toplam",
|
||||||
"running": "Running",
|
"running": "Çalışıyor",
|
||||||
"stopped": "Stopped",
|
"stopped": "Stopped",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"unhealthy": "Unhealthy",
|
"unhealthy": "Unhealthy",
|
||||||
@@ -1075,13 +1075,13 @@
|
|||||||
"filebrowser": {
|
"filebrowser": {
|
||||||
"available": "Available",
|
"available": "Available",
|
||||||
"used": "Used",
|
"used": "Used",
|
||||||
"total": "Total"
|
"total": "Toplam"
|
||||||
},
|
},
|
||||||
"wallos": {
|
"wallos": {
|
||||||
"activeSubscriptions": "Subscriptions",
|
"activeSubscriptions": "Abonelikler",
|
||||||
"thisMonthlyCost": "This Month",
|
"thisMonthlyCost": "Bu Ay",
|
||||||
"nextMonthlyCost": "Next Month",
|
"nextMonthlyCost": "Sonraki Ay",
|
||||||
"previousMonthlyCost": "Prev. Month",
|
"previousMonthlyCost": "Önceki Ay",
|
||||||
"nextRenewingSubscription": "Next Payment"
|
"nextRenewingSubscription": "Sonraki Ödeme"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
"offline_alt": "Offline",
|
"offline_alt": "Offline",
|
||||||
"online": "Онлайн",
|
"online": "Онлайн",
|
||||||
"total": "Total",
|
"total": "Total",
|
||||||
"unknown": "Unknown"
|
"unknown": "Невідомо"
|
||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"pv_power": "Виробництво",
|
"pv_power": "Виробництво",
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
"wlan_users": "无线局域网用户",
|
"wlan_users": "无线局域网用户",
|
||||||
"up": "UP",
|
"up": "UP",
|
||||||
"down": "离线",
|
"down": "离线",
|
||||||
"wait": "请稍后",
|
"wait": "请稍候",
|
||||||
"empty_data": "子系统状态未知"
|
"empty_data": "子系统状态未知"
|
||||||
},
|
},
|
||||||
"docker": {
|
"docker": {
|
||||||
@@ -83,19 +83,19 @@
|
|||||||
"partial": "部分"
|
"partial": "部分"
|
||||||
},
|
},
|
||||||
"ping": {
|
"ping": {
|
||||||
"error": "Error",
|
"error": "错误",
|
||||||
"ping": "Ping",
|
"ping": "延迟",
|
||||||
"down": "Down",
|
"down": "离线",
|
||||||
"up": "Up",
|
"up": "在线",
|
||||||
"not_available": "不可用"
|
"not_available": "不可用"
|
||||||
},
|
},
|
||||||
"siteMonitor": {
|
"siteMonitor": {
|
||||||
"http_status": "HTTP 状态",
|
"http_status": "HTTP 状态",
|
||||||
"error": "Error",
|
"error": "错误",
|
||||||
"response": "响应",
|
"response": "响应",
|
||||||
"down": "Down",
|
"down": "离线",
|
||||||
"up": "Up",
|
"up": "在线",
|
||||||
"not_available": "Not Available"
|
"not_available": "不可用"
|
||||||
},
|
},
|
||||||
"emby": {
|
"emby": {
|
||||||
"playing": "播放中",
|
"playing": "播放中",
|
||||||
@@ -116,7 +116,7 @@
|
|||||||
},
|
},
|
||||||
"evcc": {
|
"evcc": {
|
||||||
"pv_power": "正式环境",
|
"pv_power": "正式环境",
|
||||||
"battery_soc": "Battery",
|
"battery_soc": "电量",
|
||||||
"grid_power": "Grid",
|
"grid_power": "Grid",
|
||||||
"home_power": "Consumption",
|
"home_power": "Consumption",
|
||||||
"charge_power": "Charger",
|
"charge_power": "Charger",
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
"plex": {
|
"plex": {
|
||||||
"streams": "活动流",
|
"streams": "活动流",
|
||||||
"albums": "专辑",
|
"albums": "专辑",
|
||||||
"movies": "Movies",
|
"movies": "电影",
|
||||||
"tv": "电视节目"
|
"tv": "电视节目"
|
||||||
},
|
},
|
||||||
"sabnzbd": {
|
"sabnzbd": {
|
||||||
@@ -204,15 +204,15 @@
|
|||||||
},
|
},
|
||||||
"transmission": {
|
"transmission": {
|
||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "Seed"
|
||||||
},
|
},
|
||||||
"qbittorrent": {
|
"qbittorrent": {
|
||||||
"download": "Download",
|
"download": "下载速率",
|
||||||
"upload": "Upload",
|
"upload": "上传速率",
|
||||||
"leech": "Leech",
|
"leech": "下载中",
|
||||||
"seed": "Seed"
|
"seed": "做种"
|
||||||
},
|
},
|
||||||
"qnap": {
|
"qnap": {
|
||||||
"cpuUsage": "处理器",
|
"cpuUsage": "处理器",
|
||||||
@@ -236,31 +236,31 @@
|
|||||||
"download": "Download",
|
"download": "Download",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"leech": "Leech",
|
"leech": "Leech",
|
||||||
"seed": "Seed"
|
"seed": "做种"
|
||||||
},
|
},
|
||||||
"sonarr": {
|
"sonarr": {
|
||||||
"wanted": "想看",
|
"wanted": "想看",
|
||||||
"queued": "排队",
|
"queued": "排队",
|
||||||
"series": "Series",
|
"series": "系列",
|
||||||
"queue": "Queue",
|
"queue": "队列",
|
||||||
"unknown": "Unknown"
|
"unknown": "未知"
|
||||||
},
|
},
|
||||||
"radarr": {
|
"radarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "想看",
|
||||||
"missing": "丢失",
|
"missing": "丢失",
|
||||||
"queued": "Queued",
|
"queued": "队列中",
|
||||||
"movies": "Movies",
|
"movies": "电影",
|
||||||
"queue": "Queue",
|
"queue": "队列",
|
||||||
"unknown": "Unknown"
|
"unknown": "未知"
|
||||||
},
|
},
|
||||||
"lidarr": {
|
"lidarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "想看",
|
||||||
"queued": "Queued",
|
"queued": "队列中",
|
||||||
"artists": "Artists"
|
"artists": "Artists"
|
||||||
},
|
},
|
||||||
"readarr": {
|
"readarr": {
|
||||||
"wanted": "Wanted",
|
"wanted": "想看",
|
||||||
"queued": "Queued",
|
"queued": "队列中",
|
||||||
"books": "书籍"
|
"books": "书籍"
|
||||||
},
|
},
|
||||||
"bazarr": {
|
"bazarr": {
|
||||||
@@ -273,7 +273,7 @@
|
|||||||
"available": "可用"
|
"available": "可用"
|
||||||
},
|
},
|
||||||
"jellyseerr": {
|
"jellyseerr": {
|
||||||
"pending": "Pending",
|
"pending": "待办的",
|
||||||
"approved": "Approved",
|
"approved": "Approved",
|
||||||
"available": "Available"
|
"available": "Available"
|
||||||
},
|
},
|
||||||
@@ -437,20 +437,20 @@
|
|||||||
},
|
},
|
||||||
"glances": {
|
"glances": {
|
||||||
"cpu": "CPU",
|
"cpu": "CPU",
|
||||||
"load": "Load",
|
"load": "负载",
|
||||||
"wait": "Please wait",
|
"wait": "请稍候",
|
||||||
"temp": "TEMP",
|
"temp": "温度",
|
||||||
"_temp": "Temp",
|
"_temp": "Temp",
|
||||||
"warn": "Warn",
|
"warn": "Warn",
|
||||||
"uptime": "UP",
|
"uptime": "运行时间",
|
||||||
"total": "Total",
|
"total": "总计",
|
||||||
"free": "Free",
|
"free": "空闲",
|
||||||
"used": "Used",
|
"used": "已使用",
|
||||||
"days": "d",
|
"days": "日",
|
||||||
"hours": "h",
|
"hours": "时",
|
||||||
"crit": "Crit",
|
"crit": "Crit",
|
||||||
"read": "Read",
|
"read": "Read",
|
||||||
"write": "Write",
|
"write": "写入",
|
||||||
"gpu": "GPU",
|
"gpu": "GPU",
|
||||||
"mem": "Mem",
|
"mem": "Mem",
|
||||||
"swap": "Swap"
|
"swap": "Swap"
|
||||||
|
|||||||
@@ -37,12 +37,12 @@ export default function Container({ error = false, children, service }) {
|
|||||||
if (!field.includes(".")) {
|
if (!field.includes(".")) {
|
||||||
fullField = `${type}.${field}`;
|
fullField = `${type}.${field}`;
|
||||||
}
|
}
|
||||||
let matches = fullField === child?.props?.label;
|
let matches = fullField === (child?.props?.field || child?.props?.label);
|
||||||
// check if the field is an 'alias'
|
// check if the field is an 'alias'
|
||||||
if (matches) {
|
if (matches) {
|
||||||
return true;
|
return true;
|
||||||
} else if (ALIASED_WIDGETS[type]) {
|
} else if (ALIASED_WIDGETS[type]) {
|
||||||
matches = fullField.replace(type, ALIASED_WIDGETS[type]) === child?.props?.label;
|
matches = fullField.replace(type, ALIASED_WIDGETS[type]) === (child?.props?.field || child?.props?.label);
|
||||||
|
|
||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
import { useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
@@ -64,7 +64,7 @@ export default function OpenMeteo({ options }) {
|
|||||||
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
||||||
}
|
}
|
||||||
|
|
||||||
const requestLocation = () => {
|
const requestLocation = useCallback(() => {
|
||||||
setRequesting(true);
|
setRequesting(true);
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
navigator.geolocation.getCurrentPosition(
|
navigator.geolocation.getCurrentPosition(
|
||||||
@@ -82,7 +82,17 @@ export default function OpenMeteo({ options }) {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
|
||||||
|
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
|
||||||
|
if (result.state === "granted") {
|
||||||
|
requestLocation();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [options.latitude, options.longitude, requestLocation]);
|
||||||
|
|
||||||
if (!location) {
|
if (!location) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
import { useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
@@ -59,7 +59,7 @@ export default function OpenWeatherMap({ options }) {
|
|||||||
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
||||||
}
|
}
|
||||||
|
|
||||||
const requestLocation = () => {
|
const requestLocation = useCallback(() => {
|
||||||
setRequesting(true);
|
setRequesting(true);
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
navigator.geolocation.getCurrentPosition(
|
navigator.geolocation.getCurrentPosition(
|
||||||
@@ -77,7 +77,17 @@ export default function OpenWeatherMap({ options }) {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
|
||||||
|
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
|
||||||
|
if (result.state === "granted") {
|
||||||
|
requestLocation();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [options.latitude, options.longitude, requestLocation]);
|
||||||
|
|
||||||
if (!location) {
|
if (!location) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
import { useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
|
||||||
import { WiCloudDown } from "react-icons/wi";
|
import { WiCloudDown } from "react-icons/wi";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
@@ -63,7 +63,7 @@ export default function WeatherApi({ options }) {
|
|||||||
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
setLocation({ latitude: options.latitude, longitude: options.longitude });
|
||||||
}
|
}
|
||||||
|
|
||||||
const requestLocation = () => {
|
const requestLocation = useCallback(() => {
|
||||||
setRequesting(true);
|
setRequesting(true);
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
navigator.geolocation.getCurrentPosition(
|
navigator.geolocation.getCurrentPosition(
|
||||||
@@ -81,7 +81,17 @@ export default function WeatherApi({ options }) {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!options.latitude && !options.longitude && typeof navigator !== "undefined") {
|
||||||
|
navigator.permissions?.query({ name: "geolocation" }).then((result) => {
|
||||||
|
if (result.state === "granted") {
|
||||||
|
requestLocation();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [options.latitude, options.longitude, requestLocation]);
|
||||||
|
|
||||||
if (!location) {
|
if (!location) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { existsSync } from "fs";
|
|
||||||
|
|
||||||
import createLogger from "utils/logger";
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
const logger = createLogger("resources");
|
const logger = createLogger("resources");
|
||||||
@@ -20,17 +18,20 @@ export default async function handler(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type === "disk") {
|
if (type === "disk") {
|
||||||
if (!existsSync(target)) {
|
const requested = typeof target === "string" && target ? target : "/";
|
||||||
return res.status(404).json({
|
|
||||||
error: "Target not found",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const fsSize = await si.fsSize();
|
const fsSize = await si.fsSize();
|
||||||
logger.debug("fsSize:", JSON.stringify(fsSize));
|
logger.debug("fsSize:", JSON.stringify(fsSize));
|
||||||
return res.status(200).json({
|
|
||||||
drive: fsSize.find((fs) => fs.mount === target) ?? fsSize.find((fs) => fs.mount === "/"),
|
const drive = fsSize.find((fs) => {
|
||||||
|
return fs.mount === requested;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!drive) {
|
||||||
|
logger.warn(`Drive not found for target: ${requested}`);
|
||||||
|
return res.status(404).json({ error: "Resource not available." });
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(200).json({ drive });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === "memory") {
|
if (type === "memory") {
|
||||||
|
|||||||
@@ -509,7 +509,7 @@ export default function Wrapper({ initialSettings, fallback }) {
|
|||||||
if (typeof bg === "object") {
|
if (typeof bg === "object") {
|
||||||
backgroundImage = bg.image || "";
|
backgroundImage = bg.image || "";
|
||||||
if (bg.opacity !== undefined) {
|
if (bg.opacity !== undefined) {
|
||||||
opacity = bg.opacity / 100;
|
opacity = 1 - bg.opacity / 100;
|
||||||
}
|
}
|
||||||
backgroundBlur = bg.blur !== undefined;
|
backgroundBlur = bg.blur !== undefined;
|
||||||
backgroundSaturate = bg.saturate !== undefined;
|
backgroundSaturate = bg.saturate !== undefined;
|
||||||
@@ -524,7 +524,7 @@ export default function Wrapper({ initialSettings, fallback }) {
|
|||||||
const body = document.body;
|
const body = document.body;
|
||||||
|
|
||||||
html.classList.remove("dark", "scheme-dark", "scheme-light");
|
html.classList.remove("dark", "scheme-dark", "scheme-light");
|
||||||
html.classList.add(theme === "dark" ? "dark" : "");
|
html.classList.toggle("dark", theme === "dark");
|
||||||
html.classList.add(theme === "dark" ? "scheme-dark" : "scheme-light");
|
html.classList.add(theme === "dark" ? "scheme-dark" : "scheme-light");
|
||||||
|
|
||||||
html.classList.remove(...Array.from(html.classList).filter((cls) => cls.startsWith("theme-")));
|
html.classList.remove(...Array.from(html.classList).filter((cls) => cls.startsWith("theme-")));
|
||||||
|
|||||||
@@ -30,12 +30,13 @@ body,
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
background-color: rgb(var(--bg-color));
|
||||||
}
|
}
|
||||||
|
|
||||||
#background {
|
#background {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
z-index: -1;
|
z-index: 0;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
// gamedig
|
// gamedig
|
||||||
gameToken,
|
gameToken,
|
||||||
|
|
||||||
// beszel, glances, immich, komga, mealie, pihole, pfsense, speedtest
|
// authentik, beszel, glances, immich, komga, mealie, pihole, pfsense, speedtest
|
||||||
version,
|
version,
|
||||||
|
|
||||||
// glances
|
// glances
|
||||||
@@ -396,6 +396,12 @@ export function cleanServiceGroups(groups) {
|
|||||||
// unifi
|
// unifi
|
||||||
site,
|
site,
|
||||||
|
|
||||||
|
// unraid
|
||||||
|
pool1,
|
||||||
|
pool2,
|
||||||
|
pool3,
|
||||||
|
pool4,
|
||||||
|
|
||||||
// vikunja
|
// vikunja
|
||||||
enableTaskList,
|
enableTaskList,
|
||||||
|
|
||||||
@@ -518,6 +524,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
[
|
[
|
||||||
|
"authentik",
|
||||||
"beszel",
|
"beszel",
|
||||||
"glances",
|
"glances",
|
||||||
"immich",
|
"immich",
|
||||||
@@ -610,6 +617,12 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (type === "grafana") {
|
if (type === "grafana") {
|
||||||
if (alerts) widget.alerts = alerts;
|
if (alerts) widget.alerts = alerts;
|
||||||
}
|
}
|
||||||
|
if (type === "unraid") {
|
||||||
|
if (pool1) widget.pool1 = pool1;
|
||||||
|
if (pool2) widget.pool2 = pool2;
|
||||||
|
if (pool3) widget.pool3 = pool3;
|
||||||
|
if (pool4) widget.pool4 = pool4;
|
||||||
|
}
|
||||||
return widget;
|
return widget;
|
||||||
});
|
});
|
||||||
return cleanedService;
|
return cleanedService;
|
||||||
|
|||||||
@@ -10,8 +10,12 @@ export default function Component({ service }) {
|
|||||||
const { widget } = service;
|
const { widget } = service;
|
||||||
|
|
||||||
const { data: usersData, error: usersError } = useWidgetAPI(widget, "users");
|
const { data: usersData, error: usersError } = useWidgetAPI(widget, "users");
|
||||||
const { data: loginsData, error: loginsError } = useWidgetAPI(widget, "login");
|
|
||||||
const { data: failedLoginsData, error: failedLoginsError } = useWidgetAPI(widget, "login_failed");
|
const loginsEndpoint = widget.version === 2 ? "loginv2" : "login";
|
||||||
|
const { data: loginsData, error: loginsError } = useWidgetAPI(widget, loginsEndpoint);
|
||||||
|
|
||||||
|
const failedLoginsEndpoint = widget.version === 2 ? "login_failedv2" : "login_failed";
|
||||||
|
const { data: failedLoginsData, error: failedLoginsError } = useWidgetAPI(widget, failedLoginsEndpoint);
|
||||||
|
|
||||||
if (usersError || loginsError || failedLoginsError) {
|
if (usersError || loginsError || failedLoginsError) {
|
||||||
const finalError = usersError ?? loginsError ?? failedLoginsError;
|
const finalError = usersError ?? loginsError ?? failedLoginsError;
|
||||||
@@ -28,15 +32,25 @@ export default function Component({ service }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const yesterday = new Date(Date.now()).setHours(-24);
|
let loginsLast24H;
|
||||||
const loginsLast24H = loginsData.reduce(
|
let failedLoginsLast24H;
|
||||||
(total, current) => (current.x_cord >= yesterday ? total + current.y_cord : total),
|
switch (widget.version) {
|
||||||
0,
|
case 1:
|
||||||
);
|
const yesterday = new Date(Date.now()).setHours(-24);
|
||||||
const failedLoginsLast24H = failedLoginsData.reduce(
|
loginsLast24H = loginsData.reduce(
|
||||||
(total, current) => (current.x_cord >= yesterday ? total + current.y_cord : total),
|
(total, current) => (current.x_cord >= yesterday ? total + current.y_cord : total),
|
||||||
0,
|
0,
|
||||||
);
|
);
|
||||||
|
failedLoginsLast24H = failedLoginsData.reduce(
|
||||||
|
(total, current) => (current.x_cord >= yesterday ? total + current.y_cord : total),
|
||||||
|
0,
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
loginsLast24H = loginsData[0]?.count || 0;
|
||||||
|
failedLoginsLast24H = failedLoginsData[0]?.count || 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
|
|||||||
@@ -11,9 +11,15 @@ const widget = {
|
|||||||
login: {
|
login: {
|
||||||
endpoint: "events/events/per_month/?action=login",
|
endpoint: "events/events/per_month/?action=login",
|
||||||
},
|
},
|
||||||
|
loginv2: {
|
||||||
|
endpoint: "events/events/volume/?action=login&&history_days=1",
|
||||||
|
},
|
||||||
login_failed: {
|
login_failed: {
|
||||||
endpoint: "events/events/per_month/?action=login_failed",
|
endpoint: "events/events/per_month/?action=login_failed",
|
||||||
},
|
},
|
||||||
|
login_failedv2: {
|
||||||
|
endpoint: "events/events/volume/?action=login_failed&&history_days=1",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ const components = {
|
|||||||
truenas: dynamic(() => import("./truenas/component")),
|
truenas: dynamic(() => import("./truenas/component")),
|
||||||
unifi: dynamic(() => import("./unifi/component")),
|
unifi: dynamic(() => import("./unifi/component")),
|
||||||
unmanic: dynamic(() => import("./unmanic/component")),
|
unmanic: dynamic(() => import("./unmanic/component")),
|
||||||
|
unraid: dynamic(() => import("./unraid/component")),
|
||||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||||
uptimerobot: dynamic(() => import("./uptimerobot/component")),
|
uptimerobot: dynamic(() => import("./uptimerobot/component")),
|
||||||
urbackup: dynamic(() => import("./urbackup/component")),
|
urbackup: dynamic(() => import("./urbackup/component")),
|
||||||
|
|||||||
@@ -29,18 +29,23 @@ export default function Component({ service }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// evcc v0.207 changed the API structure so its no longer under 'result'
|
||||||
|
const data = stateData.result ?? stateData;
|
||||||
|
|
||||||
// broken by evcc v0.133.0 https://github.com/evcc-io/evcc/commit/9dcb1fa0a7c08dd926b79309aa1f676a5fc6c8aa
|
// broken by evcc v0.133.0 https://github.com/evcc-io/evcc/commit/9dcb1fa0a7c08dd926b79309aa1f676a5fc6c8aa
|
||||||
const gridPower = stateData.result.gridPower ?? stateData.result.grid?.power ?? 0;
|
const gridPower = data.gridPower ?? data.grid?.power ?? 0;
|
||||||
|
|
||||||
|
// Sum chargePower of all loadpoints
|
||||||
|
const totalChargePower = Array.isArray(data.loadpoints)
|
||||||
|
? data.loadpoints.reduce((sum, lp) => sum + (lp.chargePower ?? 0), 0)
|
||||||
|
: 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<Block label="evcc.pv_power" value={`${toKilowatts(t, stateData.result.pvPower)} ${t("evcc.kilowatt")}`} />
|
<Block label="evcc.pv_power" value={`${toKilowatts(t, data.pvPower)} ${t("evcc.kilowatt")}`} />
|
||||||
<Block label="evcc.grid_power" value={`${toKilowatts(t, gridPower)} ${t("evcc.kilowatt")}`} />
|
<Block label="evcc.grid_power" value={`${toKilowatts(t, gridPower)} ${t("evcc.kilowatt")}`} />
|
||||||
<Block label="evcc.home_power" value={`${toKilowatts(t, stateData.result.homePower)} ${t("evcc.kilowatt")}`} />
|
<Block label="evcc.home_power" value={`${toKilowatts(t, data.homePower)} ${t("evcc.kilowatt")}`} />
|
||||||
<Block
|
<Block label="evcc.charge_power" value={`${toKilowatts(t, totalChargePower)} ${t("evcc.kilowatt")}`} />
|
||||||
label="evcc.charge_power"
|
|
||||||
value={`${toKilowatts(t, stateData.result.loadpoints[0].chargePower)} ${t("evcc.kilowatt")}`}
|
|
||||||
/>
|
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default function Component({ service }) {
|
|||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<div
|
<div
|
||||||
className={classNames(
|
className={classNames(
|
||||||
"bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center text-center",
|
"bg-theme-200/50 dark:bg-theme-900/20 rounded-sm m-1 flex-1 flex flex-col items-center justify-center text-center scheme-light",
|
||||||
"service-block",
|
"service-block",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -23,10 +23,13 @@ export default function Component({ service }) {
|
|||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const space = spaceData.results ? spaceData.results[0] : spaceData[0];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<Block label="tandoor.users" value={spaceData[0]?.user_count} />
|
<Block label="tandoor.users" value={space?.user_count} />
|
||||||
<Block label="tandoor.recipes" value={spaceData[0]?.recipe_count} />
|
<Block label="tandoor.recipes" value={space?.recipe_count} />
|
||||||
<Block label="tandoor.keywords" value={keywordData.count} />
|
<Block label="tandoor.keywords" value={keywordData.count} />
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
|
|||||||
93
src/widgets/unraid/component.jsx
Normal file
93
src/widgets/unraid/component.jsx
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
const UNRAID_DEFAULT_FIELDS = ["status", "cpu", "memoryPercent", "notifications"];
|
||||||
|
const MAX_ALLOWED_FIELDS = 4;
|
||||||
|
|
||||||
|
const POOLS = ["pool1", "pool2", "pool3", "pool4"];
|
||||||
|
const POOL_FIELDS = [
|
||||||
|
{ param: "UsedSpace", label: "poolUsed", valueKey: "fsUsed", valueType: "common.bytes" },
|
||||||
|
{ param: "FreeSpace", label: "poolFree", valueKey: "fsFree", valueType: "common.bytes" },
|
||||||
|
{ param: "UsedPercent", label: "poolUsed", valueKey: "fsUsedPercent", valueType: "common.percent" },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function Component({ service }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const { widget } = service;
|
||||||
|
|
||||||
|
const { data, error } = useWidgetAPI(widget);
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
return <Container service={service} error={error} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!widget.fields?.length) {
|
||||||
|
widget.fields = UNRAID_DEFAULT_FIELDS;
|
||||||
|
} else if (widget.fields.length > MAX_ALLOWED_FIELDS) {
|
||||||
|
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="unraid.status" />
|
||||||
|
<Block label="unraid.memoryAvailable" />
|
||||||
|
<Block label="unraid.memoryUsed" />
|
||||||
|
<Block field="unraid.memoryPercent" label="unraid.memoryUsed" />
|
||||||
|
<Block label="unraid.cpu" />
|
||||||
|
<Block label="unraid.notifications" />
|
||||||
|
<Block field="unraid.arrayUsedSpace" label="unraid.arrayUsed" />
|
||||||
|
<Block field="unraid.arrayFree" label="unraid.arrayFree" />
|
||||||
|
<Block field="unraid.arrayUsedPercent" label="unraid.arrayUsed" />
|
||||||
|
{...POOLS.flatMap((pool) =>
|
||||||
|
POOL_FIELDS.map(({ param, label }) => (
|
||||||
|
<Block
|
||||||
|
key={`${pool}-${param}`}
|
||||||
|
field={`unraid.${pool}${param}`}
|
||||||
|
label={t(`unraid.${label}`, { pool: widget?.[pool] || pool })}
|
||||||
|
/>
|
||||||
|
)),
|
||||||
|
)}
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="unraid.status" value={t(`unraid.${data.arrayState}`)} />
|
||||||
|
<Block label="unraid.memoryAvailable" value={t("common.bbytes", { value: data.memoryAvailable })} />
|
||||||
|
<Block label="unraid.memoryUsed" value={t("common.bbytes", { value: data.memoryUsed })} />
|
||||||
|
<Block
|
||||||
|
field="unraid.memoryPercent"
|
||||||
|
label="unraid.memoryUsed"
|
||||||
|
value={t("common.percent", { value: data.memoryUsedPercent })}
|
||||||
|
/>
|
||||||
|
<Block label="unraid.cpu" value={t("common.percent", { value: data.cpuPercent })} />
|
||||||
|
<Block label="unraid.notifications" value={t("common.number", { value: data.unreadNotifications })} />
|
||||||
|
<Block
|
||||||
|
field="unraid.arrayUsedSpace"
|
||||||
|
label="unraid.arrayUsed"
|
||||||
|
value={t("common.bytes", { value: data.arrayUsed })}
|
||||||
|
/>
|
||||||
|
<Block label="unraid.arrayFree" value={t("common.bytes", { value: data.arrayFree })} />
|
||||||
|
<Block
|
||||||
|
field="unraid.arrayUsedPercent"
|
||||||
|
label="unraid.arrayUsed"
|
||||||
|
value={t("common.percent", { value: data.arrayUsedPercent })}
|
||||||
|
/>
|
||||||
|
{...POOLS.flatMap((pool) =>
|
||||||
|
POOL_FIELDS.map(({ param, label, valueKey, valueType }) => (
|
||||||
|
<Block
|
||||||
|
key={`${pool}-${param}`}
|
||||||
|
field={`unraid.${pool}${param}`}
|
||||||
|
label={t(`unraid.${label}`, { pool: widget?.[pool] || pool })}
|
||||||
|
value={t(valueType, { value: data.caches?.[widget?.[pool]]?.[valueKey] || "-" })}
|
||||||
|
/>
|
||||||
|
)),
|
||||||
|
)}
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
138
src/widgets/unraid/proxy.js
Normal file
138
src/widgets/unraid/proxy.js
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
import { asJson } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
|
|
||||||
|
const logger = createLogger("unraidProxyHandler");
|
||||||
|
|
||||||
|
const graphqlQuery = `
|
||||||
|
{
|
||||||
|
array {
|
||||||
|
state
|
||||||
|
capacity {
|
||||||
|
kilobytes {
|
||||||
|
free
|
||||||
|
total
|
||||||
|
used
|
||||||
|
}
|
||||||
|
}
|
||||||
|
caches {
|
||||||
|
name
|
||||||
|
fsType
|
||||||
|
fsSize
|
||||||
|
fsFree
|
||||||
|
fsUsed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
metrics {
|
||||||
|
memory {
|
||||||
|
active
|
||||||
|
available
|
||||||
|
percentTotal
|
||||||
|
}
|
||||||
|
cpu {
|
||||||
|
percentTotal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
notifications {
|
||||||
|
overview {
|
||||||
|
unread {
|
||||||
|
total
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
function processUnraidResponse(data) {
|
||||||
|
const response = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
data = asJson(data)?.data;
|
||||||
|
|
||||||
|
response["memoryUsedPercent"] = data?.metrics?.memory?.percentTotal ?? null;
|
||||||
|
response["memoryUsed"] = data?.metrics?.memory?.active ?? null;
|
||||||
|
response["memoryAvailable"] = data?.metrics?.memory?.available ?? null;
|
||||||
|
response["cpuPercent"] = data?.metrics?.cpu?.percentTotal ?? null;
|
||||||
|
response["unreadNotifications"] = data?.notifications?.overview?.unread?.total ?? null;
|
||||||
|
response["arrayState"] = data?.array?.state ?? null;
|
||||||
|
response["arrayFree"] = data?.array?.capacity?.kilobytes?.free * 1000 ?? null;
|
||||||
|
response["arrayUsed"] = data?.array?.capacity?.kilobytes?.used * 1000 ?? null;
|
||||||
|
response["arrayUsedPercent"] =
|
||||||
|
(data?.array?.capacity?.kilobytes?.used / data?.array?.capacity?.kilobytes?.total) * 100 ?? null;
|
||||||
|
|
||||||
|
response["caches"] = {};
|
||||||
|
if (data?.array?.caches) {
|
||||||
|
data.array.caches.forEach((cache) => {
|
||||||
|
if (cache.fsType) {
|
||||||
|
response.caches[cache.name] = {
|
||||||
|
fsFree: cache.fsFree * 1000,
|
||||||
|
fsUsed: cache.fsUsed * 1000,
|
||||||
|
fsUsedPercent: (cache.fsUsed / cache.fsSize) * 100 ?? null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return { error: error.message };
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function unraidProxyHandler(req, res) {
|
||||||
|
const { group, service, index } = req.query;
|
||||||
|
|
||||||
|
if (!group || !service) {
|
||||||
|
logger.debug("Invalid or missing service '%s' or group '%s'", service, group);
|
||||||
|
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const widget = await getServiceWidget(group, service, index);
|
||||||
|
if (!widget) {
|
||||||
|
logger.debug("Invalid or missing widget for service '%s' in group '%s'", service, group);
|
||||||
|
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const url = new URL(widget.url + "/graphql");
|
||||||
|
|
||||||
|
const headers = {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Accept: `application/json`,
|
||||||
|
"X-API-Key": `${widget.key}`,
|
||||||
|
};
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
method: "POST",
|
||||||
|
headers,
|
||||||
|
};
|
||||||
|
params.body = JSON.stringify({
|
||||||
|
query: graphqlQuery,
|
||||||
|
});
|
||||||
|
|
||||||
|
const [status, , data] = await httpProxy(url, params);
|
||||||
|
|
||||||
|
if (status === 204 || status === 304) {
|
||||||
|
return res.status(status).end();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status !== 200) {
|
||||||
|
logger.error(
|
||||||
|
"Error getting data from Unraid for service '%s' in group '%s': %d. Data: %s",
|
||||||
|
service,
|
||||||
|
group,
|
||||||
|
status,
|
||||||
|
data,
|
||||||
|
);
|
||||||
|
return res.status(status).send({ error: { message: "Error calling Unraid API.", data } });
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = processUnraidResponse(data);
|
||||||
|
if (result.error) {
|
||||||
|
logger.error("Error processing Unraid data: %s", result.error);
|
||||||
|
return res.status(500).json({ error: result.error });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.setHeader("Content-Type", "application/json");
|
||||||
|
return res.status(status).send(result);
|
||||||
|
}
|
||||||
7
src/widgets/unraid/widget.js
Normal file
7
src/widgets/unraid/widget.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import unraidProxyHandler from "./proxy";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
proxyHandler: unraidProxyHandler,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
@@ -31,6 +31,10 @@ export default function Component({ service }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (uptimerobotData.error) {
|
||||||
|
return <Container service={service} error={uptimerobotData.error} />;
|
||||||
|
}
|
||||||
|
|
||||||
// multiple monitors
|
// multiple monitors
|
||||||
if (uptimerobotData.pagination?.total > 1) {
|
if (uptimerobotData.pagination?.total > 1) {
|
||||||
const sitesUp = uptimerobotData.monitors.filter((m) => m.status === 2).length;
|
const sitesUp = uptimerobotData.monitors.filter((m) => m.status === 2).length;
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ import truenas from "./truenas/widget";
|
|||||||
import tubearchivist from "./tubearchivist/widget";
|
import tubearchivist from "./tubearchivist/widget";
|
||||||
import unifi from "./unifi/widget";
|
import unifi from "./unifi/widget";
|
||||||
import unmanic from "./unmanic/widget";
|
import unmanic from "./unmanic/widget";
|
||||||
|
import unraid from "./unraid/widget";
|
||||||
import uptimekuma from "./uptimekuma/widget";
|
import uptimekuma from "./uptimekuma/widget";
|
||||||
import uptimerobot from "./uptimerobot/widget";
|
import uptimerobot from "./uptimerobot/widget";
|
||||||
import urbackup from "./urbackup/widget";
|
import urbackup from "./urbackup/widget";
|
||||||
@@ -278,6 +279,7 @@ const widgets = {
|
|||||||
unifi,
|
unifi,
|
||||||
unifi_console: unifi,
|
unifi_console: unifi,
|
||||||
unmanic,
|
unmanic,
|
||||||
|
unraid,
|
||||||
uptimekuma,
|
uptimekuma,
|
||||||
uptimerobot,
|
uptimerobot,
|
||||||
urbackup,
|
urbackup,
|
||||||
|
|||||||
Reference in New Issue
Block a user