Merge branch 'gethomepage:main' into feature/add_auth

This commit is contained in:
Aaron Dalton 2023-12-25 11:38:51 -05:00 committed by GitHub
commit 17451dd113
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
69 changed files with 1320 additions and 452 deletions

View File

@ -70,7 +70,7 @@ jobs:
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: 3.x python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - run: echo "cache_id=${{github.sha}}" >> $GITHUB_ENV
- uses: actions/cache@v3 - uses: actions/cache@v3
with: with:
key: mkdocs-material-${{ env.cache_id }} key: mkdocs-material-${{ env.cache_id }}
@ -78,7 +78,7 @@ jobs:
restore-keys: | restore-keys: |
mkdocs-material- mkdocs-material-
- run: sudo apt-get install pngquant - run: sudo apt-get install pngquant
- run: pip install mike==1.1.2 - run: pip install mike==2.0.0
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git - run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
- name: Set Git config - name: Set Git config
run: | run: |

View File

@ -79,6 +79,7 @@ metadata:
gethomepage.dev/widget.url: "https://emby.example.com" gethomepage.dev/widget.url: "https://emby.example.com"
gethomepage.dev/pod-selector: "" gethomepage.dev/pod-selector: ""
gethomepage.dev/weight: 10 # optional gethomepage.dev/weight: 10 # optional
gethomepage.dev/instance: "public" # optional
spec: spec:
rules: rules:
- host: emby.example.com - host: emby.example.com
@ -95,6 +96,8 @@ spec:
When the Kubernetes cluster connection has been properly configured, this service will be automatically discovered and added to your Homepage. **You do not need to specify the `namespace` or `app` values, as they will be automatically inferred.** When the Kubernetes cluster connection has been properly configured, this service will be automatically discovered and added to your Homepage. **You do not need to specify the `namespace` or `app` values, as they will be automatically inferred.**
If you are using multiple instances of homepage, an `instance` annotation can be specified to limit services to a specific instance. If no instance is provided, the service will be visible on all instances.
### Traefik IngressRoute support ### Traefik IngressRoute support
Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set: Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set:
@ -116,6 +119,7 @@ metadata:
gethomepage.dev/widget.url: "https://emby.example.com" gethomepage.dev/widget.url: "https://emby.example.com"
gethomepage.dev/pod-selector: "" gethomepage.dev/pod-selector: ""
gethomepage.dev/weight: 10 # optional gethomepage.dev/weight: 10 # optional
gethomepage.dev/instance: "public" # optional
spec: spec:
entryPoints: entryPoints:
- websecure - websecure

View File

@ -179,7 +179,7 @@ Services may be connected to a Docker container, either running on the local mac
Services may also have a service widget (or integration) attached to them, this works independently of the Docker integration. Services may also have a service widget (or integration) attached to them, this works independently of the Docker integration.
You can find information and configuration for each of the supported integrations on the [Service Widgets](service-widgets.md) page. You can find information and configuration for each of the supported integrations on the [Widgets](../widgets/index.md) page.
Here is an example of a Radarr & Sonarr service, with their respective integrations. Here is an example of a Radarr & Sonarr service, with their respective integrations.

View File

@ -13,7 +13,7 @@ Home Network > Network > Network Settings > Access Settings in the Home Network
Credentials are not needed and, as such, you may want to consider using `http` instead of `https` as those requests are significantly faster. Credentials are not needed and, as such, you may want to consider using `http` instead of `https` as those requests are significantly faster.
Allowed fields (limited to a max of 4): `["connectionStatus", "upTime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress"]`. Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress"]`.
```yaml ```yaml
widget: widget:

View File

@ -0,0 +1,21 @@
---
title: PeaNUT
description: PeaNUT Widget Configuration
---
This widget adds support for [Network UPS Tools](https://networkupstools.org/) via a third party tool, [PeaNUT](https://github.com/Brandawg93/PeaNUT).
The default ups name is `ups`. To configure more than one ups, you must create multiple peanut services.
Allowed fields: `["battery_charge", "ups_load", "ups_status"]`
!!! note
This widget requires an additional tool, [PeaNUT](https://github.com/Brandawg93/PeaNUT), as noted. Other projects exist to achieve similar results using a `customapi` widget, for example [NUTCase](https://github.com/ArthurMitchell42/nutcase#using-nutcase-homepage).
```yaml
widget:
type: peanut
url: http://peanut.host.or.ip:port
key: nameofyourups
```

View File

@ -96,6 +96,7 @@ nav:
- widgets/services/opnsense.md - widgets/services/opnsense.md
- widgets/services/overseerr.md - widgets/services/overseerr.md
- widgets/services/paperlessngx.md - widgets/services/paperlessngx.md
- widgets/services/peanut.md
- widgets/services/pfsense.md - widgets/services/pfsense.md
- widgets/services/photoprism.md - widgets/services/photoprism.md
- widgets/services/pialert.md - widgets/services/pialert.md

View File

@ -84,6 +84,22 @@ function prettyBytes(number, options) {
return `${prefix + numberString} ${unit}`; return `${prefix + numberString} ${unit}`;
} }
function uptime(uptimeInSeconds, i18next) {
const mo = Math.floor(uptimeInSeconds / (3600 * 24 * 31));
const d = Math.floor((uptimeInSeconds % (3600 * 24 * 31)) / (3600 * 24));
const h = Math.floor((uptimeInSeconds % (3600 * 24)) / 3600);
const m = Math.floor((uptimeInSeconds % 3600) / 60);
const s = Math.floor(uptimeInSeconds % 60);
const moDisplay = mo > 0 ? mo + i18next.t("common.months") : "";
const dDisplay = d > 0 ? d + i18next.t("common.days") : "";
const hDisplay = h > 0 && mo === 0 ? h + i18next.t("common.hours") : "";
const mDisplay = m > 0 && mo === 0 && d === 0 ? m + i18next.t("common.minutes") : "";
const sDisplay = s > 0 && mo === 0 && d === 0 && h === 0 ? s + i18next.t("common.seconds") : "";
return (moDisplay + dDisplay + hDisplay + mDisplay + sDisplay).replace(/,\s*$/, "");
}
module.exports = { module.exports = {
i18n: { i18n: {
defaultLocale: "en", defaultLocale: "en",
@ -126,6 +142,7 @@ module.exports = {
i18next.services.formatter.add("date", (value, lng, options) => i18next.services.formatter.add("date", (value, lng, options) =>
new Intl.DateTimeFormat(lng, { ...options }).format(new Date(value)), new Intl.DateTimeFormat(lng, { ...options }).format(new Date(value)),
); );
i18next.services.formatter.add("uptime", (value, lng) => uptime(value, i18next));
}, },
type: "3rdParty", type: "3rdParty",
}, },

21
package-lock.json generated
View File

@ -15,7 +15,7 @@
"compare-versions": "^5.0.1", "compare-versions": "^5.0.1",
"dockerode": "^3.3.4", "dockerode": "^3.3.4",
"follow-redirects": "^1.15.2", "follow-redirects": "^1.15.2",
"gamedig": "^4.1.0", "gamedig": "^4.3.0",
"i18next": "^21.9.2", "i18next": "^21.9.2",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"json-rpc-2.0": "^1.4.1", "json-rpc-2.0": "^1.4.1",
@ -32,6 +32,7 @@
"react-i18next": "^11.18.6", "react-i18next": "^11.18.6",
"react-icons": "^4.4.0", "react-icons": "^4.4.0",
"recharts": "^2.7.2", "recharts": "^2.7.2",
"rrule": "^2.8.1",
"swr": "^1.3.0", "swr": "^1.3.0",
"systeminformation": "^5.17.12", "systeminformation": "^5.17.12",
"tough-cookie": "^4.1.2", "tough-cookie": "^4.1.2",
@ -2957,9 +2958,9 @@
} }
}, },
"node_modules/gamedig": { "node_modules/gamedig": {
"version": "4.1.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/gamedig/-/gamedig-4.1.0.tgz", "resolved": "https://registry.npmjs.org/gamedig/-/gamedig-4.3.0.tgz",
"integrity": "sha512-jvLUEakihJgpiw9t9yQRsbcemeALeTNlnaWY1gvYdwI63ZlkxznTaLqX5K/eluRTTCtAWNW3YceT6NVjyAZIwA==", "integrity": "sha512-73wQM/mYLh0giljtg9OmF7QySxTGUj52+MxGklm2cveakOuB2zk0cvQl7vIFYcv6uI3HwenjOZKZ5507c/ZyzA==",
"dependencies": { "dependencies": {
"cheerio": "^1.0.0-rc.10", "cheerio": "^1.0.0-rc.10",
"gbxremote": "^0.2.1", "gbxremote": "^0.2.1",
@ -5208,9 +5209,9 @@
} }
}, },
"node_modules/react-icons": { "node_modules/react-icons": {
"version": "4.8.0", "version": "4.12.0",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz",
"integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==", "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==",
"peerDependencies": { "peerDependencies": {
"react": "*" "react": "*"
} }
@ -5501,9 +5502,9 @@
} }
}, },
"node_modules/rrule": { "node_modules/rrule": {
"version": "2.7.2", "version": "2.8.1",
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.7.2.tgz", "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.8.1.tgz",
"integrity": "sha512-NkBsEEB6FIZOZ3T8frvEBOB243dm46SPufpDckY/Ap/YH24V1zLeMmDY8OA10lk452NdrF621+ynDThE7FQU2A==", "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==",
"dependencies": { "dependencies": {
"tslib": "^2.4.0" "tslib": "^2.4.0"
} }

View File

@ -17,7 +17,7 @@
"compare-versions": "^5.0.1", "compare-versions": "^5.0.1",
"dockerode": "^3.3.4", "dockerode": "^3.3.4",
"follow-redirects": "^1.15.2", "follow-redirects": "^1.15.2",
"gamedig": "^4.1.0", "gamedig": "^4.3.0",
"i18next": "^21.9.2", "i18next": "^21.9.2",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"json-rpc-2.0": "^1.4.1", "json-rpc-2.0": "^1.4.1",
@ -32,8 +32,9 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-i18next": "^11.18.6", "react-i18next": "^11.18.6",
"react-icons": "^4.4.0", "react-icons": "^4.12.0",
"recharts": "^2.7.2", "recharts": "^2.7.2",
"rrule": "^2.8.1",
"swr": "^1.3.0", "swr": "^1.3.0",
"systeminformation": "^5.17.12", "systeminformation": "^5.17.12",
"tough-cookie": "^4.1.2", "tough-cookie": "^4.1.2",

View File

@ -27,8 +27,8 @@ dependencies:
specifier: ^1.15.2 specifier: ^1.15.2
version: 1.15.2 version: 1.15.2
gamedig: gamedig:
specifier: ^4.1.0 specifier: ^4.3.0
version: 4.1.0 version: 4.3.0
i18next: i18next:
specifier: ^21.9.2 specifier: ^21.9.2
version: 21.10.0 version: 21.10.0
@ -72,11 +72,14 @@ dependencies:
specifier: ^11.18.6 specifier: ^11.18.6
version: 11.18.6(i18next@21.10.0)(react-dom@18.2.0)(react@18.2.0) version: 11.18.6(i18next@21.10.0)(react-dom@18.2.0)(react@18.2.0)
react-icons: react-icons:
specifier: ^4.4.0 specifier: ^4.12.0
version: 4.8.0(react@18.2.0) version: 4.12.0(react@18.2.0)
recharts: recharts:
specifier: ^2.7.2 specifier: ^2.7.2
version: 2.7.2(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) version: 2.7.2(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)
rrule:
specifier: ^2.8.1
version: 2.8.1
swr: swr:
specifier: ^1.3.0 specifier: ^1.3.0
version: 1.3.0(react@18.2.0) version: 1.3.0(react@18.2.0)
@ -263,7 +266,7 @@ packages:
underscore: 1.13.6 underscore: 1.13.6
ws: 7.5.9 ws: 7.5.9
optionalDependencies: optionalDependencies:
openid-client: 5.4.0 openid-client: 5.6.2
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- utf-8-validate - utf-8-validate
@ -832,10 +835,9 @@ packages:
ieee754: 1.2.1 ieee754: 1.2.1
dev: false dev: false
/buildcheck@0.0.3: /buildcheck@0.0.6:
resolution: {integrity: sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==} resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
requiresBuild: true
dev: false dev: false
optional: true optional: true
@ -871,7 +873,7 @@ packages:
resolution: {integrity: sha512-wlQwcF0fl4eLclyGdncF9rcNNq0ipRYZGagG6h3LVgRXvCWE1fdMUaCLXwfC9YWoz9jKKbjQAq7TpO2Y3yrvmA==} resolution: {integrity: sha512-wlQwcF0fl4eLclyGdncF9rcNNq0ipRYZGagG6h3LVgRXvCWE1fdMUaCLXwfC9YWoz9jKKbjQAq7TpO2Y3yrvmA==}
dependencies: dependencies:
ical-date-parser: 4.0.0 ical-date-parser: 4.0.0
rrule: 2.7.2 rrule: 2.8.1
dev: false dev: false
/call-bind@1.0.2: /call-bind@1.0.2:
@ -942,7 +944,7 @@ packages:
normalize-path: 3.0.0 normalize-path: 3.0.0
readdirp: 3.6.0 readdirp: 3.6.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.3
dev: true dev: true
/chownr@1.1.4: /chownr@1.1.4:
@ -1040,13 +1042,13 @@ packages:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
dev: false dev: false
/cpu-features@0.0.4: /cpu-features@0.0.9:
resolution: {integrity: sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==} resolution: {integrity: sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
buildcheck: 0.0.3 buildcheck: 0.0.6
nan: 2.17.0 nan: 2.18.0
dev: false dev: false
optional: true optional: true
@ -1945,8 +1947,8 @@ packages:
/fs.realpath@1.0.0: /fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
/fsevents@2.3.2: /fsevents@2.3.3:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
@ -1970,8 +1972,8 @@ packages:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: true dev: true
/gamedig@4.1.0: /gamedig@4.3.0:
resolution: {integrity: sha512-jvLUEakihJgpiw9t9yQRsbcemeALeTNlnaWY1gvYdwI63ZlkxznTaLqX5K/eluRTTCtAWNW3YceT6NVjyAZIwA==} resolution: {integrity: sha512-73wQM/mYLh0giljtg9OmF7QySxTGUj52+MxGklm2cveakOuB2zk0cvQl7vIFYcv6uI3HwenjOZKZ5507c/ZyzA==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
hasBin: true hasBin: true
dependencies: dependencies:
@ -2506,9 +2508,8 @@ packages:
resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
dev: true dev: true
/jose@4.13.1: /jose@4.15.4:
resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==}
requiresBuild: true
dev: false dev: false
optional: true optional: true
@ -2778,8 +2779,8 @@ packages:
thenify-all: 1.6.0 thenify-all: 1.6.0
dev: true dev: true
/nan@2.17.0: /nan@2.18.0:
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==}
requiresBuild: true requiresBuild: true
dev: false dev: false
optional: true optional: true
@ -2987,10 +2988,9 @@ packages:
es-abstract: 1.21.2 es-abstract: 1.21.2
dev: true dev: true
/oidc-token-hash@5.0.1: /oidc-token-hash@5.0.3:
resolution: {integrity: sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==} resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==}
engines: {node: ^10.13.0 || >=12.0.0} engines: {node: ^10.13.0 || >=12.0.0}
requiresBuild: true
dev: false dev: false
optional: true optional: true
@ -3012,14 +3012,14 @@ packages:
mimic-fn: 2.1.0 mimic-fn: 2.1.0
dev: false dev: false
/openid-client@5.4.0: /openid-client@5.6.2:
resolution: {integrity: sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==} resolution: {integrity: sha512-TIVimoK/fAvpiISLcoGZyNJx2TOfd5AE6TXn58FFj6Y8qbU/jqky54Aws7sYKuCph1bLPWSRUa1r/Rd6K21bhg==}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
jose: 4.13.1 jose: 4.15.4
lru-cache: 6.0.0 lru-cache: 6.0.0
object-hash: 2.2.0 object-hash: 2.2.0
oidc-token-hash: 5.0.1 oidc-token-hash: 5.0.3
dev: false dev: false
optional: true optional: true
@ -3319,8 +3319,8 @@ packages:
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
/react-icons@4.8.0(react@18.2.0): /react-icons@4.12.0(react@18.2.0):
resolution: {integrity: sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==} resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==}
peerDependencies: peerDependencies:
react: '*' react: '*'
dependencies: dependencies:
@ -3552,8 +3552,8 @@ packages:
dependencies: dependencies:
glob: 7.2.3 glob: 7.2.3
/rrule@2.7.2: /rrule@2.8.1:
resolution: {integrity: sha512-NkBsEEB6FIZOZ3T8frvEBOB243dm46SPufpDckY/Ap/YH24V1zLeMmDY8OA10lk452NdrF621+ynDThE7FQU2A==} resolution: {integrity: sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==}
dependencies: dependencies:
tslib: 2.5.0 tslib: 2.5.0
dev: false dev: false
@ -3679,8 +3679,8 @@ packages:
asn1: 0.2.6 asn1: 0.2.6
bcrypt-pbkdf: 1.0.2 bcrypt-pbkdf: 1.0.2
optionalDependencies: optionalDependencies:
cpu-features: 0.0.4 cpu-features: 0.0.9
nan: 2.17.0 nan: 2.18.0
dev: false dev: false
/sshpk@1.17.0: /sshpk@1.17.0:

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Gebruikers", "users": "Gebruikers",
"uptime": "Stelsel Bedryfstyd", "uptime": "Optyd",
"days": "Daë", "days": "Daë",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Intekenings", "subscriptions": "Intekenings",
"unread": "Ongelees" "unread": "Ongelees"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Ongekonfigureer",
"connectionStatusConnecting": "Verbind",
"connectionStatusAuthenticating": "Stel geldigheid vas",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Ontkoppel",
"connectionStatusDisconnected": "Ontkoppel",
"connectionStatusConnected": "Gekoppel",
"uptime": "Optyd",
"maxDown": "Maks. Af",
"maxUp": "Maks. Op",
"down": "Af",
"up": "Op",
"received": "Ontvang",
"sent": "Gestuur",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Stroomop", "upstreams": "Stroomop",
"requests": "Huidige versoeke", "requests": "Huidige versoeke",
@ -765,6 +783,7 @@
"inCinemas": "In fliekteaters", "inCinemas": "In fliekteaters",
"physicalRelease": "Fisiese Vrylating", "physicalRelease": "Fisiese Vrylating",
"digitalRelease": "Digitale Vrylating", "digitalRelease": "Digitale Vrylating",
"noEventsToday": "Geen gebeure vir vandag nie!" "noEventsToday": "Geen gebeure vir vandag nie!",
"noEventsFound": "Geen gebeure gevind nie"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "المستخدمون", "users": "المستخدمون",
"uptime": "مدة تشغيل النظام", "uptime": "مدة التشغيل",
"days": "أيام", "days": "أيام",
"wan": "الشبكة الواسعة", "wan": "الشبكة الواسعة",
"lan": "الشبكة المحلية", "lan": "الشبكة المحلية",
@ -122,6 +122,24 @@
"subscriptions": "الاشتراكات", "subscriptions": "الاشتراكات",
"unread": "غير مقروءة" "unread": "غير مقروءة"
}, },
"fritzbox": {
"connectionStatus": "الحالة",
"connectionStatusUnconfigured": "لم تتم تهيئته",
"connectionStatusConnecting": "جاري الاتصال",
"connectionStatusAuthenticating": "جار المصادقة",
"connectionStatusPendingDisconnect": "في انتظار قطع الاتصال",
"connectionStatusDisconnecting": "جار قطع الاتصال",
"connectionStatusDisconnected": "غير متصل",
"connectionStatusConnected": "متصل",
"uptime": "مدة التشغيل",
"maxDown": "أقصى حد للتنزيل",
"maxUp": "أقصى حد للتحميل",
"down": "لا يعمل",
"up": "يعمل",
"received": "تم الإستلام",
"sent": "تم الإرسال",
"externalIPAddress": "IP الخارجي"
},
"caddy": { "caddy": {
"upstreams": "تدفق", "upstreams": "تدفق",
"requests": "طلبات الحالية", "requests": "طلبات الحالية",
@ -765,6 +783,7 @@
"inCinemas": "في دور السينما", "inCinemas": "في دور السينما",
"physicalRelease": "الإصدار المادي", "physicalRelease": "الإصدار المادي",
"digitalRelease": "الإصدار الرقمي", "digitalRelease": "الإصدار الرقمي",
"noEventsToday": "لا توجد أحداث اليوم!" "noEventsToday": "لا توجد أحداث اليوم!",
"noEventsFound": "لم يتم العثور على أحداث"
} }
} }

