mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Compare commits
6 Commits
v1.3.1
...
feature/ht
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bcbb94523 | ||
|
|
b118fa1204 | ||
|
|
b430a6f515 | ||
|
|
8ba3cae921 | ||
|
|
8f25bf5427 | ||
|
|
da823ad7e8 |
4
.github/DISCUSSION_TEMPLATE/support.yml
vendored
4
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -4,7 +4,7 @@ body:
|
||||
value: |
|
||||
### ⚠️ Before opening a discussion:
|
||||
|
||||
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/) and include the output of all steps below.
|
||||
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/).
|
||||
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions) (including closed ones!).
|
||||
- type: textarea
|
||||
id: description
|
||||
@@ -59,6 +59,6 @@ body:
|
||||
value: |
|
||||
## ⚠️ STOP ⚠️
|
||||
|
||||
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above *and posted the output*, if relevant. The troubleshooting steps often help to solve the problem or at least can help figure it out.
|
||||
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem.
|
||||
|
||||
*Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.*
|
||||
|
||||
1
.github/workflows/docker-publish.yml
vendored
1
.github/workflows/docker-publish.yml
vendored
@@ -154,7 +154,6 @@ jobs:
|
||||
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
|
||||
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
provenance: false
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/
|
||||
COPY --link --from=builder --chown=1000:1000 /app/.next/standalone/ ./
|
||||
COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static
|
||||
|
||||
RUN apk add --no-cache su-exec iputils-ping shadow
|
||||
RUN apk add --no-cache su-exec iputils-ping
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV HOSTNAME=0.0.0.0
|
||||
|
||||
@@ -12,43 +12,10 @@ export PGID=${PGID:-0}
|
||||
|
||||
export HOMEPAGE_BUILDTIME=$(date +%s)
|
||||
|
||||
# Check ownership before chown
|
||||
if [ -e /app/config ]; then
|
||||
CURRENT_UID=$(stat -c %u /app/config)
|
||||
CURRENT_GID=$(stat -c %g /app/config)
|
||||
|
||||
if [ "$CURRENT_UID" -ne "$PUID" ] || [ "$CURRENT_GID" -ne "$PGID" ]; then
|
||||
echo "Fixing ownership of /app/config"
|
||||
if ! chown -R "$PUID:$PGID" /app/config 2>/dev/null; then
|
||||
echo "Warning: Could not chown /app/config; continuing anyway"
|
||||
fi
|
||||
else
|
||||
echo "/app/config already owned by correct UID/GID, skipping chown"
|
||||
fi
|
||||
else
|
||||
echo "/app/config does not exist; skipping ownership check"
|
||||
fi
|
||||
|
||||
# Ensure /app/config/logs exists and is owned
|
||||
if [ -n "$PUID" ] && [ -n "$PGID" ]; then
|
||||
mkdir -p /app/config/logs 2>/dev/null || true
|
||||
if [ -d /app/config/logs ]; then
|
||||
LOG_UID=$(stat -c %u /app/config/logs)
|
||||
LOG_GID=$(stat -c %g /app/config/logs)
|
||||
if [ "$LOG_UID" -ne "$PUID" ] || [ "$LOG_GID" -ne "$PGID" ]; then
|
||||
echo "Fixing ownership of /app/config/logs"
|
||||
chown -R "$PUID:$PGID" /app/config/logs 2>/dev/null || echo "Warning: Could not chown /app/config/logs"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d /app/.next ]; then
|
||||
CURRENT_UID=$(stat -c %u /app/.next)
|
||||
if [ "$CURRENT_UID" -ne "$PUID" ]; then
|
||||
echo "Fixing ownership of /app/.next"
|
||||
chown -R "$PUID:$PGID" /app/.next || echo "Warning: Could not chown /app/.next"
|
||||
fi
|
||||
fi
|
||||
# Set privileges for /app but only if pid 1 user is root and we are dropping privileges.
|
||||
# If container is run as an unprivileged user, it means owner already handled ownership setup on their own.
|
||||
# Running chown in that case (as non-root) will cause error
|
||||
[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app/config /app/public
|
||||
|
||||
# Drop privileges (when asked to) if root, otherwise run as current user
|
||||
if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then
|
||||
|
||||
@@ -20,7 +20,7 @@ Since Docker supports connecting with TLS and client certificate authentication,
|
||||
```yaml
|
||||
my-remote-docker:
|
||||
host: 192.168.0.101
|
||||
port: 2375
|
||||
port: 275
|
||||
tls:
|
||||
keyFile: tls/key.pem
|
||||
caFile: tls/ca.pem
|
||||
@@ -66,30 +66,6 @@ my-docker:
|
||||
port: 2375
|
||||
```
|
||||
|
||||
Use `protocol: https` if you’re connecting through a reverse proxy (e.g., Traefik) that serves the Docker API over HTTPS:
|
||||
|
||||
```yaml
|
||||
my-docker:
|
||||
host: dockerproxy
|
||||
port: 443
|
||||
protocol: https
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
||||
Note: This does not require TLS certificates if the proxy handles encryption. Do not use `protocol: https` unless you’re sure the target host supports HTTPS.
|
||||
|
||||
You can also include `headers` for the connection, for example, if you are using a reverse proxy that requires authentication:
|
||||
|
||||
```yaml
|
||||
my-docker:
|
||||
host: dockerproxy
|
||||
port: 443
|
||||
protocol: https
|
||||
headers:
|
||||
Authorization: Basic <base64-encoded-credentials>
|
||||
```
|
||||
|
||||
## Using Socket Directly
|
||||
|
||||
If you'd rather use the socket directly, first make sure that you're passing the local socket into the Docker container.
|
||||
|
||||
@@ -101,7 +101,7 @@ theme: dark # or light
|
||||
|
||||
## Color Palette
|
||||
|
||||
You can configure a fixed color palette (and disable the palette switcher) by passing the `color` option, like so:
|
||||
You can configured a fixed color palette (and disable the palette switcher) by passing the `color` option, like so:
|
||||
|
||||
```yaml
|
||||
color: slate
|
||||
|
||||
@@ -20,7 +20,7 @@ All service widgets work essentially the same, that is, homepage makes a proxied
|
||||
|
||||
1. URLs should not end with a / or other API path. Each widget will handle the path on its own.
|
||||
|
||||
2. All services with a widget require a unique name as well as a unique group (and all subgroups) name.
|
||||
2. All services with a widget require a unique name.
|
||||
|
||||
3. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
||||
|
||||
@@ -81,3 +81,15 @@ services:
|
||||
sysctls:
|
||||
- net.ipv6.conf.all.disable_ipv6=1
|
||||
```
|
||||
|
||||
## Running homepage behind a proxy
|
||||
|
||||
If you are running homepage behind e.g. squid proxy, you can set the environment variable `HOMEPAGE_HTTP_PROXY` to the URL of your proxy. This will allow homepage to use the proxy for all outgoing requests.
|
||||
|
||||
```yaml
|
||||
services:
|
||||
homepage:
|
||||
...
|
||||
environment:
|
||||
- HOMEPAGE_HTTP_PROXY=http://proxy.local:3128
|
||||
```
|
||||
|
||||
@@ -34,7 +34,7 @@ Homepage uses the [next-i18next](https://github.com/i18next/next-i18next) librar
|
||||
|
||||
Homepage uses translated and localized strings for **all text and numerical content** in widgets. English is the default language, and other languages can be added via [Crowdin](https://crowdin.com/project/gethomepage). To add the English translations for your widget, follow these steps:
|
||||
|
||||
Open the `public/locales/en/common.json` file.
|
||||
Open the `public/locales/en/common.js` file.
|
||||
|
||||
Add a new object for your widget to the bottom of the list, like this:
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ This will render the widget with placeholders for the data, i.e., a skeleton vie
|
||||
|
||||
!!! tip "Translation Tips"
|
||||
|
||||
The `label` prop in the `Block` component corresponds to the translation key we defined earlier in the `common.json` file. All text and numerical content should be translated.
|
||||
The `label` prop in the `Block` component corresponds to the translation key we defined earlier in the `common.js` file. All text and numerical content should be translated.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
title: Checkmk
|
||||
description: Checkmk Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Checkmk](https://github.com/Checkmk/checkmk).
|
||||
|
||||
To setup authentication, follow the official [Checkmk API](https://docs.checkmk.com/latest/en/rest_api.html?lquery=api#bearerauth) documentation.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: checkmk
|
||||
url: http://checkmk.host.or.ip:port
|
||||
site: your-site-name-cla-by-default
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
@@ -9,10 +9,9 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
|
||||
|
||||
Requires [HTTP control server options](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md) to be enabled. By default this runs on port `8000`.
|
||||
|
||||
Allowed fields: `["public_ip", "region", "country", "port_forwarded"]`.
|
||||
Default fields: `["public_ip", "region", "country"]`.
|
||||
Allowed fields: `["public_ip", "region", "country"]`.
|
||||
|
||||
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. Similarly, if you want to include the `port_forwarded` field, you must add the route `GET /v1/openvpn/portforwarded` to your Gluetun config.toml.
|
||||
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: JDownloader
|
||||
description: JDownloader Widget Configuration
|
||||
description: NextPVR Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [JDownloader](https://jdownloader.org/).
|
||||
|
||||
@@ -5,8 +5,6 @@ description: Proxmox Backup Server Widget Configuration
|
||||
|
||||
Learn more about [Proxmox Backup Server](https://www.proxmox.com/en/proxmox-backup-server/overview).
|
||||
|
||||
Create a user and an API token similar to the [Proxmox VE description](proxmox.md). The "Audit" role is required for both the user and token (not group).
|
||||
|
||||
Allowed fields: `["datastore_usage", "failed_tasks_24h", "cpu_usage", "memory_usage"]`.
|
||||
|
||||
```yaml
|
||||
@@ -15,5 +13,4 @@ widget:
|
||||
url: https://proxmoxbackupserver.host:port
|
||||
username: api_token_id
|
||||
password: api_token_secret
|
||||
datastore: datastore_name #optional; if ommitted, will display a combination of all datastores used / total
|
||||
```
|
||||
|
||||
@@ -11,17 +11,10 @@ Note: by default `["connected", "enabled", "total"]` are displayed.
|
||||
|
||||
To detect if a device is connected the time since the last handshake is queried. `threshold` is the time to wait in minutes since the last handshake to consider a device connected. Default is 2 minutes.
|
||||
|
||||
| Wg-Easy API Version | Homepage Widget Version |
|
||||
| ------------------- | ----------------------- |
|
||||
| < v15 | 1 (default) |
|
||||
| >= v15 | 2 |
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: wgeasy
|
||||
url: http://wg.easy.or.ip
|
||||
version: 2 # optional, default is 1
|
||||
username: yourwgusername # required for v15 and above
|
||||
password: yourwgeasypassword
|
||||
threshold: 2 # optional
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "homepage",
|
||||
"version": "1.3.1",
|
||||
"version": "1.2.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
@@ -18,6 +18,8 @@
|
||||
"dockerode": "^4.0.4",
|
||||
"follow-redirects": "^1.15.9",
|
||||
"gamedig": "^5.2.0",
|
||||
"http-proxy-agent": "^7.0.2",
|
||||
"https-proxy-agent": "^7.0.6",
|
||||
"i18next": "^24.2.3",
|
||||
"ical.js": "^2.1.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
@@ -62,10 +64,5 @@
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"osx-temperature-sensor": "^1.0.8"
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
"sharp"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
42
pnpm-lock.yaml
generated
42
pnpm-lock.yaml
generated
@@ -29,6 +29,12 @@ importers:
|
||||
gamedig:
|
||||
specifier: ^5.2.0
|
||||
version: 5.2.0
|
||||
http-proxy-agent:
|
||||
specifier: ^7.0.2
|
||||
version: 7.0.2
|
||||
https-proxy-agent:
|
||||
specifier: ^7.0.6
|
||||
version: 7.0.6
|
||||
i18next:
|
||||
specifier: ^24.2.3
|
||||
version: 24.2.3(typescript@5.7.3)
|
||||
@@ -98,10 +104,6 @@ importers:
|
||||
xml-js:
|
||||
specifier: ^1.6.11
|
||||
version: 1.6.11
|
||||
optionalDependencies:
|
||||
osx-temperature-sensor:
|
||||
specifier: ^1.0.8
|
||||
version: 1.0.8
|
||||
devDependencies:
|
||||
'@tailwindcss/forms':
|
||||
specifier: ^0.5.10
|
||||
@@ -151,6 +153,10 @@ importers:
|
||||
typescript:
|
||||
specifier: ^5.7.3
|
||||
version: 5.7.3
|
||||
optionalDependencies:
|
||||
osx-temperature-sensor:
|
||||
specifier: ^1.0.8
|
||||
version: 1.0.8
|
||||
|
||||
packages:
|
||||
|
||||
@@ -824,6 +830,10 @@ packages:
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
agent-base@7.1.3:
|
||||
resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
|
||||
engines: {node: '>= 14'}
|
||||
|
||||
ajv@6.12.6:
|
||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||
|
||||
@@ -1646,10 +1656,18 @@ packages:
|
||||
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
http-proxy-agent@7.0.2:
|
||||
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
||||
engines: {node: '>= 14'}
|
||||
|
||||
http2-wrapper@2.2.1:
|
||||
resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
|
||||
engines: {node: '>=10.19.0'}
|
||||
|
||||
https-proxy-agent@7.0.6:
|
||||
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
|
||||
engines: {node: '>= 14'}
|
||||
|
||||
i18next-fs-backend@1.2.0:
|
||||
resolution: {integrity: sha512-pUx3AcgXCbur0jpFA7U67Z2RJflAcIi698Y8VL+phdOqUchahxriV3Cs+M6UkPNQSS/zPEzWLfdJ8EgjB7HVxg==}
|
||||
|
||||
@@ -3501,6 +3519,8 @@ snapshots:
|
||||
|
||||
acorn@8.14.1: {}
|
||||
|
||||
agent-base@7.1.3: {}
|
||||
|
||||
ajv@6.12.6:
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.3
|
||||
@@ -4526,11 +4546,25 @@ snapshots:
|
||||
statuses: 2.0.1
|
||||
toidentifier: 1.0.1
|
||||
|
||||
http-proxy-agent@7.0.2:
|
||||
dependencies:
|
||||
agent-base: 7.1.3
|
||||
debug: 4.4.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
http2-wrapper@2.2.1:
|
||||
dependencies:
|
||||
quick-lru: 5.1.1
|
||||
resolve-alpn: 1.2.1
|
||||
|
||||
https-proxy-agent@7.0.6:
|
||||
dependencies:
|
||||
agent-base: 7.1.3
|
||||
debug: 4.4.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
i18next-fs-backend@1.2.0: {}
|
||||
|
||||
i18next@21.10.0:
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Publieke IP",
|
||||
"region": "Streek",
|
||||
"country": "Land",
|
||||
"port_forwarded": "Poort Aangestuur"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanale",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fisiese Vrylating",
|
||||
"digitalRelease": "Digitale Vrylating",
|
||||
"noEventsToday": "Geen gebeure vir vandag nie!",
|
||||
"noEventsFound": "Geen gebeure gevind nie",
|
||||
"errorWhenLoadingData": "Fout tydens laai van kalenderdata"
|
||||
"noEventsFound": "Geen gebeure gevind nie"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platform",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Aflaaie",
|
||||
"uploads": "Oplaaie",
|
||||
"sharedFiles": "Lêers"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Liedjies",
|
||||
"movies": "Flieks",
|
||||
"episodes": "Episodes",
|
||||
"other": "Ander"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Diensprobleme",
|
||||
"hostErrors": "Gasheerprobleme"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "العام IP",
|
||||
"region": "منطقة",
|
||||
"country": "الدولة",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "الدولة"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "القنوات",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "الإصدار المادي",
|
||||
"digitalRelease": "الإصدار الرقمي",
|
||||
"noEventsToday": "لا توجد أحداث اليوم!",
|
||||
"noEventsFound": "لم يتم العثور على أحداث",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "لم يتم العثور على أحداث"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "المِنصات",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "ملفات"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "أغاني",
|
||||
"movies": "أفلام",
|
||||
"episodes": "حلقات",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Публично IP",
|
||||
"region": "Регион",
|
||||
"country": "Страна",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Страна"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Канали",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Дигитално издания",
|
||||
"noEventsToday": "Няма събития за днес!",
|
||||
"noEventsFound": "Няма намерени събития",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Няма намерени събития"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Платформи",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Файлове"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Песни",
|
||||
"movies": "Филми",
|
||||
"episodes": "Епизоди",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP Pública",
|
||||
"region": "Regió",
|
||||
"country": "País",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canals",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Estrena física",
|
||||
"digitalRelease": "Estrena digital",
|
||||
"noEventsToday": "Cap esdeveniment per avui!",
|
||||
"noEventsFound": "No s'han trobat esdeveniments",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No s'han trobat esdeveniments"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plataformes",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Fitxers"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Cançons",
|
||||
"movies": "Pel·lícules",
|
||||
"episodes": "Episodis",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Veřejná IP",
|
||||
"region": "Oblast",
|
||||
"country": "Stát",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Stát"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanály",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fyzické vydání",
|
||||
"digitalRelease": "Digitální vydání",
|
||||
"noEventsToday": "Pro dnešek žádné události!",
|
||||
"noEventsFound": "Nemáte žádné události",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Nemáte žádné události"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platformy",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Stažení",
|
||||
"uploads": "Nahrávání",
|
||||
"sharedFiles": "Soubory"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Skladby",
|
||||
"movies": "Filmy",
|
||||
"episodes": "Epizody",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Offentlig IP",
|
||||
"region": "Område",
|
||||
"country": "Land",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanaler",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fysisk udgivelse",
|
||||
"digitalRelease": "Digitale udgivelser",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforme",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Filer"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Sange",
|
||||
"movies": "Film",
|
||||
"episodes": "Episoder",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"load": "Last",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "BETRIEBSZEIT"
|
||||
"uptime": "UP"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Benutzer",
|
||||
@@ -61,7 +61,7 @@
|
||||
"wlan_devices": "WLAN-Geräte",
|
||||
"lan_users": "LAN-Benutzer",
|
||||
"wlan_users": "WLAN-Benutzer",
|
||||
"up": "BETRIEBSZEIT",
|
||||
"up": "UP",
|
||||
"down": "EMPFANGEN",
|
||||
"wait": "Bitte warten",
|
||||
"empty_data": "Subsystem-Status unbekannt"
|
||||
@@ -150,7 +150,7 @@
|
||||
"sent": "Gesendet",
|
||||
"externalIPAddress": "Externe IP",
|
||||
"externalIPv6Address": "Externe IPv6",
|
||||
"externalIPv6Prefix": "Externes IPv6-Präfix"
|
||||
"externalIPv6Prefix": "Externer IPv4-Präfix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
@@ -436,7 +436,7 @@
|
||||
"temp": "TEMP",
|
||||
"_temp": "Temperatur",
|
||||
"warn": "Warnung",
|
||||
"uptime": "BETRIEBSZEIT",
|
||||
"uptime": "UP",
|
||||
"total": "Gesamt",
|
||||
"free": "Frei",
|
||||
"used": "In Benutzung",
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Öffentliche IP",
|
||||
"region": "Region",
|
||||
"country": "Land",
|
||||
"port_forwarded": "Port weitergeleitet"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanäle",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physische Version",
|
||||
"digitalRelease": "Digitale Version",
|
||||
"noEventsToday": "Heute keine Ereignisse!",
|
||||
"noEventsFound": "Keine Termine gefunden",
|
||||
"errorWhenLoadingData": "Fehler beim Laden der Kalenderdaten"
|
||||
"noEventsFound": "Keine Termine gefunden"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plattformen",
|
||||
@@ -1027,11 +1025,11 @@
|
||||
"timeleft": "Verbleibende Zeit"
|
||||
},
|
||||
"karakeep": {
|
||||
"bookmarks": "Lesezeichen",
|
||||
"favorites": "Favoriten",
|
||||
"archived": "Archiviert",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Listen",
|
||||
"lists": "Lists",
|
||||
"tags": "Schlagwörter"
|
||||
},
|
||||
"slskd": {
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Dateien"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Filme",
|
||||
"episodes": "Episoden",
|
||||
"other": "Andere"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Dienstprobleme",
|
||||
"hostErrors": "Hostprobleme"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Δημόσια ΙΡ",
|
||||
"region": "Περιοχή",
|
||||
"country": "Χώρα",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Χώρα"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Κανάλια",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Αρχεία"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Τραγούδια",
|
||||
"movies": "Ταινίες",
|
||||
"episodes": "Επεισόδια",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -1050,9 +1049,5 @@
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Regiono",
|
||||
"country": "Lando",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Lando"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanaloj",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Kantoj",
|
||||
"movies": "Filmoj",
|
||||
"episodes": "Epizodoj",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP pública",
|
||||
"region": "Región",
|
||||
"country": "País",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canales",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Lanzamiento en físico",
|
||||
"digitalRelease": "Lanzamiento en digital",
|
||||
"noEventsToday": "¡Sin eventos para hoy!",
|
||||
"noEventsFound": "No se encontraron eventos",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No se encontraron eventos"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plataformas",
|
||||
@@ -1027,11 +1025,11 @@
|
||||
"timeleft": "Tiempo restante"
|
||||
},
|
||||
"karakeep": {
|
||||
"bookmarks": "Marcadores",
|
||||
"favorites": "Favoritos",
|
||||
"archived": "Archivado",
|
||||
"highlights": "Destacados",
|
||||
"lists": "Listas",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Etiquetas"
|
||||
},
|
||||
"slskd": {
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Descargas",
|
||||
"uploads": "Subidas",
|
||||
"sharedFiles": "Archivos"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Canciones",
|
||||
"movies": "Películas",
|
||||
"episodes": "Episodios",
|
||||
"other": "Otros"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "Ez da gertaerarik aurkitu.",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Ez da gertaerarik aurkitu."
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Abestiak",
|
||||
"movies": "Filmak",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
"bitrate": "Débit",
|
||||
"no_active": "Aucun flux actif",
|
||||
"movies": "Films",
|
||||
"series": "Séries",
|
||||
"series": "Séries TV",
|
||||
"episodes": "Épisodes",
|
||||
"songs": "Chansons"
|
||||
},
|
||||
@@ -241,7 +241,7 @@
|
||||
"sonarr": {
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"series": "Séries",
|
||||
"series": "Séries TV",
|
||||
"queue": "En attente",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
@@ -405,7 +405,7 @@
|
||||
"medusa": {
|
||||
"wanted": "Demandé",
|
||||
"queued": "En file d'attente",
|
||||
"series": "Séries"
|
||||
"series": "Séries TV"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Joueurs",
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP publique",
|
||||
"region": "Région",
|
||||
"country": "Pays",
|
||||
"port_forwarded": "Port Transféré"
|
||||
"country": "Pays"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Chaînes",
|
||||
@@ -673,14 +672,14 @@
|
||||
"m": "m"
|
||||
},
|
||||
"atsumeru": {
|
||||
"series": "Séries",
|
||||
"series": "Séries TV",
|
||||
"archives": "Archives",
|
||||
"chapters": "Chapitres",
|
||||
"categories": "Catégories"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Bibliothèques",
|
||||
"series": "Séries",
|
||||
"series": "Séries TV",
|
||||
"books": "Livres"
|
||||
},
|
||||
"diskstation": {
|
||||
@@ -689,7 +688,7 @@
|
||||
"volumeAvailable": "Disponible"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Séries",
|
||||
"series": "Séries TV",
|
||||
"issues": "Anomalies",
|
||||
"wanted": "Demandé"
|
||||
},
|
||||
@@ -773,7 +772,7 @@
|
||||
"books": "Livres",
|
||||
"authors": "Auteurs",
|
||||
"categories": "Catégories",
|
||||
"series": "Séries"
|
||||
"series": "Séries TV"
|
||||
},
|
||||
"jdownloader": {
|
||||
"downloadCount": "En attente",
|
||||
@@ -782,7 +781,7 @@
|
||||
"downloadSpeed": "Débit"
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "Séries",
|
||||
"seriesCount": "Séries TV",
|
||||
"totalFiles": "Fichiers"
|
||||
},
|
||||
"azuredevops": {
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Sortie physique",
|
||||
"digitalRelease": "Sortie numérique",
|
||||
"noEventsToday": "Rien pour aujourd'hui !",
|
||||
"noEventsFound": "Aucun événement trouvé",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Aucun événement trouvé"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plateformes",
|
||||
@@ -1030,7 +1028,7 @@
|
||||
"bookmarks": "Marque-pages",
|
||||
"favorites": "Favoris",
|
||||
"archived": "Archivé",
|
||||
"highlights": "À la une",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Listes",
|
||||
"tags": "Étiquettes"
|
||||
},
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Téléchargements",
|
||||
"uploads": "Téléversements",
|
||||
"sharedFiles": "Fichiers"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Chansons",
|
||||
"movies": "Films",
|
||||
"episodes": "Épisodes",
|
||||
"other": "Autres"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Problèmes de service",
|
||||
"hostErrors": "Problèmes d'hôte"
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,8 +149,8 @@
|
||||
"received": "Primljeno",
|
||||
"sent": "Poslano",
|
||||
"externalIPAddress": "Eksterna IP adresa",
|
||||
"externalIPv6Address": "Vanjs. IPv6",
|
||||
"externalIPv6Prefix": "Vanjs. IPv6 prefiks"
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Glavne grane",
|
||||
@@ -178,7 +178,7 @@
|
||||
"connectedAp": "Povezani AP-ovi",
|
||||
"activeUser": "Aktivni uređaji",
|
||||
"alerts": "Upozorenja",
|
||||
"connectedGateways": "Povezani pristupnici",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Povezani prekidači"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -229,8 +229,8 @@
|
||||
"seed": "Prenošenje preuzetog sadržaja"
|
||||
},
|
||||
"develancacheui": {
|
||||
"cachehitbytes": "Bajtovi pogodaka predmemorije",
|
||||
"cachemissbytes": "Bajtovi promašaja predmemorije"
|
||||
"cachehitbytes": "Cache Hit Bytes",
|
||||
"cachemissbytes": "Cache Miss Bytes"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Preuzimanje",
|
||||
@@ -313,13 +313,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Preuzeto",
|
||||
"nondownload": "Nepreuzeto",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"read": "Pročitano",
|
||||
"unread": "Nepročitano",
|
||||
"downloadedread": "Preuzeto i pročitano",
|
||||
"downloadedunread": "Preuzeto i nepročitano",
|
||||
"nondownloadedread": "Nepreuzeto i pročitano",
|
||||
"nondownloadedunread": "Nepreuzeto i nepročitano"
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresa",
|
||||
@@ -337,15 +337,15 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Upiti",
|
||||
"totalNoError": "Uspješno",
|
||||
"totalServerFailure": "Neuspješno",
|
||||
"totalNxDomain": "NX domene",
|
||||
"totalRefused": "Odbijeno",
|
||||
"totalAuthoritative": "Autoritativan",
|
||||
"totalRecursive": "Rekurzivno",
|
||||
"totalCached": "Predmemorirano",
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalBlocked": "Blokirano",
|
||||
"totalDropped": "Odbačeno",
|
||||
"totalDropped": "Dropped",
|
||||
"totalClients": "Klijenti"
|
||||
},
|
||||
"tdarr": {
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Javni IP",
|
||||
"region": "Regija",
|
||||
"country": "Zemlja",
|
||||
"port_forwarded": "Port proslijeđen"
|
||||
"country": "Zemlja"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanali",
|
||||
@@ -706,8 +705,8 @@
|
||||
"time": "Vrijeme"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Neto vrijednost",
|
||||
"budget": "Budžet"
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Pregledne ploče",
|
||||
@@ -857,21 +856,20 @@
|
||||
"physicalRelease": "Fizičko izdanje",
|
||||
"digitalRelease": "Digitalno izdanje",
|
||||
"noEventsToday": "Danas nema događaja!",
|
||||
"noEventsFound": "Nema događaja",
|
||||
"errorWhenLoadingData": "Pogreška prilikom učitavanja podataka kalendara"
|
||||
"noEventsFound": "Nema događaja"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforme",
|
||||
"totalRoms": "Igre",
|
||||
"saves": "Spremljeno",
|
||||
"states": "Stanja",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Snimke ekrana",
|
||||
"totalfilesize": "Ukupna veličina"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domene",
|
||||
"mailboxes": "Poštanski sandučići",
|
||||
"mails": "Pošta",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Spremište"
|
||||
},
|
||||
"netdata": {
|
||||
@@ -888,7 +886,7 @@
|
||||
"notifications": "Obavijesti",
|
||||
"issues": "Problemi",
|
||||
"pulls": "Zahtjevi za povlačenje",
|
||||
"repositories": "Repozitoriji"
|
||||
"repositories": "Repositories"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "Scene",
|
||||
@@ -941,11 +939,11 @@
|
||||
"upload": "Prijenos"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Dionice",
|
||||
"loading": "Učitavanje",
|
||||
"open": "Otvoreno - američko tržište",
|
||||
"closed": "Zatvoreno - američko tržište",
|
||||
"invalidConfiguration": "Nepravilna konfiguracija"
|
||||
"stocks": "Stocks",
|
||||
"loading": "Loading",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Invalid Configuration"
|
||||
},
|
||||
"frigate": {
|
||||
"cameras": "Kamere",
|
||||
@@ -958,26 +956,26 @@
|
||||
"tags": "Oznake"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Nije klasificirano",
|
||||
"unclassified": "Not classified",
|
||||
"information": "Informacije",
|
||||
"warning": "Upozorenje",
|
||||
"average": "Prosjek",
|
||||
"high": "Visoko",
|
||||
"disaster": "Katastrofa"
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vozilo",
|
||||
"vehicles": "Vozila",
|
||||
"serviceRecords": "Servisni zapisi",
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Podsjetnici",
|
||||
"nextReminder": "Sljedeći podsjetnik",
|
||||
"none": "Ništa"
|
||||
"none": "None"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Aktivni projekti",
|
||||
"tasks7d": "Zadaci dospijeća ovog tjedna",
|
||||
"tasksOverdue": "Zakašnjeli zadaci",
|
||||
"tasksInProgress": "Zadaci u tijeku"
|
||||
"projects": "Active Projects",
|
||||
"tasks7d": "Tasks Due This Week",
|
||||
"tasksOverdue": "Overdue Tasks",
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Ime",
|
||||
@@ -989,7 +987,7 @@
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Ime",
|
||||
"systems": "Sustavi",
|
||||
"systems": "Systems",
|
||||
"up": "Dostupno",
|
||||
"down": "Nedostupno",
|
||||
"paused": "Zaustavljeno",
|
||||
@@ -999,26 +997,26 @@
|
||||
"cpu": "CPU",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"network": "Mreža"
|
||||
"network": "NET"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Aplikacije",
|
||||
"synced": "Sinkronizirano",
|
||||
"outOfSync": "Izvan sinkronizacije",
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"healthy": "Funkcionalno",
|
||||
"degraded": "Degradirano",
|
||||
"progressing": "Napredovanje",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"missing": "Nedostaje",
|
||||
"suspended": "Suspendiran"
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Učitavanje"
|
||||
"loading": "Loading"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Grupe",
|
||||
"groups": "Groups",
|
||||
"issues": "Problemi",
|
||||
"merges": "Zahtjevi za sjedinjenjem",
|
||||
"projects": "Projekti"
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stanje",
|
||||
@@ -1027,32 +1025,22 @@
|
||||
"timeleft": "Preostalo vrijeme"
|
||||
},
|
||||
"karakeep": {
|
||||
"bookmarks": "Oznake",
|
||||
"favorites": "Favoriti",
|
||||
"archived": "Arhivirano",
|
||||
"highlights": "Izdvajamo",
|
||||
"lists": "Liste",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Lists",
|
||||
"tags": "Oznake"
|
||||
},
|
||||
"slskd": {
|
||||
"slskStatus": "Mreža",
|
||||
"connected": "Povezano",
|
||||
"disconnected": "Odspojeno",
|
||||
"updateStatus": "Ažuriraj",
|
||||
"updateStatus": "Update",
|
||||
"update_yes": "Dostupno",
|
||||
"update_no": "Aktualno",
|
||||
"downloads": "Preuzimanje",
|
||||
"uploads": "Prijenos",
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Datoteke"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Pjesme",
|
||||
"movies": "Filmovi",
|
||||
"episodes": "Epizode",
|
||||
"other": "Ostalo"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Nyilvános IP-cím",
|
||||
"region": "Régió",
|
||||
"country": "Ország",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Ország"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Csatornák",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fizikai kiadás",
|
||||
"digitalRelease": "Digitális kiadás",
|
||||
"noEventsToday": "Ezen a napon nincsenek események!",
|
||||
"noEventsFound": "Nem található esemény",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Nem található esemény"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Felület",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Fájlok"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Zeneszám",
|
||||
"movies": "Film",
|
||||
"episodes": "Epizód",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP Publik",
|
||||
"region": "Region",
|
||||
"country": "Negara",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Negara"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channel",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Rilis Fisik",
|
||||
"digitalRelease": "Rilis Digital",
|
||||
"noEventsToday": "Tidak ada acara untuk hari ini!",
|
||||
"noEventsFound": "Tidak ada acara yang ditemukan",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Tidak ada acara yang ditemukan"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platform",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "File"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Lagu",
|
||||
"movies": "Film",
|
||||
"episodes": "Episode",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"date": "{{value, date}}",
|
||||
"relativeDate": "{{value, relativeDate}}",
|
||||
"duration": "{{value, duration}}",
|
||||
"months": "m",
|
||||
"months": "mo",
|
||||
"days": "g",
|
||||
"hours": "o",
|
||||
"minutes": "m",
|
||||
@@ -313,13 +313,13 @@
|
||||
},
|
||||
"suwayomi": {
|
||||
"download": "Scaricato",
|
||||
"nondownload": "Non Scaricato",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"read": "Letti",
|
||||
"unread": "Non letto",
|
||||
"downloadedread": "Scaricato E Letto",
|
||||
"downloadedunread": "Scaricato E Non Letto",
|
||||
"nondownloadedread": "Non Scaricato E Letto",
|
||||
"nondownloadedunread": "Non Scaricato E Non Letto"
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Indirizzo",
|
||||
@@ -339,13 +339,13 @@
|
||||
"totalQueries": "Richieste",
|
||||
"totalNoError": "Successo",
|
||||
"totalServerFailure": "Fallimenti",
|
||||
"totalNxDomain": "Domini NX",
|
||||
"totalRefused": "Rifiutato",
|
||||
"totalAuthoritative": "Autoritario",
|
||||
"totalRecursive": "Ricorsivo",
|
||||
"totalCached": "In cache",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalBlocked": "Bloccati",
|
||||
"totalDropped": "Saltati",
|
||||
"totalDropped": "Dropped",
|
||||
"totalClients": "Client"
|
||||
},
|
||||
"tdarr": {
|
||||
@@ -568,13 +568,12 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP pubblico",
|
||||
"region": "Località",
|
||||
"country": "Paese",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Paese"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canali",
|
||||
"hd": "HD",
|
||||
"tunerCount": "Regolatori",
|
||||
"tunerCount": "Tuners",
|
||||
"channelNumber": "Canale",
|
||||
"channelNetwork": "Rete",
|
||||
"signalStrength": "Intensità",
|
||||
@@ -706,7 +705,7 @@
|
||||
"time": "Tempo"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Valore Netto",
|
||||
"networth": "Net Worth",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
@@ -857,30 +856,29 @@
|
||||
"physicalRelease": "Release fisici",
|
||||
"digitalRelease": "Versione digitale",
|
||||
"noEventsToday": "Nessun evento per oggi!",
|
||||
"noEventsFound": "Nessun evento trovato",
|
||||
"errorWhenLoadingData": "Errore durante il caricamento dei dati del calendario"
|
||||
"noEventsFound": "Nessun evento trovato"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Piattaforme",
|
||||
"totalRoms": "Giochi",
|
||||
"saves": "Salvati",
|
||||
"states": "Stati",
|
||||
"screenshots": "Screenshot",
|
||||
"totalfilesize": "Dimensioni totali"
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domini",
|
||||
"mailboxes": "Caselle di posta",
|
||||
"mails": "Mail",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Archiviazione"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Avvisi",
|
||||
"criticals": "Critici"
|
||||
"criticals": "Criticals"
|
||||
},
|
||||
"plantit": {
|
||||
"events": "Eventi",
|
||||
"plants": "Piante",
|
||||
"plants": "Plants",
|
||||
"photos": "Foto",
|
||||
"species": "Specie"
|
||||
},
|
||||
@@ -888,7 +886,7 @@
|
||||
"notifications": "Notifiche",
|
||||
"issues": "Problemi",
|
||||
"pulls": "Richieste di Pull",
|
||||
"repositories": "Repository"
|
||||
"repositories": "Repositories"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "Scene",
|
||||
@@ -930,8 +928,8 @@
|
||||
"total": "Totale"
|
||||
},
|
||||
"swagdashboard": {
|
||||
"proxied": "Proxato",
|
||||
"auth": "Con Autenticazione",
|
||||
"proxied": "Proxied",
|
||||
"auth": "With Auth",
|
||||
"outdated": "Obsoleto",
|
||||
"banned": "Bannato"
|
||||
},
|
||||
@@ -941,14 +939,14 @@
|
||||
"upload": "Upload"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Azioni",
|
||||
"stocks": "Stocks",
|
||||
"loading": "Caricamento",
|
||||
"open": "Aperto - Mercato USA",
|
||||
"closed": "Chiuso - Mercato USA",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Configurazione non valida"
|
||||
},
|
||||
"frigate": {
|
||||
"cameras": "Telecamere",
|
||||
"cameras": "Cameras",
|
||||
"uptime": "Tempo di attività",
|
||||
"version": "Versione"
|
||||
},
|
||||
@@ -958,26 +956,26 @@
|
||||
"tags": "Tag"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Non classificato",
|
||||
"unclassified": "Not classified",
|
||||
"information": "Informazioni",
|
||||
"warning": "Avviso",
|
||||
"warning": "Warning",
|
||||
"average": "Media",
|
||||
"high": "Alto",
|
||||
"disaster": "Disastri"
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Veicolo",
|
||||
"vehicles": "Veicoli",
|
||||
"serviceRecords": "Record Di Servizio",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Promemoria",
|
||||
"nextReminder": "Promemoria Seguente",
|
||||
"none": "Nessuno"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Progetti attivi",
|
||||
"tasks7d": "Attività Settimanali",
|
||||
"tasksOverdue": "Task scaduti",
|
||||
"tasksInProgress": "Task In Corso"
|
||||
"projects": "Active Projects",
|
||||
"tasks7d": "Tasks Due This Week",
|
||||
"tasksOverdue": "Overdue Tasks",
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Nome",
|
||||
@@ -1007,9 +1005,9 @@
|
||||
"outOfSync": "Non Sincronizzato",
|
||||
"healthy": "Sano",
|
||||
"degraded": "Degradato",
|
||||
"progressing": "Progressione",
|
||||
"progressing": "Progressing",
|
||||
"missing": "Mancanti",
|
||||
"suspended": "Sospeso"
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Caricamento"
|
||||
@@ -1029,7 +1027,7 @@
|
||||
"karakeep": {
|
||||
"bookmarks": "Segnalibri",
|
||||
"favorites": "Preferiti",
|
||||
"archived": "Archiviato",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Liste",
|
||||
"tags": "Tag"
|
||||
@@ -1038,21 +1036,11 @@
|
||||
"slskStatus": "Rete",
|
||||
"connected": "Connesso",
|
||||
"disconnected": "Disconnesso",
|
||||
"updateStatus": "Aggiornamento",
|
||||
"updateStatus": "Update",
|
||||
"update_yes": "Disponibili",
|
||||
"update_no": "Aggiornato",
|
||||
"downloads": "Download",
|
||||
"uploads": "Caricamenti",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "File"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Canzoni",
|
||||
"movies": "Film",
|
||||
"episodes": "Episodi",
|
||||
"other": "Altro"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Problemi di servizio",
|
||||
"hostErrors": "Problemi di host"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "パブリックIP",
|
||||
"region": "地域",
|
||||
"country": "国",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "国"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "チャンネル",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "物理的なリリース",
|
||||
"digitalRelease": "デジタル・リリース",
|
||||
"noEventsToday": "本日の予定なし",
|
||||
"noEventsFound": "予定が見つかりません",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "予定が見つかりません"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "プラットフォーム",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "ファイル"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "曲",
|
||||
"movies": "映画",
|
||||
"episodes": "エピソード",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "채널",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "기종",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "파일"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "음악",
|
||||
"movies": "영화",
|
||||
"episodes": "에피소드",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP Awam",
|
||||
"region": "Rantau",
|
||||
"country": "Negara",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Negara"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Saluran",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Edaran fizikal",
|
||||
"digitalRelease": "Edaran digital",
|
||||
"noEventsToday": "Tiada agenda untuk hari ini!",
|
||||
"noEventsFound": "Tiada agenda dijumpai",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Tiada agenda dijumpai"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platform",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Lagu",
|
||||
"movies": "Filem",
|
||||
"episodes": "Episod",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Publiek IP",
|
||||
"region": "Regio",
|
||||
"country": "Land",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanalen",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fysieke versie",
|
||||
"digitalRelease": "Digitale versie",
|
||||
"noEventsToday": "Geen gebeurtenissen voor vandaag!",
|
||||
"noEventsFound": "Geen gebeurtenissen gevonden",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Geen gebeurtenissen gevonden"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platformen",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Bestanden"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Nummers",
|
||||
"movies": "Films",
|
||||
"episodes": "Afleveringen",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Offentlig IP",
|
||||
"region": "Region",
|
||||
"country": "Land",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanal",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fysisk utslipp",
|
||||
"digitalRelease": "Digital utgivelse",
|
||||
"noEventsToday": "Ingen hendelser for i dag!",
|
||||
"noEventsFound": "Ingen hendelser funnet",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Ingen hendelser funnet"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plattformer",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Sanger",
|
||||
"movies": "Film",
|
||||
"episodes": "Episoder",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
"connectedAp": "Połączone punkty dostępowe",
|
||||
"activeUser": "Aktywne urządzenia",
|
||||
"alerts": "Alarmy",
|
||||
"connectedGateways": "Połączone bramy",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Połączone przełączniki"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Adres publiczny",
|
||||
"region": "Region",
|
||||
"country": "Państwo",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Państwo"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanały",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Wydanie fizyczne",
|
||||
"digitalRelease": "Wydanie cyfrowe",
|
||||
"noEventsToday": "Brak wydarzeń na dziś!",
|
||||
"noEventsFound": "Nie znaleziono wydarzeń",
|
||||
"errorWhenLoadingData": "Wystąpił błąd podczas ładowania danych kalendarza"
|
||||
"noEventsFound": "Nie znaleziono wydarzeń"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platformy",
|
||||
@@ -1038,21 +1036,11 @@
|
||||
"slskStatus": "Sieć",
|
||||
"connected": "Połączono",
|
||||
"disconnected": "Rozłączono",
|
||||
"updateStatus": "Aktualizacja",
|
||||
"updateStatus": "Update",
|
||||
"update_yes": "Dostępne",
|
||||
"update_no": "Aktualny",
|
||||
"downloads": "Pobieranie",
|
||||
"uploads": "Przesyłanie",
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Pliki"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Piosenki",
|
||||
"movies": "Filmy",
|
||||
"episodes": "Odcinki",
|
||||
"other": "Inne"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP público",
|
||||
"region": "Região",
|
||||
"country": "País",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canais",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Lançamento físico",
|
||||
"digitalRelease": "Lançamento digital",
|
||||
"noEventsToday": "Não existem eventos hoje!",
|
||||
"noEventsFound": "Nenhum evento encontrado",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Nenhum evento encontrado"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plataformas",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Ficheiros"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Canções",
|
||||
"movies": "Filmes",
|
||||
"episodes": "Episódios",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "IP público",
|
||||
"region": "Região",
|
||||
"country": "País",
|
||||
"port_forwarded": "Porta Encaminhada"
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canais",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Versão física",
|
||||
"digitalRelease": "Versão digital",
|
||||
"noEventsToday": "Nenhum evento para hoje!",
|
||||
"noEventsFound": "Nenhum evento encontrado",
|
||||
"errorWhenLoadingData": "Erro ao carregar dados do calendário"
|
||||
"noEventsFound": "Nenhum evento encontrado"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plataformas",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Transferências",
|
||||
"uploads": "Envios",
|
||||
"sharedFiles": "Arquivos"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Canções",
|
||||
"movies": "Filmes",
|
||||
"episodes": "Episódios",
|
||||
"other": "Outro"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,20 +134,20 @@
|
||||
},
|
||||
"fritzbox": {
|
||||
"connectionStatus": "Stare",
|
||||
"connectionStatusUnconfigured": "Neconfigurat",
|
||||
"connectionStatusUnconfigured": "Unconfigured",
|
||||
"connectionStatusConnecting": "Connecting",
|
||||
"connectionStatusAuthenticating": "Authenticating",
|
||||
"connectionStatusPendingDisconnect": "Pending Disconnect",
|
||||
"connectionStatusDisconnecting": "Disconnecting",
|
||||
"connectionStatusDisconnected": "Deconectat",
|
||||
"connectionStatusConnected": "Conectat",
|
||||
"connectionStatusDisconnected": "Disconnected",
|
||||
"connectionStatusConnected": "Connected",
|
||||
"uptime": "Uptime",
|
||||
"maxDown": "Max. Down",
|
||||
"maxUp": "Max. Up",
|
||||
"down": "Jos",
|
||||
"up": "Sus",
|
||||
"received": "Primit",
|
||||
"sent": "Trimis",
|
||||
"received": "Received",
|
||||
"sent": "Sent",
|
||||
"externalIPAddress": "Ext. IP",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
@@ -163,8 +163,8 @@
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Înregistrări",
|
||||
"scheduled": "Programate",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"tautulli": {
|
||||
@@ -176,8 +176,8 @@
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Dispozitive active",
|
||||
"alerts": "Alerte",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateways": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
@@ -188,7 +188,7 @@
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Fluxuri active",
|
||||
"albums": "Albume",
|
||||
"albums": "Albums",
|
||||
"movies": "Filme",
|
||||
"tv": "Seriale"
|
||||
},
|
||||
@@ -217,7 +217,7 @@
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "Temperatură Sistem",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
@@ -247,7 +247,7 @@
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Dorite",
|
||||
"missing": "Lipsește",
|
||||
"missing": "Missing",
|
||||
"queued": "În coadă",
|
||||
"movies": "Filme",
|
||||
"queue": "Coadă",
|
||||
@@ -256,7 +256,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Dorite",
|
||||
"queued": "În coadă",
|
||||
"artists": "Artiști"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Dorite",
|
||||
@@ -279,21 +279,21 @@
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "În așteptare",
|
||||
"processing": "Procesare",
|
||||
"processing": "Processing",
|
||||
"approved": "Aprobate",
|
||||
"available": "Disponibile"
|
||||
},
|
||||
"netalertx": {
|
||||
"total": "Total",
|
||||
"connected": "Conectat",
|
||||
"new_devices": "Dispozitive Noi",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Cereri",
|
||||
"blocked": "Blocate",
|
||||
"blocked_percent": "Blocked %",
|
||||
"gravity": "Gravitație"
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Cereri",
|
||||
@@ -322,11 +322,11 @@
|
||||
"nondownloadedunread": "Non-Downloaded & Unread"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresă",
|
||||
"expires": "Expiră",
|
||||
"never": "Niciodată",
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Acum",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
@@ -340,9 +340,9 @@
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refuzat",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursiv",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalBlocked": "Blocate",
|
||||
"totalDropped": "Dropped",
|
||||
@@ -352,7 +352,7 @@
|
||||
"queue": "Coadă",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Salvat"
|
||||
"saved": "Saved"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routere",
|
||||
@@ -408,8 +408,8 @@
|
||||
"series": "Serie"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Jucători",
|
||||
"version": "Versiune",
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Stare",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
@@ -434,7 +434,7 @@
|
||||
"load": "Sarcină",
|
||||
"wait": "Va rugăm așteptați",
|
||||
"temp": "TEMP",
|
||||
"_temp": "Temperatură",
|
||||
"_temp": "Temp",
|
||||
"warn": "Warn",
|
||||
"uptime": "UP",
|
||||
"total": "Total",
|
||||
@@ -456,7 +456,7 @@
|
||||
"custom": "Personalizat",
|
||||
"visit": "Vizită",
|
||||
"url": "URL",
|
||||
"searchsuggestion": "Sugestie"
|
||||
"searchsuggestion": "Suggestion"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Însorit",
|
||||
@@ -481,10 +481,10 @@
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Ploaie Ușoară",
|
||||
"61-night": "Ploaie Ușoară",
|
||||
"63-day": "Ploaie",
|
||||
"63-night": "Ploaie",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
@@ -517,10 +517,10 @@
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistem",
|
||||
"updates": "Actualizări",
|
||||
"update_available": "Actualizare Disponibilă",
|
||||
"up_to_date": "Actualizat",
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Sus",
|
||||
@@ -528,64 +528,63 @@
|
||||
"down": "Jos"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nou",
|
||||
"new": "New",
|
||||
"up": "Sus",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Jos",
|
||||
"paused": "Pauză",
|
||||
"paused": "Paused",
|
||||
"status": "Stare",
|
||||
"last_ping": "Ultimul Ping",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Actualizat",
|
||||
"containers_failed": "Eșuat"
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Aprobate",
|
||||
"rejectedPushes": "Respinse",
|
||||
"filters": "Filtre",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexatori"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Coadă",
|
||||
"videos": "Videos",
|
||||
"channels": "Canale",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerte"
|
||||
"alerts": "Alerts"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Viteză",
|
||||
"speed": "Speed",
|
||||
"active": "Activ",
|
||||
"queue": "Coadă",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Regiune",
|
||||
"country": "Țară",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Canale",
|
||||
"channels": "Channels",
|
||||
"hd": "HD",
|
||||
"tunerCount": "Tunere",
|
||||
"channelNumber": "Canal",
|
||||
"channelNetwork": "Rețea",
|
||||
"signalStrength": "Putere",
|
||||
"signalQuality": "Calitate",
|
||||
"symbolQuality": "Calitate",
|
||||
"tunerCount": "Tuners",
|
||||
"channelNumber": "Channel",
|
||||
"channelNetwork": "Network",
|
||||
"signalStrength": "Strength",
|
||||
"signalQuality": "Quality",
|
||||
"symbolQuality": "Quality",
|
||||
"networkRate": "Rata de biți",
|
||||
"clientIP": "Client"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Eșuat",
|
||||
"failed": "Failed",
|
||||
"unknown": "Necunoscut"
|
||||
},
|
||||
"paperlessngx": {
|
||||
@@ -593,12 +592,12 @@
|
||||
"total": "Total"
|
||||
},
|
||||
"peanut": {
|
||||
"battery_charge": "Încărcare Baterie",
|
||||
"battery_charge": "Battery Charge",
|
||||
"ups_load": "UPS Load",
|
||||
"ups_status": "UPS Status",
|
||||
"online": "Online",
|
||||
"on_battery": "On Battery",
|
||||
"low_battery": "Baterie descărcată"
|
||||
"low_battery": "Low Battery"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
@@ -606,7 +605,7 @@
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memorie Utilizată",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
@@ -616,22 +615,22 @@
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opendtu": {
|
||||
"yieldDay": "Astăzi",
|
||||
"absolutePower": "Putere",
|
||||
"relativePower": "Putere %",
|
||||
"limit": "Limită"
|
||||
"yieldDay": "Today",
|
||||
"absolutePower": "Power",
|
||||
"relativePower": "Power %",
|
||||
"limit": "Limit"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Memorie Activă",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Starea Imprimantei",
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progres",
|
||||
"layers": "Straturi"
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Stare",
|
||||
@@ -649,19 +648,19 @@
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Sus",
|
||||
"down": "Jos",
|
||||
"temp": "Temperatură",
|
||||
"disk": "Utilizare Disc",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "Procesor",
|
||||
"memory_usage": "Memorie"
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Utilizatori",
|
||||
"photos": "Fotografii",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
},
|
||||
@@ -674,12 +673,12 @@
|
||||
},
|
||||
"atsumeru": {
|
||||
"series": "Serie",
|
||||
"archives": "Arhive",
|
||||
"archives": "Archives",
|
||||
"chapters": "Chapters",
|
||||
"categories": "Categorii"
|
||||
"categories": "Categories"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Biblioteci",
|
||||
"libraries": "Libraries",
|
||||
"series": "Serie",
|
||||
"books": "Cărți"
|
||||
},
|
||||
@@ -694,20 +693,20 @@
|
||||
"wanted": "Dorite"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albume",
|
||||
"photos": "Fotografii",
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "Oameni"
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Coadă",
|
||||
"processing": "Procesare",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Timp"
|
||||
"time": "Time"
|
||||
},
|
||||
"firefly": {
|
||||
"networth": "Net Worth",
|
||||
"budget": "Buget"
|
||||
"budget": "Budget"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
@@ -717,18 +716,18 @@
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memorie Utilizată",
|
||||
"freespace": "Spațiu Liber",
|
||||
"activeusers": "Utilizatori Activi",
|
||||
"numfiles": "Fișiere",
|
||||
"numshares": "Articole Partajate"
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Stare",
|
||||
"size": "Mărime",
|
||||
"lastrun": "Ultima Rulare",
|
||||
"nextrun": "Următoarea Rulare",
|
||||
"failed": "Eșuat"
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Muncitori activi",
|
||||
@@ -750,15 +749,15 @@
|
||||
"uptime": "Uptime"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Astăzi",
|
||||
"gross_percent_1y": "Un an",
|
||||
"gross_percent_max": "Tot timpul"
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasturi",
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Cărți",
|
||||
"podcastsDuration": "Durată",
|
||||
"booksDuration": "Durată"
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
@@ -767,33 +766,33 @@
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Actualizări"
|
||||
"updates": "Updates"
|
||||
},
|
||||
"calibreweb": {
|
||||
"books": "Cărți",
|
||||
"authors": "Autori",
|
||||
"categories": "Categorii",
|
||||
"authors": "Authors",
|
||||
"categories": "Categories",
|
||||
"series": "Serie"
|
||||
},
|
||||
"jdownloader": {
|
||||
"downloadCount": "Coadă",
|
||||
"downloadBytesRemaining": "Rămas",
|
||||
"downloadTotalBytes": "Mărime",
|
||||
"downloadSpeed": "Viteză"
|
||||
"downloadTotalBytes": "Size",
|
||||
"downloadSpeed": "Speed"
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "Serie",
|
||||
"totalFiles": "Fișiere"
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Rezultat",
|
||||
"result": "Result",
|
||||
"status": "Stare",
|
||||
"buildId": "Build ID",
|
||||
"succeeded": "Succeeded",
|
||||
"notStarted": "Not Started",
|
||||
"failed": "Eșuat",
|
||||
"canceled": "Anulat",
|
||||
"inProgress": "În Progres",
|
||||
"failed": "Failed",
|
||||
"canceled": "Canceled",
|
||||
"inProgress": "In Progress",
|
||||
"totalPrs": "Total PRs",
|
||||
"myPrs": "My PRs",
|
||||
"approved": "Aprobate"
|
||||
@@ -802,25 +801,25 @@
|
||||
"status": "Stare",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
"name": "Nume",
|
||||
"map": "Hartă",
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
"currentPlayers": "Current players",
|
||||
"players": "Jucători",
|
||||
"players": "Players",
|
||||
"maxPlayers": "Max players",
|
||||
"bots": "Boți",
|
||||
"bots": "Bots",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"urbackup": {
|
||||
"ok": "Ok",
|
||||
"errored": "Erori",
|
||||
"errored": "Errors",
|
||||
"noRecent": "Out of Date",
|
||||
"totalUsed": "Used Storage"
|
||||
},
|
||||
"mealie": {
|
||||
"recipes": "Recipes",
|
||||
"users": "Utilizatori",
|
||||
"categories": "Categorii",
|
||||
"tags": "Etichete"
|
||||
"categories": "Categories",
|
||||
"tags": "Tags"
|
||||
},
|
||||
"openmediavault": {
|
||||
"downloading": "Downloading",
|
||||
@@ -828,15 +827,15 @@
|
||||
"running": "Rulează",
|
||||
"stopped": "Oprit",
|
||||
"passed": "Passed",
|
||||
"failed": "Eșuat"
|
||||
"failed": "Failed"
|
||||
},
|
||||
"openwrt": {
|
||||
"uptime": "Uptime",
|
||||
"cpuLoad": "CPU Load Avg (5m)",
|
||||
"up": "Sus",
|
||||
"down": "Jos",
|
||||
"bytesTx": "Transmis",
|
||||
"bytesRx": "Primit"
|
||||
"bytesTx": "Transmitted",
|
||||
"bytesRx": "Received"
|
||||
},
|
||||
"uptimerobot": {
|
||||
"status": "Stare",
|
||||
@@ -845,7 +844,7 @@
|
||||
"downDuration": "Downtime Duration",
|
||||
"sitesUp": "Sites Up",
|
||||
"sitesDown": "Sites Down",
|
||||
"paused": "Pauză",
|
||||
"paused": "Paused",
|
||||
"notyetchecked": "Not Yet Checked",
|
||||
"up": "Sus",
|
||||
"seemsdown": "Seems Down",
|
||||
@@ -853,78 +852,77 @@
|
||||
"unknown": "Necunoscut"
|
||||
},
|
||||
"calendar": {
|
||||
"inCinemas": "În cinematografe",
|
||||
"inCinemas": "In cinemas",
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforme",
|
||||
"totalRoms": "Jocuri",
|
||||
"saves": "Salvări",
|
||||
"platforms": "Platforms",
|
||||
"totalRoms": "Games",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Mărime Totală"
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domenii",
|
||||
"mailboxes": "Cutii poştale",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Critice"
|
||||
"criticals": "Criticals"
|
||||
},
|
||||
"plantit": {
|
||||
"events": "Evenimente",
|
||||
"plants": "Plante",
|
||||
"photos": "Fotografii",
|
||||
"species": "Specii"
|
||||
"events": "Events",
|
||||
"plants": "Plants",
|
||||
"photos": "Photos",
|
||||
"species": "Species"
|
||||
},
|
||||
"gitea": {
|
||||
"notifications": "Notificări",
|
||||
"notifications": "Notifications",
|
||||
"issues": "Issues",
|
||||
"pulls": "Pull Requests",
|
||||
"repositories": "Repozitorii"
|
||||
"repositories": "Repositories"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "Scene",
|
||||
"scenes": "Scenes",
|
||||
"scenesPlayed": "Scenes Played",
|
||||
"playCount": "Total Plays",
|
||||
"playDuration": "Time Watched",
|
||||
"sceneSize": "Scenes Size",
|
||||
"sceneDuration": "Scenes Duration",
|
||||
"images": "Imagini",
|
||||
"images": "Images",
|
||||
"imageSize": "Images Size",
|
||||
"galleries": "Galerii",
|
||||
"galleries": "Galleries",
|
||||
"performers": "Performers",
|
||||
"studios": "Studios",
|
||||
"movies": "Filme",
|
||||
"tags": "Etichete",
|
||||
"tags": "Tags",
|
||||
"oCount": "O Count"
|
||||
},
|
||||
"tandoor": {
|
||||
"users": "Utilizatori",
|
||||
"recipes": "Recipes",
|
||||
"keywords": "Cuvinte cheie"
|
||||
"keywords": "Keywords"
|
||||
},
|
||||
"homebox": {
|
||||
"items": "Items",
|
||||
"totalWithWarranty": "Cu Garanție",
|
||||
"locations": "Locaţii",
|
||||
"labels": "Etichete",
|
||||
"totalWithWarranty": "With Warranty",
|
||||
"locations": "Locations",
|
||||
"labels": "Labels",
|
||||
"users": "Utilizatori",
|
||||
"totalValue": "Total Value"
|
||||
},
|
||||
"crowdsec": {
|
||||
"alerts": "Alerte",
|
||||
"alerts": "Alerts",
|
||||
"bans": "Bans"
|
||||
},
|
||||
"wgeasy": {
|
||||
"connected": "Conectat",
|
||||
"connected": "Connected",
|
||||
"enabled": "Activat",
|
||||
"disabled": "Dezactivat",
|
||||
"total": "Total"
|
||||
@@ -932,7 +930,7 @@
|
||||
"swagdashboard": {
|
||||
"proxied": "Proxied",
|
||||
"auth": "With Auth",
|
||||
"outdated": "Învechit",
|
||||
"outdated": "Outdated",
|
||||
"banned": "Banned"
|
||||
},
|
||||
"myspeed": {
|
||||
@@ -941,37 +939,37 @@
|
||||
"upload": "Încarcă"
|
||||
},
|
||||
"stocks": {
|
||||
"stocks": "Acțiuni",
|
||||
"stocks": "Stocks",
|
||||
"loading": "Loading",
|
||||
"open": "Open - US Market",
|
||||
"closed": "Closed - US Market",
|
||||
"invalidConfiguration": "Invalid Configuration"
|
||||
},
|
||||
"frigate": {
|
||||
"cameras": "Camere",
|
||||
"cameras": "Cameras",
|
||||
"uptime": "Uptime",
|
||||
"version": "Versiune"
|
||||
"version": "Version"
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
"collections": "Colecții",
|
||||
"tags": "Etichete"
|
||||
"collections": "Collections",
|
||||
"tags": "Tags"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Not classified",
|
||||
"information": "Informație",
|
||||
"warning": "Atenție",
|
||||
"average": "Medie",
|
||||
"high": "Înalt",
|
||||
"disaster": "Dezastru"
|
||||
"warning": "Warning",
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicul",
|
||||
"vehicles": "Vehicule",
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "Niciunul"
|
||||
"none": "None"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Active Projects",
|
||||
@@ -980,79 +978,69 @@
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Nume",
|
||||
"address": "Adresă",
|
||||
"name": "Name",
|
||||
"address": "Address",
|
||||
"last_seen": "Last Seen",
|
||||
"status": "Stare",
|
||||
"online": "Online",
|
||||
"offline": "Offline"
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Nume",
|
||||
"systems": "Sistem",
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Sus",
|
||||
"down": "Jos",
|
||||
"paused": "Pauză",
|
||||
"paused": "Paused",
|
||||
"pending": "În așteptare",
|
||||
"status": "Stare",
|
||||
"updated": "Actualizat",
|
||||
"updated": "Updated",
|
||||
"cpu": "Procesor",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"network": "NET"
|
||||
},
|
||||
"argocd": {
|
||||
"apps": "Aplicaţii",
|
||||
"apps": "Apps",
|
||||
"synced": "Synced",
|
||||
"outOfSync": "Out Of Sync",
|
||||
"healthy": "Sănătos",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"missing": "Lipsește",
|
||||
"suspended": "Suspendat"
|
||||
"missing": "Missing",
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
"loading": "Loading"
|
||||
},
|
||||
"gitlab": {
|
||||
"groups": "Grupuri",
|
||||
"groups": "Groups",
|
||||
"issues": "Issues",
|
||||
"merges": "Merge Requests",
|
||||
"projects": "Proiecte"
|
||||
"projects": "Projects"
|
||||
},
|
||||
"apcups": {
|
||||
"status": "Stare",
|
||||
"load": "Sarcină",
|
||||
"bcharge": "Încărcare Baterie",
|
||||
"bcharge": "Battery Charge",
|
||||
"timeleft": "Timp rămas"
|
||||
},
|
||||
"karakeep": {
|
||||
"bookmarks": "Marcaje",
|
||||
"favorites": "Favorite",
|
||||
"archived": "Arhivat",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favorites": "Favorites",
|
||||
"archived": "Archived",
|
||||
"highlights": "Highlights",
|
||||
"lists": "Liste",
|
||||
"tags": "Etichete"
|
||||
"lists": "Lists",
|
||||
"tags": "Tags"
|
||||
},
|
||||
"slskd": {
|
||||
"slskStatus": "Rețea",
|
||||
"connected": "Conectat",
|
||||
"disconnected": "Deconectat",
|
||||
"slskStatus": "Network",
|
||||
"connected": "Connected",
|
||||
"disconnected": "Disconnected",
|
||||
"updateStatus": "Update",
|
||||
"update_yes": "Disponibile",
|
||||
"update_no": "Actualizat",
|
||||
"update_no": "Up to Date",
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Fișiere"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Melodii",
|
||||
"movies": "Filme",
|
||||
"episodes": "Episoade",
|
||||
"other": "Altele"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
"sharedFiles": "Files"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Публичный IP-адрес",
|
||||
"region": "Регион",
|
||||
"country": "Страна",
|
||||
"port_forwarded": "Порт переадресован"
|
||||
"country": "Страна"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Каналы",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Физический релиз",
|
||||
"digitalRelease": "Цифровой релиз",
|
||||
"noEventsToday": "Нет событий на сегодня!",
|
||||
"noEventsFound": "Событий не найдено",
|
||||
"errorWhenLoadingData": "Ошибка при загрузке данных календаря"
|
||||
"noEventsFound": "Событий не найдено"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Платформы",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Скачивания",
|
||||
"uploads": "Загрузки",
|
||||
"sharedFiles": "Файлов"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Песни",
|
||||
"movies": "Фильмы",
|
||||
"episodes": "Эпизоды",
|
||||
"other": "Другой"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Verejná IP",
|
||||
"region": "Región",
|
||||
"country": "Krajina",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Krajina"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanály",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fyzické vydanie",
|
||||
"digitalRelease": "Digitálne vydanie",
|
||||
"noEventsToday": "Žiadne udalosti na dnešný deň!",
|
||||
"noEventsFound": "Žiadne udalosti",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Žiadne udalosti"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platformy",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Súborov"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Skladby",
|
||||
"movies": "Filmy",
|
||||
"episodes": "Epizódy",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Javni IP",
|
||||
"region": "Regija",
|
||||
"country": "Država",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Država"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanali",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fizična izdaja",
|
||||
"digitalRelease": "Digitalna izdaja",
|
||||
"noEventsToday": "Za danes ni dogodkov!",
|
||||
"noEventsFound": "Ni dogodkov",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Ni dogodkov"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforme",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Datotek"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Pesmi",
|
||||
"movies": "Filmi",
|
||||
"episodes": "Epizode",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Avsnitt",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"seconds": "s"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "ประเภทวิดเจ็ตหาย: {{type}}",
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"api_error": "API มีข้อผิดพลาด",
|
||||
"information": "ข้อมูล",
|
||||
"status": "สถานะ",
|
||||
@@ -110,7 +110,7 @@
|
||||
"esphome": {
|
||||
"offline": "ออฟไลน์",
|
||||
"offline_alt": "ออฟไลน์",
|
||||
"online": "ออนไลน์",
|
||||
"online": "Online",
|
||||
"total": "ทั้งหมด",
|
||||
"unknown": "ไม่ทราบ"
|
||||
},
|
||||
@@ -130,12 +130,12 @@
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "ยังไม่ได้อ่าน"
|
||||
"unread": "Unread"
|
||||
},
|
||||
"fritzbox": {
|
||||
"connectionStatus": "สถานะ",
|
||||
"connectionStatusUnconfigured": "ยังไม่ได้กำหนดค่า",
|
||||
"connectionStatusConnecting": "กำลังเชื่อมต่อ",
|
||||
"connectionStatusUnconfigured": "Unconfigured",
|
||||
"connectionStatusConnecting": "Connecting",
|
||||
"connectionStatusAuthenticating": "Authenticating",
|
||||
"connectionStatusPendingDisconnect": "Pending Disconnect",
|
||||
"connectionStatusDisconnecting": "Disconnecting",
|
||||
@@ -247,7 +247,7 @@
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "หายไป",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
@@ -315,7 +315,7 @@
|
||||
"download": "Downloaded",
|
||||
"nondownload": "Non-Downloaded",
|
||||
"read": "Read",
|
||||
"unread": "ยังไม่ได้อ่าน",
|
||||
"unread": "Unread",
|
||||
"downloadedread": "Downloaded & Read",
|
||||
"downloadedunread": "Downloaded & Unread",
|
||||
"nondownloadedread": "Non-Downloaded & Read",
|
||||
@@ -364,8 +364,8 @@
|
||||
"please_wait": "Please Wait"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "เปิด",
|
||||
"disabled": "ปิด",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "ทั้งหมด"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
@@ -409,14 +409,14 @@
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "เวอร์ชั่น",
|
||||
"version": "Version",
|
||||
"status": "สถานะ",
|
||||
"up": "ออนไลน์",
|
||||
"up": "Online",
|
||||
"down": "ออฟไลน์"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "ยังไม่ได้อ่าน"
|
||||
"unread": "Unread"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "ผู้ใช้",
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -596,7 +595,7 @@
|
||||
"battery_charge": "Battery Charge",
|
||||
"ups_load": "UPS Load",
|
||||
"ups_status": "UPS Status",
|
||||
"online": "ออนไลน์",
|
||||
"online": "Online",
|
||||
"on_battery": "On Battery",
|
||||
"low_battery": "Low Battery"
|
||||
},
|
||||
@@ -800,7 +799,7 @@
|
||||
},
|
||||
"gamedig": {
|
||||
"status": "สถานะ",
|
||||
"online": "ออนไลน์",
|
||||
"online": "Online",
|
||||
"offline": "ออฟไลน์",
|
||||
"name": "Name",
|
||||
"map": "Map",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -925,8 +923,8 @@
|
||||
},
|
||||
"wgeasy": {
|
||||
"connected": "Connected",
|
||||
"enabled": "เปิด",
|
||||
"disabled": "ปิด",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "ทั้งหมด"
|
||||
},
|
||||
"swagdashboard": {
|
||||
@@ -950,7 +948,7 @@
|
||||
"frigate": {
|
||||
"cameras": "Cameras",
|
||||
"uptime": "Uptime",
|
||||
"version": "เวอร์ชั่น"
|
||||
"version": "Version"
|
||||
},
|
||||
"linkwarden": {
|
||||
"links": "Links",
|
||||
@@ -984,7 +982,7 @@
|
||||
"address": "Address",
|
||||
"last_seen": "Last Seen",
|
||||
"status": "สถานะ",
|
||||
"online": "ออนไลน์",
|
||||
"online": "Online",
|
||||
"offline": "ออฟไลน์"
|
||||
},
|
||||
"beszel": {
|
||||
@@ -1008,7 +1006,7 @@
|
||||
"healthy": "Healthy",
|
||||
"degraded": "Degraded",
|
||||
"progressing": "Progressing",
|
||||
"missing": "หายไป",
|
||||
"missing": "Missing",
|
||||
"suspended": "Suspended"
|
||||
},
|
||||
"spoolman": {
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Açık IP",
|
||||
"region": "Bölge",
|
||||
"country": "Ülke",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Ülke"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Kanallar",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Fiziksel Yayınlanan",
|
||||
"digitalRelease": "Dijitalde Yayınlandı",
|
||||
"noEventsToday": "Bugün için etkinlik yok!",
|
||||
"noEventsFound": "Etkinlik bulunamadı",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Etkinlik bulunamadı"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platformlar",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Dosyalar"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Şarkılar",
|
||||
"movies": "Filmler",
|
||||
"episodes": "Bölümler",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Публічний IP",
|
||||
"region": "Регіон",
|
||||
"country": "Країна",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Країна"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Канали",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Фізичний реліз",
|
||||
"digitalRelease": "Цифровий реліз",
|
||||
"noEventsToday": "Події на сьогодні відсутні!",
|
||||
"noEventsFound": "Події не знайдено",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "Події не знайдено"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Платформи",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Завантаження",
|
||||
"uploads": "Вивантаження",
|
||||
"sharedFiles": "Файли"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Пісні",
|
||||
"movies": "Фільми",
|
||||
"episodes": "Епізоди",
|
||||
"other": "Інше"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "No events for today!",
|
||||
"noEventsFound": "No events found",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "Files"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"episodes": "Episodes",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "公用IP",
|
||||
"region": "地區",
|
||||
"country": "國家",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "國家"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "頻道",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "實體發行",
|
||||
"digitalRelease": "數位發行",
|
||||
"noEventsToday": "今日無事件",
|
||||
"noEventsFound": "未找到事件",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "未找到事件"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "平台",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "下載",
|
||||
"uploads": "上傳",
|
||||
"sharedFiles": "檔案"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "曲目",
|
||||
"movies": "電影",
|
||||
"episodes": "集",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
"received": "已接收",
|
||||
"sent": "已发送",
|
||||
"externalIPAddress": "外部IP",
|
||||
"externalIPv6Address": "",
|
||||
"externalIPv6Address": "Ext. IPv6",
|
||||
"externalIPv6Prefix": "Ext. IPv6-Prefix"
|
||||
},
|
||||
"caddy": {
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "公网 IP",
|
||||
"region": "区域",
|
||||
"country": "国家",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "国家"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "频道",
|
||||
@@ -720,7 +719,7 @@
|
||||
"memoryusage": "内存",
|
||||
"freespace": "剩余空间",
|
||||
"activeusers": "活跃用户",
|
||||
"numfiles": "文件",
|
||||
"numfiles": "Files",
|
||||
"numshares": "共享项目"
|
||||
},
|
||||
"kopia": {
|
||||
@@ -761,7 +760,7 @@
|
||||
"booksDuration": "持续时间"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "在家人数",
|
||||
"people_home": "房间",
|
||||
"lights_on": "照明开",
|
||||
"switches_on": "开关开"
|
||||
},
|
||||
@@ -783,7 +782,7 @@
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "系列",
|
||||
"totalFiles": "文件"
|
||||
"totalFiles": "Files"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "Physical release",
|
||||
"digitalRelease": "Digital release",
|
||||
"noEventsToday": "今天没有活动!",
|
||||
"noEventsFound": "未找到事件",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "未找到事件"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "平台",
|
||||
@@ -888,7 +886,7 @@
|
||||
"notifications": "通知",
|
||||
"issues": "问题",
|
||||
"pulls": "PR",
|
||||
"repositories": "代码仓库"
|
||||
"repositories": "Repositories"
|
||||
},
|
||||
"stash": {
|
||||
"scenes": "场景",
|
||||
@@ -1043,16 +1041,6 @@
|
||||
"update_no": "Up to Date",
|
||||
"downloads": "Downloads",
|
||||
"uploads": "Uploads",
|
||||
"sharedFiles": "文件"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "歌曲",
|
||||
"movies": "电影",
|
||||
"episodes": "剧集",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
"sharedFiles": "Files"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,8 +568,7 @@
|
||||
"gluetun": {
|
||||
"public_ip": "公用IP",
|
||||
"region": "地區",
|
||||
"country": "國家",
|
||||
"port_forwarded": "Port Forwarded"
|
||||
"country": "國家"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "頻道",
|
||||
@@ -857,8 +856,7 @@
|
||||
"physicalRelease": "實體發行",
|
||||
"digitalRelease": "數位發行",
|
||||
"noEventsToday": "今日無事件",
|
||||
"noEventsFound": "未找到事件",
|
||||
"errorWhenLoadingData": "Error when loading calendar data"
|
||||
"noEventsFound": "未找到事件"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "平台",
|
||||
@@ -1044,15 +1042,5 @@
|
||||
"downloads": "下載",
|
||||
"uploads": "上傳",
|
||||
"sharedFiles": "檔案"
|
||||
},
|
||||
"jellystat": {
|
||||
"songs": "曲目",
|
||||
"movies": "電影",
|
||||
"episodes": "集",
|
||||
"other": "Other"
|
||||
},
|
||||
"checkmk": {
|
||||
"serviceErrors": "Service issues",
|
||||
"hostErrors": "Host issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,28 +135,6 @@ function pruneEmptyGroups(groups) {
|
||||
});
|
||||
}
|
||||
|
||||
function mergeLayoutGroupsIntoConfigured(configuredGroups, layoutGroups) {
|
||||
for (const layoutGroup of layoutGroups) {
|
||||
const existing = findGroupByName(configuredGroups, layoutGroup.name);
|
||||
if (existing) {
|
||||
if (layoutGroup.groups?.length) {
|
||||
existing.groups ??= [];
|
||||
for (const sub of layoutGroup.groups) {
|
||||
const existingSub = findGroupByName(existing.groups, sub.name);
|
||||
if (!existingSub) {
|
||||
existing.groups.push(sub);
|
||||
} else {
|
||||
// recursive merge if needed
|
||||
mergeLayoutGroupsIntoConfigured([existingSub], [sub]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
configuredGroups.push(layoutGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function servicesResponse() {
|
||||
let discoveredDockerServices;
|
||||
let discoveredKubernetesServices;
|
||||
@@ -213,10 +191,14 @@ export async function servicesResponse() {
|
||||
const definedLayouts = initialSettings.layout ? Object.keys(initialSettings.layout) : null;
|
||||
if (definedLayouts) {
|
||||
// this handles cases where groups are only defined in the settings.yaml layout and not in the services.yaml
|
||||
const layoutGroups = Object.entries(initialSettings.layout).map(([key, value]) =>
|
||||
const layoutConfiguredGroups = Object.entries(initialSettings.layout).map(([key, value]) =>
|
||||
convertLayoutGroupToGroup(key, value),
|
||||
);
|
||||
mergeLayoutGroupsIntoConfigured(configuredServices, layoutGroups);
|
||||
layoutConfiguredGroups.forEach((group) => {
|
||||
if (!configuredServices.find((serviceGroup) => serviceGroup.name === group.name)) {
|
||||
configuredServices.push(group);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mergedGroupsNames.forEach((groupName) => {
|
||||
|
||||
@@ -14,29 +14,19 @@ export const CONF_DIR = process.env.HOMEPAGE_CONFIG_DIR
|
||||
: join(process.cwd(), "config");
|
||||
|
||||
export default function checkAndCopyConfig(config) {
|
||||
// Ensure config directory exists
|
||||
if (!existsSync(CONF_DIR)) {
|
||||
try {
|
||||
mkdirSync(CONF_DIR, { recursive: true });
|
||||
} catch (e) {
|
||||
console.warn(`Could not create config directory ${CONF_DIR}: ${e.message}`);
|
||||
return false;
|
||||
}
|
||||
mkdirSync(CONF_DIR, { recursive: true });
|
||||
}
|
||||
|
||||
const configYaml = join(CONF_DIR, config);
|
||||
|
||||
// If the config file doesn't exist, try to copy the skeleton
|
||||
if (!existsSync(configYaml)) {
|
||||
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
||||
try {
|
||||
copyFileSync(configSkeleton, configYaml);
|
||||
console.info("%s was copied to the config folder", config);
|
||||
} catch (err) {
|
||||
console.error("❌ Failed to initialize required config: %s", configYaml);
|
||||
console.error("Reason: %s", err.message);
|
||||
console.error("Hint: Make /app/config writable or manually place the config file.");
|
||||
process.exit(1);
|
||||
console.error("error copying config", err);
|
||||
throw err;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -43,14 +43,6 @@ export default function getDockerArguments(server) {
|
||||
res.conn.protocol = "https";
|
||||
}
|
||||
|
||||
if (servers[server].protocol) {
|
||||
res.conn.protocol = servers[server].protocol;
|
||||
}
|
||||
|
||||
if (servers[server].headers) {
|
||||
res.conn.headers = servers[server].headers;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -497,9 +497,7 @@ export function cleanServiceGroups(groups) {
|
||||
if (snapshotHost) widget.snapshotHost = snapshotHost;
|
||||
if (snapshotPath) widget.snapshotPath = snapshotPath;
|
||||
}
|
||||
if (
|
||||
["beszel", "glances", "immich", "komga", "mealie", "pfsense", "pihole", "speedtest", "wgeasy"].includes(type)
|
||||
) {
|
||||
if (["beszel", "glances", "immich", "komga", "mealie", "pfsense", "pihole", "speedtest"].includes(type)) {
|
||||
if (version) widget.version = parseInt(version, 10);
|
||||
}
|
||||
if (type === "glances") {
|
||||
|
||||
@@ -34,9 +34,6 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
headers["X-CMC_PRO_API_KEY"] = `${widget.key}`;
|
||||
} else if (widget.type === "gotify") {
|
||||
headers["X-gotify-Key"] = `${widget.key}`;
|
||||
} else if (widget.type === "checkmk") {
|
||||
headers["Accept"] = `application/json`;
|
||||
headers.Authorization = `Bearer ${widget.username} ${widget.password}`;
|
||||
} else if (
|
||||
[
|
||||
"argocd",
|
||||
@@ -101,11 +98,7 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
headers.Cookie = `authenticated=${widget.key}`;
|
||||
}
|
||||
} else if (widget.type === "wgeasy") {
|
||||
if (widget.username && widget.password) {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
} else {
|
||||
headers.Authorization = widget.password;
|
||||
}
|
||||
headers.Authorization = widget.password;
|
||||
} else if (widget.type === "gitlab") {
|
||||
headers["PRIVATE-TOKEN"] = widget.key;
|
||||
} else if (widget.type === "speedtest") {
|
||||
|
||||
@@ -110,21 +110,24 @@ export async function cachedRequest(url, duration = 5, ua = "homepage") {
|
||||
|
||||
export async function httpProxy(url, params = {}) {
|
||||
const constructedUrl = new URL(url);
|
||||
const proxyUrl = process.env.HOMEPAGE_HTTP_PROXY; // e.g. http://proxy.local:3128
|
||||
const disableIpv6 = process.env.HOMEPAGE_PROXY_DISABLE_IPV6 === "true";
|
||||
const agentOptions = disableIpv6 ? { family: 4, autoSelectFamily: false } : {};
|
||||
|
||||
let request = null;
|
||||
if (constructedUrl.protocol === "https:") {
|
||||
request = httpsRequest(constructedUrl, {
|
||||
agent: new https.Agent({ ...agentOptions, rejectUnauthorized: false }),
|
||||
...params,
|
||||
});
|
||||
let agent;
|
||||
if (proxyUrl) {
|
||||
agent = constructedUrl.protocol === "https:" ? new HttpsProxyAgent(proxyUrl) : new HttpProxyAgent(proxyUrl);
|
||||
logger.debug("Using proxy for request to %s: %s", constructedUrl.href, proxyUrl);
|
||||
} else {
|
||||
request = httpRequest(constructedUrl, {
|
||||
agent: new http.Agent(agentOptions),
|
||||
...params,
|
||||
});
|
||||
agent =
|
||||
constructedUrl.protocol === "https:"
|
||||
? new https.Agent({ ...agentOptions, rejectUnauthorized: false })
|
||||
: new http.Agent(agentOptions);
|
||||
}
|
||||
const request =
|
||||
constructedUrl.protocol === "https:"
|
||||
? httpsRequest(constructedUrl, { agent, ...params })
|
||||
: httpRequest(constructedUrl, { agent, ...params });
|
||||
|
||||
try {
|
||||
const [status, contentType, data, responseHeaders] = await request;
|
||||
|
||||
@@ -72,23 +72,8 @@ export default async function beszelProxyHandler(req, res) {
|
||||
},
|
||||
});
|
||||
|
||||
const badRequest = [400, 403].includes(status);
|
||||
const text = data.toString("utf-8");
|
||||
let isEmpty = false;
|
||||
|
||||
try {
|
||||
const json = JSON.parse(text);
|
||||
isEmpty = Array.isArray(json.items) && json.items.length === 0;
|
||||
} catch (err) {
|
||||
logger.debug("Failed to parse Beszel response JSON:", err);
|
||||
}
|
||||
|
||||
if (badRequest || isEmpty) {
|
||||
if (badRequest) {
|
||||
logger.debug(`HTTP ${status} retrieving data from Beszel, logging in and trying again.`);
|
||||
} else {
|
||||
logger.debug(`Received empty list from Beszel, logging in and trying again.`);
|
||||
}
|
||||
if ([400, 403].includes(status)) {
|
||||
logger.debug(`HTTP ${status} retrieving data from Beszel, logging in and trying again.`);
|
||||
cache.del(`${tokenCacheKey}.${service}`);
|
||||
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
import Block from "components/services/widget/block";
|
||||
import Container from "components/services/widget/container";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: servicesData, error: servicesError } = useWidgetAPI(widget, "services_info", {
|
||||
columns: "state",
|
||||
query: '{"op": "!=", "left": "state", "right": "0"}',
|
||||
});
|
||||
const { data: hostsData, error: hostsError } = useWidgetAPI(widget, "hosts_info", {
|
||||
columns: "state",
|
||||
query: '{"op": "!=", "left": "state", "right": "0"}',
|
||||
});
|
||||
|
||||
if (servicesError || hostsError) {
|
||||
return <Container service={service} error={servicesError ?? hostsError} />;
|
||||
}
|
||||
|
||||
if (!servicesData || !hostsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="checkmk.serviceErrors" />
|
||||
<Block label="checkmk.hostErrors" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="checkmk.serviceErrors" value={t("common.number", { value: servicesData.value.length })} />
|
||||
<Block label="checkmk.hostErrors" value={t("common.number", { value: hostsData.value.length })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/{site}/check_mk/api/1.0/{endpoint}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
services_info: {
|
||||
endpoint: "domain-types/service/collections/all",
|
||||
params: ["columns", "query"],
|
||||
},
|
||||
hosts_info: {
|
||||
endpoint: "domain-types/host/collections/all",
|
||||
params: ["columns", "query"],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -16,7 +16,6 @@ const components = {
|
||||
calibreweb: dynamic(() => import("./calibreweb/component")),
|
||||
changedetectionio: dynamic(() => import("./changedetectionio/component")),
|
||||
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
|
||||
checkmk: dynamic(() => import("./checkmk/component")),
|
||||
cloudflared: dynamic(() => import("./cloudflared/component")),
|
||||
coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
|
||||
crowdsec: dynamic(() => import("./crowdsec/component")),
|
||||
|
||||
@@ -112,7 +112,7 @@ export default function Component({ service }) {
|
||||
<div className="bg-linear-to-br from-theme-500/30 via-theme-600/20 to-theme-700/10 absolute -top-10 -left-2 -right-2 -bottom-2 h-[calc(100%+3em)] w-[calc(100%+1em)]" />
|
||||
)}
|
||||
|
||||
<Block position={chart ? "-top-6 right-2" : "top-3 right-3"}>
|
||||
<Block position="-top-6 right-2">
|
||||
{quicklookData && quicklookData.cpu_name && chart && (
|
||||
<div className="text-[0.6rem] opacity-50">{quicklookData.cpu_name}</div>
|
||||
)}
|
||||
|
||||
@@ -6,28 +6,18 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
export default function Component({ service }) {
|
||||
const { widget } = service;
|
||||
|
||||
if (!widget.fields) {
|
||||
widget.fields = ["public_ip", "region", "country"];
|
||||
}
|
||||
|
||||
const { data: gluetunData, error: gluetunError } = useWidgetAPI(widget, "ip");
|
||||
const includePF = !!widget.fields["port_forwarded"];
|
||||
const { data: portForwardedData, error: portForwardedError } = useWidgetAPI(
|
||||
widget,
|
||||
includePF ? "port_forwarded" : "",
|
||||
);
|
||||
|
||||
if (gluetunError || (includePF && portForwardedError)) {
|
||||
return <Container service={service} error={gluetunError || portForwardedError} />;
|
||||
if (gluetunError) {
|
||||
return <Container service={service} error={gluetunError} />;
|
||||
}
|
||||
|
||||
if (!gluetunData || (includePF && !portForwardedData)) {
|
||||
if (!gluetunData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="gluetun.public_ip" />
|
||||
<Block label="gluetun.region" />
|
||||
<Block label="gluetun.country" />
|
||||
<Block label="gluetun.port_forwarded" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@@ -37,7 +27,6 @@ export default function Component({ service }) {
|
||||
<Block label="gluetun.public_ip" value={gluetunData.public_ip} />
|
||||
<Block label="gluetun.region" value={gluetunData.region} />
|
||||
<Block label="gluetun.country" value={gluetunData.country} />
|
||||
<Block label="gluetun.port_forwarded" value={portForwardedData?.port} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -9,10 +9,6 @@ const widget = {
|
||||
endpoint: "publicip/ip",
|
||||
validate: ["public_ip", "country"],
|
||||
},
|
||||
port_forwarded: {
|
||||
endpoint: "openvpn/portforwarded",
|
||||
validate: ["port"],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -6,9 +6,7 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
export default function Component({ service }) {
|
||||
const { widget } = service;
|
||||
|
||||
const endpoint = widget.version === 2 ? "clientv2" : "client";
|
||||
|
||||
const { data: infoData, error: infoError } = useWidgetAPI(widget, endpoint);
|
||||
const { data: infoData, error: infoError } = useWidgetAPI(widget, "client");
|
||||
|
||||
if (!widget.fields) {
|
||||
widget.fields = ["connected", "enabled", "total"];
|
||||
|
||||
@@ -8,9 +8,6 @@ const widget = {
|
||||
client: {
|
||||
endpoint: "wireguard/client",
|
||||
},
|
||||
clientv2: {
|
||||
endpoint: "client",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ import calendar from "./calendar/widget";
|
||||
import calibreweb from "./calibreweb/widget";
|
||||
import changedetectionio from "./changedetectionio/widget";
|
||||
import channelsdvrserver from "./channelsdvrserver/widget";
|
||||
import checkmk from "./checkmk/widget";
|
||||
import cloudflared from "./cloudflared/widget";
|
||||
import coinmarketcap from "./coinmarketcap/widget";
|
||||
import crowdsec from "./crowdsec/widget";
|
||||
@@ -152,7 +151,6 @@ const widgets = {
|
||||
calibreweb,
|
||||
changedetectionio,
|
||||
channelsdvrserver,
|
||||
checkmk,
|
||||
cloudflared,
|
||||
coinmarketcap,
|
||||
crowdsec,
|
||||
|
||||
Reference in New Issue
Block a user