Compare commits

..

23 Commits

Author SHA1 Message Date
shamoon
a06964dd17 Merge branch dev into main
Some checks failed
Docker / Linting Checks (push) Has been cancelled
Docs / Linting Checks (push) Has been cancelled
Docker / Docker Build & Push (push) Has been cancelled
Docs / Test Build (push) Has been cancelled
Docs / Build & Deploy (push) Has been cancelled
2024-11-24 09:08:01 -08:00
github-actions[bot]
cb45d89163 New Crowdin translations by GitHub Action (#4053)
Some checks are pending
Docker / Linting Checks (push) Waiting to run
Docker / Docker Build & Push (push) Blocked by required conditions
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-11-24 09:01:47 -08:00
shamoon
1656f02418 Merge branch 'dev' 2024-11-24 08:16:04 -08:00
shamoon
ba5e6dec07 Documentation: Add missing wan option for opnsense widget
Some checks failed
Docs / Linting Checks (push) Has been cancelled
Docs / Test Build (push) Has been cancelled
Docs / Build & Deploy (push) Has been cancelled
2024-11-22 13:23:07 -08:00
Simon Emms
56972535c7 Documentation: additional explainer for the pod-selector (#4316)
Some checks failed
Docker / Linting Checks (push) Has been cancelled
Docker / Docker Build & Push (push) Has been cancelled
2024-11-22 07:41:48 -08:00
Urs Kröll
2b8647b2ef Feature: gitlab service widget (#4317)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-22 07:07:17 -08:00
Florian Geckeler
94bbcbe1fb Feature: Spoolman Widget (#3959)
Some checks are pending
Docker / Linting Checks (push) Waiting to run
Docker / Docker Build & Push (push) Blocked by required conditions
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-21 15:32:04 -08:00
Felix Cornelius
4a3a4c846e Feature: Add ArgoCD widget (#4305)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-19 13:59:52 -08:00
shamoon
adde687331 Try publish to docker hub
Some checks failed
Docker / Linting Checks (push) Has been cancelled
Docker / Docker Build & Push (push) Has been cancelled
2024-11-18 08:17:00 -08:00
shamoon
250351f735 Fix: use duration for audiobookshelf books too
Some checks are pending
Docker / Linting Checks (push) Waiting to run
Docker / Docker Build & Push (push) Blocked by required conditions
See #4228
2024-11-17 16:16:18 -08:00
dhenry437
e730a0ceb0 Documentation: Highlight Unifi widget needs local account (#4290)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-13 06:57:03 -08:00
shamoon
d82fbc3026 Enhancement: allow widgets to specify default headers, fix buffer error output (#4287)
Some checks failed
Docker / Linting Checks (push) Has been cancelled
Docker / Docker Build & Push (push) Has been cancelled
2024-11-12 22:34:26 -08:00
shamoon
535be37bef Fix: fix some instances of HTTTP 2024-11-12 22:31:36 -08:00
Abey Thomas
d87d347aa3 Documentation: corrections Beszel widget docs (#4282)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-12 06:19:04 -08:00
robo
99b50b4faf Feature: suwayomi Service Widget (#4273)
Some checks are pending
Docker / Linting Checks (push) Waiting to run
Docker / Docker Build & Push (push) Blocked by required conditions
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-11 17:52:51 -08:00
John
1a22065c3a Fix: use session_key instead of Id in tautulli component to resolve unique key warning (#4278) 2024-11-11 17:15:26 -08:00
Felix Cornelius
e938c3ac1e Feature: Prometheus Metric service widget (#4269)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-11 16:42:14 -08:00
Carlo
ef9068c5bb Documentation: change authentik port to generic placeholder (#4272) 2024-11-10 19:26:40 -08:00
ChainSauz
85637f2979 Documentation: Update opnsense.md privileges section for OPNSense 24.7.x (#4264)
Some checks failed
Docs / Linting Checks (push) Has been cancelled
Docs / Test Build (push) Has been cancelled
Docs / Build & Deploy (push) Has been cancelled
2024-11-09 04:15:22 -08:00
shamoon
01cb9e8830 Documentation: add correct pihole v6 password info
Some checks failed
Docs / Linting Checks (push) Has been cancelled
Docs / Test Build (push) Has been cancelled
Docs / Build & Deploy (push) Has been cancelled
2024-10-28 12:27:31 -07:00
Konrad Jasiński
a938f8b9fa Documentation: Typo in LubeLogger widget documentation (#4205) 2024-10-28 12:27:31 -07:00
shamoon
f473569cb2 Update PR guidelines
Some checks are pending
Docs / Linting Checks (push) Waiting to run
Docs / Test Build (push) Blocked by required conditions
Docs / Build & Deploy (push) Blocked by required conditions
2024-10-27 20:16:43 -07:00
Marco Hofmann
6e8fe45818 Documentation: fix typo in zabbix doc (#4178) 2024-10-23 06:58:35 -07:00
80 changed files with 3525 additions and 487 deletions

View File

@@ -26,8 +26,6 @@ on:
merge_group: merge_group:
env: env:
# Use docker.io for Docker Hub if empty
REGISTRY: ghcr.io
# github.repository as <account>/<repo> # github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }} IMAGE_NAME: ${{ github.repository }}
@@ -66,14 +64,6 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
# Install the cosign tool except on PR
# https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@main
with:
cosign-release: 'v1.13.1' # optional
# Setup QEMU # Setup QEMU
# https://github.com/marketplace/actions/docker-setup-buildx#with-qemu # https://github.com/marketplace/actions/docker-setup-buildx#with-qemu
- name: Setup QEMU - name: Setup QEMU
@@ -99,9 +89,15 @@ jobs:
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ${{ env.REGISTRY }} registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Extract metadata (tags, labels) for Docker # Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action # https://github.com/docker/metadata-action
@@ -109,7 +105,9 @@ jobs:
id: meta id: meta
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
with: with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} images: |
${{ env.IMAGE_NAME }}
ghcr.io/${{ env.IMAGE_NAME }}
flavor: | flavor: |
latest=auto latest=auto
@@ -133,19 +131,6 @@ jobs:
cache-from: type=local,src=/tmp/.buildx-cache cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
# Sign the resulting Docker image digest except on PRs.
# This will only write to the public Rekor transparency log when the Docker
# repository is public to avoid leaking data. If you would like to publish
# transparency data even for private images, pass --force to cosign below.
# https://github.com/sigstore/cosign
# - name: Sign the published Docker image
# if: ${{ github.event_name != 'pull_request' }}
# env:
# COSIGN_EXPERIMENTAL: "true"
# # This step uses the identity token to provision an ephemeral certificate
# # against the sigstore community Fulcio instance.
# run: echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign {}@${{ steps.build-and-push.outputs.digest }}
# Temp fix # Temp fix
# https://github.com/docker/build-push-action/issues/252 # https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896 # https://github.com/moby/buildkit/issues/1896

View File

@@ -100,6 +100,8 @@ If you are using multiple instances of homepage, an `instance` annotation can be
If you have a single service that needs to be shown on multiple specific instances of homepage (but not on all of them), the service can be annotated by multiple `instance.name` annotations, where `name` can be the names of your specific multiple homepage instances. For example, a service that is annotated with `gethomepage.dev/instance.public: ""` and `gethomepage.dev/instance.internal: ""` will be shown on `public` and `internal` homepage instances. If you have a single service that needs to be shown on multiple specific instances of homepage (but not on all of them), the service can be annotated by multiple `instance.name` annotations, where `name` can be the names of your specific multiple homepage instances. For example, a service that is annotated with `gethomepage.dev/instance.public: ""` and `gethomepage.dev/instance.internal: ""` will be shown on `public` and `internal` homepage instances.
Use the `gethomepage.dev/pod-selector` selector to specify the pod used for the health check. For example, a service that is annotated with `gethomepage.dev/pod-selector: app.kubernetes.io/name=deployment` would link to a pod with the label `app.kubernetes.io/name: deployment`.
### Traefik IngressRoute support ### Traefik IngressRoute support
Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set: Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set:

View File

@@ -5,7 +5,11 @@ description: Unifi Controller Information Widget Configuration
_(Find the Unifi Controller service widget [here](../services/unifi-controller.md))_ _(Find the Unifi Controller service widget [here](../services/unifi-controller.md))_
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use a local account that has at least read privileges. You can display general connectivity status from your Unifi (Network) Controller.
!!!
When authenticating you will want to use a local account that has at least read privileges.
An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller. An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller.

View File

@@ -0,0 +1,33 @@
---
title: ArgoCD
description: ArgoCD Widget Configuration
---
Learn more about [ArgoCD](https://argo-cd.readthedocs.io/en/stable/).
Allowed fields (limited to a max of 4): `["apps", "synced", "outOfSync", "healthy", "progressing", "degraded", "suspended", "missing"]`
```yaml
widget:
type: argocd
url: http://argocd.host.or.ip:port
key: argocdapikey
```
You can generate an API key either by creating a bearer token for an existing account, see [Authorization](https://argo-cd.readthedocs.io/en/latest/developer-guide/api-docs/#authorization) (not recommended) or create a new local user account with limited privileges and generate an authentication token for this account. To do this the steps are:
- [Create a new local user](https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#create-new-user) and give it the `apiKey` capability
- Setup [RBAC configuration](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#rbac-configuration) for your the user and give it readonly access to your ArgoCD resources, e.g. by giving it the `role:readonly` role.
- In your ArgoCD project under _Settings / Accounts_ open the newly created account and in the _Tokens_ section click on _Generate New_ to generate an access token, optionally specifying an expiry date.
If you installed ArgoCD via the official Helm chart, the account creation and rbac config can be achived by overriding these helm values:
```yaml
configs:
cm:
accounts.readonly: apiKey
rbac:
policy.csv: "g, readonly, role:readonly"
```
This creates a new account called `readonly` and attaches the `role:readonly` role to it.

View File

@@ -20,6 +20,6 @@ Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`.
```yaml ```yaml
widget: widget:
type: authentik type: authentik
url: http://authentik.host.or.ip:22070 url: http://authentik.host.or.ip:port
key: api_token key: api_token
``` ```

View File

@@ -3,10 +3,12 @@ title: Beszel
description: Beszel Widget Configuration description: Beszel Widget Configuration
--- ---
Learn more about [Beszel]() Learn more about [Beszel](https://github.com/henrygd/beszel)
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided. The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
The `systemID` in the `id` field on the collections page of Beszel.
Allowed fields for 'overview' mode: `["systems", "up"]` Allowed fields for 'overview' mode: `["systems", "up"]`
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]` Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`

View File

@@ -0,0 +1,20 @@
---
title: Gitlab
description: Gitlab Widget Configuration
---
Learn more about [Gitlab](https://gitlab.com).
API requires a personal access token with either `read_api` or `api` permission. See the [gitlab documentation](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token) for details on generating one.
Your Gitlab user ID can be found on [your profile page](https://support.circleci.com/hc/en-us/articles/20761157174043-How-to-find-your-GitLab-User-ID).
Allowed fields: `["events", "issues", "merges", "projects"]`.
```yaml
widget:
type: gitlab
url: http://gitlab.host.or.ip:port
key: personal-access-token
user_id: 123456
```

View File

@@ -8,6 +8,7 @@ search:
You can also find a list of all available service widgets in the sidebar navigation. You can also find a list of all available service widgets in the sidebar navigation.
- [Adguard Home](adguard-home.md) - [Adguard Home](adguard-home.md)
- [ArgoCD](argocd.md)
- [Atsumeru](atsumeru.md) - [Atsumeru](atsumeru.md)
- [Audiobookshelf](audiobookshelf.md) - [Audiobookshelf](audiobookshelf.md)
- [Authentik](authentik.md) - [Authentik](authentik.md)
@@ -40,6 +41,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [Gatus](gatus.md) - [Gatus](gatus.md)
- [Ghostfolio](ghostfolio.md) - [Ghostfolio](ghostfolio.md)
- [Gitea](gitea.md) - [Gitea](gitea.md)
- [Gitlab](gitlab.md)
- [Glances](glances.md) - [Glances](glances.md)
- [Gluetun](gluetun.md) - [Gluetun](gluetun.md)
- [Gotify](gotify.md) - [Gotify](gotify.md)
@@ -98,6 +100,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [Plex](plex.md) - [Plex](plex.md)
- [Portainer](portainer.md) - [Portainer](portainer.md)
- [Prometheus](prometheus.md) - [Prometheus](prometheus.md)
- [Prometheus Metric](prometheusmetric.md)
- [Prowlarr](prowlarr.md) - [Prowlarr](prowlarr.md)
- [Proxmox](proxmox.md) - [Proxmox](proxmox.md)
- [Proxmox Backup Server](proxmoxbackupserver.md) - [Proxmox Backup Server](proxmoxbackupserver.md)

View File

@@ -8,7 +8,7 @@ Learn more about [OPNSense](https://opnsense.org/).
The API key & secret can be generated via the webui by creating a new user at _System/Access/Users_. Ensure "Generate a scrambled password to prevent local database logins for this user" is checked and then edit the effective privileges selecting **only**: The API key & secret can be generated via the webui by creating a new user at _System/Access/Users_. Ensure "Generate a scrambled password to prevent local database logins for this user" is checked and then edit the effective privileges selecting **only**:
- Diagnostics: System Activity - Diagnostics: System Activity
- Status: Traffic Graph - Status: Traffic Graph / Reporting: Traffic (OPNSENSE 24.7.x)
Finally, create a new API key which will download an `apikey.txt` file with your key and secret in it. Use the values as the username and password fields, respectively, in your homepage config. Finally, create a new API key which will download an `apikey.txt` file with your key and secret in it. Use the values as the username and password fields, respectively, in your homepage config.
@@ -20,4 +20,5 @@ widget:
url: http://opnsense.host.or.ip url: http://opnsense.host.or.ip
username: key username: key
password: secret password: secret
wan: opt1 # optional, defaults to wan
``` ```

View File

@@ -0,0 +1,67 @@
---
title: Prometheus Metric
description: Prometheus Metric Widget Configuration
---
Learn more about [Querying Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/).
This widget can show metrics for your service defined by PromQL queries which are requested from a running Prometheus instance.
Quries can be defined in the `metrics` array of the widget along with a label to be used to present the metric value. You can optionally specify a global `refreshInterval` in milliseconds and/or define the `refreshInterval` per metric. Inside the optional `format` object of a metric various formatting styles and transformations can be applied (see below).
```yaml
widget:
type: prometheusmetric
url: https://prometheus.host.or.ip
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
metrics:
- label: Metric 1
query: alertmanager_alerts{state="active"}
- label: Metric 2
query: apiserver_storage_size_bytes{node="mynode"}
format:
type: bytes
- label: Metric 3
query: avg(prometheus_notifications_latency_seconds)
format:
type: number
suffix: s
options:
maximumFractionDigits: 4
- label: Metric 4
query: time()
refreshInterval: 1000 # will override global refreshInterval
format:
type: date
scale: 1000
options:
timeStyle: medium
```
## Formatting
Supported values for `format.type` are `text`, `number`, `percent`, `bytes`, `bits`, `bbytes`, `bbits`, `byterate`, `bibyterate`, `bitrate`, `bibitrate`, `date`, `duration`, `relativeDate`, and `text` which is the default.
The `dateStyle` and `timeStyle` options of the `date` format are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) and the `style` and `numeric` options of `relativeDate` are passed to [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat). For the `number` format, options of [Intl.NumberFormat](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) can be used, e.g. `maximumFractionDigits` or `minimumFractionDigits`.
### Data Transformation
You can manipulate your metric value with the following tools: `scale`, `prefix` and `suffix`, for example:
```yaml
- query: my_custom_metric{}
label: Metric 1
format:
type: number
scale: 1000 # multiplies value by a number or fraction string e.g. 1/16
- query: my_custom_metric{}
label: Metric 2
format:
type: number
prefix: "$" # prefixes value with given string
- query: my_custom_metric{}
label: Metric 3
format:
type: number
suffix: "€" # suffixes value with given string
```

View File

@@ -0,0 +1,15 @@
---
title: Spoolman
description: Spoolman Widget Configuration
---
Learn more about [Spoolman](https://github.com/Donkie/Spoolman).
4 spools are displayed by default. If more than 4 spools are configured in spoolman you can use the spoolIds configuration option to control which are displayed.
```yaml
widget:
type: spoolman
url: http://spoolman.host.or.ip
spoolIds: [1, 2, 3, 4] # optional
```

View File

@@ -0,0 +1,20 @@
---
title: Suwayomi
description: Suwayomi Widget Configuration
---
Learn more about [Suwayomi](https://github.com/Suwayomi/Suwayomi-Server).
Allowed fields: ["download", "nondownload", "read", "unread", "downloadedread", "downloadedunread", "nondownloadedread", "nondownloadedunread"]
The widget defaults to the first four above. If more than four fields are provided, only the first 4 are displayed.
Category IDs can be obtained from the url when navigating to it, `?tab={categoryID}`.
```yaml
widget:
type: suwayomi
url: http://suwayomi.host.or.ip
username: username #optional
password: password #optional
category: 0 #optional, defaults to all categories
```

View File

@@ -7,7 +7,11 @@ Learn more about [Unifi Controller](https://ui.com/).
_(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_ _(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use a local account that has at least read privileges. You can display general connectivity status from your Unifi (Network) Controller.
!!!
When authenticating you will want to use a local account that has at least read privileges.
An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller. An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller.

View File

@@ -3,7 +3,7 @@ title: Zabbix
description: Zabbix Widget Configuration description: Zabbix Widget Configuration
--- ---
Learn more about [Zabbix](https://github.com/zabbix/zabbix). The widget supports (at least) Zibbax server version 7.0. Learn more about [Zabbix](https://github.com/zabbix/zabbix). The widget supports (at least) Zabbix server version 7.0.
--- ---

View File

@@ -31,6 +31,7 @@ nav:
- "Service Widgets": - "Service Widgets":
- widgets/services/index.md - widgets/services/index.md
- widgets/services/adguard-home.md - widgets/services/adguard-home.md
- widgets/services/argocd.md
- widgets/services/atsumeru.md - widgets/services/atsumeru.md
- widgets/services/audiobookshelf.md - widgets/services/audiobookshelf.md
- widgets/services/authentik.md - widgets/services/authentik.md
@@ -63,6 +64,7 @@ nav:
- widgets/services/gatus.md - widgets/services/gatus.md
- widgets/services/ghostfolio.md - widgets/services/ghostfolio.md
- widgets/services/gitea.md - widgets/services/gitea.md
- widgets/services/gitlab.md
- widgets/services/glances.md - widgets/services/glances.md
- widgets/services/gluetun.md - widgets/services/gluetun.md
- widgets/services/gotify.md - widgets/services/gotify.md
@@ -121,6 +123,7 @@ nav:
- widgets/services/plex.md - widgets/services/plex.md
- widgets/services/portainer.md - widgets/services/portainer.md
- widgets/services/prometheus.md - widgets/services/prometheus.md
- widgets/services/prometheusmetric.md
- widgets/services/prowlarr.md - widgets/services/prowlarr.md
- widgets/services/proxmox.md - widgets/services/proxmox.md
- widgets/services/proxmoxbackupserver.md - widgets/services/proxmoxbackupserver.md
@@ -136,6 +139,7 @@ nav:
- widgets/services/scrutiny.md - widgets/services/scrutiny.md
- widgets/services/sonarr.md - widgets/services/sonarr.md
- widgets/services/speedtest-tracker.md - widgets/services/speedtest-tracker.md
- widgets/services/spoolman.md
- widgets/services/stash.md - widgets/services/stash.md
- widgets/services/stocks.md - widgets/services/stocks.md
- widgets/services/swagdashboard.md - widgets/services/swagdashboard.md

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "ma", "months": "ma",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Gestop", "stopped": "Gestop",
"total": "Totaal" "total": "Totaal"
}, },
"suwayomi": {
"download": "Afgelaai",
"nondownload": "Nie-Afgelaai",
"read": "Gelees",
"unread": "Ongelees",
"downloadedread": "Afgelaai & Gelees",
"downloadedunread": "Afgelaai en Ongelees",
"nondownloadedread": "Nie-Afgelaai & Gelees",
"nondownloadedunread": "Nie-Afgelaai & Ongelees"
},
"tailscale": { "tailscale": {
"address": "Adres", "address": "Adres",
"expires": "Verval", "expires": "Verval",
@@ -947,11 +957,55 @@
"disaster": "Ramp" "disaster": "Ramp"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Voertuig",
"vehicles": "Vehicles", "vehicles": "Voertuie",
"serviceRecords": "Service Records", "serviceRecords": "Diensrekords",
"reminders": "Reminders", "reminders": "Herinneringe",
"nextReminder": "Next Reminder", "nextReminder": "Volgende Herinnering",
"none": "None" "none": "Geen"
},
"vikunja": {
"projects": "Aktiewe Projekte",
"tasks7d": "Take Hierdie week",
"tasksOverdue": "Agterstallige Take",
"tasksInProgress": "Take Aan Die Gang"
},
"headscale": {
"name": "Naam",
"address": "Adres",
"last_seen": "Laaste Gesien",
"status": "Status",
"online": "Aanlyn",
"offline": "Vanlyn"
},
"beszel": {
"name": "Naam",
"systems": "Stelsels",
"up": "Op",
"status": "Status",
"updated": "Opgedateer",
"cpu": "SVE",
"memory": "GEH",
"disk": "Skyf",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Gesond",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Vermis",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Laai"
},
"gitlab": {
"groups": "Groups",
"issues": "Kwessies",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "ش", "months": "ش",
"days": "ي", "days": "ي",
"hours": "س", "hours": "س",
@@ -309,6 +309,16 @@
"stopped": "متوقف", "stopped": "متوقف",
"total": "المجموع" "total": "المجموع"
}, },
"suwayomi": {
"download": "مُنزل",
"nondownload": "Non-Downloaded",
"read": "قراءة",
"unread": "غير مقروءة",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "عنوان", "address": "عنوان",
"expires": "تنتهي", "expires": "تنتهي",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "الاسم",
"address": "عنوان",
"last_seen": "آخر ظهور",
"status": "الحالة",
"online": "مُتّصل",
"offline": "غير متصل"
},
"beszel": {
"name": "الاسم",
"systems": "Systems",
"up": "يعمل",
"status": "الحالة",
"updated": "محدث",
"cpu": "المعالج",
"memory": "الذاكرة",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "سليم",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "مفقود",
"suspended": "Suspended"
},
"spoolman": {
"loading": "تحميل"
},
"gitlab": {
"groups": "Groups",
"issues": "المُشكِلات",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "ч", "hours": "ч",
@@ -309,6 +309,16 @@
"stopped": "Спрян", "stopped": "Спрян",
"total": "Общо" "total": "Общо"
}, },
"suwayomi": {
"download": "Изтеглени",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Последно видян",
"status": "Статус",
"online": "Online",
"offline": "Изключен"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Статус",
"updated": "Updated",
"cpu": "Процесор",
"memory": "Памет",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Липсващи",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mes", "months": "mes",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -227,8 +227,8 @@
"seed": "Llavors" "seed": "Llavors"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "Bytes trobats a la memòria cau",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "Bytes no trobats a la memòria cau"
}, },
"downloadstation": { "downloadstation": {
"download": "Descarregar", "download": "Descarregar",
@@ -309,6 +309,16 @@
"stopped": "Aturat", "stopped": "Aturat",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Descarregat",
"nondownload": "No descarregat",
"read": "Llegit",
"unread": "Sense llegir",
"downloadedread": "Descarregat i llegit",
"downloadedunread": "Descarregat i per llegir",
"nondownloadedread": "No descarregat i llegit",
"nondownloadedunread": "No descarregat i per llegir"
},
"tailscale": { "tailscale": {
"address": "Adreça", "address": "Adreça",
"expires": "Caduca", "expires": "Caduca",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Consultes", "totalQueries": "Consultes",
"totalNoError": "Success", "totalNoError": "Èxits",
"totalServerFailure": "Failures", "totalServerFailure": "Fallades",
"totalNxDomain": "NX Domains", "totalNxDomain": "Dominis NX",
"totalRefused": "Refused", "totalRefused": "Rebutjat",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Autoritatiu",
"totalRecursive": "Recursive", "totalRecursive": "Recursiu",
"totalCached": "Cached", "totalCached": "A la memòria cau",
"totalBlocked": "Bloquejat", "totalBlocked": "Bloquejat",
"totalDropped": "Dropped", "totalDropped": "Abandonat",
"totalClients": "Clients" "totalClients": "Clients"
}, },
"tdarr": { "tdarr": {
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "Plataformes", "platforms": "Plataformes",
"totalRoms": "Games", "totalRoms": "Jocs",
"saves": "Saves", "saves": "Partides desades",
"states": "States", "states": "Estats",
"screenshots": "Screenshots", "screenshots": "Captures de pantalla",
"totalfilesize": "Total Size" "totalfilesize": "Tamany total"
}, },
"mailcow": { "mailcow": {
"domains": "Dominis", "domains": "Dominis",
"mailboxes": "Mailboxes", "mailboxes": "Bústies",
"mails": "Mails", "mails": "Correus",
"storage": "Emmagatzematge" "storage": "Emmagatzematge"
}, },
"netdata": { "netdata": {
@@ -934,24 +944,68 @@
"version": "Versió" "version": "Versió"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Enllaços",
"collections": "Collections", "collections": "Col·leccions",
"tags": "Etiquetes" "tags": "Etiquetes"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "No classificat",
"information": "Informació", "information": "Informació",
"warning": "Warning", "warning": "Avís",
"average": "Average", "average": "Mitjana",
"high": "High", "high": "Alt",
"disaster": "Disaster" "disaster": "Desastre"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Vehicle",
"vehicles": "Vehicles", "vehicles": "Vehicles",
"serviceRecords": "Service Records", "serviceRecords": "Constàncies de manteniment",
"reminders": "Reminders", "reminders": "Recordatoris",
"nextReminder": "Next Reminder", "nextReminder": "Proper recordatori",
"none": "None" "none": "Cap"
},
"vikunja": {
"projects": "Projectes actius",
"tasks7d": "Tasques a completar aquesta setmana",
"tasksOverdue": "Tasques vençudes",
"tasksInProgress": "Tasques en marxa"
},
"headscale": {
"name": "Nom",
"address": "Adreça",
"last_seen": "Vist per darrer cop",
"status": "Estat",
"online": "En línia",
"offline": "Fora de línia"
},
"beszel": {
"name": "Nom",
"systems": "Sistemes",
"up": "Actiu",
"status": "Estat",
"updated": "Actualitzat",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disc",
"network": "XARXA"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Saludable",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Falten",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Carregant"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemes",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "měs.", "months": "měs.",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Zastaveno", "stopped": "Zastaveno",
"total": "Celkem" "total": "Celkem"
}, },
"suwayomi": {
"download": "Staženo",
"nondownload": "Non-Downloaded",
"read": "Přečteno",
"unread": "Nepřečteno",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adresa", "address": "Adresa",
"expires": "Vyprší", "expires": "Vyprší",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Adresa",
"last_seen": "Naposledy viděno",
"status": "Stav",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Stav",
"updated": "Aktualizováno",
"cpu": "CPU",
"memory": "RAM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Zdravý",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Chybějící",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problémy",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mnd", "months": "mnd",
"days": "d", "days": "d",
"hours": "t", "hours": "t",
@@ -309,6 +309,16 @@
"stopped": "Stoppede", "stopped": "Stoppede",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Hentet",
"nondownload": "Non-Downloaded",
"read": "Læst",
"unread": "Ulæst",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adresse", "address": "Adresse",
"expires": "Udløber", "expires": "Udløber",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Navn",
"address": "Adresse",
"last_seen": "Sidst Set",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Navn",
"systems": "Systems",
"up": "Op",
"status": "Status",
"updated": "Opdateret",
"cpu": "CPU",
"memory": "RAM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sund",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Mangler",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemer",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "Mo.", "months": "Mo.",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -305,10 +305,20 @@
"ping": "Ping" "ping": "Ping"
}, },
"portainer": { "portainer": {
"running": "Werden ausgeführt", "running": "Wird ausgeführt",
"stopped": "Gestoppt", "stopped": "Gestoppt",
"total": "Gesamt" "total": "Gesamt"
}, },
"suwayomi": {
"download": "Heruntergeladen",
"nondownload": "Nicht heruntergeladen",
"read": "Gelesen",
"unread": "Ungelesen",
"downloadedread": "Heruntergeladen & gelesen",
"downloadedunread": "Heruntergeladen & ungelesen",
"nondownloadedread": "Nicht heruntergeladen & gelesen",
"nondownloadedunread": "Nicht heruntergeladen & ungelesen"
},
"tailscale": { "tailscale": {
"address": "Adresse", "address": "Adresse",
"expires": "Läuft ab", "expires": "Läuft ab",
@@ -953,5 +963,49 @@
"reminders": "Erinnerungen", "reminders": "Erinnerungen",
"nextReminder": "Nächste Erinnerung", "nextReminder": "Nächste Erinnerung",
"none": "Keine" "none": "Keine"
},
"vikunja": {
"projects": "Aktive Projekte",
"tasks7d": "Diese Woche fällige Aufgaben",
"tasksOverdue": "Überfällige Aufgaben",
"tasksInProgress": "Aufgaben in Arbeit"
},
"headscale": {
"name": "Name",
"address": "Adresse",
"last_seen": "Zuletzt gesehen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systeme",
"up": "Senden",
"status": "Status",
"updated": "Aktualisiert",
"cpu": "CPU",
"memory": "RAM",
"disk": "Festplatte",
"network": "NET"
},
"argocd": {
"apps": "Anwendungen",
"synced": "Synchronisiert",
"outOfSync": "Nicht mehr synchronisiert",
"healthy": "Fehlerfrei",
"degraded": "Beeinträchtigt",
"progressing": "Fortschritt",
"missing": "Fehlend",
"suspended": "Unterbrochen"
},
"spoolman": {
"loading": "Wird geladen"
},
"gitlab": {
"groups": "Groups",
"issues": "Probleme",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Σταματημένο", "stopped": "Σταματημένο",
"total": "Σύνολο" "total": "Σύνολο"
}, },
"suwayomi": {
"download": "Κατεβασμένο",
"nondownload": "Non-Downloaded",
"read": "Διαβάστηκε",
"unread": "Μη Διαβασμένο",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Διεύθυνση", "address": "Διεύθυνση",
"expires": "Λήγει", "expires": "Λήγει",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Όνομα",
"address": "Διεύθυνση",
"last_seen": "Τελευταία Σύνδεση",
"status": "Κατάσταση",
"online": "Συνδεδεμένοι",
"offline": "Εκτός σύνδεσης"
},
"beszel": {
"name": "Όνομα",
"systems": "Systems",
"up": "Ping up",
"status": "Κατάσταση",
"updated": "Ενημερώθηκε",
"cpu": "Επεξεργαστής",
"memory": "Μνήμη",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Υγειές",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Απουσιάζει",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -978,5 +988,24 @@
"memory": "MEM", "memory": "MEM",
"disk": "Disk", "disk": "Disk",
"network": "NET" "network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Totalo" "total": "Totalo"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Stato",
"online": "Online",
"offline": "Malkonekta"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Stato",
"updated": "Updated",
"cpu": "Ĉefprocesoro",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sana",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "me", "months": "me",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Detenido", "stopped": "Detenido",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Descargado",
"nondownload": "Non-Downloaded",
"read": "Leer",
"unread": "Sin leer",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Dirección", "address": "Dirección",
"expires": "Caduca en", "expires": "Caduca en",
@@ -953,5 +963,49 @@
"reminders": "Recordatorios", "reminders": "Recordatorios",
"nextReminder": "Siguiente recordatorio", "nextReminder": "Siguiente recordatorio",
"none": "Nada" "none": "Nada"
},
"vikunja": {
"projects": "Proyectos activos",
"tasks7d": "Tareas que vencen esta semana",
"tasksOverdue": "Tareas vencidas",
"tasksInProgress": "Tareas en progreso"
},
"headscale": {
"name": "Nombre",
"address": "Dirección",
"last_seen": "Visto por última vez",
"status": "Estado",
"online": "En línea",
"offline": "Desconectado"
},
"beszel": {
"name": "Nombre",
"systems": "Systems",
"up": "Activo",
"status": "Estado",
"updated": "Actualizado",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Saludable",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Faltantes",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Cargando"
},
"gitlab": {
"groups": "Groups",
"issues": "Números",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Guztira" "total": "Guztira"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Osasuntsu",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Pysäytetty", "stopped": "Pysäytetty",
"total": "Yhteensä" "total": "Yhteensä"
}, },
"suwayomi": {
"download": "Ladattu",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Tila",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Tila",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "j", "days": "j",
"hours": "h", "hours": "h",
@@ -227,8 +227,8 @@
"seed": "Seed" "seed": "Seed"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "Octets de la mémoire cache",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "Octets manquants du cache"
}, },
"downloadstation": { "downloadstation": {
"download": "Récep.", "download": "Récep.",
@@ -309,6 +309,16 @@
"stopped": "Arrêté", "stopped": "Arrêté",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Téléchargé",
"nondownload": "Non téléchargé",
"read": "Lu",
"unread": "Non lu",
"downloadedread": "Téléchargé et lu",
"downloadedunread": "Téléchargé et non lu",
"nondownloadedread": "Non téléchargé et lu",
"nondownloadedunread": "Non téléchargé et non lu"
},
"tailscale": { "tailscale": {
"address": "Adresse", "address": "Adresse",
"expires": "Expire", "expires": "Expire",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Requêtes", "totalQueries": "Requêtes",
"totalNoError": "Success", "totalNoError": "Effectué avec succès",
"totalServerFailure": "Failures", "totalServerFailure": "Échecs",
"totalNxDomain": "NX Domains", "totalNxDomain": "Domaines NX",
"totalRefused": "Refused", "totalRefused": "Refusés",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Autoritaire",
"totalRecursive": "Recursive", "totalRecursive": "Récursif",
"totalCached": "Cached", "totalCached": "Mis en cache",
"totalBlocked": "Bloqué", "totalBlocked": "Bloqué",
"totalDropped": "Dropped", "totalDropped": "Abandonné",
"totalClients": "Clients" "totalClients": "Clients"
}, },
"tdarr": { "tdarr": {
@@ -756,7 +766,7 @@
"books": "Livres", "books": "Livres",
"authors": "Auteurs", "authors": "Auteurs",
"categories": "Catégories", "categories": "Catégories",
"series": "Séries" "series": "Séries TV"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "En attente", "downloadCount": "En attente",
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "Plateformes", "platforms": "Plateformes",
"totalRoms": "Games", "totalRoms": "Jeux",
"saves": "Saves", "saves": "Sauvegardes",
"states": "States", "states": "États",
"screenshots": "Screenshots", "screenshots": "Captures d'écran",
"totalfilesize": "Total Size" "totalfilesize": "Taille totale"
}, },
"mailcow": { "mailcow": {
"domains": "Domaines", "domains": "Domaines",
"mailboxes": "Mailboxes", "mailboxes": "Boites mail",
"mails": "Mails", "mails": "Courriels",
"storage": "Stockage" "storage": "Stockage"
}, },
"netdata": { "netdata": {
@@ -922,36 +932,80 @@
"upload": "Envoi" "upload": "Envoi"
}, },
"stocks": { "stocks": {
"stocks": "Stocks", "stocks": "Actions",
"loading": "Loading", "loading": "Chargement",
"open": "Open - US Market", "open": "Ouvert - Marché américain",
"closed": "Closed - US Market", "closed": "Fermé - marché américain",
"invalidConfiguration": "Invalid Configuration" "invalidConfiguration": "Configuration invalide"
}, },
"frigate": { "frigate": {
"cameras": "Cameras", "cameras": "Caméras",
"uptime": "Démarré depuis", "uptime": "Démarré depuis",
"version": "Version" "version": "Version"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Liens",
"collections": "Collections", "collections": "Collections",
"tags": "Étiquettes" "tags": "Étiquettes"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Non classé",
"information": "Informations", "information": "Informations",
"warning": "Warning", "warning": "Attention",
"average": "Average", "average": "Moyenne",
"high": "High", "high": "Élevé",
"disaster": "Disaster" "disaster": ""
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Véhicule",
"vehicles": "Vehicles", "vehicles": "Véhicules",
"serviceRecords": "Service Records", "serviceRecords": "Service d'enregistrements",
"reminders": "Reminders", "reminders": "Rappels",
"nextReminder": "Next Reminder", "nextReminder": "Prochain rappel",
"none": "None" "none": "Aucun"
},
"vikunja": {
"projects": "Projets actifs",
"tasks7d": "Tâches à faire cette semaine",
"tasksOverdue": "Tâches en retard",
"tasksInProgress": "Tâche en cours"
},
"headscale": {
"name": "Nom",
"address": "Adresse",
"last_seen": "Vu pour la dernière fois",
"status": "Statut",
"online": "En ligne",
"offline": "Hors ligne"
},
"beszel": {
"name": "Nom",
"systems": "Systèmes",
"up": "Up",
"status": "Statut",
"updated": "Mis à jour",
"cpu": "CPU",
"memory": "MÉM",
"disk": "Disque",
"network": "Réseau"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Fonctionnel",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Manquant",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Chargement"
},
"gitlab": {
"groups": "Groups",
"issues": "Anomalies",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "נעצר", "stopped": "נעצר",
"total": "סה\"כ" "total": "סה\"כ"
}, },
"suwayomi": {
"download": "הורד",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "סטטוס",
"online": "Online",
"offline": "כבוי"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "סטטוס",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{value, date}", "date": "{value, date}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "माह", "months": "माह",
"days": "d", "days": "d",
"hours": "घं.", "hours": "घं.",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mj", "months": "mj",
"days": "dan(a)", "days": "dan(a)",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Prekinuto", "stopped": "Prekinuto",
"total": "Ukupno" "total": "Ukupno"
}, },
"suwayomi": {
"download": "Preuzeto",
"nondownload": "Non-Downloaded",
"read": "Pročitano",
"unread": "Nepročitano",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adresa", "address": "Adresa",
"expires": "Isteče", "expires": "Isteče",
@@ -844,11 +854,11 @@
}, },
"romm": { "romm": {
"platforms": "Platforme", "platforms": "Platforme",
"totalRoms": "Games", "totalRoms": "Igre",
"saves": "Saves", "saves": "Saves",
"states": "States", "states": "States",
"screenshots": "Screenshots", "screenshots": "Snimke ekrana",
"totalfilesize": "Total Size" "totalfilesize": "Ukupna veličina"
}, },
"mailcow": { "mailcow": {
"domains": "Domene", "domains": "Domene",
@@ -929,19 +939,19 @@
"invalidConfiguration": "Invalid Configuration" "invalidConfiguration": "Invalid Configuration"
}, },
"frigate": { "frigate": {
"cameras": "Cameras", "cameras": "Kamere",
"uptime": "Vrijeme rada", "uptime": "Vrijeme rada",
"version": "Verzija" "version": "Verzija"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Poveznice",
"collections": "Collections", "collections": "Zbirke",
"tags": "Oznake" "tags": "Oznake"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Not classified",
"information": "Informacije", "information": "Informacije",
"warning": "Warning", "warning": "Upozorenje",
"average": "Average", "average": "Average",
"high": "High", "high": "High",
"disaster": "Disaster" "disaster": "Disaster"
@@ -950,8 +960,52 @@
"vehicle": "Vehicle", "vehicle": "Vehicle",
"vehicles": "Vehicles", "vehicles": "Vehicles",
"serviceRecords": "Service Records", "serviceRecords": "Service Records",
"reminders": "Reminders", "reminders": "Podsjetnici",
"nextReminder": "Next Reminder", "nextReminder": "Sljedeći podsjetnik",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Ime",
"address": "Adresa",
"last_seen": "Zadnje viđeno",
"status": "Stanje",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Ime",
"systems": "Systems",
"up": "Dostupno",
"status": "Stanje",
"updated": "Aktualizirano",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Funkcionalno",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Nedostaje",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemi",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "hó", "months": "hó",
"days": "n", "days": "n",
"hours": "ó", "hours": "ó",
@@ -309,6 +309,16 @@
"stopped": "Megállított", "stopped": "Megállított",
"total": "Összes" "total": "Összes"
}, },
"suwayomi": {
"download": "Letöltött",
"nondownload": "Non-Downloaded",
"read": "Olvasott",
"unread": "Olvasatlan",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Cím", "address": "Cím",
"expires": "Lejár", "expires": "Lejár",
@@ -953,5 +963,49 @@
"reminders": "Emlékeztetők", "reminders": "Emlékeztetők",
"nextReminder": "Következő emlékeztető", "nextReminder": "Következő emlékeztető",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Név",
"address": "Cím",
"last_seen": "Utoljára látott",
"status": "Státusz",
"online": "Csatlakozva",
"offline": "Nem elérhető"
},
"beszel": {
"name": "Név",
"systems": "Systems",
"up": "Fel",
"status": "Státusz",
"updated": "Frissített",
"cpu": "Processzor",
"memory": "RAM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Egészséges",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Hiányzik",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problémák",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "bulan", "months": "bulan",
"days": "h", "days": "h",
"hours": "j", "hours": "j",
@@ -309,6 +309,16 @@
"stopped": "Terhenti", "stopped": "Terhenti",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Terunduh",
"nondownload": "Non-Downloaded",
"read": "Baca",
"unread": "Belum Dibaca",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Alamat", "address": "Alamat",
"expires": "Kadaluarsa", "expires": "Kadaluarsa",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nama",
"address": "Alamat",
"last_seen": "Terakhir terlihat",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Nama",
"systems": "Systems",
"up": "Hidup",
"status": "Status",
"updated": "Terbarui",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Lancar",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Tidak Ditemukan",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Isu",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "g", "days": "g",
"hours": "o", "hours": "o",
@@ -309,6 +309,16 @@
"stopped": "Fermati", "stopped": "Fermati",
"total": "Totale" "total": "Totale"
}, },
"suwayomi": {
"download": "Scaricato",
"nondownload": "Non-Downloaded",
"read": "Letti",
"unread": "Non letto",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Indirizzo", "address": "Indirizzo",
"expires": "Scade", "expires": "Scade",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nome",
"address": "Indirizzo",
"last_seen": "Ultima visualizzazione",
"status": "Stato",
"online": "Online",
"offline": "Non in linea"
},
"beszel": {
"name": "Nome",
"systems": "Systems",
"up": "Up",
"status": "Stato",
"updated": "Aggiornato",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sano",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Mancanti",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemi",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "月", "months": "月",
"days": "日", "days": "日",
"hours": "時間", "hours": "時間",
@@ -309,6 +309,16 @@
"stopped": "停止中", "stopped": "停止中",
"total": "合計" "total": "合計"
}, },
"suwayomi": {
"download": "ダウンロード",
"nondownload": "Non-Downloaded",
"read": "既読",
"unread": "未読",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "アドレス", "address": "アドレス",
"expires": "失効", "expires": "失効",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "名前",
"address": "アドレス",
"last_seen": "最終日時",
"status": "状態",
"online": "オンライン",
"offline": "オフライン"
},
"beszel": {
"name": "名前",
"systems": "Systems",
"up": "稼働",
"status": "状態",
"updated": "更新済",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "正常",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "不明",
"suspended": "Suspended"
},
"spoolman": {
"loading": "読み込み中"
},
"gitlab": {
"groups": "Groups",
"issues": "課題",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "중지", "stopped": "중지",
"total": "총합" "total": "총합"
}, },
"suwayomi": {
"download": "다운로드됨",
"nondownload": "Non-Downloaded",
"read": "읽음",
"unread": "미열람",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "주소", "address": "주소",
"expires": "만료", "expires": "만료",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "이름",
"address": "주소",
"last_seen": "마지막 접속",
"status": "상태",
"online": "온라인",
"offline": "중지"
},
"beszel": {
"name": "이름",
"systems": "Systems",
"up": "Up",
"status": "상태",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "좋음",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "빠짐",
"suspended": "Suspended"
},
"spoolman": {
"loading": "로드 중"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Kopā" "total": "Kopā"
}, },
"suwayomi": {
"download": "Lejupielādēts",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Statuss",
"online": "Online",
"offline": "Bezsaistē"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Statuss",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "bln", "months": "bln",
"days": "h", "days": "h",
"hours": "j", "hours": "j",
@@ -309,6 +309,16 @@
"stopped": "Terhenti", "stopped": "Terhenti",
"total": "Jumlah" "total": "Jumlah"
}, },
"suwayomi": {
"download": "Telah Muat Turun",
"nondownload": "Non-Downloaded",
"read": "Baca",
"unread": "Belum dibaca",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nama",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Dalam Talian",
"offline": "Luar talian"
},
"beszel": {
"name": "Nama",
"systems": "Systems",
"up": "Hidup",
"status": "Status",
"updated": "Dikemaskini",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sihat",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Hilang",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mnd", "months": "mnd",
"days": "d", "days": "d",
"hours": "u", "hours": "u",
@@ -309,6 +309,16 @@
"stopped": "Gestopt", "stopped": "Gestopt",
"total": "Totaal" "total": "Totaal"
}, },
"suwayomi": {
"download": "Gedownload",
"nondownload": "Non-Downloaded",
"read": "Gelezen",
"unread": "Ongelezen",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adres", "address": "Adres",
"expires": "Verloopt", "expires": "Verloopt",
@@ -852,7 +862,7 @@
}, },
"mailcow": { "mailcow": {
"domains": "Domeinen", "domains": "Domeinen",
"mailboxes": "Mailboxes", "mailboxes": "Mailboxen",
"mails": "Mails", "mails": "Mails",
"storage": "Opslag" "storage": "Opslag"
}, },
@@ -947,11 +957,55 @@
"disaster": "Disaster" "disaster": "Disaster"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Voertuig",
"vehicles": "Vehicles", "vehicles": "Voertuigen",
"serviceRecords": "Service Records", "serviceRecords": "Service Historie",
"reminders": "Reminders", "reminders": "Herinneringen",
"nextReminder": "Next Reminder", "nextReminder": "Volgende Herinnering",
"none": "None" "none": "Geen"
},
"vikunja": {
"projects": "Actieve Projecten",
"tasks7d": "Taken Die Deze Week Af Moeten Zijn",
"tasksOverdue": "Achterstallige Taken",
"tasksInProgress": "Taken In Uitvoering"
},
"headscale": {
"name": "Naam",
"address": "Adres",
"last_seen": "Laatst Gezien",
"status": "Status",
"online": "Bereikbaar",
"offline": "Offline"
},
"beszel": {
"name": "Naam",
"systems": "Systems",
"up": "Online",
"status": "Status",
"updated": "Bijgewerkt",
"cpu": "CPU",
"memory": "GEH",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Gezond",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Ontbreekt",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Laden"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemen",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mnd", "months": "mnd",
"days": "d", "days": "d",
"hours": "t", "hours": "t",
@@ -309,6 +309,16 @@
"stopped": "Stoppet", "stopped": "Stoppet",
"total": "Totalt" "total": "Totalt"
}, },
"suwayomi": {
"download": "Nedlastede",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Ulest",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adresse", "address": "Adresse",
"expires": "Utgår", "expires": "Utgår",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Navn",
"address": "Adresse",
"last_seen": "Sist sett",
"status": "Status",
"online": "På nett",
"offline": "Frakoblet"
},
"beszel": {
"name": "Navn",
"systems": "Systems",
"up": "Oppe",
"status": "Status",
"updated": "Oppdatert",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Friskt",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Mangler",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mc", "months": "mc",
"days": "d", "days": "d",
"hours": "g", "hours": "g",
@@ -309,6 +309,16 @@
"stopped": "Zatrzymane", "stopped": "Zatrzymane",
"total": "Całkowite" "total": "Całkowite"
}, },
"suwayomi": {
"download": "Pobrano",
"nondownload": "Non-Downloaded",
"read": "Przeczytane",
"unread": "Nieprzeczytane",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adres", "address": "Adres",
"expires": "Wygasa za", "expires": "Wygasa za",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Zapytania", "totalQueries": "Zapytania",
"totalNoError": "Success", "totalNoError": "Sukces",
"totalServerFailure": "Failures", "totalServerFailure": "Porażki",
"totalNxDomain": "NX Domains", "totalNxDomain": "Domeny NX",
"totalRefused": "Refused", "totalRefused": "Odrzucone",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Autorytatywne",
"totalRecursive": "Recursive", "totalRecursive": "Rekursywne",
"totalCached": "Cached", "totalCached": "Zbuforowane",
"totalBlocked": "Zablokowane", "totalBlocked": "Zablokowane",
"totalDropped": "Dropped", "totalDropped": "Upuszczone",
"totalClients": "Klienci" "totalClients": "Klienci"
}, },
"tdarr": { "tdarr": {
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "Platformy", "platforms": "Platformy",
"totalRoms": "Games", "totalRoms": "Gry",
"saves": "Saves", "saves": "Zapisy",
"states": "States", "states": "Stany",
"screenshots": "Screenshots", "screenshots": "Screeny",
"totalfilesize": "Total Size" "totalfilesize": "Rozmiar całkowity"
}, },
"mailcow": { "mailcow": {
"domains": "Domeny", "domains": "Domeny",
"mailboxes": "Mailboxes", "mailboxes": "Skrzynki",
"mails": "Mails", "mails": "Poczta",
"storage": "Pamięć" "storage": "Pamięć"
}, },
"netdata": { "netdata": {
@@ -939,12 +949,12 @@
"tags": "Tagi" "tags": "Tagi"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Niezaklasyfikowane",
"information": "Informacje", "information": "Informacje",
"warning": "Warning", "warning": "Ostrzeżenie",
"average": "Average", "average": "Średnia",
"high": "High", "high": "Wysokie",
"disaster": "Disaster" "disaster": "Katastrofa"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Vehicle",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nazwa",
"address": "Adres",
"last_seen": "Ostatnio dostępny",
"status": "Stan",
"online": "Dostępny",
"offline": "Nieosiągalny"
},
"beszel": {
"name": "Nazwa",
"systems": "Systems",
"up": "Dostępny",
"status": "Stan",
"updated": "Zaktualizowane",
"cpu": "Procesor",
"memory": "RAM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Zdrowy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Brakujące",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Wczytywanie"
},
"gitlab": {
"groups": "Groups",
"issues": "Zgłoszenia",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mês", "months": "mês",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -30,9 +30,9 @@
"response_data": "Dados da Resposta" "response_data": "Dados da Resposta"
}, },
"weather": { "weather": {
"current": "Localização atual", "current": "Localização actual",
"allow": "Clique para permitir", "allow": "Clique para permitir",
"updating": "Atualizando", "updating": "A actualizar",
"wait": "Por favor aguarde" "wait": "Por favor aguarde"
}, },
"search": { "search": {
@@ -79,7 +79,7 @@
"starting": "A iniciar", "starting": "A iniciar",
"unhealthy": "Não-saudável", "unhealthy": "Não-saudável",
"not_found": "Não Encontrado", "not_found": "Não Encontrado",
"exited": "Encerrado", "exited": "Saiu",
"partial": "Parcial" "partial": "Parcial"
}, },
"ping": { "ping": {
@@ -117,10 +117,10 @@
"evcc": { "evcc": {
"pv_power": "Produção", "pv_power": "Produção",
"battery_soc": "Bateria", "battery_soc": "Bateria",
"grid_power": "Grade", "grid_power": "Grelha",
"home_power": "Consumo", "home_power": "Consumo",
"charge_power": "Carregador", "charge_power": "Carregador",
"watt_hour": "Kw" "watt_hour": "Wh"
}, },
"flood": { "flood": {
"download": "Descarregar", "download": "Descarregar",
@@ -129,16 +129,16 @@
"seed": "Semente" "seed": "Semente"
}, },
"freshrss": { "freshrss": {
"subscriptions": "Assinaturas", "subscriptions": "Subscrições",
"unread": "Não lida" "unread": "Não lida"
}, },
"fritzbox": { "fritzbox": {
"connectionStatus": "Estado", "connectionStatus": "Estado",
"connectionStatusUnconfigured": "Não configurado", "connectionStatusUnconfigured": "Desconfigurado",
"connectionStatusConnecting": "A conectar", "connectionStatusConnecting": "A conectar",
"connectionStatusAuthenticating": "Autenticando", "connectionStatusAuthenticating": "A Autenticar",
"connectionStatusPendingDisconnect": "Desconexão pendente", "connectionStatusPendingDisconnect": "Desconexão pendente",
"connectionStatusDisconnecting": "Desconectando", "connectionStatusDisconnecting": "A Desconectar",
"connectionStatusDisconnected": "Desconectado", "connectionStatusDisconnected": "Desconectado",
"connectionStatusConnected": "Conectado", "connectionStatusConnected": "Conectado",
"uptime": "Ligado", "uptime": "Ligado",
@@ -148,19 +148,19 @@
"up": "Up", "up": "Up",
"received": "Recebido", "received": "Recebido",
"sent": "Enviado", "sent": "Enviado",
"externalIPAddress": "Endereço IP externo" "externalIPAddress": "Endereço IP Externo"
}, },
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Solicitações atuais", "requests": "Solicitações actuais",
"requests_failed": "Solicitações com falha" "requests_failed": "Solicitações falhadas"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observado", "totalObserved": "Total Observado",
"diffsDetected": "Diferenças Detetadas" "diffsDetected": "Diferenças Detectadas"
}, },
"channelsdvrserver": { "channelsdvrserver": {
"shows": "Shows", "shows": "Séries",
"recordings": "Gravações", "recordings": "Gravações",
"scheduled": "Agendado", "scheduled": "Agendado",
"passes": "Passes" "passes": "Passes"
@@ -170,7 +170,7 @@
"transcoding": "Transcodificação", "transcoding": "Transcodificação",
"bitrate": "Taxa de bits", "bitrate": "Taxa de bits",
"no_active": "Sem streams ativas", "no_active": "Sem streams ativas",
"plex_connection_error": "Verifique a conexão Plex" "plex_connection_error": "Verifique a conexão do Plex"
}, },
"omada": { "omada": {
"connectedAp": "APs Ligados", "connectedAp": "APs Ligados",
@@ -182,10 +182,10 @@
"nzbget": { "nzbget": {
"rate": "Taxa", "rate": "Taxa",
"remaining": "Restante", "remaining": "Restante",
"downloaded": "Baixado" "downloaded": "Descarregado"
}, },
"plex": { "plex": {
"streams": "Streams Ativas", "streams": "Streams Activas",
"albums": "Álbuns", "albums": "Álbuns",
"movies": "Filmes", "movies": "Filmes",
"tv": "Series de TV" "tv": "Series de TV"
@@ -193,10 +193,10 @@
"sabnzbd": { "sabnzbd": {
"rate": "Taxa", "rate": "Taxa",
"queue": "Fila", "queue": "Fila",
"timeleft": "Tempo restante" "timeleft": "Tempo Restante"
}, },
"rutorrent": { "rutorrent": {
"active": "Ativo", "active": "Activo",
"upload": "Carregar", "upload": "Carregar",
"download": "Descarregar" "download": "Descarregar"
}, },
@@ -214,8 +214,8 @@
}, },
"qnap": { "qnap": {
"cpuUsage": "Utilização do CPU", "cpuUsage": "Utilização do CPU",
"memUsage": "Utilização de memória", "memUsage": "Utilização de Memória",
"systemTempC": "Temperatura do sistema", "systemTempC": "Temperatura do Sistema",
"poolUsage": "Uso de Banco", "poolUsage": "Uso de Banco",
"volumeUsage": "Uso do Volume", "volumeUsage": "Uso do Volume",
"invalid": "Inválido" "invalid": "Inválido"
@@ -227,8 +227,8 @@
"seed": "Semente" "seed": "Semente"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "Bytes de Acerto na Memória transitória",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "Bytes de Falha de Memória transitória"
}, },
"downloadstation": { "downloadstation": {
"download": "Descarregar", "download": "Descarregar",
@@ -237,54 +237,54 @@
"seed": "Semente" "seed": "Semente"
}, },
"sonarr": { "sonarr": {
"wanted": "Desejada", "wanted": "Desejados",
"queued": "Em fila", "queued": "Em fila de espera",
"series": "Séries", "series": "Séries",
"queue": "Fila", "queue": "Fila",
"unknown": "Desconhecido" "unknown": "Desconhecido"
}, },
"radarr": { "radarr": {
"wanted": "Desejada", "wanted": "Desejados",
"missing": "Faltando", "missing": "Em falta",
"queued": "Em fila", "queued": "Em fila de espera",
"movies": "Filmes", "movies": "Filmes",
"queue": "Fila", "queue": "Fila",
"unknown": "Desconhecido" "unknown": "Desconhecido"
}, },
"lidarr": { "lidarr": {
"wanted": "Desejada", "wanted": "Desejados",
"queued": "Em fila", "queued": "Em fila de espera",
"artists": "Artistas" "artists": "Artistas"
}, },
"readarr": { "readarr": {
"wanted": "Desejada", "wanted": "Desejados",
"queued": "Em fila", "queued": "Em fila de espera",
"books": "Livros" "books": "Livros"
}, },
"bazarr": { "bazarr": {
"missingEpisodes": "Episódios Faltantes", "missingEpisodes": "Episódios em Falta",
"missingMovies": "Filmes Faltantes" "missingMovies": "Filmes em Falta"
}, },
"ombi": { "ombi": {
"pending": "Pendente", "pending": "Pendente",
"approved": "Aprovada", "approved": "Aprovado",
"available": "Disponível" "available": "Disponível"
}, },
"jellyseerr": { "jellyseerr": {
"pending": "Pendente", "pending": "Pendente",
"approved": "Aprovada", "approved": "Aprovado",
"available": "Disponível" "available": "Disponível"
}, },
"overseerr": { "overseerr": {
"pending": "Pendente", "pending": "Pendente",
"processing": "Processando", "processing": "A Processar",
"approved": "Aprovada", "approved": "Aprovado",
"available": "Disponível" "available": "Disponível"
}, },
"netalertx": { "netalertx": {
"total": "Total", "total": "Total",
"connected": "Conectado", "connected": "Conectado",
"new_devices": "Novos dispositivos", "new_devices": "Novos Dispositivos",
"down_alerts": "Alertas de Falha" "down_alerts": "Alertas de Falha"
}, },
"pihole": { "pihole": {
@@ -309,11 +309,21 @@
"stopped": "Parado", "stopped": "Parado",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Descarregado",
"nondownload": "Non-Downloaded",
"read": "Lido",
"unread": "Não lida",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Endereço", "address": "Endereço",
"expires": "Expira", "expires": "Expira",
"never": "Nunca", "never": "Nunca",
"last_seen": "Última vez visto", "last_seen": "Última Vez Visto",
"now": "Agora", "now": "Agora",
"years": "{{number}}y", "years": "{{number}}y",
"weeks": "{{number}}w", "weeks": "{{number}}w",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Consultas", "totalQueries": "Consultas",
"totalNoError": "Success", "totalNoError": "Sucesso",
"totalServerFailure": "Failures", "totalServerFailure": "Falhas",
"totalNxDomain": "NX Domains", "totalNxDomain": "Domínios NX",
"totalRefused": "Refused", "totalRefused": "Recusado",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Autoritário",
"totalRecursive": "Recursive", "totalRecursive": "Recursivo",
"totalCached": "Cached", "totalCached": "Em Memória transitória",
"totalBlocked": "Bloqueado", "totalBlocked": "Bloqueado",
"totalDropped": "Dropped", "totalDropped": "Perdidos",
"totalClients": "Clientes" "totalClients": "Clientes"
}, },
"tdarr": { "tdarr": {
@@ -345,19 +355,19 @@
"traefik": { "traefik": {
"routers": "Roteadores", "routers": "Roteadores",
"services": "Serviços", "services": "Serviços",
"middleware": "Software Middleware" "middleware": "Middleware"
}, },
"navidrome": { "navidrome": {
"nothing_streaming": "Sem streams ativas", "nothing_streaming": "Sem streams ativas",
"please_wait": "Por favor aguarde" "please_wait": "Por Favor, Aguarde"
}, },
"npm": { "npm": {
"enabled": "Ativo", "enabled": "Activo",
"disabled": "Desabilitado", "disabled": "Desabilitado",
"total": "Total" "total": "Total"
}, },
"coinmarketcap": { "coinmarketcap": {
"configure": "Configurar uma ou mais moedas", "configure": "Configure uma ou mais criptomoedas para rastrear",
"1hour": "1 Hora", "1hour": "1 Hora",
"1day": "1 Dia", "1day": "1 Dia",
"7days": "7 Dias", "7days": "7 Dias",
@@ -391,8 +401,8 @@
"domain_count": "Domínios" "domain_count": "Domínios"
}, },
"medusa": { "medusa": {
"wanted": "Desejada", "wanted": "Desejados",
"queued": "Em fila", "queued": "Em fila de espera",
"series": "Séries" "series": "Séries"
}, },
"minecraft": { "minecraft": {
@@ -408,8 +418,8 @@
}, },
"authentik": { "authentik": {
"users": "Utilizadores", "users": "Utilizadores",
"loginsLast24H": "Inícios de sessão (24h)", "loginsLast24H": "Inícios de Sessão (24h)",
"failedLoginsLast24H": "Inícios de sessão falhados (24h)" "failedLoginsLast24H": "Inícios de Sessão Falhados (24h)"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "MEM",
@@ -440,7 +450,7 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Marcador", "bookmark": "Marcador",
"service": "Serviço", "service": "Serviço",
"search": "Busca", "search": "Pesquisa",
"custom": "Personalizado", "custom": "Personalizado",
"visit": "Visitar", "visit": "Visitar",
"url": "Endereço URL", "url": "Endereço URL",
@@ -449,7 +459,7 @@
"wmo": { "wmo": {
"0-day": "Solarengo", "0-day": "Solarengo",
"0-night": "Limpo", "0-night": "Limpo",
"1-day": "Maioritariamente ensolarado", "1-day": "Maioritariamente Solarengo",
"1-night": "Maioritariamente Limpo", "1-night": "Maioritariamente Limpo",
"2-day": "Parcialmente Nublado", "2-day": "Parcialmente Nublado",
"2-night": "Parcialmente Nublado", "2-night": "Parcialmente Nublado",
@@ -487,16 +497,16 @@
"75-night": "Neve forte", "75-night": "Neve forte",
"77-day": "Grãos de Neve", "77-day": "Grãos de Neve",
"77-night": "Grãos de Neve", "77-night": "Grãos de Neve",
"80-day": "Neve fraca", "80-day": "Chuviscos Leves",
"80-night": "Neve fraca", "80-night": "Chuviscos Leves",
"81-day": "Chuviscos", "81-day": "Chuviscos",
"81-night": "Chuviscos", "81-night": "Chuviscos",
"82-day": "Chuviscos fortes", "82-day": "Chuviscos fortes",
"82-night": "Chuviscos fortes", "82-night": "Chuviscos fortes",
"85-day": "Precipitação de Neve", "85-day": "Chuva de Neve",
"85-night": "Precipitação de Neve", "85-night": "Chuva de Neve",
"86-day": "Precipitação de Neve", "86-day": "Chuva de Neve",
"86-night": "Precipitação de Neve", "86-night": "Chuva de Neve",
"95-day": "Trovoada", "95-day": "Trovoada",
"95-night": "Trovoada", "95-night": "Trovoada",
"96-day": "Trovoada com granizo", "96-day": "Trovoada com granizo",
@@ -506,10 +516,10 @@
}, },
"homebridge": { "homebridge": {
"available_update": "Sistema", "available_update": "Sistema",
"updates": "Atualizações", "updates": "Actualizações",
"update_available": "Atualização disponível", "update_available": "Atualização disponível",
"up_to_date": "Atualizado", "up_to_date": "Atualizado",
"child_bridges": "Pontes Filhas", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "Pendente", "pending": "Pendente",
@@ -518,12 +528,12 @@
"healthchecks": { "healthchecks": {
"new": "Novo", "new": "Novo",
"up": "Up", "up": "Up",
"grace": "Em Período Gratuito", "grace": "Em Período de Graça",
"down": "Down", "down": "Down",
"paused": "Pausado", "paused": "Pausa",
"status": "Estado", "status": "Estado",
"last_ping": "Ultimo Ping", "last_ping": "Ultimo Ping",
"never": "Nenhum ping ainda" "never": "Nenhum Ping ainda"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Verificado", "containers_scanned": "Verificado",
@@ -531,7 +541,7 @@
"containers_failed": "Falhou" "containers_failed": "Falhou"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovada", "approvedPushes": "Aprovado",
"rejectedPushes": "Rejeitado", "rejectedPushes": "Rejeitado",
"filters": "Filtros", "filters": "Filtros",
"indexers": "Indexadores" "indexers": "Indexadores"
@@ -549,7 +559,7 @@
}, },
"pyload": { "pyload": {
"speed": "Velocidade", "speed": "Velocidade",
"active": "Ativo", "active": "Activo",
"queue": "Fila", "queue": "Fila",
"total": "Total" "total": "Total"
}, },
@@ -588,8 +598,8 @@
"low_battery": "Bateria Fraca" "low_battery": "Bateria Fraca"
}, },
"nextdns": { "nextdns": {
"wait": "Por favor aguarde", "wait": "Por Favor, Aguarde",
"no_devices": "Nenhum dado do dispositivo recebido" "no_devices": "Nenhum Dado do Dispositivo Recebido"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "Carga do CPU", "cpuLoad": "Carga do CPU",
@@ -599,7 +609,7 @@
}, },
"xteve": { "xteve": {
"streams_all": "Todos os Streams", "streams_all": "Todos os Streams",
"streams_active": "Streams Ativas", "streams_active": "Streams Activas",
"streams_xepg": "Canais XEPG" "streams_xepg": "Canais XEPG"
}, },
"opendtu": { "opendtu": {
@@ -637,7 +647,7 @@
"up": "Up", "up": "Up",
"down": "Down", "down": "Down",
"temp": "Temp", "temp": "Temp",
"disk": "Utilização", "disk": "Utilização do Disco",
"wanIP": "WAN IP" "wanIP": "WAN IP"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
@@ -678,17 +688,17 @@
"mylar": { "mylar": {
"series": "Séries", "series": "Séries",
"issues": "Problemas", "issues": "Problemas",
"wanted": "Desejada" "wanted": "Desejados"
}, },
"photoprism": { "photoprism": {
"albums": "Álbuns", "albums": "Álbuns",
"photos": "Fotos", "photos": "Fotos",
"videos": "Vídeos", "videos": "Vídeos",
"people": "Pessoa" "people": "Pessoas"
}, },
"fileflows": { "fileflows": {
"queue": "Fila", "queue": "Fila",
"processing": "Processando", "processing": "A Processar",
"processed": "Processado", "processed": "Processado",
"time": "Hora" "time": "Hora"
}, },
@@ -696,13 +706,13 @@
"dashboards": "Painéis", "dashboards": "Painéis",
"datasources": "Origem de Dados", "datasources": "Origem de Dados",
"totalalerts": "Total Alertas", "totalalerts": "Total Alertas",
"alertstriggered": "Alertas Disparados" "alertstriggered": "Alertas Desencadeados"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Carga de CPU", "cpuload": "Carga de CPU",
"memoryusage": "Memória Utilizada", "memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre", "freespace": "Espaço Livre",
"activeusers": "Utilizadores Ativos", "activeusers": "Utilizadores Activos",
"numfiles": "Ficheiros", "numfiles": "Ficheiros",
"numshares": "Itens partilhados" "numshares": "Itens partilhados"
}, },
@@ -724,7 +734,7 @@
}, },
"prometheus": { "prometheus": {
"targets_up": "Alvo ativo", "targets_up": "Alvo ativo",
"targets_down": "Alvo inativo", "targets_down": "Alvo Inactivo",
"targets_total": "Total de Alvos" "targets_total": "Total de Alvos"
}, },
"gatus": { "gatus": {
@@ -735,7 +745,7 @@
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Hoje", "gross_percent_today": "Hoje",
"gross_percent_1y": "Um ano", "gross_percent_1y": "Um ano",
"gross_percent_max": "Todo o tempo" "gross_percent_max": "Desde Sempre"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podcasts",
@@ -750,7 +760,7 @@
}, },
"whatsupdocker": { "whatsupdocker": {
"monitoring": "A monitorizar", "monitoring": "A monitorizar",
"updates": "Atualizações" "updates": "Actualizações"
}, },
"calibreweb": { "calibreweb": {
"books": "Livros", "books": "Livros",
@@ -772,14 +782,14 @@
"result": "Resultado", "result": "Resultado",
"status": "Estado", "status": "Estado",
"buildId": "ID da compilação", "buildId": "ID da compilação",
"succeeded": "Com êxito", "succeeded": "Bem sucedido",
"notStarted": "Não Iniciado", "notStarted": "Não Iniciado",
"failed": "Falhou", "failed": "Falhou",
"canceled": "Cancelado", "canceled": "Cancelado",
"inProgress": "Em progresso", "inProgress": "Em progresso",
"totalPrs": "Total de PRs", "totalPrs": "Total de PRs",
"myPrs": "Meus PRs", "myPrs": "Os Meus PRs",
"approved": "Aprovada" "approved": "Aprovado"
}, },
"gamedig": { "gamedig": {
"status": "Estado", "status": "Estado",
@@ -787,7 +797,7 @@
"offline": "Desligado", "offline": "Desligado",
"name": "Nome", "name": "Nome",
"map": "Mapa", "map": "Mapa",
"currentPlayers": "Jogadores atuais", "currentPlayers": "Jogadores actuais",
"players": "Reprodutores", "players": "Reprodutores",
"maxPlayers": "Máximo de Jogadores", "maxPlayers": "Máximo de Jogadores",
"bots": "Bots", "bots": "Bots",
@@ -796,7 +806,7 @@
"urbackup": { "urbackup": {
"ok": "Ok", "ok": "Ok",
"errored": "Erros", "errored": "Erros",
"noRecent": "Desatualizado", "noRecent": "Desactualizado",
"totalUsed": "Espaço utilizado" "totalUsed": "Espaço utilizado"
}, },
"mealie": { "mealie": {
@@ -806,7 +816,7 @@
"tags": "Etiquetas" "tags": "Etiquetas"
}, },
"openmediavault": { "openmediavault": {
"downloading": "A transferir", "downloading": "A descarregar",
"total": "Total", "total": "Total",
"running": "A correr", "running": "A correr",
"stopped": "Parado", "stopped": "Parado",
@@ -824,14 +834,14 @@
"uptimerobot": { "uptimerobot": {
"status": "Estado", "status": "Estado",
"uptime": "Ligado", "uptime": "Ligado",
"lastDown": "Última inatividade", "lastDown": "Última Inactividade",
"downDuration": "Duração de inatividade", "downDuration": "Duração de Inactividade",
"sitesUp": "Sites no Ar", "sitesUp": "Sites no Ar",
"sitesDown": "Sites Fora do Ar", "sitesDown": "Sites Fora do Ar",
"paused": "Pausado", "paused": "Pausa",
"notyetchecked": "Ainda não verificado", "notyetchecked": "Ainda não verificado",
"up": "Up", "up": "Up",
"seemsdown": "Parece Baixo", "seemsdown": "Parece em Baixo",
"down": "Down", "down": "Down",
"unknown": "Desconhecido" "unknown": "Desconhecido"
}, },
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "Plataformas", "platforms": "Plataformas",
"totalRoms": "Games", "totalRoms": "Jogos",
"saves": "Saves", "saves": "Saves",
"states": "States", "states": "Estados",
"screenshots": "Screenshots", "screenshots": "Screenshots",
"totalfilesize": "Total Size" "totalfilesize": "Tamanho Total"
}, },
"mailcow": { "mailcow": {
"domains": "Domínios", "domains": "Domínios",
"mailboxes": "Mailboxes", "mailboxes": "Caixas de Correio",
"mails": "Mails", "mails": "E-mails",
"storage": "Armazenamento" "storage": "Armazenamento"
}, },
"netdata": { "netdata": {
@@ -881,7 +891,7 @@
"images": "Imagens", "images": "Imagens",
"imageSize": "Tamanho das imagens", "imageSize": "Tamanho das imagens",
"galleries": "Galerias", "galleries": "Galerias",
"performers": "Artistas", "performers": "Artistas de palco",
"studios": "Estúdios", "studios": "Estúdios",
"movies": "Filmes", "movies": "Filmes",
"tags": "Etiquetas", "tags": "Etiquetas",
@@ -906,14 +916,14 @@
}, },
"wgeasy": { "wgeasy": {
"connected": "Conectado", "connected": "Conectado",
"enabled": "Ativo", "enabled": "Activo",
"disabled": "Desabilitado", "disabled": "Desabilitado",
"total": "Total" "total": "Total"
}, },
"swagdashboard": { "swagdashboard": {
"proxied": "Com proxy", "proxied": "Com proxy",
"auth": "Com Autorização", "auth": "Com Autorização",
"outdated": "Desatualizado", "outdated": "Desactualizado",
"banned": "Banido" "banned": "Banido"
}, },
"myspeed": { "myspeed": {
@@ -922,36 +932,80 @@
"upload": "Carregar" "upload": "Carregar"
}, },
"stocks": { "stocks": {
"stocks": "Ações", "stocks": "Acções",
"loading": "Carregando", "loading": "A carregar",
"open": "Aberto - Mercado dos EUA", "open": "Aberto - Mercado dos EUA",
"closed": "Fechado - Mercado dos EUA", "closed": "Fechado - Mercado dos EUA",
"invalidConfiguration": "Configuração inválida" "invalidConfiguration": "Configuração Inválida"
}, },
"frigate": { "frigate": {
"cameras": "Câmaras", "cameras": "Câmeras",
"uptime": "Ligado", "uptime": "Ligado",
"version": "Versão" "version": "Versão"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Links",
"collections": "Collections", "collections": "Colecções",
"tags": "Etiquetas" "tags": "Etiquetas"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Não Classificados",
"information": "Informação", "information": "Informação",
"warning": "Warning", "warning": "Avisos",
"average": "Average", "average": "Média",
"high": "High", "high": "Elevado",
"disaster": "Disaster" "disaster": "Desastre"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Veículo",
"vehicles": "Vehicles", "vehicles": "Veículos",
"serviceRecords": "Service Records", "serviceRecords": "Registros de Serviço",
"reminders": "Reminders", "reminders": "Lembretes",
"nextReminder": "Next Reminder", "nextReminder": "Próximo Lembrete",
"none": "None" "none": "Nenhum"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nome",
"address": "Endereço",
"last_seen": "Última Vez Visto",
"status": "Estado",
"online": "Online",
"offline": "Desligado"
},
"beszel": {
"name": "Nome",
"systems": "Systems",
"up": "Up",
"status": "Estado",
"updated": "Atualizado",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Saudável",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Em falta",
"suspended": "Suspended"
},
"spoolman": {
"loading": "A carregar"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemas",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "M", "months": "M",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Parado", "stopped": "Parado",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Baixado",
"nondownload": "Non-Downloaded",
"read": "Lido",
"unread": "Não lida",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Endereço", "address": "Endereço",
"expires": "Expira em", "expires": "Expira em",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Nome",
"address": "Endereço",
"last_seen": "Visto por último",
"status": "Status",
"online": "Disponível",
"offline": "Offline"
},
"beszel": {
"name": "Nome",
"systems": "Systems",
"up": "Ativo",
"status": "Status",
"updated": "Atualizado",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Saudável",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Faltando",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Carregando"
},
"gitlab": {
"groups": "Groups",
"issues": "Problemas",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Oprit", "stopped": "Oprit",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Descărcat",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Necitit",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Stare",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Sus",
"status": "Stare",
"updated": "Updated",
"cpu": "Procesor",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sănătos",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "мес", "months": "мес",
"days": "дней", "days": "дней",
"hours": "час", "hours": "час",
@@ -227,8 +227,8 @@
"seed": "Сид" "seed": "Сид"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "Хит байты кэша",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "Мисс байты кэша"
}, },
"downloadstation": { "downloadstation": {
"download": "Скачивание", "download": "Скачивание",
@@ -284,7 +284,7 @@
"netalertx": { "netalertx": {
"total": "Всего", "total": "Всего",
"connected": "Подключено", "connected": "Подключено",
"new_devices": "Новое устройство", "new_devices": "Новые устройства",
"down_alerts": "Оповещение о недоступности" "down_alerts": "Оповещение о недоступности"
}, },
"pihole": { "pihole": {
@@ -309,6 +309,16 @@
"stopped": "Остановлено", "stopped": "Остановлено",
"total": "Всего" "total": "Всего"
}, },
"suwayomi": {
"download": "Загружено",
"nondownload": "Незагруженные",
"read": "Прочитано",
"unread": "Не прочитано",
"downloadedread": "Загруженные и прочитанные",
"downloadedunread": "Загруженные и непрочитанные",
"nondownloadedread": "Незагруженные и прочитанные",
"nondownloadedunread": "Незагруженные и непрочитанные"
},
"tailscale": { "tailscale": {
"address": "Адрес", "address": "Адрес",
"expires": "Истекает", "expires": "Истекает",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Запросы", "totalQueries": "Запросы",
"totalNoError": "Success", "totalNoError": "Успешные",
"totalServerFailure": "Failures", "totalServerFailure": "Ошибки",
"totalNxDomain": "NX Domains", "totalNxDomain": "NX домены",
"totalRefused": "Refused", "totalRefused": "Отказано",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Авторитетные",
"totalRecursive": "Recursive", "totalRecursive": "Рекурсивные",
"totalCached": "Cached", "totalCached": "Кэш",
"totalBlocked": "Заблокировано", "totalBlocked": "Заблокировано",
"totalDropped": "Dropped", "totalDropped": "Отброшенные",
"totalClients": "Клиенты" "totalClients": "Клиенты"
}, },
"tdarr": { "tdarr": {
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "Платформы", "platforms": "Платформы",
"totalRoms": "Games", "totalRoms": "Игры",
"saves": "Saves", "saves": "Сейвы",
"states": "States", "states": "Состояния",
"screenshots": "Screenshots", "screenshots": "Скриншоты",
"totalfilesize": "Total Size" "totalfilesize": "Общий объем"
}, },
"mailcow": { "mailcow": {
"domains": "Домены", "domains": "Домены",
"mailboxes": "Mailboxes", "mailboxes": "Почтовые ящики",
"mails": "Mails", "mails": "Письма",
"storage": "Хранилище" "storage": "Хранилище"
}, },
"netdata": { "netdata": {
@@ -902,7 +912,7 @@
}, },
"crowdsec": { "crowdsec": {
"alerts": "Предупреждения", "alerts": "Предупреждения",
"bans": "Запреты" "bans": "Блокировки"
}, },
"wgeasy": { "wgeasy": {
"connected": "Подключено", "connected": "Подключено",
@@ -911,10 +921,10 @@
"total": "Всего" "total": "Всего"
}, },
"swagdashboard": { "swagdashboard": {
"proxied": "Proxied", "proxied": "Прокси",
"auth": "With Auth", "auth": "С Авторизацией",
"outdated": "Outdated", "outdated": "Устаревшие",
"banned": "Banned" "banned": "Заблокированные"
}, },
"myspeed": { "myspeed": {
"ping": "Пинг", "ping": "Пинг",
@@ -922,36 +932,80 @@
"upload": "Загрузка" "upload": "Загрузка"
}, },
"stocks": { "stocks": {
"stocks": "Stocks", "stocks": "Акции",
"loading": "Loading", "loading": "Загрузка",
"open": "Open - US Market", "open": "Открыто - Рынок США",
"closed": "Closed - US Market", "closed": "Закрыто - рынок США",
"invalidConfiguration": "Invalid Configuration" "invalidConfiguration": "Неверная конфигурация"
}, },
"frigate": { "frigate": {
"cameras": "Cameras", "cameras": "Камеры",
"uptime": "Время работы", "uptime": "Время работы",
"version": "Версия" "version": "Версия"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Ссылки",
"collections": "Collections", "collections": "Коллекции",
"tags": "Теги" "tags": "Теги"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Не классифицировано",
"information": "Информация", "information": "Информация",
"warning": "Warning", "warning": "Предупреждение",
"average": "Average", "average": "Средняя",
"high": "High", "high": "Высокая",
"disaster": "Disaster" "disaster": "Чрезвычайная"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Автомобиль",
"vehicles": "Vehicles", "vehicles": "Автомобили",
"serviceRecords": "Service Records", "serviceRecords": "Сервисные работы",
"reminders": "Reminders", "reminders": "Напоминания",
"nextReminder": "Next Reminder", "nextReminder": "Следующее напоминание",
"none": "None" "none": "Нет"
},
"vikunja": {
"projects": "Активные Проекты",
"tasks7d": "Задачи на этой неделе",
"tasksOverdue": "Просроченные задачи",
"tasksInProgress": "Задачи в процессе"
},
"headscale": {
"name": "Имя",
"address": "Адрес",
"last_seen": "Последнее посещение",
"status": "Статус",
"online": "В сети",
"offline": "Не в сети"
},
"beszel": {
"name": "Имя",
"systems": "Системы",
"up": "Онлайн",
"status": "Статус",
"updated": "Обновленно",
"cpu": "ЦП",
"memory": "ОЗУ",
"disk": "Диск",
"network": "Сеть"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Здоровый",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Отсутствует",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Загрузка"
},
"gitlab": {
"groups": "Groups",
"issues": "Вопросы",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mes", "months": "mes",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Zastavené", "stopped": "Zastavené",
"total": "Celkovo" "total": "Celkovo"
}, },
"suwayomi": {
"download": "Stiahnuté",
"nondownload": "Non-Downloaded",
"read": "Prečítané",
"unread": "Neprečítané",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adresa", "address": "Adresa",
"expires": "Vyprší", "expires": "Vyprší",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Meno",
"address": "Adresa",
"last_seen": "Naposledy videné",
"status": "Stav",
"online": "Online",
"offline": "Nedostupný"
},
"beszel": {
"name": "Meno",
"systems": "Systems",
"up": "Nahrávanie",
"status": "Stav",
"updated": "Aktualizované",
"cpu": "CPU",
"memory": "RAM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Zdravý",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Chýbajúce",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Problémy",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mes", "months": "mes",
"days": "d", "days": "d",
"hours": "u", "hours": "u",
@@ -309,6 +309,16 @@
"stopped": "Ustavljen", "stopped": "Ustavljen",
"total": "Skupaj" "total": "Skupaj"
}, },
"suwayomi": {
"download": "Preneseno",
"nondownload": "Nepreneseno",
"read": "Prebrano",
"unread": "Neprebrano",
"downloadedread": "Preneseno in prebrano",
"downloadedunread": "Preneseno in neprebrano",
"nondownloadedread": "Nepreneseno in prebrano",
"nondownloadedunread": "Nepreneseno in neprebrano"
},
"tailscale": { "tailscale": {
"address": "Naslov", "address": "Naslov",
"expires": "Poteče", "expires": "Poteče",
@@ -953,5 +963,49 @@
"reminders": "Opomniki", "reminders": "Opomniki",
"nextReminder": "Naslednji opomnik", "nextReminder": "Naslednji opomnik",
"none": "Brez" "none": "Brez"
},
"vikunja": {
"projects": "Aktivni projekti",
"tasks7d": "Potekla opravila tega tedna",
"tasksOverdue": "Potekla opravila",
"tasksInProgress": "Tekoča opravila"
},
"headscale": {
"name": "Naziv",
"address": "Naslov",
"last_seen": "Viden",
"status": "Stanje",
"online": "Na spletu",
"offline": "Ni povezan"
},
"beszel": {
"name": "Naziv",
"systems": "Sistemi",
"up": "Povezan",
"status": "Stanje",
"updated": "Posodobljen",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "Mreža"
},
"argocd": {
"apps": "Aplikacije",
"synced": "Sinhro",
"outOfSync": "Ni sinhro",
"healthy": "Zdrav",
"degraded": "Degragirano",
"progressing": "V teku",
"missing": "Manjka",
"suspended": "Prekinjeno"
},
"spoolman": {
"loading": "Nalaganje"
},
"gitlab": {
"groups": "Groups",
"issues": "Težave",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mån", "months": "mån",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stoppade", "stopped": "Stoppade",
"total": "Total" "total": "Total"
}, },
"suwayomi": {
"download": "Nedladdat",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "ఆగిపోయినవి", "stopped": "ఆగిపోయినవి",
"total": "మొత్తం" "total": "మొత్తం"
}, },
"suwayomi": {
"download": "డౌన్‌లోడ్ చేయబడింది",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "హోదా",
"online": "Online",
"offline": "ఆఫ్‌లైన్"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "హోదా",
"updated": "నవీకరించబడింది",
"cpu": "సీపియూ",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "మిస్సింగ్",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "ทั้งหมด" "total": "ทั้งหมด"
}, },
"suwayomi": {
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "สถานะ",
"online": "Online",
"offline": "ออฟไลน์"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "สถานะ",
"updated": "Updated",
"cpu": "ซีพียู",
"memory": "เมม",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "ay", "months": "ay",
"days": "g", "days": "g",
"hours": "sa", "hours": "sa",
@@ -309,6 +309,16 @@
"stopped": "Durduruldu", "stopped": "Durduruldu",
"total": "Toplam" "total": "Toplam"
}, },
"suwayomi": {
"download": "İndirilen",
"nondownload": "Non-Downloaded",
"read": "Okunan",
"unread": "Okunmamış",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Adres", "address": "Adres",
"expires": "Geciken", "expires": "Geciken",
@@ -853,7 +863,7 @@
"mailcow": { "mailcow": {
"domains": "Etki Alanları", "domains": "Etki Alanları",
"mailboxes": "Mailboxes", "mailboxes": "Mailboxes",
"mails": "Mails", "mails": "Postalar",
"storage": "Depo" "storage": "Depo"
}, },
"netdata": { "netdata": {
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Bitişi Bu Hafta Olan Görevler",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "İsim",
"address": "Adres",
"last_seen": "Son Görülme",
"status": "Durum",
"online": "Çevrimiçi",
"offline": "Çevrimdışı"
},
"beszel": {
"name": "İsim",
"systems": "Systems",
"up": "Yükleme",
"status": "Durum",
"updated": "Güncellendi",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sağlıklı",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Eksik",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Yükleniyor"
},
"gitlab": {
"groups": "Groups",
"issues": "Sorunlar",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,10 +13,10 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "міс", "months": "міс",
"days": "д", "days": нів",
"hours": "г", "hours": "год",
"minutes": "хв", "minutes": "хв",
"seconds": "с" "seconds": "с"
}, },
@@ -47,7 +47,7 @@
"load": "Завантаження", "load": "Завантаження",
"temp": "Температура", "temp": "Температура",
"max": "Макс.", "max": "Макс.",
"uptime": "Відправка" "uptime": "Онлайн"
}, },
"unifi": { "unifi": {
"users": "Користувачі", "users": "Користувачі",
@@ -61,7 +61,7 @@
"wlan_devices": "WLAN пристрої", "wlan_devices": "WLAN пристрої",
"lan_users": "LAN користувачі", "lan_users": "LAN користувачі",
"wlan_users": "WLAN користувачі", "wlan_users": "WLAN користувачі",
"up": "Відправка", "up": "Онлайн",
"down": "Завантаження", "down": "Завантаження",
"wait": "Будь ласка, зачекайте", "wait": "Будь ласка, зачекайте",
"empty_data": "Статус підсистеми невідомий" "empty_data": "Статус підсистеми невідомий"
@@ -75,7 +75,7 @@
"offline": "Офлайн", "offline": "Офлайн",
"error": "Помилка", "error": "Помилка",
"unknown": "Невідомий", "unknown": "Невідомий",
"healthy": "Здоров", "healthy": "Здоровий",
"starting": "Запуск", "starting": "Запуск",
"unhealthy": "Нездоровий", "unhealthy": "Нездоровий",
"not_found": "Не знайдено", "not_found": "Не знайдено",
@@ -99,7 +99,7 @@
}, },
"emby": { "emby": {
"playing": "Відтворення", "playing": "Відтворення",
"transcoding": "Перекодування", "transcoding": "Транскодування",
"bitrate": "Бітрейт", "bitrate": "Бітрейт",
"no_active": "Немає активних потоків", "no_active": "Немає активних потоків",
"movies": "Фільми", "movies": "Фільми",
@@ -123,8 +123,8 @@
"watt_hour": "Вт/год" "watt_hour": "Вт/год"
}, },
"flood": { "flood": {
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення", "upload": "Відправлено",
"leech": "Ліч", "leech": "Ліч",
"seed": "Сід" "seed": "Сід"
}, },
@@ -142,13 +142,13 @@
"connectionStatusDisconnected": "Відключено", "connectionStatusDisconnected": "Відключено",
"connectionStatusConnected": "З'єднано", "connectionStatusConnected": "З'єднано",
"uptime": "Час роботи", "uptime": "Час роботи",
"maxDown": "Макс. зав", "maxDown": "Макс. завантаження",
"maxUp": "Макс. віддача", "maxUp": "Макс. віддача",
"down": "Офлайн", "down": "Офлайн",
"up": "Онлайн", "up": "Онлайн",
"received": "Отримано", "received": "Отримано",
"sent": "Надісл.", "sent": "Надіслано",
"externalIPAddress": "Зовн. IP" "externalIPAddress": "Зовнішній IP"
}, },
"caddy": { "caddy": {
"upstreams": "Потоки", "upstreams": "Потоки",
@@ -163,11 +163,11 @@
"shows": "Вистави", "shows": "Вистави",
"recordings": "Записи", "recordings": "Записи",
"scheduled": "Заплановано", "scheduled": "Заплановано",
"passes": ерепустки" "passes": ропуски"
}, },
"tautulli": { "tautulli": {
"playing": "Відтворення", "playing": "Відтворення",
"transcoding": "Перекодування", "transcoding": "Транскодування",
"bitrate": "Бітрейт", "bitrate": "Бітрейт",
"no_active": "Немає активних потоків", "no_active": "Немає активних потоків",
"plex_connection_error": "Перевірте з'єднання Plex" "plex_connection_error": "Перевірте з'єднання Plex"
@@ -197,18 +197,18 @@
}, },
"rutorrent": { "rutorrent": {
"active": "Активний", "active": "Активний",
"upload": "Відправлення", "upload": "Відправлено",
"download": "Завантаження" "download": "Завантажено"
}, },
"transmission": { "transmission": {
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення", "upload": "Відправлено",
"leech": "Ліч", "leech": "Ліч",
"seed": "Сід" "seed": "Сід"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення", "upload": "Відправлено",
"leech": "Ліч", "leech": "Ліч",
"seed": "Сід" "seed": "Сід"
}, },
@@ -221,18 +221,18 @@
"invalid": "Недійсний" "invalid": "Недійсний"
}, },
"deluge": { "deluge": {
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення", "upload": "Відправлено",
"leech": "Ліч", "leech": "Ліч",
"seed": "Сід" "seed": "Сід"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "Кеш-хіт байт",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "Кеш-міс байт"
}, },
"downloadstation": { "downloadstation": {
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення", "upload": "Відправлено",
"leech": "Ліч", "leech": "Ліч",
"seed": "Сід" "seed": "Сід"
}, },
@@ -300,8 +300,8 @@
"latency": "Затримка" "latency": "Затримка"
}, },
"speedtest": { "speedtest": {
"upload": "Відправлення", "upload": "Відправлено",
"download": "Завантаження", "download": "Завантажено",
"ping": "Пінг" "ping": "Пінг"
}, },
"portainer": { "portainer": {
@@ -309,6 +309,16 @@
"stopped": "Зупинено", "stopped": "Зупинено",
"total": "Усього" "total": "Усього"
}, },
"suwayomi": {
"download": "Завантажено",
"nondownload": "Non-Downloaded",
"read": "Прочитано",
"unread": "Не прочитано",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Адреса", "address": "Адреса",
"expires": "Дійсний до", "expires": "Дійсний до",
@@ -325,15 +335,15 @@
}, },
"technitium": { "technitium": {
"totalQueries": "Запити", "totalQueries": "Запити",
"totalNoError": "Success", "totalNoError": "Успішно",
"totalServerFailure": "Failures", "totalServerFailure": "Помилки",
"totalNxDomain": "NX Domains", "totalNxDomain": "NX Домени",
"totalRefused": "Refused", "totalRefused": "Відмовлено",
"totalAuthoritative": "Authoritative", "totalAuthoritative": "Авторитетні",
"totalRecursive": "Recursive", "totalRecursive": "Рекурсивні",
"totalCached": "Cached", "totalCached": "Кешовані",
"totalBlocked": "Заблоковано", "totalBlocked": "Заблоковано",
"totalDropped": "Dropped", "totalDropped": "Видалені",
"totalClients": "Клієнти" "totalClients": "Клієнти"
}, },
"tdarr": { "tdarr": {
@@ -424,12 +434,12 @@
"temp": "Температура", "temp": "Температура",
"_temp": "Темп.", "_temp": "Темп.",
"warn": "Увага", "warn": "Увага",
"uptime": "Відправка", "uptime": "Онлайн",
"total": "Усього", "total": "Усього",
"free": "Вільно", "free": "Вільно",
"used": "Використано", "used": "Використано",
"days": "д", "days": нів",
"hours": "г", "hours": "год",
"crit": "Крит", "crit": "Крит",
"read": "Прочитано", "read": "Прочитано",
"write": "Написати", "write": "Написати",
@@ -815,77 +825,77 @@
}, },
"openwrt": { "openwrt": {
"uptime": "Час роботи", "uptime": "Час роботи",
"cpuLoad": "CPU Load Avg (5m)", "cpuLoad": "Сер. навантаження ЦП (5 хв)",
"up": "Онлайн", "up": "Онлайн",
"down": "Офлайн", "down": "Офлайн",
"bytesTx": "Transmitted", "bytesTx": "Передано",
"bytesRx": "Отримано" "bytesRx": "Отримано"
}, },
"uptimerobot": { "uptimerobot": {
"status": "Стан", "status": "Стан",
"uptime": "Час роботи", "uptime": "Час роботи",
"lastDown": "Last Downtime", "lastDown": "Останній час простою",
"downDuration": "Downtime Duration", "downDuration": "Тривалість простою",
"sitesUp": "Активні сайти", "sitesUp": "Активні сайти",
"sitesDown": "Неактивні сайти", "sitesDown": "Неактивні сайти",
"paused": "Призупинено", "paused": "Призупинено",
"notyetchecked": "Not Yet Checked", "notyetchecked": "Ще не перевірено",
"up": "Онлайн", "up": "Онлайн",
"seemsdown": "Seems Down", "seemsdown": "Вірогідно в простої",
"down": "Офлайн", "down": "Офлайн",
"unknown": "Невідомий" "unknown": "Невідомий"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "У кінотеатрах",
"physicalRelease": "Physical release", "physicalRelease": "Фізичний реліз",
"digitalRelease": "Digital release", "digitalRelease": "Цифровий реліз",
"noEventsToday": "No events for today!", "noEventsToday": "Події на сьогодні відсутні",
"noEventsFound": "No events found" "noEventsFound": "Події не знайдено"
}, },
"romm": { "romm": {
"platforms": "Platforms", "platforms": "Платформи",
"totalRoms": "Games", "totalRoms": "Ігри",
"saves": "Saves", "saves": "Збереження",
"states": "States", "states": "Штати",
"screenshots": "Screenshots", "screenshots": "Знімки екрану",
"totalfilesize": "Total Size" "totalfilesize": "Загальний обсяг"
}, },
"mailcow": { "mailcow": {
"domains": "Домени", "domains": "Домени",
"mailboxes": "Mailboxes", "mailboxes": "Пошта",
"mails": "Mails", "mails": "Листи",
"storage": "Сховище" "storage": "Сховище"
}, },
"netdata": { "netdata": {
"warnings": "Попередження", "warnings": "Попередження",
"criticals": "Criticals" "criticals": "Критичні"
}, },
"plantit": { "plantit": {
"events": "Events", "events": "Події",
"plants": "Plants", "plants": "Рослини",
"photos": "Фотографії", "photos": "Фотографії",
"species": "Species" "species": "Види"
}, },
"gitea": { "gitea": {
"notifications": "Сповіщення", "notifications": "Сповіщення",
"issues": "Питання", "issues": "Питання",
"pulls": "Pull Requests" "pulls": "Pull-запити"
}, },
"stash": { "stash": {
"scenes": "Scenes", "scenes": "Сцени",
"scenesPlayed": "Scenes Played", "scenesPlayed": "Зіграні сцени",
"playCount": "Total Plays", "playCount": "Всього п'єс",
"playDuration": "Time Watched", "playDuration": "Переглянуто",
"sceneSize": "Scenes Size", "sceneSize": "Розміри сцен",
"sceneDuration": "Scenes Duration", "sceneDuration": "Тривалість сцен",
"images": "Images", "images": "Зображення",
"imageSize": "Images Size", "imageSize": "Розміри зображень",
"galleries": "Galleries", "galleries": "Галереї",
"performers": "Виконавці", "performers": "Виконавці",
"studios": "Studios", "studios": "Студії",
"movies": "Фільми", "movies": "Фільми",
"tags": "Теги", "tags": "Теги",
"oCount": "O Count" "oCount": "Кількість O"
}, },
"tandoor": { "tandoor": {
"users": "Користувачі", "users": "Користувачі",
@@ -893,16 +903,16 @@
"keywords": "Ключові слова" "keywords": "Ключові слова"
}, },
"homebox": { "homebox": {
"items": "Items", "items": "Речі",
"totalWithWarranty": "With Warranty", "totalWithWarranty": "З гарантією",
"locations": "Місцезнаходження", "locations": "Місцезнаходження",
"labels": "Мітки", "labels": "Мітки",
"users": "Користувачі", "users": "Користувачі",
"totalValue": "Total Value" "totalValue": "Загальне значення"
}, },
"crowdsec": { "crowdsec": {
"alerts": "Оповіщення", "alerts": "Оповіщення",
"bans": "Bans" "bans": "Блокування"
}, },
"wgeasy": { "wgeasy": {
"connected": "З'єднано", "connected": "З'єднано",
@@ -911,21 +921,21 @@
"total": "Усього" "total": "Усього"
}, },
"swagdashboard": { "swagdashboard": {
"proxied": "Proxied", "proxied": "Пропущено через проксі",
"auth": "With Auth", "auth": "З аутентифікацією",
"outdated": "Outdated", "outdated": "Застаріле",
"banned": "Banned" "banned": "Заблоковано"
}, },
"myspeed": { "myspeed": {
"ping": "Пінг", "ping": "Пінг",
"download": "Завантаження", "download": "Завантажено",
"upload": "Відправлення" "upload": "Відправлено"
}, },
"stocks": { "stocks": {
"stocks": "Stocks", "stocks": "Акції",
"loading": "Завантажую", "loading": "Завантажую",
"open": "Open - US Market", "open": "Відкрито - ринок США",
"closed": "Closed - US Market", "closed": "Закрито - ринок США",
"invalidConfiguration": "Неприпустима конфігурація" "invalidConfiguration": "Неприпустима конфігурація"
}, },
"frigate": { "frigate": {
@@ -934,24 +944,68 @@
"version": "Версія" "version": "Версія"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "Посилання",
"collections": "Collections", "collections": "Колекції",
"tags": "Теги" "tags": "Теги"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "Не визначено",
"information": "Інформація", "information": "Інформація",
"warning": "Warning", "warning": "Попередження",
"average": "Average", "average": "Середнє",
"high": "High", "high": "Високе",
"disaster": "Disaster" "disaster": "Катастрофа"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "Транспортний засіб",
"vehicles": "Vehicles", "vehicles": "Транспортні засоби",
"serviceRecords": "Service Records", "serviceRecords": "Записи служб",
"reminders": "Reminders", "reminders": "Нагадування",
"nextReminder": "Next Reminder", "nextReminder": "Наступне нагадування",
"none": "None" "none": "Жодного"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Назва",
"address": "Адреса",
"last_seen": "Востаннє у мережі",
"status": "Стан",
"online": "Онлайн",
"offline": "Офлайн"
},
"beszel": {
"name": "Назва",
"systems": "Systems",
"up": "Онлайн",
"status": "Стан",
"updated": "Оновлено",
"cpu": "ЦП",
"memory": "ОЗП",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Здоровий",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Відсутній",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Завантажую"
},
"gitlab": {
"groups": "Groups",
"issues": "Питання",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
@@ -309,6 +309,16 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Tổng" "total": "Tổng"
}, },
"suwayomi": {
"download": "Đã tải",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Trạng thái",
"online": "Online",
"offline": "Ngoại tuyến"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Trạng thái",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "月", "months": "月",
"days": "天", "days": "天",
"hours": "小時", "hours": "小時",
@@ -309,6 +309,16 @@
"stopped": "暫停", "stopped": "暫停",
"total": "全部" "total": "全部"
}, },
"suwayomi": {
"download": "下載咗",
"nondownload": "Non-Downloaded",
"read": "已讀",
"unread": "未讀",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "位址", "address": "位址",
"expires": "已失效", "expires": "已失效",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "名稱",
"address": "位址",
"last_seen": "上次連線",
"status": "狀況",
"online": "在線",
"offline": "離線"
},
"beszel": {
"name": "名稱",
"systems": "Systems",
"up": "在線",
"status": "狀況",
"updated": "已更新",
"cpu": "CPU",
"memory": "記憶體",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "健康",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "缺少",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "出版",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "月", "months": "月",
"days": "日", "days": "日",
"hours": "时", "hours": "时",
@@ -61,7 +61,7 @@
"wlan_devices": "无线局域网设备", "wlan_devices": "无线局域网设备",
"lan_users": "局域网用户", "lan_users": "局域网用户",
"wlan_users": "无线局域网用户", "wlan_users": "无线局域网用户",
"up": "在线", "up": "运行时间",
"down": "离线", "down": "离线",
"wait": "请稍候", "wait": "请稍候",
"empty_data": "子系统状态未知" "empty_data": "子系统状态未知"
@@ -227,8 +227,8 @@
"seed": "做种" "seed": "做种"
}, },
"develancacheui": { "develancacheui": {
"cachehitbytes": "Cache Hit Bytes", "cachehitbytes": "缓存命中字节",
"cachemissbytes": "Cache Miss Bytes" "cachemissbytes": "缓存Bytes失败"
}, },
"downloadstation": { "downloadstation": {
"download": "下载", "download": "下载",
@@ -309,6 +309,16 @@
"stopped": "停止", "stopped": "停止",
"total": "总计" "total": "总计"
}, },
"suwayomi": {
"download": "下载",
"nondownload": "Non-Downloaded",
"read": "已读",
"unread": "未读",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "地址", "address": "地址",
"expires": "失效", "expires": "失效",
@@ -327,7 +337,7 @@
"totalQueries": "查询", "totalQueries": "查询",
"totalNoError": "成功", "totalNoError": "成功",
"totalServerFailure": "失败", "totalServerFailure": "失败",
"totalNxDomain": "NX Domains", "totalNxDomain": "",
"totalRefused": "已拒绝", "totalRefused": "已拒绝",
"totalAuthoritative": "权威", "totalAuthoritative": "权威",
"totalRecursive": "递归", "totalRecursive": "递归",
@@ -724,7 +734,7 @@
}, },
"prometheus": { "prometheus": {
"targets_up": "目标上线", "targets_up": "目标上线",
"targets_down": "离线目标", "targets_down": "目标离线",
"targets_total": "总目标" "targets_total": "总目标"
}, },
"gatus": { "gatus": {
@@ -844,16 +854,16 @@
}, },
"romm": { "romm": {
"platforms": "平台", "platforms": "平台",
"totalRoms": "Games", "totalRoms": "游戏数",
"saves": "Saves", "saves": "已保存",
"states": "States", "states": "状态",
"screenshots": "Screenshots", "screenshots": "屏幕截图",
"totalfilesize": "Total Size" "totalfilesize": "总大小"
}, },
"mailcow": { "mailcow": {
"domains": "域", "domains": "域",
"mailboxes": "Mailboxes", "mailboxes": "邮箱",
"mails": "Mails", "mails": "邮件",
"storage": "储存空间" "storage": "储存空间"
}, },
"netdata": { "netdata": {
@@ -922,36 +932,80 @@
"upload": "上传速率" "upload": "上传速率"
}, },
"stocks": { "stocks": {
"stocks": "Stocks", "stocks": "库存",
"loading": "Loading", "loading": "正在加载",
"open": "Open - US Market", "open": "打開-美国商店",
"closed": "Closed - US Market", "closed": "关闭-美国市场",
"invalidConfiguration": "Invalid Configuration" "invalidConfiguration": "无效配置"
}, },
"frigate": { "frigate": {
"cameras": "Cameras", "cameras": "摄像头",
"uptime": "运行时间", "uptime": "运行时间",
"version": "版本" "version": "版本"
}, },
"linkwarden": { "linkwarden": {
"links": "Links", "links": "链接",
"collections": "Collections", "collections": "收藏",
"tags": "Tags" "tags": "Tags"
}, },
"zabbix": { "zabbix": {
"unclassified": "Not classified", "unclassified": "未分类",
"information": "信息", "information": "信息",
"warning": "Warning", "warning": "警告",
"average": "Average", "average": "平均红包",
"high": "High", "high": "",
"disaster": "Disaster" "disaster": "灾难"
}, },
"lubelogger": { "lubelogger": {
"vehicle": "Vehicle", "vehicle": "载具",
"vehicles": "Vehicles", "vehicles": "交通工具",
"serviceRecords": "Service Records", "serviceRecords": "保养记录",
"reminders": "Reminders", "reminders": "提示",
"nextReminder": "Next Reminder", "nextReminder": "下次提醒",
"none": "None" "none": ""
},
"vikunja": {
"projects": "积极的项目",
"tasks7d": "本周到期的任务",
"tasksOverdue": "过期的任务",
"tasksInProgress": "正在处理的任务"
},
"headscale": {
"name": "Name",
"address": "地址",
"last_seen": "最后上线",
"status": "状态",
"online": "在线的",
"offline": "离线"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "状态",
"updated": "已升级",
"cpu": "CPU",
"memory": "内存",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "应用程序",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "健康",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "丢失",
"suspended": "Suspended"
},
"spoolman": {
"loading": "正在加载"
},
"gitlab": {
"groups": "Groups",
"issues": "问题",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -13,7 +13,7 @@
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}", "date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}", "relativeDate": "{{value, relativeDate}}",
"uptime": "{{value, uptime}}", "duration": "{{value, duration}}",
"months": "月", "months": "月",
"days": "天", "days": "天",
"hours": "小時", "hours": "小時",
@@ -309,6 +309,16 @@
"stopped": "已停止", "stopped": "已停止",
"total": "全部" "total": "全部"
}, },
"suwayomi": {
"download": "已下載",
"nondownload": "Non-Downloaded",
"read": "已讀",
"unread": "未讀",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
},
"tailscale": { "tailscale": {
"address": "位址", "address": "位址",
"expires": "已失效", "expires": "已失效",
@@ -953,5 +963,49 @@
"reminders": "Reminders", "reminders": "Reminders",
"nextReminder": "Next Reminder", "nextReminder": "Next Reminder",
"none": "None" "none": "None"
},
"vikunja": {
"projects": "Active Projects",
"tasks7d": "Tasks Due This Week",
"tasksOverdue": "Overdue Tasks",
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "名稱",
"address": "位址",
"last_seen": "上次連線",
"status": "狀態",
"online": "在線",
"offline": "離線"
},
"beszel": {
"name": "名稱",
"systems": "Systems",
"up": "在線",
"status": "狀態",
"updated": "已更新",
"cpu": "CPU",
"memory": "記憶體",
"disk": "Disk",
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "健康",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "缺少",
"suspended": "Suspended"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "出版",
"merges": "Merge Requests",
"projects": "Projects"
} }
} }

View File

@@ -418,7 +418,7 @@ export function cleanServiceGroups(groups) {
pointsLimit, pointsLimit,
diskUnits, diskUnits,
// glances, customapi, iframe // glances, customapi, iframe, prometheusmetric
refreshInterval, refreshInterval,
// hdhomerun // hdhomerun
@@ -461,6 +461,9 @@ export function cleanServiceGroups(groups) {
// opnsense, pfsense // opnsense, pfsense
wan, wan,
// prometheusmetric
metrics,
// proxmox // proxmox
node, node,
@@ -489,6 +492,9 @@ export function cleanServiceGroups(groups) {
// technitium // technitium
range, range,
// spoolman
spoolIds,
} = cleanedService.widget; } = cleanedService.widget;
let fieldsList = fields; let fieldsList = fields;
@@ -646,6 +652,13 @@ export function cleanServiceGroups(groups) {
if (type === "vikunja") { if (type === "vikunja") {
if (enableTaskList !== undefined) cleanedService.widget.enableTaskList = !!enableTaskList; if (enableTaskList !== undefined) cleanedService.widget.enableTaskList = !!enableTaskList;
} }
if (type === "prometheusmetric") {
if (metrics) cleanedService.widget.metrics = metrics;
if (refreshInterval) cleanedService.widget.refreshInterval = refreshInterval;
}
if (type === "spoolman") {
if (spoolIds !== undefined) cleanedService.widget.spoolIds = spoolIds;
}
} }
return cleanedService; return cleanedService;

View File

@@ -36,6 +36,7 @@ export default async function credentialedProxyHandler(req, res, map) {
headers["X-gotify-Key"] = `${widget.key}`; headers["X-gotify-Key"] = `${widget.key}`;
} else if ( } else if (
[ [
"argocd",
"authentik", "authentik",
"cloudflared", "cloudflared",
"ghostfolio", "ghostfolio",
@@ -93,6 +94,8 @@ export default async function credentialedProxyHandler(req, res, map) {
} }
} else if (widget.type === "wgeasy") { } else if (widget.type === "wgeasy") {
headers.Authorization = widget.password; headers.Authorization = widget.password;
} else if (widget.type === "gitlab") {
headers["PRIVATE-TOKEN"] = widget.key;
} else { } else {
headers["X-API-Key"] = `${widget.key}`; headers["X-API-Key"] = `${widget.key}`;
} }

View File

@@ -23,7 +23,7 @@ export default async function genericProxyHandler(req, res, map) {
formatApiCall(widgets[widget.type].api, { endpoint, ...widget }).replace(/(?<=\?.*)\?/g, "&"), formatApiCall(widgets[widget.type].api, { endpoint, ...widget }).replace(/(?<=\?.*)\?/g, "&"),
); );
const headers = req.extraHeaders ?? widget.headers ?? {}; const headers = req.extraHeaders ?? widget.headers ?? widgets[widget.type].headers ?? {};
if (widget.username && widget.password) { if (widget.username && widget.password) {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`; headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
@@ -75,7 +75,13 @@ export default async function genericProxyHandler(req, res, map) {
url.port ? `:${url.port}` : "", url.port ? `:${url.port}` : "",
url.pathname, url.pathname,
); );
return res.status(status).json({ error: { message: "HTTP Error", url: sanitizeErrorURL(url), resultData } }); return res.status(status).json({
error: {
message: "HTTP Error",
url: sanitizeErrorURL(url),
resultData: Buffer.isBuffer(resultData) ? Buffer.from(resultData).toString() : resultData,
},
});
} }
return res.status(status).send(resultData); return res.status(status).send(resultData);

View File

@@ -0,0 +1,52 @@
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { widget } = service;
if (!widget.fields) {
widget.fields = ["apps", "synced", "outOfSync", "healthy"];
}
const MAX_ALLOWED_FIELDS = 4;
if (widget.fields.length > MAX_ALLOWED_FIELDS) {
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
}
const { data: appsData, error: appsError } = useWidgetAPI(widget, "applications");
const appCounts = widget.fields.map((status) => {
if (status === "apps") {
return { status, count: appsData?.items?.length };
}
const count = appsData?.items?.filter(
(item) =>
item.status?.sync?.status.toLowerCase() === status.toLowerCase() ||
item.status?.health?.status.toLowerCase() === status.toLowerCase(),
).length;
return { status, count };
});
if (appsError) {
return <Container service={service} error={appsError} />;
}
if (!appsData) {
return (
<Container service={service}>
{appCounts.map((a) => (
<Block label={`argocd.${a.status}`} key={a.status} />
))}
</Container>
);
}
return (
<Container service={service}>
{appCounts.map((a) => (
<Block label={`argocd.${a.status}`} key={a.status} value={a.count} />
))}
</Container>
);
}

View File

@@ -0,0 +1,14 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "{url}/api/v1/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
applications: {
endpoint: "applications",
},
},
};
export default widget;

View File

@@ -46,11 +46,8 @@ export default function Component({ service }) {
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} /> <Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
<Block <Block
label="audiobookshelf.booksDuration" label="audiobookshelf.booksDuration"
value={t("common.number", { value={t("common.duration", {
value: totalBooksDuration / 60, value: totalBooksDuration,
maximumFractionDigits: 0,
style: "unit",
unit: "minute",
})} })}
/> />
</Container> </Container>

View File

@@ -54,7 +54,7 @@ export default async function beszelProxyHandler(req, res) {
if (!token) { if (!token) {
[status, token] = await login(loginUrl, widget.username, widget.password, service); [status, token] = await login(loginUrl, widget.username, widget.password, service);
if (status !== 200) { if (status !== 200) {
logger.debug(`HTTTP ${status} logging into npm api: ${token}`); logger.debug(`HTTP ${status} logging into npm api: ${token}`);
return res.status(status).send(token); return res.status(status).send(token);
} }
} }
@@ -68,12 +68,12 @@ export default async function beszelProxyHandler(req, res) {
}); });
if (status === 403) { if (status === 403) {
logger.debug(`HTTTP ${status} retrieving data from npm api, logging in and trying again.`); logger.debug(`HTTP ${status} retrieving data from npm api, logging in and trying again.`);
cache.del(`${tokenCacheKey}.${service}`); cache.del(`${tokenCacheKey}.${service}`);
[status, token] = await login(loginUrl, widget.username, widget.password, service); [status, token] = await login(loginUrl, widget.username, widget.password, service);
if (status !== 200) { if (status !== 200) {
logger.debug(`HTTTP ${status} logging into npm api: ${data}`); logger.debug(`HTTP ${status} logging into npm api: ${data}`);
return res.status(status).send(data); return res.status(status).send(data);
} }

View File

@@ -21,7 +21,7 @@ export default async function calendarProxyHandler(req, res) {
if (contentType) res.setHeader("Content-Type", contentType); if (contentType) res.setHeader("Content-Type", contentType);
if (status !== 200) { if (status !== 200) {
logger.debug(`HTTTP ${status} retrieving data from integration URL ${integration.url} : ${data}`); logger.debug(`HTTP ${status} retrieving data from integration URL ${integration.url} : ${data}`);
return res.status(status).send(data); return res.status(status).send(data);
} }

View File

@@ -2,6 +2,7 @@ import dynamic from "next/dynamic";
const components = { const components = {
adguard: dynamic(() => import("./adguard/component")), adguard: dynamic(() => import("./adguard/component")),
argocd: dynamic(() => import("./argocd/component")),
atsumeru: dynamic(() => import("./atsumeru/component")), atsumeru: dynamic(() => import("./atsumeru/component")),
audiobookshelf: dynamic(() => import("./audiobookshelf/component")), audiobookshelf: dynamic(() => import("./audiobookshelf/component")),
authentik: dynamic(() => import("./authentik/component")), authentik: dynamic(() => import("./authentik/component")),
@@ -37,6 +38,7 @@ const components = {
gatus: dynamic(() => import("./gatus/component")), gatus: dynamic(() => import("./gatus/component")),
ghostfolio: dynamic(() => import("./ghostfolio/component")), ghostfolio: dynamic(() => import("./ghostfolio/component")),
gitea: dynamic(() => import("./gitea/component")), gitea: dynamic(() => import("./gitea/component")),
gitlab: dynamic(() => import("./gitlab/component")),
glances: dynamic(() => import("./glances/component")), glances: dynamic(() => import("./glances/component")),
gluetun: dynamic(() => import("./gluetun/component")), gluetun: dynamic(() => import("./gluetun/component")),
gotify: dynamic(() => import("./gotify/component")), gotify: dynamic(() => import("./gotify/component")),
@@ -95,6 +97,7 @@ const components = {
plex: dynamic(() => import("./plex/component")), plex: dynamic(() => import("./plex/component")),
portainer: dynamic(() => import("./portainer/component")), portainer: dynamic(() => import("./portainer/component")),
prometheus: dynamic(() => import("./prometheus/component")), prometheus: dynamic(() => import("./prometheus/component")),
prometheusmetric: dynamic(() => import("./prometheusmetric/component")),
prowlarr: dynamic(() => import("./prowlarr/component")), prowlarr: dynamic(() => import("./prowlarr/component")),
proxmox: dynamic(() => import("./proxmox/component")), proxmox: dynamic(() => import("./proxmox/component")),
pterodactyl: dynamic(() => import("./pterodactyl/component")), pterodactyl: dynamic(() => import("./pterodactyl/component")),
@@ -109,10 +112,12 @@ const components = {
scrutiny: dynamic(() => import("./scrutiny/component")), scrutiny: dynamic(() => import("./scrutiny/component")),
sonarr: dynamic(() => import("./sonarr/component")), sonarr: dynamic(() => import("./sonarr/component")),
speedtest: dynamic(() => import("./speedtest/component")), speedtest: dynamic(() => import("./speedtest/component")),
spoolman: dynamic(() => import("./spoolman/component")),
stash: dynamic(() => import("./stash/component")), stash: dynamic(() => import("./stash/component")),
stocks: dynamic(() => import("./stocks/component")), stocks: dynamic(() => import("./stocks/component")),
strelaysrv: dynamic(() => import("./strelaysrv/component")), strelaysrv: dynamic(() => import("./strelaysrv/component")),
swagdashboard: dynamic(() => import("./swagdashboard/component")), swagdashboard: dynamic(() => import("./swagdashboard/component")),
suwayomi: dynamic(() => import("./suwayomi/component")),
tailscale: dynamic(() => import("./tailscale/component")), tailscale: dynamic(() => import("./tailscale/component")),
tandoor: dynamic(() => import("./tandoor/component")), tandoor: dynamic(() => import("./tandoor/component")),
tautulli: dynamic(() => import("./tautulli/component")), tautulli: dynamic(() => import("./tautulli/component")),

View File

@@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: gitlabCounts, error: gitlabCountsError } = useWidgetAPI(widget, "counts");
if (gitlabCountsError) {
return <Container service={service} error={gitlabCountsError} />;
}
if (!gitlabCounts) {
return (
<Container service={service}>
<Block label="gitlab.groups" />
<Block label="gitlab.issues" />
<Block label="gitlab.merges" />
<Block label="gitlab.projects" />
</Container>
);
}
return (
<Container service={service}>
<Block label="gitlab.groups" value={t("common.number", { value: gitlabCounts.groups_count })} />
<Block label="gitlab.issues" value={t("common.number", { value: gitlabCounts.issues_count })} />
<Block label="gitlab.merges" value={t("common.number", { value: gitlabCounts.merge_requests_count })} />
<Block label="gitlab.projects" value={t("common.number", { value: gitlabCounts.projects_count })} />
</Container>
);
}

View File

@@ -0,0 +1,13 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "{url}/api/v4/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
counts: {
endpoint: "users/{user_id}/associations_count",
},
},
};
export default widget;

View File

@@ -56,7 +56,7 @@ export default async function npmProxyHandler(req, res) {
if (!token) { if (!token) {
[status, token] = await login(loginUrl, widget.username, widget.password, service); [status, token] = await login(loginUrl, widget.username, widget.password, service);
if (status !== 200) { if (status !== 200) {
logger.debug(`HTTTP ${status} logging into npm api: ${token}`); logger.debug(`HTTP ${status} logging into npm api: ${token}`);
return res.status(status).send(token); return res.status(status).send(token);
} }
} }
@@ -70,12 +70,12 @@ export default async function npmProxyHandler(req, res) {
}); });
if (status === 403) { if (status === 403) {
logger.debug(`HTTTP ${status} retrieving data from npm api, logging in and trying again.`); logger.debug(`HTTP ${status} retrieving data from npm api, logging in and trying again.`);
cache.del(`${tokenCacheKey}.${service}`); cache.del(`${tokenCacheKey}.${service}`);
[status, token] = await login(loginUrl, widget.username, widget.password, service); [status, token] = await login(loginUrl, widget.username, widget.password, service);
if (status !== 200) { if (status !== 200) {
logger.debug(`HTTTP ${status} logging into npm api: ${data}`); logger.debug(`HTTP ${status} logging into npm api: ${data}`);
return res.status(status).send(data); return res.status(status).send(data);
} }

View File

@@ -138,7 +138,7 @@ export default async function omadaProxyHandler(req, res) {
const sitesResponseData = JSON.parse(data); const sitesResponseData = JSON.parse(data);
if (status !== 200 || sitesResponseData.errorCode > 0) { if (status !== 200 || sitesResponseData.errorCode > 0) {
logger.debug(`HTTTP ${status} getting sites list: ${sitesResponseData.msg}`); logger.debug(`HTTP ${status} getting sites list: ${sitesResponseData.msg}`);
return res return res
.status(status) .status(status)
.json({ error: { message: "Error getting sites list", url, data: sitesResponseData } }); .json({ error: { message: "Error getting sites list", url, data: sitesResponseData } });

View File

@@ -0,0 +1,116 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
function formatValue(t, metric, rawValue) {
if (!metric?.format) return rawValue;
if (!rawValue) return "-";
let value = rawValue;
// Scale the value. Accepts either a number to multiply by or a string
// like "12/345".
const scale = metric?.format?.scale;
if (typeof scale === "number") {
value *= scale;
} else if (typeof scale === "string" && scale.includes("/")) {
const parts = scale.split("/");
const numerator = parts[0] ? parseFloat(parts[0]) : 1;
const denominator = parts[1] ? parseFloat(parts[1]) : 1;
value = (value * numerator) / denominator;
} else {
value = parseFloat(value);
}
// Format the value using a known type and optional options.
switch (metric?.format?.type) {
case "text":
break;
default:
value = t(`common.${metric.format.type}`, { value, ...metric.format?.options });
}
// Apply fixed prefix.
const prefix = metric?.format?.prefix;
if (prefix) {
value = `${prefix}${value}`;
}
// Apply fixed suffix.
const suffix = metric?.format?.suffix;
if (suffix) {
value = `${value}${suffix}`;
}
return value;
}
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { metrics = [], refreshInterval = 10000 } = widget;
let prometheusmetricError;
const prometheusmetricData = new Map(
metrics.slice(0, 4).map((metric) => {
// disable the rule that hooks should not be called from a callback,
// because we don't need a strong guarantee of hook execution order here.
// eslint-disable-next-line react-hooks/rules-of-hooks
const { data: resultData, error: resultError } = useWidgetAPI(widget, "query", {
query: metric.query,
refreshInterval: Math.max(1000, metric.refreshInterval ?? refreshInterval),
});
if (resultError) {
prometheusmetricError = resultError;
}
return [metric.key ?? metric.label, resultData];
}),
);
if (prometheusmetricError) {
return <Container service={service} error={prometheusmetricError} />;
}
if (!prometheusmetricData) {
return (
<Container service={service}>
{metrics.slice(0, 4).map((item) => (
<Block label={item.label} key={item.label} />
))}
</Container>
);
}
function getResultValue(data) {
// Fetches the first metric result from the Prometheus query result data.
// The first element in the result value is the timestamp which is ignored here.
const resultType = data?.data?.resultType;
const result = data?.data?.result;
switch (resultType) {
case "vector":
return result?.[0]?.value?.[1];
case "scalar":
return result?.[1];
default:
return "";
}
}
return (
<Container service={service}>
{metrics.map((metric) => (
<Block
label={metric.label}
key={metric.key ?? metric.label}
value={formatValue(t, metric, getResultValue(prometheusmetricData.get(metric.key ?? metric.label)))}
/>
))}
</Container>
);
}

View File

@@ -0,0 +1,16 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/v1/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
query: {
method: "GET",
endpoint: "query",
params: ["query"],
},
},
};
export default widget;

View File

@@ -0,0 +1,63 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
// eslint-disable-next-line prefer-const
let { data: spoolData, error: spoolError } = useWidgetAPI(widget, "spools");
if (spoolError) {
return <Container service={service} error={spoolError} />;
}
if (!spoolData) {
const nBlocksGuess = widget.spoolIds?.length ?? 4;
return (
<Container service={service}>
{[...Array(nBlocksGuess)].map((_, i) => (
// eslint-disable-next-line react/no-array-index-key
<Block key={i} label="spoolman.loading" />
))}
</Container>
);
}
if (spoolData.error || spoolData.message) {
return <Container service={service} error={spoolData?.error ?? spoolData} />;
}
if (spoolData.length === 0) {
return (
<Container service={service}>
<Block label="spoolman.noSpools" />
</Container>
);
}
if (widget.spoolIds?.length) {
spoolData = spoolData.filter((spool) => widget.spoolIds.includes(spool.id));
}
if (spoolData.length > 4) {
spoolData = spoolData.slice(0, 4);
}
return (
<Container service={service}>
{spoolData.map((spool) => (
<Block
key={spool.id}
label={spool.filament.name}
value={t("common.percent", {
value: (spool.remaining_weight / spool.initial_weight) * 100,
})}
/>
))}
</Container>
);
}

View File

@@ -0,0 +1,14 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "{url}/api/v1/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
spools: {
endpoint: "spool",
},
},
};
export default widget;

View File

@@ -0,0 +1,40 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: suwayomiData, error: suwayomiError } = useWidgetAPI(widget);
if (suwayomiError) {
return <Container service={service} error={suwayomiError} />;
}
if (!suwayomiData) {
if (!widget.fields || widget.fields.length === 0) {
widget.fields = ["download", "nondownload", "read", "unread"];
} else if (widget.fields.length > 4) {
widget.fields = widget.fields.slice(0, 4);
}
return (
<Container service={service}>
{widget.fields.map((field) => (
<Block key={field} label={`suwayomi.${field}`} />
))}
</Container>
);
}
return (
<Container service={service}>
{suwayomiData.map((data) => (
<Block key={data.label} label={data.label} value={t("common.number", { value: data.count })} />
))}
</Container>
);
}

View File

@@ -0,0 +1,175 @@
import { httpProxy } from "utils/proxy/http";
import { formatApiCall } from "utils/proxy/api-helpers";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import widgets from "widgets/widgets";
const proxyName = "suwayomiProxyHandler";
const logger = createLogger(proxyName);
const countsToExtract = {
download: {
condition: (c) => c.isDownloaded,
gqlCondition: "isDownloaded: true",
},
nondownload: {
condition: (c) => !c.isDownloaded,
gqlCondition: "isDownloaded: false",
},
read: {
condition: (c) => c.isRead,
gqlCondition: "isRead: true",
},
unread: {
condition: (c) => !c.isRead,
gqlCondition: "isRead: false",
},
downloadedread: {
condition: (c) => c.isDownloaded && c.isRead,
gqlCondition: "isDownloaded: true, isRead: true",
},
downloadedunread: {
condition: (c) => c.isDownloaded && !c.isRead,
gqlCondition: "isDownloaded: true, isRead: false",
},
nondownloadedread: {
condition: (c) => !c.isDownloaded && c.isRead,
gqlCondition: "isDownloaded: false, isRead: true",
},
nondownloadedunread: {
condition: (c) => !c.isDownloaded && !c.isRead,
gqlCondition: "isDownloaded: false, isRead: false",
},
};
function makeBody(fields, category = "all") {
if (Number.isNaN(Number(category))) {
let query = "";
fields.forEach((field) => {
query += `
${field}: chapters(
condition: {${countsToExtract[field].gqlCondition}}
filter: {inLibrary: {equalTo: true}}
) {
totalCount
}`;
});
return JSON.stringify({
operationName: "Counts",
query: `
query Counts {
${query}
}`,
});
}
return JSON.stringify({
operationName: "category",
query: `
query category($id: Int!) {
category(id: $id) {
# name
mangas {
nodes {
chapters {
nodes {
isRead
isDownloaded
}
}
}
}
}
}`,
variables: {
id: Number(category),
},
});
}
function extractCounts(responseJSON, fields) {
if (!("category" in responseJSON.data)) {
return fields.map((field) => ({
count: responseJSON.data[field].totalCount,
label: `suwayomi.${field}`,
}));
}
const tmp = responseJSON.data.category.mangas.nodes.reduce(
(accumulator, manga) => {
manga.chapters.nodes.forEach((chapter) => {
fields.forEach((field, i) => {
if (countsToExtract[field].condition(chapter)) {
accumulator[i] += 1;
}
});
});
return accumulator;
},
[0, 0, 0, 0],
);
return fields.map((field, i) => ({
count: tmp[i],
label: `suwayomi.${field}`,
}));
}
export default async function suwayomiProxyHandler(req, res) {
const { group, service, endpoint } = 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);
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" });
}
if (!widget.fields || widget.fields.length === 0) {
widget.fields = ["download", "nondownload", "read", "unread"];
} else if (widget.fields.length > 4) {
widget.fields = widget.fields.slice(0, 4);
}
const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
const body = makeBody(widget.fields, widget.category);
const headers = {
"Content-Type": "application/json",
};
if (widget.username && widget.password) {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
}
const [status, contentType, data] = await httpProxy(url, {
method: "POST",
body,
headers,
});
if (status === 401) {
logger.error("Invalid or missing username or password for service '%s' in group '%s'", service, group);
return res.status(status).send({ error: { message: "401: unauthorized, username or password is incorrect." } });
}
if (status !== 200) {
logger.error(
"Error getting data from Suwayomi for service '%s' in group '%s': %d. Data: %s",
service,
group,
status,
data,
);
return res.status(status).send({ error: { message: "Error getting data. body: %s, data: %s", body, data } });
}
const returnData = extractCounts(JSON.parse(data), widget.fields);
if (contentType) res.setHeader("Content-Type", contentType);
return res.status(status).send(returnData);
}

View File

@@ -0,0 +1,8 @@
import suwayomiProxyHandler from "./proxy";
const widget = {
api: "{url}/api/graphql",
proxyHandler: suwayomiProxyHandler,
};
export default widget;

View File

@@ -205,7 +205,7 @@ export default function Component({ service }) {
<div className="flex flex-col pb-1 mx-1"> <div className="flex flex-col pb-1 mx-1">
{playing.map((session) => ( {playing.map((session) => (
<SessionEntry <SessionEntry
key={session.Id} key={session.session_key}
session={session} session={session}
enableUser={enableUser} enableUser={enableUser}
showEpisodeNumber={showEpisodeNumber} showEpisodeNumber={showEpisodeNumber}

View File

@@ -1,4 +1,5 @@
import adguard from "./adguard/widget"; import adguard from "./adguard/widget";
import argocd from "./argocd/widget";
import atsumeru from "./atsumeru/widget"; import atsumeru from "./atsumeru/widget";
import audiobookshelf from "./audiobookshelf/widget"; import audiobookshelf from "./audiobookshelf/widget";
import authentik from "./authentik/widget"; import authentik from "./authentik/widget";
@@ -31,6 +32,7 @@ import gamedig from "./gamedig/widget";
import gatus from "./gatus/widget"; import gatus from "./gatus/widget";
import ghostfolio from "./ghostfolio/widget"; import ghostfolio from "./ghostfolio/widget";
import gitea from "./gitea/widget"; import gitea from "./gitea/widget";
import gitlab from "./gitlab/widget";
import glances from "./glances/widget"; import glances from "./glances/widget";
import gluetun from "./gluetun/widget"; import gluetun from "./gluetun/widget";
import gotify from "./gotify/widget"; import gotify from "./gotify/widget";
@@ -87,6 +89,7 @@ import plantit from "./plantit/widget";
import plex from "./plex/widget"; import plex from "./plex/widget";
import portainer from "./portainer/widget"; import portainer from "./portainer/widget";
import prometheus from "./prometheus/widget"; import prometheus from "./prometheus/widget";
import prometheusmetric from "./prometheusmetric/widget";
import prowlarr from "./prowlarr/widget"; import prowlarr from "./prowlarr/widget";
import proxmox from "./proxmox/widget"; import proxmox from "./proxmox/widget";
import pterodactyl from "./pterodactyl/widget"; import pterodactyl from "./pterodactyl/widget";
@@ -100,10 +103,12 @@ import sabnzbd from "./sabnzbd/widget";
import scrutiny from "./scrutiny/widget"; import scrutiny from "./scrutiny/widget";
import sonarr from "./sonarr/widget"; import sonarr from "./sonarr/widget";
import speedtest from "./speedtest/widget"; import speedtest from "./speedtest/widget";
import spoolman from "./spoolman/widget";
import stash from "./stash/widget"; import stash from "./stash/widget";
import stocks from "./stocks/widget"; import stocks from "./stocks/widget";
import strelaysrv from "./strelaysrv/widget"; import strelaysrv from "./strelaysrv/widget";
import swagdashboard from "./swagdashboard/widget"; import swagdashboard from "./swagdashboard/widget";
import suwayomi from "./suwayomi/widget";
import tailscale from "./tailscale/widget"; import tailscale from "./tailscale/widget";
import tandoor from "./tandoor/widget"; import tandoor from "./tandoor/widget";
import tautulli from "./tautulli/widget"; import tautulli from "./tautulli/widget";
@@ -128,6 +133,7 @@ import zabbix from "./zabbix/widget";
const widgets = { const widgets = {
adguard, adguard,
argocd,
atsumeru, atsumeru,
audiobookshelf, audiobookshelf,
authentik, authentik,
@@ -159,6 +165,7 @@ const widgets = {
gatus, gatus,
ghostfolio, ghostfolio,
gitea, gitea,
gitlab,
glances, glances,
gluetun, gluetun,
gotify, gotify,
@@ -218,6 +225,7 @@ const widgets = {
plex, plex,
portainer, portainer,
prometheus, prometheus,
prometheusmetric,
prowlarr, prowlarr,
proxmox, proxmox,
pterodactyl, pterodactyl,
@@ -232,10 +240,12 @@ const widgets = {
scrutiny, scrutiny,
sonarr, sonarr,
speedtest, speedtest,
spoolman,
stash, stash,
stocks, stocks,
strelaysrv, strelaysrv,
swagdashboard, swagdashboard,
suwayomi,
tailscale, tailscale,
tandoor, tandoor,
tautulli, tautulli,