View File

@ -33,22 +33,22 @@
}, },
"resources": { "resources": {
"cpu": "Процесор", "cpu": "Процесор",
"mem": "MEM", "mem": "Памет",
"total": "Общо", "total": "Общо",
"free": "Свободни", "free": "Свободни",
"used": "Заети", "used": "Заети",
"load": "Натоварване", "load": "Натоварване",
"temp": "TEMP", "temp": "Температура",
"max": "Max", "max": "Макс.",
"uptime": "UP", "uptime": "Онлайн",
"months": "mo", "months": "мес",
"days": "d", "days": "д",
"hours": "h", "hours": "ч",
"minutes": "m" "minutes": "мин"
}, },
"unifi": { "unifi": {
"users": "Потребители", "users": "Потребители",
"uptime": "Активен от", "uptime": "Uptime",
"days": "Дни", "days": "Дни",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -58,7 +58,7 @@
"wlan_devices": "WLAN Устройства", "wlan_devices": "WLAN Устройства",
"lan_users": "LAN Потребители", "lan_users": "LAN Потребители",
"wlan_users": "WLAN Потребители", "wlan_users": "WLAN Потребители",
"up": "UP", "up": "Онлайн",
"down": "DOWN", "down": "DOWN",
"wait": "Моля изчакайте", "wait": "Моля изчакайте",
"empty_data": "Subsystem status unknown" "empty_data": "Subsystem status unknown"
@ -66,12 +66,12 @@
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "Памет",
"cpu": "Процесор", "cpu": "Процесор",
"running": "Running", "running": "Running",
"offline": "Изключен", "offline": "Изключен",
"error": "Грешка", "error": "Грешка",
"unknown": "Unknown", "unknown": "Неизв.",
"healthy": "Healthy", "healthy": "Healthy",
"starting": "Starting", "starting": "Starting",
"unhealthy": "Unhealthy", "unhealthy": "Unhealthy",
@ -99,7 +99,7 @@
"transcoding": "Конвертира", "transcoding": "Конвертира",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Няма активни потоци", "no_active": "Няма активни потоци",
"movies": "Movies", "movies": "Филми",
"series": "Series", "series": "Series",
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Статус",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Свързано",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -133,8 +151,8 @@
}, },
"channelsdvrserver": { "channelsdvrserver": {
"shows": "Shows", "shows": "Shows",
"recordings": "Recordings", "recordings": "Записи",
"scheduled": "Scheduled", "scheduled": "Планирано",
"passes": "Passes" "passes": "Passes"
}, },
"tautulli": { "tautulli": {
@ -142,12 +160,12 @@
"transcoding": "Конвертира", "transcoding": "Конвертира",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Няма активни потоци", "no_active": "Няма активни потоци",
"plex_connection_error": "Check Plex Connection" "plex_connection_error": "Провери връзка с Plex"
}, },
"omada": { "omada": {
"connectedAp": "Connected APs", "connectedAp": "Connected APs",
"activeUser": "Active devices", "activeUser": "Активни устройства",
"alerts": "Alerts", "alerts": "Предупреждения",
"connectedGateway": "Connected gateways", "connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches" "connectedSwitches": "Connected switches"
}, },
@ -158,8 +176,8 @@
}, },
"plex": { "plex": {
"streams": "Активни Потоци", "streams": "Активни Потоци",
"albums": "Albums", "albums": "Албуми",
"movies": "Movies", "movies": "Филми",
"tv": "Сериали" "tv": "Сериали"
}, },
"sabnzbd": { "sabnzbd": {
@ -190,7 +208,7 @@
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage", "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage", "volumeUsage": "Volume Usage",
"invalid": "Invalid" "invalid": "Невалидни"
}, },
"deluge": { "deluge": {
"download": "Download", "download": "Download",
@ -205,28 +223,28 @@
"seed": "Seed" "seed": "Seed"
}, },
"sonarr": { "sonarr": {
"wanted": "Wanted", "wanted": "Търсени",
"queued": "Queued", "queued": "В изчакване",
"series": "Series", "series": "Series",
"queue": "Опашка", "queue": "Опашка",
"unknown": "Unknown" "unknown": "Неизв."
}, },
"radarr": { "radarr": {
"wanted": "Wanted", "wanted": "Търсени",
"missing": "Missing", "missing": "Липсващи",
"queued": "Queued", "queued": "В изчакване",
"movies": "Movies", "movies": "Филми",
"queue": "Опашка", "queue": "Опашка",
"unknown": "Unknown" "unknown": "Неизв."
}, },
"lidarr": { "lidarr": {
"wanted": "Wanted", "wanted": "Търсени",
"queued": "Queued", "queued": "В изчакване",
"artists": "Artists" "artists": "Изпълнители"
}, },
"readarr": { "readarr": {
"wanted": "Wanted", "wanted": "Търсени",
"queued": "Queued", "queued": "В изчакване",
"books": "Книги" "books": "Книги"
}, },
"bazarr": { "bazarr": {
@ -251,8 +269,8 @@
}, },
"pialert": { "pialert": {
"total": "Общо", "total": "Общо",
"connected": "Connected", "connected": "Свързано",
"new_devices": "New Devices", "new_devices": "Нови устройства",
"down_alerts": "Down Alerts" "down_alerts": "Down Alerts"
}, },
"pihole": { "pihole": {
@ -280,16 +298,16 @@
"tailscale": { "tailscale": {
"address": "Address", "address": "Address",
"expires": "Expires", "expires": "Expires",
"never": "Never", "never": "Никога",
"last_seen": "Last Seen", "last_seen": "Последно видян",
"now": "Now", "now": "Сега",
"years": "{{number}}y", "years": "{{number}}г",
"weeks": "{{number}}w", "weeks": "{{number}}с",
"days": "{{number}}d", "days": "{{number}}д",
"hours": "{{number}}h", "hours": "{{number}}ч",
"minutes": "{{number}}m", "minutes": "{{number}}м",
"seconds": "{{number}}s", "seconds": "{{number}}сек",
"ago": "{{value}} Ago" "ago": "преди {{value}}"
}, },
"tdarr": { "tdarr": {
"queue": "Опашка", "queue": "Опашка",
@ -346,12 +364,12 @@
"domain_count": "Domains" "domain_count": "Domains"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Търсени",
"queued": "Queued", "queued": "В изчакване",
"series": "Series" "series": "Series"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Играчи",
"version": "Version", "version": "Version",
"status": "Статус", "status": "Статус",
"up": "Online", "up": "Online",
@ -367,7 +385,7 @@
"failedLoginsLast24H": "Failed Logins (24h)" "failedLoginsLast24H": "Failed Logins (24h)"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "Памет",
"cpu": "Процесор", "cpu": "Процесор",
"lxc": "LXC", "lxc": "LXC",
"vms": "VMs" "vms": "VMs"
@ -376,15 +394,15 @@
"cpu": "Процесор", "cpu": "Процесор",
"load": "Натоварване", "load": "Натоварване",
"wait": "Моля изчакайте", "wait": "Моля изчакайте",
"temp": "TEMP", "temp": "Температура",
"_temp": "Temp", "_temp": "Температура",
"warn": "Warn", "warn": "Предупреждение",
"uptime": "UP", "uptime": "Онлайн",
"total": "Общо", "total": "Общо",
"free": "Свободни", "free": "Свободни",
"used": "Заети", "used": "Заети",
"days": "d", "days": "д",
"hours": "h", "hours": "ч",
"crit": "Crit", "crit": "Crit",
"read": "Read", "read": "Read",
"write": "Write", "write": "Write",
@ -395,7 +413,7 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Bookmark", "bookmark": "Bookmark",
"service": "Service", "service": "Service",
"search": "Search", "search": "Търсене",
"custom": "Custom", "custom": "Custom",
"visit": "Visit", "visit": "Visit",
"url": "URL" "url": "URL"
@ -470,9 +488,9 @@
"down": "Down" "down": "Down"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Нови",
"up": "Online", "up": "Online",
"grace": "In Grace Period", "grace": "Гратисен период",
"down": "Изключен", "down": "Изключен",
"paused": "Paused", "paused": "Paused",
"status": "Статус", "status": "Статус",
@ -487,19 +505,19 @@
"autobrr": { "autobrr": {
"approvedPushes": "Одобрен", "approvedPushes": "Одобрен",
"rejectedPushes": "Rejected", "rejectedPushes": "Rejected",
"filters": "Filters", "filters": "Филтри",
"indexers": "Indexers" "indexers": "Indexers"
}, },
"tubearchivist": { "tubearchivist": {
"downloads": "Опашка", "downloads": "Опашка",
"videos": "Videos", "videos": "Видео",
"channels": "Channels", "channels": "Канали",
"playlists": "Playlists" "playlists": "Playlists"
}, },
"truenas": { "truenas": {
"load": "System Load", "load": "System Load",
"uptime": "Uptime", "uptime": "Uptime",
"alerts": "Alerts", "alerts": "Предупреждения",
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"pyload": { "pyload": {
@ -510,17 +528,17 @@
}, },
"gluetun": { "gluetun": {
"public_ip": "Public IP", "public_ip": "Public IP",
"region": "Region", "region": "Регион",
"country": "Country" "country": "Страна"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Канали",
"hd": "HD" "hd": "HD"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "Passed",
"failed": "Failed", "failed": "Failed",
"unknown": "Unknown" "unknown": "Неизв."
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Inbox", "inbox": "Inbox",
@ -575,7 +593,7 @@
"wanStatus": "WAN Status", "wanStatus": "WAN Status",
"up": "Up", "up": "Up",
"down": "Down", "down": "Down",
"temp": "Temp", "temp": "Температура",
"disk": "Disk Usage", "disk": "Disk Usage",
"wanIP": "WAN IP" "wanIP": "WAN IP"
}, },
@ -588,7 +606,7 @@
"immich": { "immich": {
"users": "Потребители", "users": "Потребители",
"photos": "Photos", "photos": "Photos",
"videos": "Videos", "videos": "Видео",
"storage": "Storage" "storage": "Storage"
}, },
"uptimekuma": { "uptimekuma": {
@ -596,7 +614,7 @@
"down": "Sites Down", "down": "Sites Down",
"uptime": "Uptime", "uptime": "Uptime",
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "мин"
}, },
"atsumeru": { "atsumeru": {
"series": "Series", "series": "Series",
@ -617,12 +635,12 @@
"mylar": { "mylar": {
"series": "Series", "series": "Series",
"issues": "Issues", "issues": "Issues",
"wanted": "Wanted" "wanted": "Търсени"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Албуми",
"photos": "Photos", "photos": "Photos",
"videos": "Videos", "videos": "Видео",
"people": "People" "people": "People"
}, },
"fileflows": { "fileflows": {
@ -641,13 +659,13 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users", "activeusers": "Активни потребители",
"numfiles": "Files", "numfiles": "Файлове",
"numshares": "Shared Items" "numshares": "Споделени записи"
}, },
"kopia": { "kopia": {
"status": "Статус", "status": "Статус",
"size": "Size", "size": "Размер",
"lastrun": "Last Run", "lastrun": "Last Run",
"nextrun": "Next Run", "nextrun": "Next Run",
"failed": "Failed" "failed": "Failed"
@ -674,8 +692,8 @@
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podcasts",
"books": "Книги", "books": "Книги",
"podcastsDuration": "Duration", "podcastsDuration": "Продължителност",
"booksDuration": "Duration" "booksDuration": "Продължителност"
}, },
"homeassistant": { "homeassistant": {
"people_home": "People Home", "people_home": "People Home",
@ -695,12 +713,12 @@
"jdownloader": { "jdownloader": {
"downloadCount": "Опашка", "downloadCount": "Опашка",
"downloadBytesRemaining": "Остава", "downloadBytesRemaining": "Остава",
"downloadTotalBytes": "Size", "downloadTotalBytes": "Размер",
"downloadSpeed": "Speed" "downloadSpeed": "Speed"
}, },
"kavita": { "kavita": {
"seriesCount": "Series", "seriesCount": "Series",
"totalFiles": "Files" "totalFiles": "Файлове"
}, },
"azuredevops": { "azuredevops": {
"result": "Result", "result": "Result",
@ -720,24 +738,24 @@
"online": "Online", "online": "Online",
"offline": "Изключен", "offline": "Изключен",
"name": "Name", "name": "Name",
"map": "Map", "map": "Карта",
"currentPlayers": "Current players", "currentPlayers": "Текущи играчи",
"players": "Players", "players": "Играчи",
"maxPlayers": "Max players", "maxPlayers": "Максимален брой играчи",
"bots": "Bots", "bots": "Ботове",
"ping": "Ping" "ping": "Ping"
}, },
"urbackup": { "urbackup": {
"ok": "Ok", "ok": "ОК",
"errored": "Errors", "errored": "Грешки",
"noRecent": "Out of Date", "noRecent": "Out of Date",
"totalUsed": "Used Storage" "totalUsed": "Used Storage"
}, },
"mealie": { "mealie": {
"recipes": "Recipes", "recipes": "Рецепти",
"users": "Потребители", "users": "Потребители",
"categories": "Categories", "categories": "Categories",
"tags": "Tags" "tags": "Тагове"
}, },
"openmediavault": { "openmediavault": {
"downloading": "Downloading", "downloading": "Downloading",
@ -759,12 +777,13 @@
"up": "Up", "up": "Up",
"seemsdown": "Seems Down", "seemsdown": "Seems Down",
"down": "Down", "down": "Down",
"unknown": "Unknown" "unknown": "Неизв."
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "Няма събития за днес!",
"noEventsFound": "Няма намерени събития"
} }
} }

View File

@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Estat",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Temps actiu",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Uživatelé", "users": "Uživatelé",
"uptime": "Doba provozu", "uptime": "Doba spuštění",
"days": "dní", "days": "dní",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Odběry", "subscriptions": "Odběry",
"unread": "Nepřečteno" "unread": "Nepřečteno"
}, },
"fritzbox": {
"connectionStatus": "Stav",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Doba spuštění",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Odesílání dat", "upstreams": "Odesílání dat",
"requests": "Aktuální požadavky", "requests": "Aktuální požadavky",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Brugere", "users": "Brugere",
"uptime": "System Oppetid", "uptime": "Oppetid",
"days": "Dage", "days": "Dage",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Abonnementer", "subscriptions": "Abonnementer",
"unread": "Ulæst" "unread": "Ulæst"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Forbundet",
"uptime": "Oppetid",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Ned",
"up": "Op",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Aktuelle anmodninger", "requests": "Aktuelle anmodninger",
@ -765,6 +783,7 @@
"inCinemas": "I biografen", "inCinemas": "I biografen",
"physicalRelease": "Fysisk udgivelse", "physicalRelease": "Fysisk udgivelse",
"digitalRelease": "Digitale udgivelser", "digitalRelease": "Digitale udgivelser",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Benutzer", "users": "Benutzer",
"uptime": "System-Laufzeit", "uptime": "Betriebszeit",
"days": "Tage", "days": "Tage",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -126,19 +126,19 @@
"connectionStatus": "Status", "connectionStatus": "Status",
"connectionStatusUnconfigured": "Unkonfiguriert", "connectionStatusUnconfigured": "Unkonfiguriert",
"connectionStatusConnecting": "Verbinde", "connectionStatusConnecting": "Verbinde",
"connectionStatusAuthenticating": "Authenifiziere", "connectionStatusAuthenticating": "Authentifiziere",
"connectionStatusPendingDisconnect": "Anstehende Trennung", "connectionStatusPendingDisconnect": "Ausstehende Trennung",
"connectionStatusDisconnecting": "Trenne", "connectionStatusDisconnecting": "Trenne",
"connectionStatusDisconnected": "Getrennt", "connectionStatusDisconnected": "Getrennt",
"connectionStatusConnected": "Verbunden", "connectionStatusConnected": "Verbunden",
"uptime": "Betriebszeit", "uptime": "Betriebszeit",
"maxDown": "Max. Down", "maxDown": "Max. Empfang",
"maxUp": "Max. Up", "maxUp": "Max. Senden",
"down": "Down", "down": "Empfangen",
"up": "Up", "up": "Senden",
"received": "Empfangen", "received": "Empfangen",
"sent": "Gesendet", "sent": "Gesendet",
"externalIPAddress": "Ext. IP" "externalIPAddress": "Externe IP"
}, },
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
@ -170,7 +170,7 @@
"connectedSwitches": "Verbundene Switches" "connectedSwitches": "Verbundene Switches"
}, },
"nzbget": { "nzbget": {
"rate": "Geschwindigkeit", "rate": "Datenrate",
"remaining": "Verbleibend", "remaining": "Verbleibend",
"downloaded": "Heruntergeladen" "downloaded": "Heruntergeladen"
}, },
@ -181,7 +181,7 @@
"tv": "TV-Serien" "tv": "TV-Serien"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Geschwindigkeit", "rate": "Datenrate",
"queue": "Warteschlange", "queue": "Warteschlange",
"timeleft": "Verbleibende Zeit" "timeleft": "Verbleibende Zeit"
}, },
@ -356,7 +356,7 @@
"numActiveSessions": "Sitzungen", "numActiveSessions": "Sitzungen",
"numConnections": "Verbindungen", "numConnections": "Verbindungen",
"dataRelayed": "Weitergeleitet", "dataRelayed": "Weitergeleitet",
"transferRate": "Geschwindigkeit" "transferRate": "Datenrate"
}, },
"mastodon": { "mastodon": {
"user_count": "Benutzer", "user_count": "Benutzer",
@ -521,7 +521,7 @@
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"pyload": { "pyload": {
"speed": "Geschwindigkeit", "speed": "Datenrate",
"active": "Aktiv", "active": "Aktiv",
"queue": "Warteschlange", "queue": "Warteschlange",
"total": "Gesamt" "total": "Gesamt"
@ -714,7 +714,7 @@
"downloadCount": "Warteschlange", "downloadCount": "Warteschlange",
"downloadBytesRemaining": "Verbleibend", "downloadBytesRemaining": "Verbleibend",
"downloadTotalBytes": "Größe", "downloadTotalBytes": "Größe",
"downloadSpeed": "Geschwindigkeit" "downloadSpeed": "Datenrate"
}, },
"kavita": { "kavita": {
"seriesCount": "Serien", "seriesCount": "Serien",
@ -783,6 +783,7 @@
"inCinemas": "Im Kino", "inCinemas": "Im Kino",
"physicalRelease": "Physische Version", "physicalRelease": "Physische Version",
"digitalRelease": "Digitale Version", "digitalRelease": "Digitale Version",
"noEventsToday": "Heute keine Ereignisse!" "noEventsToday": "Heute keine Ereignisse!",
"noEventsFound": "Keine Termine gefunden"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Χρήστες", "users": "Χρήστες",
"uptime": "Χρόνος λειτουργίας συστήματος", "uptime": "Uptime",
"days": "Ημέρες", "days": "Ημέρες",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Συνδρομές", "subscriptions": "Συνδρομές",
"unread": "Μη Διαβασμένο" "unread": "Μη Διαβασμένο"
}, },
"fritzbox": {
"connectionStatus": "Κατάσταση",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Τρέχοντα αιτήματα", "requests": "Τρέχοντα αιτήματα",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -11,7 +11,13 @@
"percent": "{{value, percent}}", "percent": "{{value, percent}}",
"number": "{{value, number}}", "number": "{{value, number}}",
"ms": "{{value, number}}", "ms": "{{value, number}}",
"date": "{{value, date}}" "date": "{{value, date}}",
"uptime": "{{value, uptime}}",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m",
"seconds": "s"
}, },
"widget": { "widget": {
"missing_type": "Missing Widget Type: {{type}}", "missing_type": "Missing Widget Type: {{type}}",
@ -40,11 +46,7 @@
"load": "Load", "load": "Load",
"temp": "TEMP", "temp": "TEMP",
"max": "Max", "max": "Max",
"uptime": "UP", "uptime": "UP"
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
@ -517,8 +519,7 @@
"truenas": { "truenas": {
"load": "System Load", "load": "System Load",
"uptime": "Uptime", "uptime": "Uptime",
"alerts": "Alerts", "alerts": "Alerts"
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"pyload": { "pyload": {
"speed": "Speed", "speed": "Speed",
@ -544,6 +545,14 @@
"inbox": "Inbox", "inbox": "Inbox",
"total": "Total" "total": "Total"
}, },
"peanut": {
"battery_charge": "Battery Charge",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"online": "Online",
"on_battery": "On Battery",
"low_battery": "Low Battery"
},
"nextdns": { "nextdns": {
"wait": "Please Wait", "wait": "Please Wait",
"no_devices": "No Device Data Received" "no_devices": "No Device Data Received"

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Uzantoj", "users": "Uzantoj",
"uptime": "Uptempo de la Sistemo", "uptime": "Uptime",
"days": "Tagoj", "days": "Tagoj",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Stato",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Usuarios", "users": "Usuarios",
"uptime": "Tiempo de actividad", "uptime": "Tiempo de la actividad",
"days": "Días", "days": "Días",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Suscripciones", "subscriptions": "Suscripciones",
"unread": "Sin leer" "unread": "Sin leer"
}, },
"fritzbox": {
"connectionStatus": "Estado",
"connectionStatusUnconfigured": "Sin configurar",
"connectionStatusConnecting": "Conectando",
"connectionStatusAuthenticating": "Autenticando",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Desconectando",
"connectionStatusDisconnected": "Desconectado",
"connectionStatusConnected": "Conectado",
"uptime": "Tiempo de la actividad",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Abajo",
"up": "Arriba",
"received": "Recibido",
"sent": "Enviado",
"externalIPAddress": "IP pública"
},
"caddy": { "caddy": {
"upstreams": "Upstream (desarrollo de software)", "upstreams": "Upstream (desarrollo de software)",
"requests": "Peticiones actuales", "requests": "Peticiones actuales",
@ -765,6 +783,7 @@
"inCinemas": "En cine", "inCinemas": "En cine",
"physicalRelease": "Lanzamiento en físico", "physicalRelease": "Lanzamiento en físico",
"digitalRelease": "Lanzamiento en digital", "digitalRelease": "Lanzamiento en digital",
"noEventsToday": "Sin eventos para hoy" "noEventsToday": "Sin eventos para hoy",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Egun", "days": "Egun",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Tila",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Utilisateurs", "users": "Utilisateurs",
"uptime": "Disponibilité du système", "uptime": "Démarré depuis",
"days": "Jours", "days": "Jours",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Abonnements", "subscriptions": "Abonnements",
"unread": "Non lu" "unread": "Non lu"
}, },
"fritzbox": {
"connectionStatus": "Statut",
"connectionStatusUnconfigured": "Non-configuré",
"connectionStatusConnecting": "Connexion en cours",
"connectionStatusAuthenticating": "Authentification en cours",
"connectionStatusPendingDisconnect": "Déconnexion en attente",
"connectionStatusDisconnecting": "Déconnexion en cours",
"connectionStatusDisconnected": "Déconnecté",
"connectionStatusConnected": "Connecté",
"uptime": "Démarré depuis",
"maxDown": "Max. Bas",
"maxUp": "Max. Haut",
"down": "Down",
"up": "Up",
"received": "Reçu",
"sent": "Envoyé",
"externalIPAddress": "IP externe"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Demandes en cours", "requests": "Demandes en cours",
@ -690,7 +708,7 @@
"books": "Livres", "books": "Livres",
"authors": "Auteurs", "authors": "Auteurs",
"categories": "Catégories", "categories": "Catégories",
"series": "Séries TV" "series": "Séries"
}, },
"jdownloader": { "jdownloader": {
"downloadCount": "En attente", "downloadCount": "En attente",
@ -765,6 +783,7 @@
"inCinemas": "En salle", "inCinemas": "En salle",
"physicalRelease": "Sortie physique", "physicalRelease": "Sortie physique",
"digitalRelease": "Sortie numérique", "digitalRelease": "Sortie numérique",
"noEventsToday": "Rien pour aujourd'hui !" "noEventsToday": "Rien pour aujourd'hui !",
"noEventsFound": "Aucun événement trouvé"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "סטטוס",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Korisnici", "users": "Korisnici",
"uptime": "Radno vrijeme sustava", "uptime": "Radno vrijeme",
"days": "Dani", "days": "Dani",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Pretplate", "subscriptions": "Pretplate",
"unread": "Nepročitano" "unread": "Nepročitano"
}, },
"fritzbox": {
"connectionStatus": "Stanje",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Povezano",
"uptime": "Radno vrijeme",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Glavne grane", "upstreams": "Glavne grane",
"requests": "Aktualni zahtjevi", "requests": "Aktualni zahtjevi",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Felhasználók", "users": "Felhasználók",
"uptime": "Rendszer üzemidő", "uptime": "Üzemidő",
"days": "Napok", "days": "Napok",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Előfizetések", "subscriptions": "Előfizetések",
"unread": "Olvasatlan" "unread": "Olvasatlan"
}, },
"fritzbox": {
"connectionStatus": "Státusz",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Csatlakoztatott",
"uptime": "Üzemidő",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreamek", "upstreams": "Upstreamek",
"requests": "Jelenlegi kérelmek", "requests": "Jelenlegi kérelmek",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Utenti", "users": "Utenti",
"uptime": "Uptime di Sistema", "uptime": "Tempo di attività",
"days": "Giorni", "days": "Giorni",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Iscrizioni", "subscriptions": "Iscrizioni",
"unread": "Non letto" "unread": "Non letto"
}, },
"fritzbox": {
"connectionStatus": "Stato",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connesso",
"uptime": "Tempo di attività",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstream", "upstreams": "Upstream",
"requests": "Richieste correnti", "requests": "Richieste correnti",
@ -765,6 +783,7 @@
"inCinemas": "Al cinema", "inCinemas": "Al cinema",
"physicalRelease": "Release fisici", "physicalRelease": "Release fisici",
"digitalRelease": "Versione digitale", "digitalRelease": "Versione digitale",
"noEventsToday": "Nessun evento per oggi!" "noEventsToday": "Nessun evento per oggi!",
"noEventsFound": "Nessun evento trovato"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "ユーザ", "users": "ユーザ",
"uptime": "システム・アップタイム", "uptime": "稼働時間",
"days": "日", "days": "日",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "購読", "subscriptions": "購読",
"unread": "未読" "unread": "未読"
}, },
"fritzbox": {
"connectionStatus": "状態",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "接続済み",
"uptime": "稼働時間",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "下へ",
"up": "上へ",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "アップストリーム", "upstreams": "アップストリーム",
"requests": "現在のリクエスト", "requests": "現在のリクエスト",
@ -765,6 +783,7 @@
"inCinemas": "映画館内", "inCinemas": "映画館内",
"physicalRelease": "物理的なリリース", "physicalRelease": "物理的なリリース",
"digitalRelease": "デジタル・リリース", "digitalRelease": "デジタル・リリース",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "사용자", "users": "사용자",
"uptime": "시스템 업타임", "uptime": "Uptime",
"days": "일", "days": "일",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "상태",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Lietotāji", "users": "Lietotāji",
"uptime": "Sistēmas darbības laiks", "uptime": "Uptime",
"days": "Dienas", "days": "Dienas",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Statuss",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Pengguna", "users": "Pengguna",
"uptime": "Masa Operasi Sistem", "uptime": "Masa Hidup",
"days": "Hari", "days": "Hari",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Masa Hidup",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Gebruikers", "users": "Gebruikers",
"uptime": "Systeem Uptime", "uptime": "Online",
"days": "Dagen", "days": "Dagen",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Abonnementen", "subscriptions": "Abonnementen",
"unread": "Ongelezen" "unread": "Ongelezen"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Niet-geconfigureerd",
"connectionStatusConnecting": "Bezig met verbinden",
"connectionStatusAuthenticating": "Verificatie",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Verbinding verbreken...",
"connectionStatusDisconnected": "Verbinding verbroken",
"connectionStatusConnected": "Verbonden",
"uptime": "Online",
"maxDown": "Max. Omlaag",
"maxUp": "Max. omhoog",
"down": "Offline",
"up": "Online",
"received": "Ontvangen",
"sent": "Verzonden",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Huidige verzoeken", "requests": "Huidige verzoeken",
@ -765,6 +783,7 @@
"inCinemas": "In bioscopen", "inCinemas": "In bioscopen",
"physicalRelease": "Fysieke versie", "physicalRelease": "Fysieke versie",
"digitalRelease": "Digitale versie", "digitalRelease": "Digitale versie",
"noEventsToday": "Geen gebeurtenissen voor vandaag!" "noEventsToday": "Geen gebeurtenissen voor vandaag!",
"noEventsFound": "Geen gebeurtenissen gevonden"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Użytkownicy", "users": "Użytkownicy",
"uptime": "Czas pracy systemu", "uptime": "Czas działania",
"days": "Dni", "days": "Dni",
"wan": "Sieć WAN", "wan": "Sieć WAN",
"lan": "Sieć LAN", "lan": "Sieć LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subskrypcje", "subscriptions": "Subskrypcje",
"unread": "Nieprzeczytane" "unread": "Nieprzeczytane"
}, },
"fritzbox": {
"connectionStatus": "Stan",
"connectionStatusUnconfigured": "Nieskonfigurowane",
"connectionStatusConnecting": "Łączenie",
"connectionStatusAuthenticating": "Uwierzytelnianie",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Rozłączanie",
"connectionStatusDisconnected": "Rozłączono",
"connectionStatusConnected": "Połączony",
"uptime": "Czas działania",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Niedostępny",
"up": "Dostępny",
"received": "Odebrane",
"sent": "Wysłane",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Aktualne zapytania", "requests": "Aktualne zapytania",
@ -476,7 +494,7 @@
"down": "Nieosiągalny", "down": "Nieosiągalny",
"paused": "Zatrzymane", "paused": "Zatrzymane",
"status": "Stan", "status": "Stan",
"last_ping": "Last Ping", "last_ping": "Ostatni ping",
"never": "No pings yet" "never": "No pings yet"
}, },
"watchtower": { "watchtower": {
@ -571,12 +589,12 @@
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
"memory": "Mem Usage", "memory": "Użycie pamięci",
"wanStatus": "WAN Status", "wanStatus": "Status WAN",
"up": "Dostępny", "up": "Dostępny",
"down": "Niedostępny", "down": "Niedostępny",
"temp": "Temperatura", "temp": "Temperatura",
"disk": "Disk Usage", "disk": "Użycie dysku",
"wanIP": "WAN IP" "wanIP": "WAN IP"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
@ -600,9 +618,9 @@
}, },
"atsumeru": { "atsumeru": {
"series": "Seriale", "series": "Seriale",
"archives": "Archives", "archives": "Archiwa",
"chapters": "Chapters", "chapters": "Rozdziały",
"categories": "Categories" "categories": "Kategorie"
}, },
"komga": { "komga": {
"libraries": "Biblioteki", "libraries": "Biblioteki",
@ -632,7 +650,7 @@
"time": "Czas" "time": "Czas"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Panel główny",
"datasources": "Źródła danych", "datasources": "Źródła danych",
"totalalerts": "Total Alerts", "totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alerts Triggered"
@ -649,7 +667,7 @@
"status": "Stan", "status": "Stan",
"size": "Rozmiar", "size": "Rozmiar",
"lastrun": "Ostatnie uruchomienie", "lastrun": "Ostatnie uruchomienie",
"nextrun": "Next Run", "nextrun": "Następne uruchomienie",
"failed": "Niepowodzenie" "failed": "Niepowodzenie"
}, },
"unmanic": { "unmanic": {
@ -659,7 +677,7 @@
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Serwery", "servers": "Serwery",
"nodes": "Nodes" "nodes": "Węzły"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Targets Up",
@ -669,7 +687,7 @@
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Dzisiaj", "gross_percent_today": "Dzisiaj",
"gross_percent_1y": "Rok", "gross_percent_1y": "Rok",
"gross_percent_max": "All time" "gross_percent_max": "Od początku"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasty", "podcasts": "Podcasty",
@ -688,8 +706,8 @@
}, },
"calibreweb": { "calibreweb": {
"books": "Książki", "books": "Książki",
"authors": "Authors", "authors": "Autorzy",
"categories": "Categories", "categories": "Kategorie",
"series": "Seriale" "series": "Seriale"
}, },
"jdownloader": { "jdownloader": {
@ -703,14 +721,14 @@
"totalFiles": "Pliki" "totalFiles": "Pliki"
}, },
"azuredevops": { "azuredevops": {
"result": "Result", "result": "Wynik",
"status": "Stan", "status": "Stan",
"buildId": "Build ID", "buildId": "ID kompilacji",
"succeeded": "Succeeded", "succeeded": "Ukończono",
"notStarted": "Not Started", "notStarted": "Not Started",
"failed": "Niepowodzenie", "failed": "Niepowodzenie",
"canceled": "Canceled", "canceled": "Anulowano",
"inProgress": "In Progress", "inProgress": "W trakcie",
"totalPrs": "Total PRs", "totalPrs": "Total PRs",
"myPrs": "My PRs", "myPrs": "My PRs",
"approved": "Zaakceptowane" "approved": "Zaakceptowane"
@ -723,24 +741,24 @@
"map": "Mapa", "map": "Mapa",
"currentPlayers": "Current players", "currentPlayers": "Current players",
"players": "Gracze", "players": "Gracze",
"maxPlayers": "Max players", "maxPlayers": "Maksymalna ilość graczy",
"bots": "Boty", "bots": "Boty",
"ping": "Ping" "ping": "Ping"
}, },
"urbackup": { "urbackup": {
"ok": "Ok", "ok": "Ok",
"errored": "Errors", "errored": "Błędy",
"noRecent": "Out of Date", "noRecent": "Nieaktualne",
"totalUsed": "Used Storage" "totalUsed": "Used Storage"
}, },
"mealie": { "mealie": {
"recipes": "Recipes", "recipes": "Recipes",
"users": "Użytkownicy", "users": "Użytkownicy",
"categories": "Categories", "categories": "Kategorie",
"tags": "Tagi" "tags": "Tagi"
}, },
"openmediavault": { "openmediavault": {
"downloading": "Downloading", "downloading": "Pobieranie",
"total": "Całkowite", "total": "Całkowite",
"running": "Działa", "running": "Działa",
"stopped": "Zatrzymane", "stopped": "Zatrzymane",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Utilizadores", "users": "Utilizadores",
"uptime": "Sistema Ativo", "uptime": "Ligado",
"days": "Dias", "days": "Dias",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Assinaturas", "subscriptions": "Assinaturas",
"unread": "Não lida" "unread": "Não lida"
}, },
"fritzbox": {
"connectionStatus": "Estado",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Conectado",
"uptime": "Ligado",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Solicitações atuais", "requests": "Solicitações atuais",
@ -765,6 +783,7 @@
"inCinemas": "Em cinemas", "inCinemas": "Em cinemas",
"physicalRelease": "Lançamento físico", "physicalRelease": "Lançamento físico",
"digitalRelease": "Lançamento digital", "digitalRelease": "Lançamento digital",
"noEventsToday": "Não existem eventos hoje!" "noEventsToday": "Não existem eventos hoje!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Utilizadores", "users": "Utilizadores",
"uptime": "Sistema Ativo", "uptime": "Ligado",
"days": "Dias", "days": "Dias",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Assinaturas", "subscriptions": "Assinaturas",
"unread": "Não lida" "unread": "Não lida"
}, },
"fritzbox": {
"connectionStatus": "Estado",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Ligado",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Solicitações atuais", "requests": "Solicitações atuais",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Utilizatori", "users": "Utilizatori",
"uptime": "Timp de funcționare a sistemului", "uptime": "Uptime",
"days": "Zile", "days": "Zile",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Abonări", "subscriptions": "Abonări",
"unread": "Necitit" "unread": "Necitit"
}, },
"fritzbox": {
"connectionStatus": "Stare",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Jos",
"up": "Sus",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreamuri", "upstreams": "Upstreamuri",
"requests": "Solicitări curente", "requests": "Solicitări curente",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Пользователи", "users": "Пользователи",
"uptime": "Время работы системы", "uptime": "Время работы",
"days": "Дней", "days": "Дней",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Подписки", "subscriptions": "Подписки",
"unread": "Не прочитано" "unread": "Не прочитано"
}, },
"fritzbox": {
"connectionStatus": "Статус",
"connectionStatusUnconfigured": "Не настроено",
"connectionStatusConnecting": "Подключение",
"connectionStatusAuthenticating": "Авторизация",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Отключение",
"connectionStatusDisconnected": "Отключено",
"connectionStatusConnected": "Подключено",
"uptime": "Время работы",
"maxDown": "Макс. Загрузка",
"maxUp": "Макс. Отдача",
"down": "Офлайн",
"up": "Онлайн",
"received": "Получено",
"sent": "Отправлено",
"externalIPAddress": "Внеш. IP"
},
"caddy": { "caddy": {
"upstreams": "Входящие каналы", "upstreams": "Входящие каналы",
"requests": "Текущие запросы", "requests": "Текущие запросы",
@ -765,6 +783,7 @@
"inCinemas": "В кинотеатрах", "inCinemas": "В кинотеатрах",
"physicalRelease": "Физический релиз", "physicalRelease": "Физический релиз",
"digitalRelease": "Цифровой релиз", "digitalRelease": "Цифровой релиз",
"noEventsToday": "Нет событий на сегодня!" "noEventsToday": "Нет событий на сегодня!",
"noEventsFound": "Событий не найдено"
} }
} }

View File

@ -122,6 +122,24 @@
"subscriptions": "Odbery", "subscriptions": "Odbery",
"unread": "Neprečítané" "unread": "Neprečítané"
}, },
"fritzbox": {
"connectionStatus": "Stav",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Pripojené",
"uptime": "Doba prevádzky",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Sťahovanie",
"up": "Nahrávanie",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Odosielanie dát", "upstreams": "Odosielanie dát",
"requests": "Aktuálne požiadavky", "requests": "Aktuálne požiadavky",
@ -765,6 +783,7 @@
"inCinemas": "V kinách", "inCinemas": "V kinách",
"physicalRelease": "Fyzické vydanie", "physicalRelease": "Fyzické vydanie",
"digitalRelease": "Digitálne vydanie", "digitalRelease": "Digitálne vydanie",
"noEventsToday": "Žiadne udalosti na dnešný deň!" "noEventsToday": "Žiadne udalosti na dnešný deň!",
"noEventsFound": "No events found"
} }
} }

View File

@ -122,6 +122,24 @@
"subscriptions": "Naročnine", "subscriptions": "Naročnine",
"unread": "Neprebrano" "unread": "Neprebrano"
}, },
"fritzbox": {
"connectionStatus": "Stanje",
"connectionStatusUnconfigured": "Nenastavljeno",
"connectionStatusConnecting": "Se povezuje",
"connectionStatusAuthenticating": "Avtentikacija",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Prekinitev",
"connectionStatusDisconnected": "Prekinjeno",
"connectionStatusConnected": "Povezanih",
"uptime": "Čas delovanja",
"maxDown": "Maks. dol",
"maxUp": "Maks. gor",
"down": "Nepovezan",
"up": "Povezan",
"received": "Prejeto",
"sent": "Poslano",
"externalIPAddress": "Zun. IP"
},
"caddy": { "caddy": {
"upstreams": "Pretok gor", "upstreams": "Pretok gor",
"requests": "Trenutnih zahtev", "requests": "Trenutnih zahtev",
@ -765,6 +783,7 @@
"inCinemas": "V kinu", "inCinemas": "V kinu",
"physicalRelease": "Fizična izdaja", "physicalRelease": "Fizična izdaja",
"digitalRelease": "Digitalna izdaja", "digitalRelease": "Digitalna izdaja",
"noEventsToday": "Za danes ni dogodkov!" "noEventsToday": "Za danes ni dogodkov!",
"noEventsFound": "Ni dogodkov"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Användare", "users": "Användare",
"uptime": "Upptid", "uptime": "Uptime",
"days": "Dagar", "days": "Dagar",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "వినియోగదారులు", "users": "వినియోగదారులు",
"uptime": "సిస్టమ్ సమయము", "uptime": "Uptime",
"days": "రోజులు", "days": "రోజులు",
"wan": "WAN", "wan": "WAN",
"lan": "లాన్", "lan": "లాన్",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "హోదా",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "ผู้ใช้", "users": "ผู้ใช้",
"uptime": "เวลาทำงานของระบบ", "uptime": "Uptime",
"days": "วัน", "days": "วัน",
"wan": "WAN", "wan": "WAN",
"lan": "แลน", "lan": "แลน",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "สถานะ",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -122,6 +122,24 @@
"subscriptions": "Abonelikler", "subscriptions": "Abonelikler",
"unread": "Okunmamış" "unread": "Okunmamış"
}, },
"fritzbox": {
"connectionStatus": "Durum",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Bağlandı",
"uptime": "Çalışma Süresi",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Akış", "upstreams": "Akış",
"requests": "Anlık İstekler", "requests": "Anlık İstekler",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -18,7 +18,7 @@
"api_error": "Помилка API", "api_error": "Помилка API",
"information": "Інформація", "information": "Інформація",
"status": "Стан", "status": "Стан",
"url": "URL", "url": "URL-адреса",
"raw_error": "Помилка Raw", "raw_error": "Помилка Raw",
"response_data": "Дані відповіді" "response_data": "Дані відповіді"
}, },
@ -32,14 +32,14 @@
"placeholder": "Пошук…" "placeholder": "Пошук…"
}, },
"resources": { "resources": {
"cpu": "CPU", "cpu": "ЦП",
"mem": "Пам'ять", "mem": "ОЗП",
"total": "Всього", "total": "Усього",
"free": "Вільно", "free": "Вільно",
"used": "Використано", "used": "Використано",
"load": "Завантаження", "load": "Завантаження",
"temp": "TEMP", "temp": "Температура",
"max": "Max", "max": "Макс.",
"uptime": "Відправка", "uptime": "Відправка",
"months": "міс", "months": "міс",
"days": "д", "days": "д",
@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Користувачі", "users": "Користувачі",
"uptime": "Час роботи системи", "uptime": "Час роботи",
"days": "Днів", "days": "Днів",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -66,8 +66,8 @@
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "Пам'ять", "mem": "ОЗП",
"cpu": "CPU", "cpu": "ЦП",
"running": "Запущено", "running": "Запущено",
"offline": "Офлайн", "offline": "Офлайн",
"error": "Помилка", "error": "Помилка",
@ -122,6 +122,24 @@
"subscriptions": "Передплата", "subscriptions": "Передплата",
"unread": "Не прочитано" "unread": "Не прочитано"
}, },
"fritzbox": {
"connectionStatus": "Стан",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Підключено",
"uptime": "Час роботи",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Потоки", "upstreams": "Потоки",
"requests": "Поточні запити", "requests": "Поточні запити",
@ -250,7 +268,7 @@
"available": "Доступно" "available": "Доступно"
}, },
"pialert": { "pialert": {
"total": "Всього", "total": "Усього",
"connected": "Підключено", "connected": "Підключено",
"new_devices": "Нові пристрої", "new_devices": "Нові пристрої",
"down_alerts": "Сповіщення про збій" "down_alerts": "Сповіщення про збій"
@ -275,7 +293,7 @@
"portainer": { "portainer": {
"running": "Запущено", "running": "Запущено",
"stopped": "Зупинено", "stopped": "Зупинено",
"total": "Всього" "total": "Усього"
}, },
"tailscale": { "tailscale": {
"address": "Адреса", "address": "Адреса",
@ -309,7 +327,7 @@
"npm": { "npm": {
"enabled": "Увімкнено", "enabled": "Увімкнено",
"disabled": "Вимкнено", "disabled": "Вимкнено",
"total": "Всього" "total": "Усього"
}, },
"coinmarketcap": { "coinmarketcap": {
"configure": "Налаштуйте одну або кілька криптовалют для відстеження", "configure": "Налаштуйте одну або кілька криптовалют для відстеження",
@ -367,20 +385,20 @@
"failedLoginsLast24H": "Невдалі входи (24 години)" "failedLoginsLast24H": "Невдалі входи (24 години)"
}, },
"proxmox": { "proxmox": {
"mem": "Пам'ять", "mem": "ОЗП",
"cpu": "CPU", "cpu": "ЦП",
"lxc": "Контейнери Linux", "lxc": "Контейнери Linux",
"vms": "Віртуальні машини" "vms": "Віртуальні машини"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "ЦП",
"load": "Завантаження", "load": "Завантаження",
"wait": "Будь ласка, зачекайте", "wait": "Будь ласка, зачекайте",
"temp": "TEMP", "temp": "Температура",
"_temp": "Temp", "_temp": "Temp",
"warn": "Увага", "warn": "Увага",
"uptime": "Відправка", "uptime": "Відправка",
"total": "Всього", "total": "Усього",
"free": "Вільно", "free": "Вільно",
"used": "Використано", "used": "Використано",
"days": "д", "days": "д",
@ -398,7 +416,7 @@
"search": "Пошук", "search": "Пошук",
"custom": "Користувацький", "custom": "Користувацький",
"visit": "Відвідайте", "visit": "Відвідайте",
"url": "URL" "url": "URL-адреса"
}, },
"wmo": { "wmo": {
"0-day": "Сонячно", "0-day": "Сонячно",
@ -506,7 +524,7 @@
"speed": "Швидкість", "speed": "Швидкість",
"active": "Активний", "active": "Активний",
"queue": "Черга", "queue": "Черга",
"total": "Всього" "total": "Усього"
}, },
"gluetun": { "gluetun": {
"public_ip": "Публічний IP", "public_ip": "Публічний IP",
@ -524,7 +542,7 @@
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Вхідні", "inbox": "Вхідні",
"total": "Всього" "total": "Усього"
}, },
"nextdns": { "nextdns": {
"wait": "Будь ласка, зачекайте", "wait": "Будь ласка, зачекайте",
@ -582,7 +600,7 @@
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Сховище даних", "datastore_usage": "Сховище даних",
"failed_tasks_24h": "Невиконані завдання 24 години", "failed_tasks_24h": "Невиконані завдання 24 години",
"cpu_usage": "CPU", "cpu_usage": "ЦП",
"memory_usage": "Пам'ять" "memory_usage": "Пам'ять"
}, },
"immich": { "immich": {
@ -741,7 +759,7 @@
}, },
"openmediavault": { "openmediavault": {
"downloading": "Downloading", "downloading": "Downloading",
"total": "Всього", "total": "Усього",
"running": "Запущено", "running": "Запущено",
"stopped": "Зупинено", "stopped": "Зупинено",
"passed": "Пройшов", "passed": "Пройшов",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "Users", "users": "Users",
"uptime": "System Uptime", "uptime": "Uptime",
"days": "Days", "days": "Days",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "Subscriptions", "subscriptions": "Subscriptions",
"unread": "Unread" "unread": "Unread"
}, },
"fritzbox": {
"connectionStatus": "Trạng thái",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "Upstreams", "upstreams": "Upstreams",
"requests": "Current requests", "requests": "Current requests",
@ -765,6 +783,7 @@
"inCinemas": "In cinemas", "inCinemas": "In cinemas",
"physicalRelease": "Physical release", "physicalRelease": "Physical release",
"digitalRelease": "Digital release", "digitalRelease": "Digital release",
"noEventsToday": "No events for today!" "noEventsToday": "No events for today!",
"noEventsFound": "No events found"
} }
} }

View File

@ -48,11 +48,11 @@
}, },
"unifi": { "unifi": {
"users": "使用者", "users": "使用者",
"uptime": "系統運作時間", "uptime": "運行時間",
"days": "天", "days": "天",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "區域網路",
"wlan": "WLAN", "wlan": "無線區域網路",
"devices": "設備", "devices": "設備",
"lan_devices": "有線設備", "lan_devices": "有線設備",
"wlan_devices": "無線設備", "wlan_devices": "無線設備",
@ -81,18 +81,18 @@
}, },
"ping": { "ping": {
"error": "錯誤", "error": "錯誤",
"ping": "Ping", "ping": "延遲",
"down": "Down", "down": "離線",
"up": "Up", "up": "在線",
"not_available": "Not Available" "not_available": "不可用"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP status", "http_status": "HTTP 狀態",
"error": "錯誤", "error": "錯誤",
"response": "Response", "response": "回應",
"down": "Down", "down": "離線",
"up": "Up", "up": "在線",
"not_available": "Not Available" "not_available": "不可用"
}, },
"emby": { "emby": {
"playing": "播放緊", "playing": "播放緊",
@ -122,6 +122,24 @@
"subscriptions": "訂閱", "subscriptions": "訂閱",
"unread": "未讀" "unread": "未讀"
}, },
"fritzbox": {
"connectionStatus": "狀況",
"connectionStatusUnconfigured": "未設置",
"connectionStatusConnecting": "連線中",
"connectionStatusAuthenticating": "驗證中",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "正在中斷連線",
"connectionStatusDisconnected": "連接已中斷",
"connectionStatusConnected": "已連線",
"uptime": "運行時間",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "離線",
"up": "在線",
"received": "已接收",
"sent": "已送出",
"externalIPAddress": "外部 IP"
},
"caddy": { "caddy": {
"upstreams": "上行", "upstreams": "上行",
"requests": "目前請求數", "requests": "目前請求數",
@ -270,7 +288,7 @@
"speedtest": { "speedtest": {
"upload": "上傳速率", "upload": "上傳速率",
"download": "下載速率", "download": "下載速率",
"ping": "Ping" "ping": "延遲"
}, },
"portainer": { "portainer": {
"running": "執行中", "running": "執行中",
@ -369,8 +387,8 @@
"proxmox": { "proxmox": {
"mem": "記憶體", "mem": "記憶體",
"cpu": "CPU", "cpu": "CPU",
"lxc": "LXC", "lxc": "Linux 容器",
"vms": "VMs" "vms": "虛擬機"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@ -390,7 +408,7 @@
"write": "寫入", "write": "寫入",
"gpu": "GPU", "gpu": "GPU",
"mem": "記憶體", "mem": "記憶體",
"swap": "Swap" "swap": "交換空間"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "書籤", "bookmark": "書籤",
@ -463,11 +481,11 @@
"updates": "更新", "updates": "更新",
"update_available": "有可用的更新", "update_available": "有可用的更新",
"up_to_date": "已更新至最新", "up_to_date": "已更新至最新",
"child_bridges": "Child Bridges", "child_bridges": "子網橋",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "在線",
"pending": "待定", "pending": "待定",
"down": "Down" "down": "離線"
}, },
"healthchecks": { "healthchecks": {
"new": "新建立", "new": "新建立",
@ -542,10 +560,10 @@
"streams_xepg": "XEPG頻道" "streams_xepg": "XEPG頻道"
}, },
"opendtu": { "opendtu": {
"yieldDay": "Today", "yieldDay": "今日",
"absolutePower": "Power", "absolutePower": "功率",
"relativePower": "Power %", "relativePower": "功率百分比",
"limit": "Limit" "limit": "上限"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU負載", "cpu": "CPU負載",
@ -573,8 +591,8 @@
"load": "平均負載量", "load": "平均負載量",
"memory": "記憶體使用率", "memory": "記憶體使用率",
"wanStatus": "網際網路狀態", "wanStatus": "網際網路狀態",
"up": "Up", "up": "在線",
"down": "Down", "down": "離線",
"temp": "溫度", "temp": "溫度",
"disk": "硬碟使用率", "disk": "硬碟使用率",
"wanIP": "網際網路 IP" "wanIP": "網際網路 IP"
@ -667,7 +685,7 @@
"targets_total": "目標總數" "targets_total": "目標總數"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "今日",
"gross_percent_1y": "一年", "gross_percent_1y": "一年",
"gross_percent_max": "所有時間" "gross_percent_max": "所有時間"
}, },
@ -725,10 +743,10 @@
"players": "玩家", "players": "玩家",
"maxPlayers": "玩家數上限", "maxPlayers": "玩家數上限",
"bots": "機器人", "bots": "機器人",
"ping": "Ping" "ping": "延遲"
}, },
"urbackup": { "urbackup": {
"ok": "Ok", "ok": "確定",
"errored": "錯誤", "errored": "錯誤",
"noRecent": "已過時", "noRecent": "已過時",
"totalUsed": "已使用空間" "totalUsed": "已使用空間"
@ -756,15 +774,16 @@
"sitesDown": "離線網站", "sitesDown": "離線網站",
"paused": "擱置中", "paused": "擱置中",
"notyetchecked": "尚未檢查", "notyetchecked": "尚未檢查",
"up": "Up", "up": "在線",
"seemsdown": "似乎離線", "seemsdown": "似乎離線",
"down": "Down", "down": "離線",
"unknown": "未知" "unknown": "未知"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "上映中",
"physicalRelease": "Physical release", "physicalRelease": "實體發行",
"digitalRelease": "Digital release", "digitalRelease": "數位發行",
"noEventsToday": "No events for today!" "noEventsToday": "今日無事件",
"noEventsFound": "未找到事件"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "用户数", "users": "用户数",
"uptime": "系统运行时间", "uptime": "运行时间",
"days": "天", "days": "天",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
@ -122,6 +122,24 @@
"subscriptions": "订阅", "subscriptions": "订阅",
"unread": "未读" "unread": "未读"
}, },
"fritzbox": {
"connectionStatus": "状态",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "已连接",
"uptime": "运行时间",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "离线",
"up": "在线",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
},
"caddy": { "caddy": {
"upstreams": "上行", "upstreams": "上行",
"requests": "当前请求", "requests": "当前请求",
@ -765,6 +783,7 @@
"inCinemas": "上映中", "inCinemas": "上映中",
"physicalRelease": "实体发行", "physicalRelease": "实体发行",
"digitalRelease": "数字发行", "digitalRelease": "数字发行",
"noEventsToday": "今天没有活动!" "noEventsToday": "今天没有活动!",
"noEventsFound": "未找到事件"
} }
} }

View File

@ -48,7 +48,7 @@
}, },
"unifi": { "unifi": {
"users": "使用者", "users": "使用者",
"uptime": "系統運作時間", "uptime": "運行時間",
"days": "天", "days": "天",
"wan": "WAN", "wan": "WAN",
"lan": "區域網路", "lan": "區域網路",
@ -82,16 +82,16 @@
"ping": { "ping": {
"error": "錯誤", "error": "錯誤",
"ping": "延遲", "ping": "延遲",
"down": "Down", "down": "離線",
"up": "Up", "up": "在線",
"not_available": "不可用" "not_available": "不可用"
}, },
"siteMonitor": { "siteMonitor": {
"http_status": "HTTP 狀態", "http_status": "HTTP 狀態",
"error": "錯誤", "error": "錯誤",
"response": "回應", "response": "回應",
"down": "Down", "down": "離線",
"up": "Up", "up": "在線",
"not_available": "不可用" "not_available": "不可用"
}, },
"emby": { "emby": {
@ -122,6 +122,24 @@
"subscriptions": "訂閱", "subscriptions": "訂閱",
"unread": "未讀" "unread": "未讀"
}, },
"fritzbox": {
"connectionStatus": "狀態",
"connectionStatusUnconfigured": "未設置",
"connectionStatusConnecting": "連線中",
"connectionStatusAuthenticating": "驗證中",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "正在中斷連線",
"connectionStatusDisconnected": "連接已中斷",
"connectionStatusConnected": "已連線",
"uptime": "運行時間",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "離線",
"up": "在線",
"received": "已接收",
"sent": "已送出",
"externalIPAddress": "外部 IP"
},
"caddy": { "caddy": {
"upstreams": "上行", "upstreams": "上行",
"requests": "目前請求數", "requests": "目前請求數",
@ -369,8 +387,8 @@
"proxmox": { "proxmox": {
"mem": "記憶體", "mem": "記憶體",
"cpu": "CPU", "cpu": "CPU",
"lxc": "LXC", "lxc": "Linux 容器",
"vms": "VMs" "vms": "虛擬機"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@ -390,7 +408,7 @@
"write": "寫入", "write": "寫入",
"gpu": "GPU", "gpu": "GPU",
"mem": "記憶體", "mem": "記憶體",
"swap": "Swap" "swap": "交換空間"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "書籤", "bookmark": "書籤",
@ -463,11 +481,11 @@
"updates": "更新", "updates": "更新",
"update_available": "有可用的更新", "update_available": "有可用的更新",
"up_to_date": "已更新至最新", "up_to_date": "已更新至最新",
"child_bridges": "Child Bridges", "child_bridges": "子網橋",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "在線",
"pending": "待下載", "pending": "待下載",
"down": "Down" "down": "離線"
}, },
"healthchecks": { "healthchecks": {
"new": "新建立", "new": "新建立",
@ -543,9 +561,9 @@
}, },
"opendtu": { "opendtu": {
"yieldDay": "今日", "yieldDay": "今日",
"absolutePower": "Power", "absolutePower": "功率",
"relativePower": "Power %", "relativePower": "功率百分比",
"limit": "Limit" "limit": "上限"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU負載", "cpu": "CPU負載",
@ -573,8 +591,8 @@
"load": "平均負載量", "load": "平均負載量",
"memory": "記憶體使用率", "memory": "記憶體使用率",
"wanStatus": "網際網路狀態", "wanStatus": "網際網路狀態",
"up": "Up", "up": "在線",
"down": "Down", "down": "離線",
"temp": "溫度", "temp": "溫度",
"disk": "硬碟使用率", "disk": "硬碟使用率",
"wanIP": "網際網路 IP" "wanIP": "網際網路 IP"
@ -756,15 +774,16 @@
"sitesDown": "離線網站", "sitesDown": "離線網站",
"paused": "擱置中", "paused": "擱置中",
"notyetchecked": "尚未檢查", "notyetchecked": "尚未檢查",
"up": "Up", "up": "在線",
"seemsdown": "似乎離線", "seemsdown": "似乎離線",
"down": "Down", "down": "離線",
"unknown": "未知" "unknown": "未知"
}, },
"calendar": { "calendar": {
"inCinemas": "In cinemas", "inCinemas": "上映中",
"physicalRelease": "Physical release", "physicalRelease": "實體發行",
"digitalRelease": "Digital release", "digitalRelease": "數位發行",
"noEventsToday": "今日無事件" "noEventsToday": "今日無事件",
"noEventsFound": "未找到事件"
} }
} }

View File

@ -20,17 +20,14 @@ export default function Uptime({ refresh = 1500 }) {
return <Resource icon={FaRegClock} value="-" label={t("resources.uptime")} percentage="0" />; return <Resource icon={FaRegClock} value="-" label={t("resources.uptime")} percentage="0" />;
} }
const mo = Math.floor(data.uptime / (3600 * 24 * 31));
const d = Math.floor((data.uptime % (3600 * 24 * 31)) / (3600 * 24));
const h = Math.floor((data.uptime % (3600 * 24)) / 3600);
const m = Math.floor((data.uptime % 3600) / 60);
let uptime;
if (mo > 0) uptime = `${mo}${t("resources.months")} ${d}${t("resources.days")}`;
else if (d > 0) uptime = `${d}${t("resources.days")} ${h}${t("resources.hours")}`;
else uptime = `${h}${t("resources.hours")} ${m}${t("resources.minutes")}`;
const percent = Math.round((new Date().getSeconds() / 60) * 100).toString(); const percent = Math.round((new Date().getSeconds() / 60) * 100).toString();
return <Resource icon={FaRegClock} value={uptime} label={t("resources.uptime")} percentage={percent} />; return (
<Resource
icon={FaRegClock}
value={t("common.uptime", { value: data.uptime })}
label={t("resources.uptime")}
percentage={percent}
/>
);
} }

View File

@ -100,8 +100,8 @@ export default async function handler(req, res) {
}); });
stats.cpuLimit = cpuLimit; stats.cpuLimit = cpuLimit;
stats.memLimit = memLimit; stats.memLimit = memLimit;
stats.cpuUsage = cpuLimit ? stats.cpu / cpuLimit : 0; stats.cpuUsage = cpuLimit ? 100 * (stats.cpu / cpuLimit) : 0;
stats.memUsage = memLimit ? stats.mem / memLimit : 0; stats.memUsage = memLimit ? 100 * (stats.mem / memLimit) : 0;
res.status(200).json({ res.status(200).json({
stats, stats,
}); });

View File

@ -169,6 +169,7 @@ export async function checkCRD(kc, name) {
export async function servicesFromKubernetes() { export async function servicesFromKubernetes() {
const ANNOTATION_BASE = "gethomepage.dev"; const ANNOTATION_BASE = "gethomepage.dev";
const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`; const ANNOTATION_WIDGET_BASE = `${ANNOTATION_BASE}/widget.`;
const { instanceName } = getSettings();
checkAndCopyConfig("kubernetes.yaml"); checkAndCopyConfig("kubernetes.yaml");
@ -238,7 +239,10 @@ export async function servicesFromKubernetes() {
const services = ingressList.items const services = ingressList.items
.filter( .filter(
(ingress) => (ingress) =>
ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/enabled`] === "true", ingress.metadata.annotations &&
ingress.metadata.annotations[`${ANNOTATION_BASE}/enabled`] === "true" &&
(!ingress.metadata.annotations[`${ANNOTATION_BASE}/instance`] ||
ingress.metadata.annotations[`${ANNOTATION_BASE}/instance`] === instanceName),
) )
.map((ingress) => { .map((ingress) => {
let constructedService = { let constructedService = {

View File

@ -52,15 +52,18 @@ export default function Component({ service }) {
// params for API fetch // params for API fetch
const params = useMemo(() => { const params = useMemo(() => {
if (!showDate) { const constructedParams = {
return {}; start: "",
end: "",
unmonitored: false,
};
if (showDate) {
constructedParams.start = showDate.minus({ months: 3 }).toFormat("yyyy-MM-dd");
constructedParams.end = showDate.plus({ months: 3 }).toFormat("yyyy-MM-dd");
} }
return { return constructedParams;
start: showDate.minus({ months: 3 }).toFormat("yyyy-MM-dd"),
end: showDate.plus({ months: 3 }).toFormat("yyyy-MM-dd"),
unmonitored: "false",
};
}, [showDate]); }, [showDate]);
// Load active integrations // Load active integrations

View File

@ -2,6 +2,7 @@ import { DateTime } from "luxon";
import { parseString } from "cal-parser"; import { parseString } from "cal-parser";
import { useEffect } from "react"; import { useEffect } from "react";
import { useTranslation } from "next-i18next"; import { useTranslation } from "next-i18next";
import { RRule } from "rrule";
import useWidgetAPI from "../../../utils/proxy/use-widget-api"; import useWidgetAPI from "../../../utils/proxy/use-widget-api";
import Error from "../../../components/services/widget/error"; import Error from "../../../components/services/widget/error";
@ -22,15 +23,15 @@ export default function Integration({ config, params, setEvents, hideErrors }) {
} }
} }
if (icalError || !parsedIcal) { const startDate = DateTime.fromISO(params.start);
const endDate = DateTime.fromISO(params.end);
if (icalError || !parsedIcal || !startDate.isValid || !endDate.isValid) {
return; return;
} }
const eventsToAdd = {}; const eventsToAdd = {};
const events = parsedIcal?.getEventsBetweenDates( const events = parsedIcal?.getEventsBetweenDates(startDate.toJSDate(), endDate.toJSDate());
DateTime.fromISO(params.start).toJSDate(),
DateTime.fromISO(params.end).toJSDate(),
);
events?.forEach((event) => { events?.forEach((event) => {
let title = `${event?.summary?.value}`; let title = `${event?.summary?.value}`;
@ -38,16 +39,31 @@ export default function Integration({ config, params, setEvents, hideErrors }) {
title = `${config.name}: ${title}`; title = `${config.name}: ${title}`;
} }
event.matchingDates.forEach((date) => { const eventToAdd = (date, i, type) => {
eventsToAdd[event?.uid?.value] = { const duration = event.dtend.value - event.dtstart.value;
title, const days = duration / (1000 * 60 * 60 * 24);
date: DateTime.fromJSDate(date),
color: config?.color ?? "zinc", for (let j = 0; j < days; j += 1) {
isCompleted: DateTime.fromJSDate(date) < DateTime.now(), eventsToAdd[`${event?.uid?.value}${i}${j}${type}`] = {
additional: event.location?.value, title,
type: "ical", date: DateTime.fromJSDate(date).plus({ days: j }),
}; color: config?.color ?? "zinc",
}); isCompleted: DateTime.fromJSDate(date) < DateTime.now(),
additional: event.location?.value,
type: "ical",
};
}
};
if (event?.recurrenceRule?.options) {
const rule = new RRule(event.recurrenceRule.options);
const recurringEvents = rule.between(startDate.toJSDate(), endDate.toJSDate());
recurringEvents.forEach((date, i) => eventToAdd(date, i, "recurring"));
return;
}
event.matchingDates.forEach((date, i) => eventToAdd(date, i, "single"));
}); });
setEvents((prevEvents) => ({ ...prevEvents, ...eventsToAdd })); setEvents((prevEvents) => ({ ...prevEvents, ...eventsToAdd }));

View File

@ -28,7 +28,7 @@ export default function Component({ service }) {
let diffsDetected = 0; let diffsDetected = 0;
Object.keys(data).forEach((key) => { Object.keys(data).forEach((key) => {
if (data[key].last_changed > 0 && data[key].last_checked === data[key].last_changed && !data[key].viewed) { if (data[key].last_changed > 0 && !data[key].viewed) {
diffsDetected += 1; diffsDetected += 1;
} }
}); });

View File

@ -35,6 +35,7 @@ const components = {
gotify: dynamic(() => import("./gotify/component")), gotify: dynamic(() => import("./gotify/component")),
grafana: dynamic(() => import("./grafana/component")), grafana: dynamic(() => import("./grafana/component")),
hdhomerun: dynamic(() => import("./hdhomerun/component")), hdhomerun: dynamic(() => import("./hdhomerun/component")),
peanut: dynamic(() => import("./peanut/component")),
homeassistant: dynamic(() => import("./homeassistant/component")), homeassistant: dynamic(() => import("./homeassistant/component")),
homebridge: dynamic(() => import("./homebridge/component")), homebridge: dynamic(() => import("./homebridge/component")),
healthchecks: dynamic(() => import("./healthchecks/component")), healthchecks: dynamic(() => import("./healthchecks/component")),

View File

@ -6,18 +6,6 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
export const fritzboxDefaultFields = ["connectionStatus", "uptime", "maxDown", "maxUp"]; export const fritzboxDefaultFields = ["connectionStatus", "uptime", "maxDown", "maxUp"];
const formatUptime = (timestamp) => {
const hours = Math.floor(timestamp / 3600);
const minutes = Math.floor((timestamp % 3600) / 60);
const seconds = timestamp % 60;
const hourDuration = hours > 0 ? `${hours}h` : "00h";
const minDuration = minutes > 0 ? `${minutes}m` : "00m";
const secDuration = seconds > 0 ? `${seconds}s` : "00s";
return hourDuration + minDuration + secDuration;
};
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();
const { widget } = service; const { widget } = service;
@ -56,7 +44,7 @@ export default function Component({ service }) {
return ( return (
<Container service={service}> <Container service={service}>
<Block label="fritzbox.connectionStatus" value={t(`fritzbox.connectionStatus${fritzboxData.connectionStatus}`)} /> <Block label="fritzbox.connectionStatus" value={t(`fritzbox.connectionStatus${fritzboxData.connectionStatus}`)} />
<Block label="fritzbox.uptime" value={formatUptime(fritzboxData.uptime)} /> <Block label="fritzbox.uptime" value={t("common.uptime", { value: fritzboxData.uptime })} />
<Block label="fritzbox.maxDown" value={t("common.byterate", { value: fritzboxData.maxDown / 8, decimals: 1 })} /> <Block label="fritzbox.maxDown" value={t("common.byterate", { value: fritzboxData.maxDown / 8, decimals: 1 })} />
<Block label="fritzbox.maxUp" value={t("common.byterate", { value: fritzboxData.maxUp / 8, decimals: 1 })} /> <Block label="fritzbox.maxUp" value={t("common.byterate", { value: fritzboxData.maxUp / 8, decimals: 1 })} />
<Block label="fritzbox.down" value={t("common.byterate", { value: fritzboxData.down, decimals: 1 })} /> <Block label="fritzbox.down" value={t("common.byterate", { value: fritzboxData.down, decimals: 1 })} />

View File

@ -33,9 +33,9 @@ async function requestEndpoint(apiBaseUrl, service, action) {
const response = {}; const response = {};
try { try {
const jsonData = JSON.parse(xml2json(data)); const jsonData = JSON.parse(xml2json(data));
const responseElements = jsonData?.elements[0]?.elements[0]?.elements[0]?.elements || []; const responseElements = jsonData?.elements?.[0]?.elements?.[0]?.elements?.[0]?.elements || [];
responseElements.forEach((element) => { responseElements.forEach((element) => {
response[element.name] = element.elements[0]?.text || ""; response[element.name] = element.elements?.[0].text || "";
}); });
} catch (e) { } catch (e) {
logger.debug(`Failed parsing ${service}->${action} response:`, data); logger.debug(`Failed parsing ${service}->${action} response:`, data);
@ -50,12 +50,12 @@ export default async function fritzboxProxyHandler(req, res) {
const serviceWidget = await getServiceWidget(group, service); const serviceWidget = await getServiceWidget(group, service);
if (!serviceWidget) { if (!serviceWidget) {
res.status(500).json({ error: "Service widget not found" }); res.status(500).json({ error: { message: "Service widget not found" } });
return; return;
} }
if (!serviceWidget.url) { if (!serviceWidget.url) {
res.status(500).json({ error: "Service widget url not configured" }); res.status(500).json({ error: { message: "Service widget url not configured" } });
return; return;
} }
@ -91,6 +91,6 @@ export default async function fritzboxProxyHandler(req, res) {
}); });
}) })
.catch((error) => { .catch((error) => {
res.status(500).json({ error: error.message }); res.status(500).json({ error: { message: error.message } });
}); });
} }

View File

@ -34,12 +34,8 @@ export default function Component({ service }) {
); );
} }
let currentLayer = "-"; const printStatsInfo = printStats.result.status.print_stats.info ?? {};
let totalLayer = "-"; const { current_layer: currentLayer = "-", total_layer: totalLayer = "-" } = printStatsInfo;
if (printStats.result.status.print_stats.info.total_layer !== null) {
currentLayer = printStats.result.status.print_stats.info.current_layer;
totalLayer = printStats.result.status.print_stats.info.total_layer;
}
return ( return (
<Container service={service}> <Container service={service}>

View File

@ -0,0 +1,49 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { widget } = service;
const { t } = useTranslation();
const { data: upsData, error: upsError } = useWidgetAPI(widget, "devices");
if (upsError) {
return <Container service={service} error={upsError} />;
}
if (!upsData) {
return (
<Container service={service}>
<Block label="peanut.battery_charge" />
<Block label="peanut.ups_load" />
<Block label="peanut.ups_status" />
</Container>
);
}
let status;
switch (upsData.ups_status) {
case "OL":
status = t("peanut.online");
break;
case "OB":
status = t("peanut.on_battery");
break;
case "LB":
status = t("peanut.low_battery");
break;
default:
status = upsData.ups_status;
}
return (
<Container service={service}>
<Block label="peanut.battery_charge" value={t("common.percent", { value: upsData.battery_charge })} />
<Block label="peanut.ups_load" value={t("common.percent", { value: upsData.ups_load })} />
<Block label="peanut.ups_status" value={status} />
</Container>
);
}

View File

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

View File

@ -26,9 +26,19 @@ export default function Component({ service }) {
); );
} }
const queue = parseInt(tdarrData.table1Count, 10) + parseInt(tdarrData.table4Count, 10); // use viewable count if it exists, which removes file count of any disabled libraries etc
const processed = parseInt(tdarrData.table2Count, 10) + parseInt(tdarrData.table5Count, 10); // only shows items which are viewable in the tables in the UI
const errored = parseInt(tdarrData.table3Count, 10) + parseInt(tdarrData.table6Count, 10);
const table1Count = tdarrData.table1ViewableCount || tdarrData.table1Count;
const table2Count = tdarrData.table2ViewableCount || tdarrData.table2Count;
const table3Count = tdarrData.table3ViewableCount || tdarrData.table3Count;
const table4Count = tdarrData.table4ViewableCount || tdarrData.table4Count;
const table5Count = tdarrData.table5ViewableCount || tdarrData.table5Count;
const table6Count = tdarrData.table6ViewableCount || tdarrData.table6Count;
const queue = parseInt(table1Count, 10) + parseInt(table4Count, 10);
const processed = parseInt(table2Count, 10) + parseInt(table5Count, 10);
const errored = parseInt(table3Count, 10) + parseInt(table6Count, 10);
const saved = parseFloat(tdarrData.sizeDiff, 10) * 1000000000; const saved = parseFloat(tdarrData.sizeDiff, 10) * 1000000000;
return ( return (

View File

@ -4,34 +4,6 @@ import Container from "components/services/widget/container";
import Block from "components/services/widget/block"; import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
const processUptime = (uptime) => {
const seconds = uptime.toFixed(0);
const levels = [
[Math.floor(seconds / 31536000), "year"],
[Math.floor((seconds % 31536000) / 2592000), "month"],
[Math.floor(((seconds % 31536000) % 2592000) / 86400), "day"],
[Math.floor(((seconds % 31536000) % 86400) / 3600), "hour"],
[Math.floor((((seconds % 31536000) % 86400) % 3600) / 60), "minute"],
[(((seconds % 31536000) % 86400) % 3600) % 60, "second"],
];
for (let i = 0; i < levels.length; i += 1) {
const level = levels[i];
if (level[0] > 0) {
return {
value: level[0],
unit: level[1],
};
}
}
return {
value: 0,
unit: "second",
};
};
export default function Component({ service }) { export default function Component({ service }) {
const { t } = useTranslation(); const { t } = useTranslation();
@ -58,7 +30,7 @@ export default function Component({ service }) {
return ( return (
<Container service={service}> <Container service={service}>
<Block label="truenas.load" value={t("common.number", { value: statusData.loadavg[0] })} /> <Block label="truenas.load" value={t("common.number", { value: statusData.loadavg[0] })} />
<Block label="truenas.uptime" value={t("truenas.time", processUptime(statusData.uptime_seconds))} /> <Block label="truenas.uptime" value={t("common.uptime", { value: statusData.uptime_seconds })} />
<Block label="truenas.alerts" value={t("common.number", { value: alertData.pending })} /> <Block label="truenas.alerts" value={t("common.number", { value: alertData.pending })} />
</Container> </Container>
); );

View File

@ -4,24 +4,6 @@ import Container from "components/services/widget/container";
import Block from "components/services/widget/block"; import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api"; import useWidgetAPI from "utils/proxy/use-widget-api";
function secondsToDhms(seconds) {
const d = Math.floor(seconds / (3600 * 24));
const h = Math.floor((seconds % (3600 * 24)) / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = Math.floor(seconds % 60);
const dDisplay = d > 0 ? d + (d === 1 ? " day, " : " days, ") : "";
const hDisplay = h > 0 ? h + (h === 1 ? " hr, " : " hrs, ") : "";
let mDisplay = m > 0 && d === 0 ? m + (m === 1 ? " min" : " mins") : "";
let sDisplay = "";
if (d === 0 && h === 0) {
mDisplay = m > 0 ? m + (m === 1 ? " min, " : " mins, ") : "";
sDisplay = s > 0 ? s + (s === 1 ? " sec" : " secs") : "";
}
return (dDisplay + hDisplay + mDisplay + sDisplay).replace(/,\s*$/, "");
}
export default function Component({ service }) { export default function Component({ service }) {
const { widget } = service; const { widget } = service;
const { t } = useTranslation(); const { t } = useTranslation();
@ -68,7 +50,7 @@ export default function Component({ service }) {
break; break;
case 2: case 2:
status = t("uptimerobot.up"); status = t("uptimerobot.up");
uptime = secondsToDhms(monitor.logs[0].duration); uptime = t("common.uptime", { value: monitor.logs[0].duration });
logIndex = 1; logIndex = 1;
break; break;
case 8: case 8:
@ -83,7 +65,7 @@ export default function Component({ service }) {
} }
const lastDown = new Date(monitor.logs[logIndex].datetime * 1000).toLocaleString(); const lastDown = new Date(monitor.logs[logIndex].datetime * 1000).toLocaleString();
const downDuration = secondsToDhms(monitor.logs[logIndex].duration); const downDuration = t("common.uptime", { value: monitor.logs[logIndex].duration });
const hideDown = logIndex === 1 && monitor.logs[logIndex].type !== 1; const hideDown = logIndex === 1 && monitor.logs[logIndex].type !== 1;
return ( return (

View File

@ -62,6 +62,7 @@ import opnsense from "./opnsense/widget";
import overseerr from "./overseerr/widget"; import overseerr from "./overseerr/widget";
import openmediavault from "./openmediavault/widget"; import openmediavault from "./openmediavault/widget";
import paperlessngx from "./paperlessngx/widget"; import paperlessngx from "./paperlessngx/widget";
import peanut from "./peanut/widget";
import pfsense from "./pfsense/widget"; import pfsense from "./pfsense/widget";
import photoprism from "./photoprism/widget"; import photoprism from "./photoprism/widget";
import proxmoxbackupserver from "./proxmoxbackupserver/widget"; import proxmoxbackupserver from "./proxmoxbackupserver/widget";
@ -166,6 +167,7 @@ const widgets = {
overseerr, overseerr,
openmediavault, openmediavault,
paperlessngx, paperlessngx,
peanut,
pfsense, pfsense,
photoprism, photoprism,
proxmoxbackupserver, proxmoxbackupserver,