diff --git a/.github/DISCUSSION_TEMPLATE/support.yml b/.github/DISCUSSION_TEMPLATE/support.yml index 57fcdcebc..9edfe3d2f 100644 --- a/.github/DISCUSSION_TEMPLATE/support.yml +++ b/.github/DISCUSSION_TEMPLATE/support.yml @@ -4,7 +4,7 @@ body: value: | ### ⚠️ Before opening a discussion: - - [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/). + - [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/) and include the output of all steps below. - [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions) (including closed ones!). - type: textarea id: description @@ -59,6 +59,6 @@ body: value: | ## ⚠️ STOP ⚠️ - Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above, if relevant. The troubleshooting steps often help to solve the problem. + Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above *and posted the output*, if relevant. The troubleshooting steps often help to solve the problem or at least can help figure it out. *Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.* diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7a133c1da..e44cc8dd4 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -154,6 +154,7 @@ jobs: VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} platforms: linux/amd64,linux/arm64 + provenance: false cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max diff --git a/Dockerfile b/Dockerfile index cac7623ea..d58737923 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,7 @@ COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/ COPY --link --from=builder --chown=1000:1000 /app/.next/standalone/ ./ COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static -RUN apk add --no-cache su-exec iputils-ping +RUN apk add --no-cache su-exec iputils-ping shadow ENV NODE_ENV=production ENV HOSTNAME=0.0.0.0 diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 9890fbee8..99379de1e 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -12,10 +12,43 @@ export PGID=${PGID:-0} export HOMEPAGE_BUILDTIME=$(date +%s) -# Set privileges for /app but only if pid 1 user is root and we are dropping privileges. -# If container is run as an unprivileged user, it means owner already handled ownership setup on their own. -# Running chown in that case (as non-root) will cause error -[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app/config /app/public +# Check ownership before chown +if [ -e /app/config ]; then + CURRENT_UID=$(stat -c %u /app/config) + CURRENT_GID=$(stat -c %g /app/config) + + if [ "$CURRENT_UID" -ne "$PUID" ] || [ "$CURRENT_GID" -ne "$PGID" ]; then + echo "Fixing ownership of /app/config" + if ! chown -R "$PUID:$PGID" /app/config 2>/dev/null; then + echo "Warning: Could not chown /app/config; continuing anyway" + fi + else + echo "/app/config already owned by correct UID/GID, skipping chown" + fi +else + echo "/app/config does not exist; skipping ownership check" +fi + +# Ensure /app/config/logs exists and is owned +if [ -n "$PUID" ] && [ -n "$PGID" ]; then + mkdir -p /app/config/logs 2>/dev/null || true + if [ -d /app/config/logs ]; then + LOG_UID=$(stat -c %u /app/config/logs) + LOG_GID=$(stat -c %g /app/config/logs) + if [ "$LOG_UID" -ne "$PUID" ] || [ "$LOG_GID" -ne "$PGID" ]; then + echo "Fixing ownership of /app/config/logs" + chown -R "$PUID:$PGID" /app/config/logs 2>/dev/null || echo "Warning: Could not chown /app/config/logs" + fi + fi +fi + +if [ -d /app/.next ]; then + CURRENT_UID=$(stat -c %u /app/.next) + if [ "$CURRENT_UID" -ne "$PUID" ]; then + echo "Fixing ownership of /app/.next" + chown -R "$PUID:$PGID" /app/.next || echo "Warning: Could not chown /app/.next" + fi +fi # Drop privileges (when asked to) if root, otherwise run as current user if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then diff --git a/docs/configs/docker.md b/docs/configs/docker.md index 992897cb6..8b306cfd6 100644 --- a/docs/configs/docker.md +++ b/docs/configs/docker.md @@ -20,7 +20,7 @@ Since Docker supports connecting with TLS and client certificate authentication, ```yaml my-remote-docker: host: 192.168.0.101 - port: 275 + port: 2375 tls: keyFile: tls/key.pem caFile: tls/ca.pem @@ -66,6 +66,30 @@ my-docker: port: 2375 ``` +Use `protocol: https` if you’re connecting through a reverse proxy (e.g., Traefik) that serves the Docker API over HTTPS: + +```yaml +my-docker: + host: dockerproxy + port: 443 + protocol: https +``` + +!!! note + + Note: This does not require TLS certificates if the proxy handles encryption. Do not use `protocol: https` unless you’re sure the target host supports HTTPS. + +You can also include `headers` for the connection, for example, if you are using a reverse proxy that requires authentication: + +```yaml +my-docker: + host: dockerproxy + port: 443 + protocol: https + headers: + Authorization: Basic +``` + ## Using Socket Directly If you'd rather use the socket directly, first make sure that you're passing the local socket into the Docker container. diff --git a/docs/configs/kubernetes.md b/docs/configs/kubernetes.md index 49158e6bb..b0f61bbca 100644 --- a/docs/configs/kubernetes.md +++ b/docs/configs/kubernetes.md @@ -163,6 +163,18 @@ If the `href` attribute is not present, Homepage will ignore the specific Ingres Homepage also features automatic service discovery for Gateway API. Service definitions are read by annotating the HttpRoute custom resource definition and are indentical to the Ingress example as defined in [Automatic Service Discovery](#automatic-service-discovery). +To enable Gateway API HttpRoute update `kubernetes.yaml` to include: + +``` +gateway: true # enable gateway-api +``` + +#### Using the unoffocial helm chart? + +If you are using the unofficial helm chart ensure that the `ClusterRole` has required permissions for `gateway.networking.k8s.io`. + +See [ClusterRole and ClusterRoleBinding](../installation/k8s.md#clusterrole-and-clusterrolebinding) + ## Caveats Similarly to Docker service discovery, there currently is no rigid ordering to discovered services and discovered services will be displayed above those specified in the `services.yaml`. diff --git a/docs/configs/settings.md b/docs/configs/settings.md index c1605f4db..a59ce2917 100644 --- a/docs/configs/settings.md +++ b/docs/configs/settings.md @@ -101,7 +101,7 @@ theme: dark # or light ## Color Palette -You can configured a fixed color palette (and disable the palette switcher) by passing the `color` option, like so: +You can configure a fixed color palette (and disable the palette switcher) by passing the `color` option, like so: ```yaml color: slate diff --git a/docs/widgets/services/checkmk.md b/docs/widgets/services/checkmk.md new file mode 100644 index 000000000..b8bd54666 --- /dev/null +++ b/docs/widgets/services/checkmk.md @@ -0,0 +1,17 @@ +--- +title: Checkmk +description: Checkmk Widget Configuration +--- + +Learn more about [Checkmk](https://github.com/Checkmk/checkmk). + +To setup authentication, follow the official [Checkmk API](https://docs.checkmk.com/latest/en/rest_api.html?lquery=api#bearerauth) documentation. + +```yaml +widget: + type: checkmk + url: http://checkmk.host.or.ip:port + site: your-site-name-cla-by-default + username: username + password: password +``` diff --git a/docs/widgets/services/gamedig.md b/docs/widgets/services/gamedig.md index 6e7eb4d57..454fb2bd7 100644 --- a/docs/widgets/services/gamedig.md +++ b/docs/widgets/services/gamedig.md @@ -14,4 +14,5 @@ widget: type: gamedig serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list url: udp://server.host.or.ip:port + gameToken: # optional, a token used by gamedig with certain games ``` diff --git a/docs/widgets/services/gluetun.md b/docs/widgets/services/gluetun.md index 1cc68c9ad..31c18ca38 100644 --- a/docs/widgets/services/gluetun.md +++ b/docs/widgets/services/gluetun.md @@ -9,7 +9,7 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun). Requires [HTTP control server options](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md) to be enabled. By default this runs on port `8000`. -Allowed fields: `["public_ip", "region", "country"]`. +Allowed fields: `["public_ip", "region", "country", "port_forwarded"]`. To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. diff --git a/docs/widgets/services/jellystat.md b/docs/widgets/services/jellystat.md new file mode 100644 index 000000000..175bc6c5b --- /dev/null +++ b/docs/widgets/services/jellystat.md @@ -0,0 +1,18 @@ +--- +title: Jellystat +description: Jellystat Widget Configuration +--- + +Learn more about [Jellystat](https://github.com/CyferShepard/Jellystat). The widget supports (at least) Jellystat version 1.1.6 + +You can create an API key from inside Jellystat at `Settings > API Key`. + +Allowed fields: `["songs", "movies", "episodes", "other"]`. + +```yaml +widget: + type: jellystat + url: http://jellystat.host.or.ip + key: apikeyapikeyapikeyapikeyapikey + days: 30 # optional, defaults to 30 +``` diff --git a/package.json b/package.json index 9ac85840e..e9b95dd0e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homepage", - "version": "1.2.0", + "version": "1.3.0", "private": true, "scripts": { "preinstall": "npx only-allow pnpm", @@ -13,19 +13,19 @@ "dependencies": { "@headlessui/react": "^1.7.19", "@kubernetes/client-node": "^1.0.0", - "cal-parser": "^1.0.2", "classnames": "^2.5.1", "compare-versions": "^6.1.1", "dockerode": "^4.0.4", "follow-redirects": "^1.15.9", "gamedig": "^5.2.0", "i18next": "^24.2.3", + "ical.js": "^2.1.0", "js-yaml": "^4.1.0", "json-rpc-2.0": "^1.7.0", "luxon": "^3.5.0", "memory-cache": "^0.2.0", "minecraftstatuspinger": "^1.2.2", - "next": "^15.2.4", + "next": "^15.3.1", "next-i18next": "^12.1.0", "ping": "^0.4.4", "pretty-bytes": "^6.1.1", @@ -34,8 +34,7 @@ "react-dom": "^18.3.1", "react-i18next": "^11.18.6", "react-icons": "^5.4.0", - "recharts": "^2.15.1", - "rrule": "^2.8.1", + "recharts": "^2.15.3", "swr": "^2.3.3", "systeminformation": "^5.25.11", "tough-cookie": "^5.1.2", @@ -46,12 +45,12 @@ "devDependencies": { "@tailwindcss/forms": "^0.5.10", "@tailwindcss/postcss": "^4.0.9", - "eslint": "^9.21.0", + "eslint": "^9.25.1", "eslint-config-next": "^15.2.4", "eslint-config-prettier": "^10.1.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react": "^7.37.4", "eslint-plugin-react-hooks": "^5.1.0", "postcss": "^8.5.3", @@ -63,5 +62,10 @@ }, "optionalDependencies": { "osx-temperature-sensor": "^1.0.8" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "sharp" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 170e380e4..e3387dea7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@kubernetes/client-node': specifier: ^1.0.0 version: 1.0.0 - cal-parser: - specifier: ^1.0.2 - version: 1.0.2 classnames: specifier: ^2.5.1 version: 2.5.1 @@ -35,6 +32,9 @@ importers: i18next: specifier: ^24.2.3 version: 24.2.3(typescript@5.7.3) + ical.js: + specifier: ^2.1.0 + version: 2.1.0 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -51,11 +51,11 @@ importers: specifier: ^1.2.2 version: 1.2.2 next: - specifier: ^15.2.4 - version: 15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^15.3.1 + version: 15.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-i18next: specifier: ^12.1.0 - version: 12.1.0(next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.1.0(next@15.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ping: specifier: ^0.4.4 version: 0.4.4 @@ -78,11 +78,8 @@ importers: specifier: ^5.4.0 version: 5.4.0(react@18.3.1) recharts: - specifier: ^2.15.1 - version: 2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rrule: - specifier: ^2.8.1 - version: 2.8.1 + specifier: ^2.15.3 + version: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) swr: specifier: ^2.3.3 version: 2.3.3(react@18.3.1) @@ -113,29 +110,29 @@ importers: specifier: ^4.0.9 version: 4.0.9 eslint: - specifier: ^9.21.0 - version: 9.21.0(jiti@2.4.2) + specifier: ^9.25.1 + version: 9.25.1(jiti@2.4.2) eslint-config-next: specifier: ^15.2.4 - version: 15.2.4(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + version: 15.2.4(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) eslint-config-prettier: specifier: ^10.1.1 - version: 10.1.1(eslint@9.21.0(jiti@2.4.2)) + version: 10.1.1(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + version: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-jsx-a11y: specifier: ^6.10.2 - version: 6.10.2(eslint@9.21.0(jiti@2.4.2)) + version: 6.10.2(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-prettier: - specifier: ^5.2.3 - version: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(prettier@3.5.2) + specifier: ^5.2.6 + version: 5.2.6(eslint-config-prettier@10.1.1(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(prettier@3.5.2) eslint-plugin-react: specifier: ^7.37.4 - version: 7.37.4(eslint@9.21.0(jiti@2.4.2)) + version: 7.37.4(eslint@9.25.1(jiti@2.4.2)) eslint-plugin-react-hooks: specifier: ^5.1.0 - version: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + version: 5.1.0(eslint@9.25.1(jiti@2.4.2)) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -169,6 +166,10 @@ packages: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} @@ -182,20 +183,14 @@ packages: '@emnapi/core@1.4.0': resolution: {integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==} - '@emnapi/runtime@1.4.0': - resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + '@eslint-community/eslint-utils@4.6.1': + resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -204,28 +199,32 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + '@eslint/config-helpers@0.2.2': + resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.21.0': - resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.25.1': + resolution: {integrity: sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@grpc/grpc-js@1.12.6': @@ -264,107 +263,112 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + '@img/sharp-darwin-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + '@img/sharp-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + '@img/sharp-linux-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + '@img/sharp-linux-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + '@img/sharp-linux-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + '@img/sharp-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + '@img/sharp-linuxmusl-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + '@img/sharp-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + '@img/sharp-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + '@img/sharp-win32-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -398,56 +402,56 @@ packages: '@napi-rs/wasm-runtime@0.2.8': resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==} - '@next/env@15.2.4': - resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} + '@next/env@15.3.1': + resolution: {integrity: sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==} '@next/eslint-plugin-next@15.2.4': resolution: {integrity: sha512-O8ScvKtnxkp8kL9TpJTTKnMqlkZnS+QxwoQnJwPGBxjBbzd6OVVPEJ5/pMNrktSyXQD/chEfzfFzYLM6JANOOQ==} - '@next/swc-darwin-arm64@15.2.4': - resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} + '@next/swc-darwin-arm64@15.3.1': + resolution: {integrity: sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.2.4': - resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} + '@next/swc-darwin-x64@15.3.1': + resolution: {integrity: sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.2.4': - resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} + '@next/swc-linux-arm64-gnu@15.3.1': + resolution: {integrity: sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.2.4': - resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} + '@next/swc-linux-arm64-musl@15.3.1': + resolution: {integrity: sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.2.4': - resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} + '@next/swc-linux-x64-gnu@15.3.1': + resolution: {integrity: sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.2.4': - resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} + '@next/swc-linux-x64-musl@15.3.1': + resolution: {integrity: sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.2.4': - resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} + '@next/swc-win32-arm64-msvc@15.3.1': + resolution: {integrity: sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.2.4': - resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} + '@next/swc-win32-x64-msvc@15.3.1': + resolution: {integrity: sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -472,8 +476,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.1.1': - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + '@pkgr/core@0.2.4': + resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@protobufjs/aspromise@1.1.2': @@ -646,8 +650,8 @@ packages: '@types/d3-timer@3.0.2': resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} '@types/hoist-non-react-statics@3.3.6': resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} @@ -815,8 +819,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} engines: {node: '>=0.4.0'} hasBin: true @@ -963,9 +967,6 @@ packages: resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} engines: {node: '>=14.16'} - cal-parser@1.0.2: - resolution: {integrity: sha512-wlQwcF0fl4eLclyGdncF9rcNNq0ipRYZGagG6h3LVgRXvCWE1fdMUaCLXwfC9YWoz9jKKbjQAq7TpO2Y3yrvmA==} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -982,8 +983,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001712: - resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} + caniuse-lite@1.0.30001716: + resolution: {integrity: sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1196,8 +1197,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} docker-modem@5.0.6: @@ -1363,13 +1364,13 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-prettier@5.2.3: - resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} + eslint-plugin-prettier@5.2.6: + resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' - eslint-config-prettier: '*' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' prettier: '>=3.0.0' peerDependenciesMeta: '@types/eslint': @@ -1389,8 +1390,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -1401,8 +1402,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.21.0: - resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + eslint@9.25.1: + resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1663,8 +1664,8 @@ packages: typescript: optional: true - ical-date-parser@4.0.0: - resolution: {integrity: sha512-XRCK/FU1akC2ZaJOdKIeZI6BLLgzWUuE0pegSrrkEva89GOan5mNkLVqCU4EMhCJ9nkG5TLWdMXrVX1fNAkFzw==} + ical.js@2.1.0: + resolution: {integrity: sha512-BOVfrH55xQ6kpS3muGvIXIg2l7p+eoe12/oS7R5yrO3TL/j/bLsR0PR+tYQESFbyTbvGgPHn9zQ6tI4FWyuSaQ==} iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} @@ -2082,8 +2083,8 @@ packages: next: '>= 10.0.0' react: '>= 16.8.0' - next@15.2.4: - resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} + next@15.3.1: + resolution: {integrity: sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -2361,8 +2362,8 @@ packages: recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - recharts@2.15.1: - resolution: {integrity: sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==} + recharts@2.15.3: + resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} engines: {node: '>=14'} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2417,9 +2418,6 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rrule@2.8.1: - resolution: {integrity: sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2485,8 +2483,8 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -2634,8 +2632,8 @@ packages: peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + synckit@0.11.4: + resolution: {integrity: sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==} engines: {node: ^14.18.0 || >=16.0.0} systeminformation@5.25.11: @@ -2899,6 +2897,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.27.1': {} + '@balena/dockerignore@1.0.2': {} '@colors/colors@1.6.0': {} @@ -2915,7 +2915,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.0': + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true @@ -2925,19 +2925,14 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.6.1(eslint@9.25.1(jiti@2.4.2))': dependencies: - eslint: 9.21.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.5.1(eslint@9.21.0(jiti@2.4.2))': - dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.0 @@ -2945,11 +2940,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.12.0': + '@eslint/config-helpers@0.2.2': {} + + '@eslint/core@0.13.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.0 @@ -2963,13 +2960,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.21.0': {} + '@eslint/js@9.25.1': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.7': + '@eslint/plugin-kit@0.2.8': dependencies: - '@eslint/core': 0.12.0 + '@eslint/core': 0.13.0 levn: 0.4.1 '@grpc/grpc-js@1.12.6': @@ -3004,79 +3001,82 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} - '@img/sharp-darwin-arm64@0.33.5': + '@img/sharp-darwin-arm64@0.34.1': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-arm64': 1.1.0 optional: true - '@img/sharp-darwin-x64@0.33.5': + '@img/sharp-darwin-x64@0.34.1': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.1.0 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.4': + '@img/sharp-libvips-darwin-arm64@1.1.0': optional: true - '@img/sharp-libvips-darwin-x64@1.0.4': + '@img/sharp-libvips-darwin-x64@1.1.0': optional: true - '@img/sharp-libvips-linux-arm64@1.0.4': + '@img/sharp-libvips-linux-arm64@1.1.0': optional: true - '@img/sharp-libvips-linux-arm@1.0.5': + '@img/sharp-libvips-linux-arm@1.1.0': optional: true - '@img/sharp-libvips-linux-s390x@1.0.4': + '@img/sharp-libvips-linux-ppc64@1.1.0': optional: true - '@img/sharp-libvips-linux-x64@1.0.4': + '@img/sharp-libvips-linux-s390x@1.1.0': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + '@img/sharp-libvips-linux-x64@1.1.0': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.4': + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': optional: true - '@img/sharp-linux-arm64@0.33.5': + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + + '@img/sharp-linux-arm64@0.34.1': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-arm64': 1.1.0 optional: true - '@img/sharp-linux-arm@0.33.5': + '@img/sharp-linux-arm@0.34.1': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm': 1.1.0 optional: true - '@img/sharp-linux-s390x@0.33.5': + '@img/sharp-linux-s390x@0.34.1': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.1.0 optional: true - '@img/sharp-linux-x64@0.33.5': + '@img/sharp-linux-x64@0.34.1': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.1.0 optional: true - '@img/sharp-linuxmusl-arm64@0.33.5': + '@img/sharp-linuxmusl-arm64@0.34.1': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 optional: true - '@img/sharp-linuxmusl-x64@0.33.5': + '@img/sharp-linuxmusl-x64@0.34.1': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 optional: true - '@img/sharp-wasm32@0.33.5': + '@img/sharp-wasm32@0.34.1': dependencies: - '@emnapi/runtime': 1.4.0 + '@emnapi/runtime': 1.4.3 optional: true - '@img/sharp-win32-ia32@0.33.5': + '@img/sharp-win32-ia32@0.34.1': optional: true - '@img/sharp-win32-x64@0.33.5': + '@img/sharp-win32-x64@0.34.1': optional: true '@isaacs/cliui@8.0.2': @@ -3130,38 +3130,38 @@ snapshots: '@napi-rs/wasm-runtime@0.2.8': dependencies: '@emnapi/core': 1.4.0 - '@emnapi/runtime': 1.4.0 + '@emnapi/runtime': 1.4.3 '@tybys/wasm-util': 0.9.0 optional: true - '@next/env@15.2.4': {} + '@next/env@15.3.1': {} '@next/eslint-plugin-next@15.2.4': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.2.4': + '@next/swc-darwin-arm64@15.3.1': optional: true - '@next/swc-darwin-x64@15.2.4': + '@next/swc-darwin-x64@15.3.1': optional: true - '@next/swc-linux-arm64-gnu@15.2.4': + '@next/swc-linux-arm64-gnu@15.3.1': optional: true - '@next/swc-linux-arm64-musl@15.2.4': + '@next/swc-linux-arm64-musl@15.3.1': optional: true - '@next/swc-linux-x64-gnu@15.2.4': + '@next/swc-linux-x64-gnu@15.3.1': optional: true - '@next/swc-linux-x64-musl@15.2.4': + '@next/swc-linux-x64-musl@15.3.1': optional: true - '@next/swc-win32-arm64-msvc@15.2.4': + '@next/swc-win32-arm64-msvc@15.3.1': optional: true - '@next/swc-win32-x64-msvc@15.2.4': + '@next/swc-win32-x64-msvc@15.3.1': optional: true '@nodelib/fs.scandir@2.1.5': @@ -3181,7 +3181,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.1.1': {} + '@pkgr/core@0.2.4': {} '@protobufjs/aspromise@1.1.2': {} @@ -3326,7 +3326,7 @@ snapshots: '@types/d3-timer@3.0.2': {} - '@types/estree@1.0.6': {} + '@types/estree@1.0.7': {} '@types/hoist-non-react-statics@3.3.6': dependencies: @@ -3371,15 +3371,15 @@ snapshots: dependencies: '@types/node': 22.13.4 - '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/type-utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.29.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3388,14 +3388,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.29.0 '@typescript-eslint/types': 8.29.0 '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.29.0 debug: 4.4.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -3405,12 +3405,12 @@ snapshots: '@typescript-eslint/types': 8.29.0 '@typescript-eslint/visitor-keys': 8.29.0 - '@typescript-eslint/type-utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: @@ -3432,13 +3432,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.29.0 '@typescript-eslint/types': 8.29.0 '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.7.3) - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -3495,11 +3495,11 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.3.3': optional: true - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: - acorn: 8.14.0 + acorn: 8.14.1 - acorn@8.14.0: {} + acorn@8.14.1: {} ajv@6.12.6: dependencies: @@ -3671,11 +3671,6 @@ snapshots: normalize-url: 8.0.1 responselike: 3.0.0 - cal-parser@1.0.2: - dependencies: - ical-date-parser: 4.0.0 - rrule: 2.8.1 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -3695,7 +3690,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001712: {} + caniuse-lite@1.0.30001716: {} chalk@4.1.2: dependencies: @@ -3904,7 +3899,7 @@ snapshots: detect-libc@1.0.3: {} - detect-libc@2.0.3: + detect-libc@2.0.4: optional: true docker-modem@5.0.6: @@ -3934,7 +3929,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 csstype: 3.1.3 dom-serializer@2.0.0: @@ -4082,19 +4077,19 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@15.2.4(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): + eslint-config-next@15.2.4(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.2.4 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.21.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-react: 7.37.4(eslint@9.21.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.1.0(eslint@9.21.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-react: 7.37.4(eslint@9.25.1(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.25.1(jiti@2.4.2)) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -4102,9 +4097,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)): + eslint-config-prettier@10.1.1(eslint@9.25.1(jiti@2.4.2)): dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node@0.3.9: dependencies: @@ -4114,33 +4109,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)): + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) get-tsconfig: 4.10.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.12 unrs-resolver: 1.3.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.21.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@9.25.1(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -4149,9 +4144,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.21.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.25.1(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -4163,13 +4158,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.29.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.25.1(jiti@2.4.2)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -4179,7 +4174,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4188,20 +4183,20 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2))(prettier@3.5.2): + eslint-plugin-prettier@5.2.6(eslint-config-prettier@10.1.1(eslint@9.25.1(jiti@2.4.2)))(eslint@9.25.1(jiti@2.4.2))(prettier@3.5.2): dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) prettier: 3.5.2 prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 + synckit: 0.11.4 optionalDependencies: - eslint-config-prettier: 10.1.1(eslint@9.21.0(jiti@2.4.2)) + eslint-config-prettier: 10.1.1(eslint@9.25.1(jiti@2.4.2)) - eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-react-hooks@5.1.0(eslint@9.25.1(jiti@2.4.2)): dependencies: - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) - eslint-plugin-react@7.37.4(eslint@9.21.0(jiti@2.4.2)): + eslint-plugin-react@7.37.4(eslint@9.25.1(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -4209,7 +4204,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.21.0(jiti@2.4.2) + eslint: 9.25.1(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -4223,7 +4218,7 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -4232,26 +4227,27 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.21.0(jiti@2.4.2): + eslint@9.25.1(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.21.0 - '@eslint/plugin-kit': 0.2.7 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.2 + '@eslint/core': 0.13.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.25.1 + '@eslint/plugin-kit': 0.2.8 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -4275,8 +4271,8 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 esquery@1.6.0: @@ -4547,7 +4543,7 @@ snapshots: optionalDependencies: typescript: 5.7.3 - ical-date-parser@4.0.0: {} + ical.js@2.1.0: {} iconv-lite@0.6.3: dependencies: @@ -4905,7 +4901,7 @@ snapshots: natural-compare@1.4.0: {} - next-i18next@12.1.0(next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-i18next@12.1.0(next@15.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.9 '@types/hoist-non-react-statics': 3.3.6 @@ -4913,34 +4909,34 @@ snapshots: hoist-non-react-statics: 3.3.2 i18next: 21.10.0 i18next-fs-backend: 1.2.0 - next: 15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-i18next: 11.18.6(i18next@21.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - react-dom - react-native - next@15.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@15.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 15.2.4 + '@next/env': 15.3.1 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001712 + caniuse-lite: 1.0.30001716 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.6(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.2.4 - '@next/swc-darwin-x64': 15.2.4 - '@next/swc-linux-arm64-gnu': 15.2.4 - '@next/swc-linux-arm64-musl': 15.2.4 - '@next/swc-linux-x64-gnu': 15.2.4 - '@next/swc-linux-x64-musl': 15.2.4 - '@next/swc-win32-arm64-msvc': 15.2.4 - '@next/swc-win32-x64-msvc': 15.2.4 - sharp: 0.33.5 + '@next/swc-darwin-arm64': 15.3.1 + '@next/swc-darwin-x64': 15.3.1 + '@next/swc-linux-arm64-gnu': 15.3.1 + '@next/swc-linux-arm64-musl': 15.3.1 + '@next/swc-linux-x64-gnu': 15.3.1 + '@next/swc-linux-x64-musl': 15.3.1 + '@next/swc-win32-arm64-msvc': 15.3.1 + '@next/swc-win32-x64-msvc': 15.3.1 + sharp: 0.34.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -5191,7 +5187,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.27.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -5229,7 +5225,7 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + recharts@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 @@ -5296,10 +5292,6 @@ snapshots: dependencies: glob: 10.4.5 - rrule@2.8.1: - dependencies: - tslib: 2.8.1 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -5371,31 +5363,32 @@ snapshots: setprototypeof@1.2.0: {} - sharp@0.33.5: + sharp@0.34.1: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.1 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 optional: true shebang-command@2.0.0: @@ -5566,9 +5559,9 @@ snapshots: react: 18.3.1 use-sync-external-store: 1.5.0(react@18.3.1) - synckit@0.9.2: + synckit@0.11.4: dependencies: - '@pkgr/core': 0.1.1 + '@pkgr/core': 0.2.4 tslib: 2.8.1 systeminformation@5.25.11: {} diff --git a/public/locales/af/common.json b/public/locales/af/common.json index fa71b2380..47774d34d 100644 --- a/public/locales/af/common.json +++ b/public/locales/af/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Publieke IP", "region": "Streek", - "country": "Land" + "country": "Land", + "port_forwarded": "Poort Aangestuur" }, "hdhomerun": { "channels": "Kanale", @@ -856,7 +857,8 @@ "physicalRelease": "Fisiese Vrylating", "digitalRelease": "Digitale Vrylating", "noEventsToday": "Geen gebeure vir vandag nie!", - "noEventsFound": "Geen gebeure gevind nie" + "noEventsFound": "Geen gebeure gevind nie", + "errorWhenLoadingData": "Fout tydens laai van kalenderdata" }, "romm": { "platforms": "Platform", @@ -1042,5 +1044,15 @@ "downloads": "Aflaaie", "uploads": "Oplaaie", "sharedFiles": "Lêers" + }, + "jellystat": { + "songs": "Liedjies", + "movies": "Flieks", + "episodes": "Episodes", + "other": "Ander" + }, + "checkmk": { + "serviceErrors": "Diensprobleme", + "hostErrors": "Gasheerprobleme" } } diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index dbe892aad..c1f58e89a 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "العام IP", "region": "منطقة", - "country": "الدولة" + "country": "الدولة", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "القنوات", @@ -856,7 +857,8 @@ "physicalRelease": "الإصدار المادي", "digitalRelease": "الإصدار الرقمي", "noEventsToday": "لا توجد أحداث اليوم!", - "noEventsFound": "لم يتم العثور على أحداث" + "noEventsFound": "لم يتم العثور على أحداث", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "المِنصات", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "ملفات" + }, + "jellystat": { + "songs": "أغاني", + "movies": "أفلام", + "episodes": "حلقات", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index ccb6f5bbb..76c062360 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Публично IP", "region": "Регион", - "country": "Страна" + "country": "Страна", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Канали", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Дигитално издания", "noEventsToday": "Няма събития за днес!", - "noEventsFound": "Няма намерени събития" + "noEventsFound": "Няма намерени събития", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Платформи", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Файлове" + }, + "jellystat": { + "songs": "Песни", + "movies": "Филми", + "episodes": "Епизоди", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index b70794b35..3928f4ff8 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP Pública", "region": "Regió", - "country": "País" + "country": "País", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Canals", @@ -856,7 +857,8 @@ "physicalRelease": "Estrena física", "digitalRelease": "Estrena digital", "noEventsToday": "Cap esdeveniment per avui!", - "noEventsFound": "No s'han trobat esdeveniments" + "noEventsFound": "No s'han trobat esdeveniments", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Plataformes", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Fitxers" + }, + "jellystat": { + "songs": "Cançons", + "movies": "Pel·lícules", + "episodes": "Episodis", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 1d99ec95c..331d7438a 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Veřejná IP", "region": "Oblast", - "country": "Stát" + "country": "Stát", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanály", @@ -856,7 +857,8 @@ "physicalRelease": "Fyzické vydání", "digitalRelease": "Digitální vydání", "noEventsToday": "Pro dnešek žádné události!", - "noEventsFound": "Nemáte žádné události" + "noEventsFound": "Nemáte žádné události", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platformy", @@ -1042,5 +1044,15 @@ "downloads": "Stažení", "uploads": "Nahrávání", "sharedFiles": "Soubory" + }, + "jellystat": { + "songs": "Skladby", + "movies": "Filmy", + "episodes": "Epizody", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/da/common.json b/public/locales/da/common.json index c7115af3d..310eb5ecb 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Offentlig IP", "region": "Område", - "country": "Land" + "country": "Land", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanaler", @@ -856,7 +857,8 @@ "physicalRelease": "Fysisk udgivelse", "digitalRelease": "Digitale udgivelser", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforme", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Filer" + }, + "jellystat": { + "songs": "Sange", + "movies": "Film", + "episodes": "Episoder", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 6ea5a4402..4bee5e67a 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -47,7 +47,7 @@ "load": "Last", "temp": "TEMP", "max": "Max", - "uptime": "UP" + "uptime": "BETRIEBSZEIT" }, "unifi": { "users": "Benutzer", @@ -61,7 +61,7 @@ "wlan_devices": "WLAN-Geräte", "lan_users": "LAN-Benutzer", "wlan_users": "WLAN-Benutzer", - "up": "UP", + "up": "BETRIEBSZEIT", "down": "EMPFANGEN", "wait": "Bitte warten", "empty_data": "Subsystem-Status unbekannt" @@ -150,7 +150,7 @@ "sent": "Gesendet", "externalIPAddress": "Externe IP", "externalIPv6Address": "Externe IPv6", - "externalIPv6Prefix": "Externer IPv4-Präfix" + "externalIPv6Prefix": "Externes IPv6-Präfix" }, "caddy": { "upstreams": "Upstreams", @@ -436,7 +436,7 @@ "temp": "TEMP", "_temp": "Temperatur", "warn": "Warnung", - "uptime": "UP", + "uptime": "BETRIEBSZEIT", "total": "Gesamt", "free": "Frei", "used": "In Benutzung", @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Öffentliche IP", "region": "Region", - "country": "Land" + "country": "Land", + "port_forwarded": "Port weitergeleitet" }, "hdhomerun": { "channels": "Kanäle", @@ -856,7 +857,8 @@ "physicalRelease": "Physische Version", "digitalRelease": "Digitale Version", "noEventsToday": "Heute keine Ereignisse!", - "noEventsFound": "Keine Termine gefunden" + "noEventsFound": "Keine Termine gefunden", + "errorWhenLoadingData": "Fehler beim Laden der Kalenderdaten" }, "romm": { "platforms": "Plattformen", @@ -1025,11 +1027,11 @@ "timeleft": "Verbleibende Zeit" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", + "bookmarks": "Lesezeichen", + "favorites": "Favoriten", + "archived": "Archiviert", "highlights": "Highlights", - "lists": "Lists", + "lists": "Listen", "tags": "Schlagwörter" }, "slskd": { @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Dateien" + }, + "jellystat": { + "songs": "Songs", + "movies": "Filme", + "episodes": "Episoden", + "other": "Andere" + }, + "checkmk": { + "serviceErrors": "Dienstprobleme", + "hostErrors": "Hostprobleme" } } diff --git a/public/locales/el/common.json b/public/locales/el/common.json index ea1539d9f..72a490d6d 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Δημόσια ΙΡ", "region": "Περιοχή", - "country": "Χώρα" + "country": "Χώρα", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Κανάλια", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Αρχεία" + }, + "jellystat": { + "songs": "Τραγούδια", + "movies": "Ταινίες", + "episodes": "Επεισόδια", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 09b9c2d3b..87895e6e0 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/eo/common.json b/public/locales/eo/common.json index f943d1c8a..8386a3c42 100644 --- a/public/locales/eo/common.json +++ b/public/locales/eo/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Regiono", - "country": "Lando" + "country": "Lando", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanaloj", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Kantoj", + "movies": "Filmoj", + "episodes": "Epizodoj", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 76b032751..603e8d565 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP pública", "region": "Región", - "country": "País" + "country": "País", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Canales", @@ -856,7 +857,8 @@ "physicalRelease": "Lanzamiento en físico", "digitalRelease": "Lanzamiento en digital", "noEventsToday": "¡Sin eventos para hoy!", - "noEventsFound": "No se encontraron eventos" + "noEventsFound": "No se encontraron eventos", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Plataformas", @@ -1025,11 +1027,11 @@ "timeleft": "Tiempo restante" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", - "highlights": "Highlights", - "lists": "Lists", + "bookmarks": "Marcadores", + "favorites": "Favoritos", + "archived": "Archivado", + "highlights": "Destacados", + "lists": "Listas", "tags": "Etiquetas" }, "slskd": { @@ -1042,5 +1044,15 @@ "downloads": "Descargas", "uploads": "Subidas", "sharedFiles": "Archivos" + }, + "jellystat": { + "songs": "Canciones", + "movies": "Películas", + "episodes": "Episodios", + "other": "Otros" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/eu/common.json b/public/locales/eu/common.json index 02d1150c1..b63d6437b 100644 --- a/public/locales/eu/common.json +++ b/public/locales/eu/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "Ez da gertaerarik aurkitu." + "noEventsFound": "Ez da gertaerarik aurkitu.", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Abestiak", + "movies": "Filmak", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index 6139aea60..c2aeaff26 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index e7bc248a1..e81b661b3 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -103,7 +103,7 @@ "bitrate": "Débit", "no_active": "Aucun flux actif", "movies": "Films", - "series": "Séries TV", + "series": "Séries", "episodes": "Épisodes", "songs": "Chansons" }, @@ -241,7 +241,7 @@ "sonarr": { "wanted": "Demandé", "queued": "En file d'attente", - "series": "Séries TV", + "series": "Séries", "queue": "En attente", "unknown": "Inconnu" }, @@ -405,7 +405,7 @@ "medusa": { "wanted": "Demandé", "queued": "En file d'attente", - "series": "Séries TV" + "series": "Séries" }, "minecraft": { "players": "Joueurs", @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP publique", "region": "Région", - "country": "Pays" + "country": "Pays", + "port_forwarded": "Port Transféré" }, "hdhomerun": { "channels": "Chaînes", @@ -672,14 +673,14 @@ "m": "m" }, "atsumeru": { - "series": "Séries TV", + "series": "Séries", "archives": "Archives", "chapters": "Chapitres", "categories": "Catégories" }, "komga": { "libraries": "Bibliothèques", - "series": "Séries TV", + "series": "Séries", "books": "Livres" }, "diskstation": { @@ -688,7 +689,7 @@ "volumeAvailable": "Disponible" }, "mylar": { - "series": "Séries TV", + "series": "Séries", "issues": "Anomalies", "wanted": "Demandé" }, @@ -772,7 +773,7 @@ "books": "Livres", "authors": "Auteurs", "categories": "Catégories", - "series": "Séries TV" + "series": "Séries" }, "jdownloader": { "downloadCount": "En attente", @@ -781,7 +782,7 @@ "downloadSpeed": "Débit" }, "kavita": { - "seriesCount": "Séries TV", + "seriesCount": "Séries", "totalFiles": "Fichiers" }, "azuredevops": { @@ -856,7 +857,8 @@ "physicalRelease": "Sortie physique", "digitalRelease": "Sortie numérique", "noEventsToday": "Rien pour aujourd'hui !", - "noEventsFound": "Aucun événement trouvé" + "noEventsFound": "Aucun événement trouvé", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Plateformes", @@ -1028,7 +1030,7 @@ "bookmarks": "Marque-pages", "favorites": "Favoris", "archived": "Archivé", - "highlights": "Highlights", + "highlights": "À la une", "lists": "Listes", "tags": "Étiquettes" }, @@ -1042,5 +1044,15 @@ "downloads": "Téléchargements", "uploads": "Téléversements", "sharedFiles": "Fichiers" + }, + "jellystat": { + "songs": "Chansons", + "movies": "Films", + "episodes": "Épisodes", + "other": "Autres" + }, + "checkmk": { + "serviceErrors": "Problèmes de service", + "hostErrors": "Problèmes d'hôte" } } diff --git a/public/locales/he/common.json b/public/locales/he/common.json index fb338931d..da44715ae 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -14,24 +14,24 @@ "date": "{{value, date}}", "relativeDate": "{{value, relativeDate}}", "duration": "{{value, duration}}", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m", - "seconds": "s" + "months": "חודש", + "days": "יום", + "hours": "שעה", + "minutes": "דקה", + "seconds": "שניה" }, "widget": { "missing_type": "סוג ווידג'ט חסר: {{type}}", "api_error": "שגיאת API", - "information": "Information", + "information": "מידע", "status": "סטטוס", - "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" + "url": "קישור", + "raw_error": "שגיאה מקורית", + "response_data": "נתוני תשובה" }, "weather": { "current": "מיקום נוכחי", - "allow": "יש ללחוץ כדי לאשר", + "allow": "לחץ לאישור", "updating": "מעדכן", "wait": "המתן בבקשה" }, @@ -39,132 +39,132 @@ "placeholder": "חיפוש…" }, "resources": { - "cpu": "CPU", - "mem": "MEM", + "cpu": "מעבד", + "mem": "זיכרון", "total": "סה\"כ", "free": "פנוי", "used": "בשימוש", "load": "עומס", - "temp": "TEMP", - "max": "Max", - "uptime": "UP" + "temp": "טמפ׳", + "max": "מקסימום", + "uptime": "זמן פעילות" }, "unifi": { - "users": "Users", - "uptime": "Uptime", - "days": "Days", + "users": "משתמשים", + "uptime": "זמן פעילות", + "days": "ימים", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", + "devices": "מכשירים", + "lan_devices": "מכשירים ב-LAN", + "wlan_devices": "מכשירים ב-WAN", + "lan_users": "משתמשים ב-LAN", + "wlan_users": "משתמשים ב-WLAN", + "up": "זמן פעילות", + "down": "כבוי", "wait": "המתן בבקשה", - "empty_data": "Subsystem status unknown" + "empty_data": "מצב תת-מערכת לא ידוע" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "running": "Running", - "offline": "כבוי", - "error": "Error", - "unknown": "Unknown", - "healthy": "Healthy", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial" + "mem": "זיכרון", + "cpu": "מעבד", + "running": "רץ", + "offline": "לא מקוון", + "error": "שגיאה", + "unknown": "לא ידוע", + "healthy": "בריא", + "starting": "בעלייה", + "unhealthy": "לא בריא", + "not_found": "לא נמצא", + "exited": "יצא", + "partial": "חלקי" }, "ping": { - "error": "Error", - "ping": "Ping", - "down": "Down", - "up": "Up", - "not_available": "Not Available" + "error": "שגיאה", + "ping": "פינג", + "down": "למטה", + "up": "למעלה", + "not_available": "לא זמין" }, "siteMonitor": { - "http_status": "HTTP status", - "error": "Error", - "response": "Response", - "down": "Down", - "up": "Up", - "not_available": "Not Available" + "http_status": "סטטוס HTTP", + "error": "שגיאה", + "response": "תגובה", + "down": "למטה", + "up": "למעלה", + "not_available": "לא זמין" }, "emby": { "playing": "מנגן", "transcoding": "מקודד", "bitrate": "סיביות", "no_active": "אין הזרמות פעילות", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "movies": "סרטים", + "series": "סדרות", + "episodes": "פרקים", + "songs": "שירים" }, "esphome": { - "offline": "כבוי", - "offline_alt": "כבוי", - "online": "Online", + "offline": "לא מקוון", + "offline_alt": "לא מקוון", + "online": "מקוון", "total": "סה\"כ", - "unknown": "Unknown" + "unknown": "לא ידוע" }, "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", - "kilowatt": "kW" + "pv_power": "הפקה", + "battery_soc": "סוללה", + "grid_power": "רשת", + "home_power": "צריכה", + "charge_power": "מטען", + "kilowatt": "קילוואט" }, "flood": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "הורדה", + "upload": "העלאה", + "leech": "עלוקה", + "seed": "זרע" }, "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" + "subscriptions": "מנויים", + "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", - "externalIPv6Address": "Ext. IPv6", - "externalIPv6Prefix": "Ext. IPv6-Prefix" + "connectionStatusUnconfigured": "לא מוגדר", + "connectionStatusConnecting": "מתחבר", + "connectionStatusAuthenticating": "מאמת", + "connectionStatusPendingDisconnect": "ממתין לניתוק", + "connectionStatusDisconnecting": "מתנתק", + "connectionStatusDisconnected": "מנותק", + "connectionStatusConnected": "מחובר", + "uptime": "זמן פעילות", + "maxDown": "מקס׳ הורדה", + "maxUp": "מקס׳ העלאה", + "down": "למטה", + "up": "למעלה", + "received": "התקבל", + "sent": "נשלח", + "externalIPAddress": "כתובת IP חיצונית", + "externalIPv6Address": "כתובת IPv6 חיצונית", + "externalIPv6Prefix": "קידומת IPv6 חיצונית" }, "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "upstreams": "ערוצי העלאה", + "requests": "בקשות נוכחיות", + "requests_failed": "בקשות שנכשלו" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "סה״כ נראו", + "diffsDetected": "הבדלים שזוהו" }, "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", + "shows": "תוכניות", + "recordings": "הקלטות", + "scheduled": "מתוכנן", "passes": "Passes" }, "tautulli": { @@ -172,14 +172,14 @@ "transcoding": "מקודד", "bitrate": "סיביות", "no_active": "אין הזרמות פעילות", - "plex_connection_error": "Check Plex Connection" + "plex_connection_error": "בדוק חיבור ל-Plex" }, "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateways": "Connected gateways", - "connectedSwitches": "Connected switches" + "connectedAp": "נקודות גישה מחוברות", + "activeUser": "מכשירים פעילים", + "alerts": "התראות", + "connectedGateways": "שערי רשת מחוברים (Gateway)", + "connectedSwitches": "נתבים מחוברים" }, "nzbget": { "rate": "יחס", @@ -187,10 +187,10 @@ "downloaded": "הורד" }, "plex": { - "streams": "Active Streams", - "albums": "Albums", - "movies": "Movies", - "tv": "TV Shows" + "streams": "הזרמות פעילות", + "albums": "אלבומים", + "movies": "סרטים", + "tv": "תוכניות טלוויזיה" }, "sabnzbd": { "rate": "יחס", @@ -199,64 +199,64 @@ }, "rutorrent": { "active": "פעיל", - "upload": "Upload", - "download": "Download" + "upload": "העלאה", + "download": "הורדה" }, "transmission": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "הורדה", + "upload": "העלאה", + "leech": "עלוקה", + "seed": "זרע" }, "qbittorrent": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "הורדה", + "upload": "העלאה", + "leech": "עלוקה", + "seed": "זרע" }, "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "cpuUsage": "שימוש במעבד", + "memUsage": "שימוש בזיכרון", + "systemTempC": "טמפ׳ מערכת", + "poolUsage": "שימוש Pool", + "volumeUsage": "שימוש בדיסק", + "invalid": "לא תקין" }, "deluge": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "הורדה", + "upload": "העלאה", + "leech": "עלוקה", + "seed": "זרע" }, "develancacheui": { "cachehitbytes": "Cache Hit Bytes", "cachemissbytes": "Cache Miss Bytes" }, "downloadstation": { - "download": "Download", - "upload": "Upload", - "leech": "Leech", - "seed": "Seed" + "download": "הורדה", + "upload": "העלאה", + "leech": "עלוקה", + "seed": "זרע" }, "sonarr": { "wanted": "מבוקש", "queued": "בתור", - "series": "Series", + "series": "סדרות", "queue": "תור", - "unknown": "Unknown" + "unknown": "לא ידוע" }, "radarr": { "wanted": "מבוקש", - "missing": "Missing", + "missing": "חסרים", "queued": "בתור", - "movies": "Movies", + "movies": "סרטים", "queue": "תור", - "unknown": "Unknown" + "unknown": "לא ידוע" }, "lidarr": { "wanted": "מבוקש", "queued": "בתור", - "artists": "Artists" + "artists": "אמנים" }, "readarr": { "wanted": "מבוקש", @@ -279,20 +279,20 @@ }, "overseerr": { "pending": "ממתין", - "processing": "Processing", + "processing": "מעבד", "approved": "מאושר", "available": "זמין" }, "netalertx": { "total": "סה\"כ", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "connected": "מחובר", + "new_devices": "מכשירים חדשים", + "down_alerts": "התראות חוסר פעילות" }, "pihole": { "queries": "שאילתות", "blocked": "נחסם", - "blocked_percent": "Blocked %", + "blocked_percent": "% נחסם", "gravity": "Gravity" }, "adguard": { @@ -302,31 +302,31 @@ "latency": "השהיה" }, "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "upload": "העלאה", + "download": "הורדה", + "ping": "פינג" }, "portainer": { - "running": "Running", + "running": "רץ", "stopped": "נעצר", "total": "סה\"כ" }, "suwayomi": { "download": "הורד", - "nondownload": "Non-Downloaded", - "read": "Read", - "unread": "Unread", - "downloadedread": "Downloaded & Read", - "downloadedunread": "Downloaded & Unread", - "nondownloadedread": "Non-Downloaded & Read", - "nondownloadedunread": "Non-Downloaded & Unread" + "nondownload": "לא הורד", + "read": "נקרא", + "unread": "לא נקרא", + "downloadedread": "ירד ונקרא", + "downloadedunread": "ירד ולא נקרא", + "nondownloadedread": "לא ירד ונקרא", + "nondownloadedunread": "לא ירד ולא נקרא" }, "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", + "address": "כתובת", + "expires": "תאריך תפוגה", + "never": "אף פעם", + "last_seen": "נראה לאחרונה", + "now": "כעת", "years": "{{number}}y", "weeks": "{{number}}w", "days": "{{number}}d", @@ -337,31 +337,31 @@ }, "technitium": { "totalQueries": "שאילתות", - "totalNoError": "Success", - "totalServerFailure": "Failures", + "totalNoError": "הצלחה", + "totalServerFailure": "כשלונות", "totalNxDomain": "NX Domains", - "totalRefused": "Refused", + "totalRefused": "סורב", "totalAuthoritative": "Authoritative", - "totalRecursive": "Recursive", - "totalCached": "Cached", + "totalRecursive": "רקורסיבי", + "totalCached": "נשמר במטמון", "totalBlocked": "נחסם", - "totalDropped": "Dropped", + "totalDropped": "נפל", "totalClients": "לקוחות" }, "tdarr": { "queue": "תור", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" + "processed": "עובד", + "errored": "נכשל", + "saved": "נשמר" }, "traefik": { - "routers": "ניתובים", + "routers": "נתבים", "services": "שירותים", "middleware": "מתווך" }, "navidrome": { "nothing_streaming": "אין הזרמות פעילות", - "please_wait": "Please Wait" + "please_wait": "המתן בבקשה" }, "npm": { "enabled": "מופעל", @@ -382,547 +382,549 @@ }, "prowlarr": { "enableIndexers": "אינדקסים", - "numberOfGrabs": "Grabs", + "numberOfGrabs": "תפיסות", "numberOfQueries": "שאילתות", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "numberOfFailGrabs": "תפיסות שנכשלו", + "numberOfFailQueries": "שאילתות שנכשלו" }, "jackett": { "configured": "מוגדר", - "errored": "Errored" + "errored": "נכשל" }, "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", + "numActiveSessions": "סשנים פעילים", + "numConnections": "חיבורים", + "dataRelayed": "דאטה שהועבר", "transferRate": "יחס" }, "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" + "user_count": "משתמשים", + "status_count": "פוסטים", + "domain_count": "דומיינים" }, "medusa": { "wanted": "מבוקש", "queued": "בתור", - "series": "Series" + "series": "סדרות" }, "minecraft": { - "players": "Players", - "version": "Version", + "players": "שחקנים", + "version": "גרסה", "status": "סטטוס", - "up": "Online", - "down": "כבוי" + "up": "מקוון", + "down": "לא מקוון" }, "miniflux": { - "read": "Read", - "unread": "Unread" + "read": "נקרא", + "unread": "לא נקרא" }, "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "users": "משתמשים", + "loginsLast24H": "כניסות (24h)", + "failedLoginsLast24H": "כניסות שנכשלו (24h)" }, "proxmox": { - "mem": "MEM", - "cpu": "CPU", + "mem": "זיכרון", + "cpu": "מעבד", "lxc": "LXC", "vms": "VMs" }, "glances": { - "cpu": "CPU", + "cpu": "מעבד", "load": "עומס", "wait": "המתן בבקשה", - "temp": "TEMP", - "_temp": "Temp", - "warn": "Warn", - "uptime": "UP", + "temp": "טמפ׳", + "_temp": "טמפ׳", + "warn": "אזהרה", + "uptime": "זמן פעילות", "total": "סה\"כ", "free": "פנוי", "used": "בשימוש", - "days": "d", - "hours": "h", + "days": "יום", + "hours": "שעה", "crit": "Crit", - "read": "Read", - "write": "Write", - "gpu": "GPU", - "mem": "Mem", + "read": "נקרא", + "write": "כתיבה", + "gpu": "כרטיס מסך", + "mem": "זיכרון", "swap": "Swap" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL", - "searchsuggestion": "Suggestion" + "bookmark": "מועדף", + "service": "שירות", + "search": "חיפוש", + "custom": "מותאם אישית", + "visit": "ביקור", + "url": "קישור", + "searchsuggestion": "הצעה" }, "wmo": { - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "0-day": "שמשי", + "0-night": "בהיר", + "1-day": "בעיקר שמשי", + "1-night": "בעיקר בהיר", + "2-day": "מעונן חלקית", + "2-night": "מעונן חלקית", + "3-day": "מעונן", + "3-night": "מעונן", + "45-day": "ערפילי", + "45-night": "ערפילי", + "48-day": "ערפילי", + "48-night": "ערפילי", + "51-day": "טפטוף קל", + "51-night": "טפטוף קל", + "53-day": "טפטוף", + "53-night": "טפטוף", + "55-day": "טפטוף כבד", + "55-night": "טפטוף כבד", + "56-day": "טפטוף קפוא קל", + "56-night": "טפטוף קפוא קל", + "57-day": "טפטוף קפוא", + "57-night": "טפטוף קפוא", + "61-day": "גשם קל", + "61-night": "גשם קל", + "63-day": "גשם", + "63-night": "גשם", + "65-day": "גשם כבד", + "65-night": "גשם כבד", + "66-day": "גשם קפוא", + "66-night": "גשם קפוא", + "67-day": "גשם קפוא", + "67-night": "גשם קפוא", + "71-day": "שלג קל", + "71-night": "שלג קל", + "73-day": "שלג", + "73-night": "שלג", + "75-day": "שלג כבד", + "75-night": "שלג כבד", + "77-day": "גרגרי שלג", + "77-night": "גרגרי שלג", + "80-day": "ממטרים קלים", + "80-night": "ממטרים קלים", + "81-day": "ממטרים", + "81-night": "ממטרים", + "82-day": "ממטרים כבדים", + "82-night": "ממטרים כבדים", + "85-day": "ממטרי שלג", + "85-night": "ממטרי שלג", + "86-day": "ממטרי שלג", + "86-night": "ממטרי שלג", + "95-day": "סופת רעמים", + "95-night": "סופת רעמים", + "96-day": "סופת רעמים עם ברד", + "96-night": "סופת רעמים עם ברד", + "99-day": "סופת רעמים עם ברד", + "99-night": "סופת רעמים עם ברד" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "available_update": "מערכת", + "updates": "עדכונים", + "update_available": "עדכונים זמינים", + "up_to_date": "עדכני", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", + "up": "למעלה", "pending": "ממתין", - "down": "Down" + "down": "למטה" }, "healthchecks": { - "new": "New", - "up": "Up", - "grace": "In Grace Period", - "down": "Down", - "paused": "Paused", + "new": "חדש", + "up": "למעלה", + "grace": "בתקופת חסד", + "down": "למטה", + "paused": "מושהה", "status": "סטטוס", - "last_ping": "Last Ping", - "never": "No pings yet" + "last_ping": "פינג אחרון", + "never": "אין פינגים עדיין" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "נסרק", + "containers_updated": "עודכן", + "containers_failed": "נכשל" }, "autobrr": { "approvedPushes": "מאושר", - "rejectedPushes": "Rejected", - "filters": "Filters", + "rejectedPushes": "נדחה", + "filters": "פילטרים", "indexers": "אינדקסים" }, "tubearchivist": { "downloads": "תור", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "videos": "סרטונים", + "channels": "ערוצים", + "playlists": "רשימות השמעה" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts" + "load": "עומס מערכת", + "uptime": "זמן פעילות", + "alerts": "התראות" }, "pyload": { - "speed": "Speed", + "speed": "מהירות", "active": "פעיל", "queue": "תור", "total": "סה\"כ" }, "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "public_ip": "כתובת IP ציבורית", + "region": "אזור", + "country": "ארץ", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { - "channels": "Channels", + "channels": "ערוצים", "hd": "HD", "tunerCount": "Tuners", - "channelNumber": "Channel", - "channelNetwork": "Network", - "signalStrength": "Strength", - "signalQuality": "Quality", - "symbolQuality": "Quality", + "channelNumber": "ערוץ", + "channelNetwork": "רשת", + "signalStrength": "עוצמה", + "signalQuality": "איכות", + "symbolQuality": "איכות", "networkRate": "סיביות", - "clientIP": "Client" + "clientIP": "לקוח" }, "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" + "passed": "עבר", + "failed": "נכשל", + "unknown": "לא ידוע" }, "paperlessngx": { - "inbox": "Inbox", + "inbox": "תיבת דואר נכנס", "total": "סה\"כ" }, "peanut": { - "battery_charge": "Battery Charge", - "ups_load": "UPS Load", - "ups_status": "UPS Status", - "online": "Online", - "on_battery": "On Battery", - "low_battery": "Low Battery" + "battery_charge": "טעינת סוללה", + "ups_load": "עומס UPS", + "ups_status": "סטטוס UPS", + "online": "מקוון", + "on_battery": "על סוללה", + "low_battery": "סוללה חלשה" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" + "wait": "המתן בבקשה", + "no_devices": "אין מכשירים" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", + "cpuLoad": "עומס מעבד", + "memoryUsed": "זיכרון בשימוש", + "uptime": "זמן פעילות", "numberOfLeases": "Leases" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "כל ההזרמות", + "streams_active": "הזרמות פעילות", + "streams_xepg": "ערוצי XEPG" }, "opendtu": { - "yieldDay": "Today", + "yieldDay": "היום", "absolutePower": "Power", "relativePower": "Power %", "limit": "Limit" }, "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" + "cpu": "עומס מעבד", + "memory": "שימוש בזיכרון", + "wanUpload": "העלאה ל-WAN", + "wanDownload": "הורדה מ-WAN" }, "moonraker": { - "printer_state": "Printer State", - "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" + "printer_state": "מצב מדפסת", + "print_status": "מצב הדפסה", + "print_progress": "התקדמות הדפסה", + "layers": "שכבות" }, "octoprint": { "printer_state": "סטטוס", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" + "temp_tool": "טמפ׳ כלי", + "temp_bed": "טמפ׳ מיטה", + "job_completion": "השלמת עבודה" }, "cloudflared": { - "origin_ip": "Origin IP", + "origin_ip": "כתובת IP מקורית", "status": "סטטוס" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", + "load": "עומס מערכת ממוצע", + "memory": "שימוש בזיכרון", + "wanStatus": "סטטוס WAN", + "up": "למעלה", + "down": "למטה", + "temp": "טמפ׳", + "disk": "שימוש בדיסק", "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" + "failed_tasks_24h": "משימות שנכשלו 24h", + "cpu_usage": "מעבד", + "memory_usage": "זיכרון" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "משתמשים", + "photos": "תמונות", + "videos": "סרטונים", + "storage": "אחסון" }, "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" + "up": "אתרים פעילים", + "down": "אתרים לא פעילים", + "uptime": "זמן פעילות", + "incident": "תקריות", + "m": "דקה" }, "atsumeru": { - "series": "Series", - "archives": "Archives", - "chapters": "Chapters", - "categories": "Categories" + "series": "סדרות", + "archives": "ארכיונים", + "chapters": "פרקים", + "categories": "קטגוריות" }, "komga": { - "libraries": "Libraries", - "series": "Series", + "libraries": "ספריות", + "series": "סדרות", "books": "ספרים" }, "diskstation": { - "days": "Days", - "uptime": "Uptime", + "days": "ימים", + "uptime": "זמן פעילות", "volumeAvailable": "זמין" }, "mylar": { - "series": "Series", - "issues": "Issues", + "series": "סדרות", + "issues": "גיליונות", "wanted": "מבוקש" }, "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" + "albums": "אלבומים", + "photos": "תמונות", + "videos": "סרטונים", + "people": "אנשים" }, "fileflows": { "queue": "תור", - "processing": "Processing", - "processed": "Processed", - "time": "Time" + "processing": "מעבד", + "processed": "עובד", + "time": "זמן" }, "firefly": { - "networth": "Net Worth", - "budget": "Budget" + "networth": "שווי נקי", + "budget": "תקציב" }, "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "dashboards": "דשבורדים", + "datasources": "מקורות נתונים", + "totalalerts": "סה\"כ התראות", + "alertstriggered": "התראות מופעלות" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "עומס מעבד", + "memoryusage": "שימוש בזיכרון", + "freespace": "דיסק פנוי", + "activeusers": "משתמשים", + "numfiles": "קבצים", + "numshares": "שיתופים" }, "kopia": { "status": "סטטוס", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "size": "גודל", + "lastrun": "הרצה אחרונה", + "nextrun": "הרצה הבאה", + "failed": "נכשל" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" + "active_workers": "עובדים פעילים", + "total_workers": "סה\"כ עובדים", + "records_total": "סה\"כ רשומות" }, "pterodactyl": { - "servers": "Servers", + "servers": "שרתים", "nodes": "Nodes" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "מטרות פעילות", + "targets_down": "מטרות לא פעילות", + "targets_total": "סה\"כ מטרות" }, "gatus": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime" + "up": "אתרים פעילים", + "down": "אתרים לא פעילים", + "uptime": "זמן פעילות" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "היום", + "gross_percent_1y": "שנה", + "gross_percent_max": "כל הזמן" }, "audiobookshelf": { - "podcasts": "Podcasts", + "podcasts": "פודקאסטים", "books": "ספרים", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcastsDuration": "משך פודקאסטים", + "booksDuration": "משך פודקאסטים" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" + "people_home": "אנשים בבית", + "lights_on": "אורות דולקים", + "switches_on": "מתגים דולקים" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "מנטר", + "updates": "עדכונים" }, "calibreweb": { "books": "ספרים", - "authors": "Authors", - "categories": "Categories", - "series": "Series" + "authors": "מחברים", + "categories": "קטגוריות", + "series": "סדרות" }, "jdownloader": { "downloadCount": "תור", "downloadBytesRemaining": "נותר", - "downloadTotalBytes": "Size", - "downloadSpeed": "Speed" + "downloadTotalBytes": "גודל", + "downloadSpeed": "מהירות" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "סדרות", + "totalFiles": "קבצים" }, "azuredevops": { - "result": "Result", + "result": "תוצאה", "status": "סטטוס", "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress", - "totalPrs": "Total PRs", - "myPrs": "My PRs", + "succeeded": "הצליח", + "notStarted": "לא התחיל", + "failed": "נכשל", + "canceled": "בוטל", + "inProgress": "בתהליך", + "totalPrs": "סה\"כ PRs", + "myPrs": "PRs שלי", "approved": "מאושר" }, "gamedig": { "status": "סטטוס", - "online": "Online", - "offline": "כבוי", - "name": "Name", - "map": "Map", - "currentPlayers": "Current players", - "players": "Players", - "maxPlayers": "Max players", - "bots": "Bots", - "ping": "Ping" + "online": "מקוון", + "offline": "לא מקוון", + "name": "שם", + "map": "מפה", + "currentPlayers": "שחקנים נוכחיים", + "players": "שחקנים", + "maxPlayers": "שחקנים מקסימליים", + "bots": "בוטים", + "ping": "פינג" }, "urbackup": { "ok": "Ok", - "errored": "Errors", - "noRecent": "Out of Date", - "totalUsed": "Used Storage" + "errored": "שגיאות", + "noRecent": "ללא תאריך", + "totalUsed": "אחסון בשימוש" }, "mealie": { - "recipes": "Recipes", - "users": "Users", - "categories": "Categories", - "tags": "Tags" + "recipes": "מתכונים", + "users": "משתמשים", + "categories": "קטגוריות", + "tags": "טגיות" }, "openmediavault": { - "downloading": "Downloading", + "downloading": "מוריד", "total": "סה\"כ", - "running": "Running", + "running": "רץ", "stopped": "נעצר", - "passed": "Passed", - "failed": "Failed" + "passed": "עבר", + "failed": "נכשל" }, "openwrt": { - "uptime": "Uptime", - "cpuLoad": "CPU Load Avg (5m)", - "up": "Up", - "down": "Down", - "bytesTx": "Transmitted", - "bytesRx": "Received" + "uptime": "זמן פעילות", + "cpuLoad": "עומס מעבד ממוצע (5ד)", + "up": "למעלה", + "down": "למטה", + "bytesTx": "נשלח", + "bytesRx": "התקבל" }, "uptimerobot": { "status": "סטטוס", - "uptime": "Uptime", - "lastDown": "Last Downtime", - "downDuration": "Downtime Duration", - "sitesUp": "Sites Up", - "sitesDown": "Sites Down", - "paused": "Paused", - "notyetchecked": "Not Yet Checked", - "up": "Up", - "seemsdown": "Seems Down", - "down": "Down", - "unknown": "Unknown" + "uptime": "זמן פעילות", + "lastDown": "זמן השבתה אחרון", + "downDuration": "משך השבתה", + "sitesUp": "אתרים פעילים", + "sitesDown": "אתרים לא פעילים", + "paused": "מושהה", + "notyetchecked": "לא נבדק עדיין", + "up": "למעלה", + "seemsdown": "נראה לא פעיל", + "down": "למטה", + "unknown": "לא ידוע" }, "calendar": { - "inCinemas": "In cinemas", - "physicalRelease": "Physical release", - "digitalRelease": "Digital release", - "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "inCinemas": "בקולנוע", + "physicalRelease": "הפצה פיזית", + "digitalRelease": "הפצה דיגיטלית", + "noEventsToday": "אין אירועים להיום!", + "noEventsFound": "לא נמצאו אירועים", + "errorWhenLoadingData": "שגיאה בטעינת נתוני לוח שנה" }, "romm": { - "platforms": "Platforms", - "totalRoms": "Games", - "saves": "Saves", - "states": "States", - "screenshots": "Screenshots", - "totalfilesize": "Total Size" + "platforms": "פלטפורמות", + "totalRoms": "משחקים", + "saves": "שמירות", + "states": "מצבים", + "screenshots": "תמונות מסך", + "totalfilesize": "גודל סה\"כ" }, "mailcow": { - "domains": "Domains", - "mailboxes": "Mailboxes", - "mails": "Mails", - "storage": "Storage" + "domains": "דומיינים", + "mailboxes": "תיבות דואר", + "mails": "מיילים", + "storage": "אחסון" }, "netdata": { - "warnings": "Warnings", - "criticals": "Criticals" + "warnings": "התראות", + "criticals": "קריטיים" }, "plantit": { - "events": "Events", - "plants": "Plants", - "photos": "Photos", - "species": "Species" + "events": "אירועים", + "plants": "צמחים", + "photos": "תמונות", + "species": "מינים" }, "gitea": { - "notifications": "Notifications", - "issues": "Issues", - "pulls": "Pull Requests", - "repositories": "Repositories" + "notifications": "התראות", + "issues": "גיליונות", + "pulls": "בקשות משיכה", + "repositories": "מאגרי מידע" }, "stash": { - "scenes": "Scenes", - "scenesPlayed": "Scenes Played", - "playCount": "Total Plays", - "playDuration": "Time Watched", - "sceneSize": "Scenes Size", - "sceneDuration": "Scenes Duration", - "images": "Images", - "imageSize": "Images Size", - "galleries": "Galleries", - "performers": "Performers", - "studios": "Studios", - "movies": "Movies", - "tags": "Tags", + "scenes": "סצנות", + "scenesPlayed": "סצנות שנראו", + "playCount": "סה\"כ השמעות", + "playDuration": "משך צפייה", + "sceneSize": "גודל סצנות", + "sceneDuration": "משך סצנות", + "images": "תמונות", + "imageSize": "גודל תמונות", + "galleries": "גלריות", + "performers": "מבצעים", + "studios": "אולפנים", + "movies": "סרטים", + "tags": "טגיות", "oCount": "O Count" }, "tandoor": { - "users": "Users", - "recipes": "Recipes", - "keywords": "Keywords" + "users": "משתמשים", + "recipes": "מתכונים", + "keywords": "מילות מפתח" }, "homebox": { - "items": "Items", - "totalWithWarranty": "With Warranty", - "locations": "Locations", - "labels": "Labels", - "users": "Users", - "totalValue": "Total Value" + "items": "פריטים", + "totalWithWarranty": "עם אחריות", + "locations": "מיקומים", + "labels": "תוויות", + "users": "משתמשים", + "totalValue": "ערך כולל" }, "crowdsec": { - "alerts": "Alerts", - "bans": "Bans" + "alerts": "התראות", + "bans": "חסימות" }, "wgeasy": { - "connected": "Connected", + "connected": "מחובר", "enabled": "מופעל", "disabled": "מבוטל", "total": "סה\"כ" @@ -934,113 +936,123 @@ "banned": "Banned" }, "myspeed": { - "ping": "Ping", - "download": "Download", - "upload": "Upload" + "ping": "פינג", + "download": "הורדה", + "upload": "העלאה" }, "stocks": { - "stocks": "Stocks", - "loading": "Loading", - "open": "Open - US Market", - "closed": "Closed - US Market", - "invalidConfiguration": "Invalid Configuration" + "stocks": "מניות", + "loading": "טוען", + "open": "פתוח - שוק ארה\"ב", + "closed": "סגור - שוק ארה\"ב", + "invalidConfiguration": "תצורה לא תקינה" }, "frigate": { - "cameras": "Cameras", - "uptime": "Uptime", - "version": "Version" + "cameras": "מצלמות", + "uptime": "זמן פעילות", + "version": "גרסה" }, "linkwarden": { - "links": "Links", - "collections": "Collections", - "tags": "Tags" + "links": "קישורים", + "collections": "אוספים", + "tags": "טגיות" }, "zabbix": { - "unclassified": "Not classified", - "information": "Information", - "warning": "Warning", - "average": "Average", - "high": "High", - "disaster": "Disaster" + "unclassified": "לא ממויין", + "information": "מידע", + "warning": "אזהרה", + "average": "ממוצע", + "high": "גבוה", + "disaster": "אסון" }, "lubelogger": { - "vehicle": "Vehicle", - "vehicles": "Vehicles", - "serviceRecords": "Service Records", - "reminders": "Reminders", - "nextReminder": "Next Reminder", - "none": "None" + "vehicle": "רכב", + "vehicles": "רכבים", + "serviceRecords": "רשומות שירות", + "reminders": "תזכורות", + "nextReminder": "תזכורת הבאה", + "none": "אין" }, "vikunja": { - "projects": "Active Projects", - "tasks7d": "Tasks Due This Week", - "tasksOverdue": "Overdue Tasks", - "tasksInProgress": "Tasks In Progress" + "projects": "פרויקטים פעילים", + "tasks7d": "משימות לסיום השבוע", + "tasksOverdue": "משימות באיחור", + "tasksInProgress": "משימות בעבודה" }, "headscale": { - "name": "Name", - "address": "Address", - "last_seen": "Last Seen", + "name": "שם", + "address": "כתובת", + "last_seen": "נראה לאחרונה", "status": "סטטוס", - "online": "Online", - "offline": "כבוי" + "online": "מקוון", + "offline": "לא מקוון" }, "beszel": { - "name": "Name", - "systems": "Systems", - "up": "Up", - "down": "Down", - "paused": "Paused", + "name": "שם", + "systems": "מערכות", + "up": "למעלה", + "down": "למטה", + "paused": "מושהה", "pending": "ממתין", "status": "סטטוס", - "updated": "Updated", - "cpu": "CPU", - "memory": "MEM", - "disk": "Disk", + "updated": "עודכן", + "cpu": "מעבד", + "memory": "זיכרון", + "disk": "דיסק", "network": "NET" }, "argocd": { - "apps": "Apps", - "synced": "Synced", - "outOfSync": "Out Of Sync", - "healthy": "Healthy", - "degraded": "Degraded", - "progressing": "Progressing", - "missing": "Missing", - "suspended": "Suspended" + "apps": "אפליקציות", + "synced": "מסונכרן", + "outOfSync": "לא מסונכרן", + "healthy": "בריא", + "degraded": "פגום", + "progressing": "מתקדם", + "missing": "חסרים", + "suspended": "מושהה" }, "spoolman": { - "loading": "Loading" + "loading": "טוען" }, "gitlab": { - "groups": "Groups", - "issues": "Issues", + "groups": "קבוצות", + "issues": "גיליונות", "merges": "Merge Requests", - "projects": "Projects" + "projects": "פרוייקטים" }, "apcups": { "status": "סטטוס", "load": "עומס", - "bcharge": "Battery Charge", + "bcharge": "טעינת סוללה", "timeleft": "זמן שנותר" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", - "highlights": "Highlights", - "lists": "Lists", - "tags": "Tags" + "bookmarks": "סימניות", + "favorites": "מועדפים", + "archived": "ארכיון", + "highlights": "הדגשות", + "lists": "רשימות", + "tags": "טגיות" }, "slskd": { - "slskStatus": "Network", - "connected": "Connected", - "disconnected": "Disconnected", - "updateStatus": "Update", + "slskStatus": "רשת", + "connected": "מחובר", + "disconnected": "מנותק", + "updateStatus": "עדכן", "update_yes": "זמין", - "update_no": "Up to Date", - "downloads": "Downloads", - "uploads": "Uploads", - "sharedFiles": "Files" + "update_no": "עדכני", + "downloads": "הורדות", + "uploads": "העלאות", + "sharedFiles": "קבצים" + }, + "jellystat": { + "songs": "שירים", + "movies": "סרטים", + "episodes": "פרקים", + "other": "אחר" + }, + "checkmk": { + "serviceErrors": "שגיאות שירות", + "hostErrors": "שגיאות מארח" } } diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 8897f2171..4b44e87ed 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index 036f746b3..2feb8153c 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -149,8 +149,8 @@ "received": "Primljeno", "sent": "Poslano", "externalIPAddress": "Eksterna IP adresa", - "externalIPv6Address": "Ext. IPv6", - "externalIPv6Prefix": "Ext. IPv6-Prefix" + "externalIPv6Address": "Vanjs. IPv6", + "externalIPv6Prefix": "Vanjs. IPv6 prefiks" }, "caddy": { "upstreams": "Glavne grane", @@ -178,7 +178,7 @@ "connectedAp": "Povezani AP-ovi", "activeUser": "Aktivni uređaji", "alerts": "Upozorenja", - "connectedGateways": "Connected gateways", + "connectedGateways": "Povezani pristupnici", "connectedSwitches": "Povezani prekidači" }, "nzbget": { @@ -229,8 +229,8 @@ "seed": "Prenošenje preuzetog sadržaja" }, "develancacheui": { - "cachehitbytes": "Cache Hit Bytes", - "cachemissbytes": "Cache Miss Bytes" + "cachehitbytes": "Bajtovi pogodaka predmemorije", + "cachemissbytes": "Bajtovi promašaja predmemorije" }, "downloadstation": { "download": "Preuzimanje", @@ -313,13 +313,13 @@ }, "suwayomi": { "download": "Preuzeto", - "nondownload": "Non-Downloaded", + "nondownload": "Nepreuzeto", "read": "Pročitano", "unread": "Nepročitano", - "downloadedread": "Downloaded & Read", - "downloadedunread": "Downloaded & Unread", - "nondownloadedread": "Non-Downloaded & Read", - "nondownloadedunread": "Non-Downloaded & Unread" + "downloadedread": "Preuzeto i pročitano", + "downloadedunread": "Preuzeto i nepročitano", + "nondownloadedread": "Nepreuzeto i pročitano", + "nondownloadedunread": "Nepreuzeto i nepročitano" }, "tailscale": { "address": "Adresa", @@ -337,15 +337,15 @@ }, "technitium": { "totalQueries": "Upiti", - "totalNoError": "Success", - "totalServerFailure": "Failures", - "totalNxDomain": "NX Domains", - "totalRefused": "Refused", - "totalAuthoritative": "Authoritative", - "totalRecursive": "Recursive", - "totalCached": "Cached", + "totalNoError": "Uspješno", + "totalServerFailure": "Neuspješno", + "totalNxDomain": "NX domene", + "totalRefused": "Odbijeno", + "totalAuthoritative": "Autoritativan", + "totalRecursive": "Rekurzivno", + "totalCached": "Predmemorirano", "totalBlocked": "Blokirano", - "totalDropped": "Dropped", + "totalDropped": "Odbačeno", "totalClients": "Klijenti" }, "tdarr": { @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Javni IP", "region": "Regija", - "country": "Zemlja" + "country": "Zemlja", + "port_forwarded": "Port proslijeđen" }, "hdhomerun": { "channels": "Kanali", @@ -705,8 +706,8 @@ "time": "Vrijeme" }, "firefly": { - "networth": "Net Worth", - "budget": "Budget" + "networth": "Neto vrijednost", + "budget": "Budžet" }, "grafana": { "dashboards": "Pregledne ploče", @@ -856,20 +857,21 @@ "physicalRelease": "Fizičko izdanje", "digitalRelease": "Digitalno izdanje", "noEventsToday": "Danas nema događaja!", - "noEventsFound": "Nema događaja" + "noEventsFound": "Nema događaja", + "errorWhenLoadingData": "Pogreška prilikom učitavanja podataka kalendara" }, "romm": { "platforms": "Platforme", "totalRoms": "Igre", - "saves": "Saves", - "states": "States", + "saves": "Spremljeno", + "states": "Stanja", "screenshots": "Snimke ekrana", "totalfilesize": "Ukupna veličina" }, "mailcow": { "domains": "Domene", - "mailboxes": "Mailboxes", - "mails": "Mails", + "mailboxes": "Poštanski sandučići", + "mails": "Pošta", "storage": "Spremište" }, "netdata": { @@ -886,7 +888,7 @@ "notifications": "Obavijesti", "issues": "Problemi", "pulls": "Zahtjevi za povlačenje", - "repositories": "Repositories" + "repositories": "Repozitoriji" }, "stash": { "scenes": "Scene", @@ -939,11 +941,11 @@ "upload": "Prijenos" }, "stocks": { - "stocks": "Stocks", - "loading": "Loading", - "open": "Open - US Market", - "closed": "Closed - US Market", - "invalidConfiguration": "Invalid Configuration" + "stocks": "Dionice", + "loading": "Učitavanje", + "open": "Otvoreno - američko tržište", + "closed": "Zatvoreno - američko tržište", + "invalidConfiguration": "Nepravilna konfiguracija" }, "frigate": { "cameras": "Kamere", @@ -956,26 +958,26 @@ "tags": "Oznake" }, "zabbix": { - "unclassified": "Not classified", + "unclassified": "Nije klasificirano", "information": "Informacije", "warning": "Upozorenje", - "average": "Average", - "high": "High", - "disaster": "Disaster" + "average": "Prosjek", + "high": "Visoko", + "disaster": "Katastrofa" }, "lubelogger": { - "vehicle": "Vehicle", - "vehicles": "Vehicles", - "serviceRecords": "Service Records", + "vehicle": "Vozilo", + "vehicles": "Vozila", + "serviceRecords": "Servisni zapisi", "reminders": "Podsjetnici", "nextReminder": "Sljedeći podsjetnik", - "none": "None" + "none": "Ništa" }, "vikunja": { - "projects": "Active Projects", - "tasks7d": "Tasks Due This Week", - "tasksOverdue": "Overdue Tasks", - "tasksInProgress": "Tasks In Progress" + "projects": "Aktivni projekti", + "tasks7d": "Zadaci dospijeća ovog tjedna", + "tasksOverdue": "Zakašnjeli zadaci", + "tasksInProgress": "Zadaci u tijeku" }, "headscale": { "name": "Ime", @@ -987,7 +989,7 @@ }, "beszel": { "name": "Ime", - "systems": "Systems", + "systems": "Sustavi", "up": "Dostupno", "down": "Nedostupno", "paused": "Zaustavljeno", @@ -997,26 +999,26 @@ "cpu": "CPU", "memory": "MEM", "disk": "Disk", - "network": "NET" + "network": "Mreža" }, "argocd": { - "apps": "Apps", - "synced": "Synced", - "outOfSync": "Out Of Sync", + "apps": "Aplikacije", + "synced": "Sinkronizirano", + "outOfSync": "Izvan sinkronizacije", "healthy": "Funkcionalno", - "degraded": "Degraded", - "progressing": "Progressing", + "degraded": "Degradirano", + "progressing": "Napredovanje", "missing": "Nedostaje", - "suspended": "Suspended" + "suspended": "Suspendiran" }, "spoolman": { - "loading": "Loading" + "loading": "Učitavanje" }, "gitlab": { - "groups": "Groups", + "groups": "Grupe", "issues": "Problemi", - "merges": "Merge Requests", - "projects": "Projects" + "merges": "Zahtjevi za sjedinjenjem", + "projects": "Projekti" }, "apcups": { "status": "Stanje", @@ -1025,22 +1027,32 @@ "timeleft": "Preostalo vrijeme" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", - "highlights": "Highlights", - "lists": "Lists", + "bookmarks": "Oznake", + "favorites": "Favoriti", + "archived": "Arhivirano", + "highlights": "Izdvajamo", + "lists": "Liste", "tags": "Oznake" }, "slskd": { "slskStatus": "Mreža", "connected": "Povezano", "disconnected": "Odspojeno", - "updateStatus": "Update", + "updateStatus": "Ažuriraj", "update_yes": "Dostupno", "update_no": "Aktualno", - "downloads": "Downloads", - "uploads": "Uploads", + "downloads": "Preuzimanje", + "uploads": "Prijenos", "sharedFiles": "Datoteke" + }, + "jellystat": { + "songs": "Pjesme", + "movies": "Filmovi", + "episodes": "Epizode", + "other": "Ostalo" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index a3ab6bf82..8989af6c8 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Nyilvános IP-cím", "region": "Régió", - "country": "Ország" + "country": "Ország", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Csatornák", @@ -856,7 +857,8 @@ "physicalRelease": "Fizikai kiadás", "digitalRelease": "Digitális kiadás", "noEventsToday": "Ezen a napon nincsenek események!", - "noEventsFound": "Nem található esemény" + "noEventsFound": "Nem található esemény", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Felület", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Fájlok" + }, + "jellystat": { + "songs": "Zeneszám", + "movies": "Film", + "episodes": "Epizód", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/id/common.json b/public/locales/id/common.json index 9babbe5a7..6e46e0176 100644 --- a/public/locales/id/common.json +++ b/public/locales/id/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP Publik", "region": "Region", - "country": "Negara" + "country": "Negara", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channel", @@ -856,7 +857,8 @@ "physicalRelease": "Rilis Fisik", "digitalRelease": "Rilis Digital", "noEventsToday": "Tidak ada acara untuk hari ini!", - "noEventsFound": "Tidak ada acara yang ditemukan" + "noEventsFound": "Tidak ada acara yang ditemukan", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platform", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "File" + }, + "jellystat": { + "songs": "Lagu", + "movies": "Film", + "episodes": "Episode", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/it/common.json b/public/locales/it/common.json index 6e870a093..68f400a3b 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -14,7 +14,7 @@ "date": "{{value, date}}", "relativeDate": "{{value, relativeDate}}", "duration": "{{value, duration}}", - "months": "mo", + "months": "m", "days": "g", "hours": "o", "minutes": "m", @@ -313,13 +313,13 @@ }, "suwayomi": { "download": "Scaricato", - "nondownload": "Non-Downloaded", + "nondownload": "Non Scaricato", "read": "Letti", "unread": "Non letto", - "downloadedread": "Downloaded & Read", - "downloadedunread": "Downloaded & Unread", - "nondownloadedread": "Non-Downloaded & Read", - "nondownloadedunread": "Non-Downloaded & Unread" + "downloadedread": "Scaricato E Letto", + "downloadedunread": "Scaricato E Non Letto", + "nondownloadedread": "Non Scaricato E Letto", + "nondownloadedunread": "Non Scaricato E Non Letto" }, "tailscale": { "address": "Indirizzo", @@ -339,13 +339,13 @@ "totalQueries": "Richieste", "totalNoError": "Successo", "totalServerFailure": "Fallimenti", - "totalNxDomain": "NX Domains", - "totalRefused": "Refused", - "totalAuthoritative": "Authoritative", - "totalRecursive": "Recursive", - "totalCached": "Cached", + "totalNxDomain": "Domini NX", + "totalRefused": "Rifiutato", + "totalAuthoritative": "Autoritario", + "totalRecursive": "Ricorsivo", + "totalCached": "In cache", "totalBlocked": "Bloccati", - "totalDropped": "Dropped", + "totalDropped": "Saltati", "totalClients": "Client" }, "tdarr": { @@ -568,12 +568,13 @@ "gluetun": { "public_ip": "IP pubblico", "region": "Località", - "country": "Paese" + "country": "Paese", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Canali", "hd": "HD", - "tunerCount": "Tuners", + "tunerCount": "Regolatori", "channelNumber": "Canale", "channelNetwork": "Rete", "signalStrength": "Intensità", @@ -705,7 +706,7 @@ "time": "Tempo" }, "firefly": { - "networth": "Net Worth", + "networth": "Valore Netto", "budget": "Budget" }, "grafana": { @@ -856,29 +857,30 @@ "physicalRelease": "Release fisici", "digitalRelease": "Versione digitale", "noEventsToday": "Nessun evento per oggi!", - "noEventsFound": "Nessun evento trovato" + "noEventsFound": "Nessun evento trovato", + "errorWhenLoadingData": "Errore durante il caricamento dei dati del calendario" }, "romm": { "platforms": "Piattaforme", "totalRoms": "Giochi", - "saves": "Saves", - "states": "States", - "screenshots": "Screenshots", - "totalfilesize": "Total Size" + "saves": "Salvati", + "states": "Stati", + "screenshots": "Screenshot", + "totalfilesize": "Dimensioni totali" }, "mailcow": { "domains": "Domini", - "mailboxes": "Mailboxes", - "mails": "Mails", + "mailboxes": "Caselle di posta", + "mails": "Mail", "storage": "Archiviazione" }, "netdata": { "warnings": "Avvisi", - "criticals": "Criticals" + "criticals": "Critici" }, "plantit": { "events": "Eventi", - "plants": "Plants", + "plants": "Piante", "photos": "Foto", "species": "Specie" }, @@ -886,7 +888,7 @@ "notifications": "Notifiche", "issues": "Problemi", "pulls": "Richieste di Pull", - "repositories": "Repositories" + "repositories": "Repository" }, "stash": { "scenes": "Scene", @@ -928,8 +930,8 @@ "total": "Totale" }, "swagdashboard": { - "proxied": "Proxied", - "auth": "With Auth", + "proxied": "Proxato", + "auth": "Con Autenticazione", "outdated": "Obsoleto", "banned": "Bannato" }, @@ -939,14 +941,14 @@ "upload": "Upload" }, "stocks": { - "stocks": "Stocks", + "stocks": "Azioni", "loading": "Caricamento", - "open": "Open - US Market", - "closed": "Closed - US Market", + "open": "Aperto - Mercato USA", + "closed": "Chiuso - Mercato USA", "invalidConfiguration": "Configurazione non valida" }, "frigate": { - "cameras": "Cameras", + "cameras": "Telecamere", "uptime": "Tempo di attività", "version": "Versione" }, @@ -956,26 +958,26 @@ "tags": "Tag" }, "zabbix": { - "unclassified": "Not classified", + "unclassified": "Non classificato", "information": "Informazioni", - "warning": "Warning", + "warning": "Avviso", "average": "Media", - "high": "High", - "disaster": "Disaster" + "high": "Alto", + "disaster": "Disastri" }, "lubelogger": { "vehicle": "Veicolo", "vehicles": "Veicoli", - "serviceRecords": "Service Records", + "serviceRecords": "Record Di Servizio", "reminders": "Promemoria", "nextReminder": "Promemoria Seguente", "none": "Nessuno" }, "vikunja": { - "projects": "Active Projects", - "tasks7d": "Tasks Due This Week", - "tasksOverdue": "Overdue Tasks", - "tasksInProgress": "Tasks In Progress" + "projects": "Progetti attivi", + "tasks7d": "Attività Settimanali", + "tasksOverdue": "Task scaduti", + "tasksInProgress": "Task In Corso" }, "headscale": { "name": "Nome", @@ -1005,9 +1007,9 @@ "outOfSync": "Non Sincronizzato", "healthy": "Sano", "degraded": "Degradato", - "progressing": "Progressing", + "progressing": "Progressione", "missing": "Mancanti", - "suspended": "Suspended" + "suspended": "Sospeso" }, "spoolman": { "loading": "Caricamento" @@ -1027,7 +1029,7 @@ "karakeep": { "bookmarks": "Segnalibri", "favorites": "Preferiti", - "archived": "Archived", + "archived": "Archiviato", "highlights": "Highlights", "lists": "Liste", "tags": "Tag" @@ -1036,11 +1038,21 @@ "slskStatus": "Rete", "connected": "Connesso", "disconnected": "Disconnesso", - "updateStatus": "Update", + "updateStatus": "Aggiornamento", "update_yes": "Disponibili", "update_no": "Aggiornato", "downloads": "Download", - "uploads": "Uploads", + "uploads": "Caricamenti", "sharedFiles": "File" + }, + "jellystat": { + "songs": "Canzoni", + "movies": "Film", + "episodes": "Episodi", + "other": "Altro" + }, + "checkmk": { + "serviceErrors": "Problemi di servizio", + "hostErrors": "Problemi di host" } } diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index 5e963a776..d5871c63d 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "パブリックIP", "region": "地域", - "country": "国" + "country": "国", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "チャンネル", @@ -856,7 +857,8 @@ "physicalRelease": "物理的なリリース", "digitalRelease": "デジタル・リリース", "noEventsToday": "本日の予定なし", - "noEventsFound": "予定が見つかりません" + "noEventsFound": "予定が見つかりません", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "プラットフォーム", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "ファイル" + }, + "jellystat": { + "songs": "曲", + "movies": "映画", + "episodes": "エピソード", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index 8bfe4276e..9df7c31c6 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "채널", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "기종", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "파일" + }, + "jellystat": { + "songs": "음악", + "movies": "영화", + "episodes": "에피소드", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 0238d1439..e51fd3069 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index 8c0e55094..99c49284e 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP Awam", "region": "Rantau", - "country": "Negara" + "country": "Negara", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Saluran", @@ -856,7 +857,8 @@ "physicalRelease": "Edaran fizikal", "digitalRelease": "Edaran digital", "noEventsToday": "Tiada agenda untuk hari ini!", - "noEventsFound": "Tiada agenda dijumpai" + "noEventsFound": "Tiada agenda dijumpai", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platform", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Lagu", + "movies": "Filem", + "episodes": "Episod", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 63a2d50e3..61e6f6c19 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Publiek IP", "region": "Regio", - "country": "Land" + "country": "Land", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanalen", @@ -856,7 +857,8 @@ "physicalRelease": "Fysieke versie", "digitalRelease": "Digitale versie", "noEventsToday": "Geen gebeurtenissen voor vandaag!", - "noEventsFound": "Geen gebeurtenissen gevonden" + "noEventsFound": "Geen gebeurtenissen gevonden", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platformen", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Bestanden" + }, + "jellystat": { + "songs": "Nummers", + "movies": "Films", + "episodes": "Afleveringen", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/no/common.json b/public/locales/no/common.json index dee021412..3690248d7 100644 --- a/public/locales/no/common.json +++ b/public/locales/no/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Offentlig IP", "region": "Region", - "country": "Land" + "country": "Land", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanal", @@ -856,7 +857,8 @@ "physicalRelease": "Fysisk utslipp", "digitalRelease": "Digital utgivelse", "noEventsToday": "Ingen hendelser for i dag!", - "noEventsFound": "Ingen hendelser funnet" + "noEventsFound": "Ingen hendelser funnet", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Plattformer", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Sanger", + "movies": "Film", + "episodes": "Episoder", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index 3a956aaf1..10afb381e 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -178,7 +178,7 @@ "connectedAp": "Połączone punkty dostępowe", "activeUser": "Aktywne urządzenia", "alerts": "Alarmy", - "connectedGateways": "Connected gateways", + "connectedGateways": "Połączone bramy", "connectedSwitches": "Połączone przełączniki" }, "nzbget": { @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Adres publiczny", "region": "Region", - "country": "Państwo" + "country": "Państwo", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanały", @@ -856,7 +857,8 @@ "physicalRelease": "Wydanie fizyczne", "digitalRelease": "Wydanie cyfrowe", "noEventsToday": "Brak wydarzeń na dziś!", - "noEventsFound": "Nie znaleziono wydarzeń" + "noEventsFound": "Nie znaleziono wydarzeń", + "errorWhenLoadingData": "Wystąpił błąd podczas ładowania danych kalendarza" }, "romm": { "platforms": "Platformy", @@ -1036,11 +1038,21 @@ "slskStatus": "Sieć", "connected": "Połączono", "disconnected": "Rozłączono", - "updateStatus": "Update", + "updateStatus": "Aktualizacja", "update_yes": "Dostępne", "update_no": "Aktualny", - "downloads": "Downloads", - "uploads": "Uploads", + "downloads": "Pobieranie", + "uploads": "Przesyłanie", "sharedFiles": "Pliki" + }, + "jellystat": { + "songs": "Piosenki", + "movies": "Filmy", + "episodes": "Odcinki", + "other": "Inne" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index c392c17de..55c4efcb6 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP público", "region": "Região", - "country": "País" + "country": "País", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Canais", @@ -856,7 +857,8 @@ "physicalRelease": "Lançamento físico", "digitalRelease": "Lançamento digital", "noEventsToday": "Não existem eventos hoje!", - "noEventsFound": "Nenhum evento encontrado" + "noEventsFound": "Nenhum evento encontrado", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Plataformas", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Ficheiros" + }, + "jellystat": { + "songs": "Canções", + "movies": "Filmes", + "episodes": "Episódios", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/pt_BR/common.json b/public/locales/pt_BR/common.json index ee4260520..5eac51298 100644 --- a/public/locales/pt_BR/common.json +++ b/public/locales/pt_BR/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "IP público", "region": "Região", - "country": "País" + "country": "País", + "port_forwarded": "Porta Encaminhada" }, "hdhomerun": { "channels": "Canais", @@ -856,7 +857,8 @@ "physicalRelease": "Versão física", "digitalRelease": "Versão digital", "noEventsToday": "Nenhum evento para hoje!", - "noEventsFound": "Nenhum evento encontrado" + "noEventsFound": "Nenhum evento encontrado", + "errorWhenLoadingData": "Erro ao carregar dados do calendário" }, "romm": { "platforms": "Plataformas", @@ -1042,5 +1044,15 @@ "downloads": "Transferências", "uploads": "Envios", "sharedFiles": "Arquivos" + }, + "jellystat": { + "songs": "Canções", + "movies": "Filmes", + "episodes": "Episódios", + "other": "Outro" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index 9dcd29215..1cb1301b2 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -134,20 +134,20 @@ }, "fritzbox": { "connectionStatus": "Stare", - "connectionStatusUnconfigured": "Unconfigured", + "connectionStatusUnconfigured": "Neconfigurat", "connectionStatusConnecting": "Connecting", "connectionStatusAuthenticating": "Authenticating", "connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusDisconnecting": "Disconnecting", - "connectionStatusDisconnected": "Disconnected", - "connectionStatusConnected": "Connected", + "connectionStatusDisconnected": "Deconectat", + "connectionStatusConnected": "Conectat", "uptime": "Uptime", "maxDown": "Max. Down", "maxUp": "Max. Up", "down": "Jos", "up": "Sus", - "received": "Received", - "sent": "Sent", + "received": "Primit", + "sent": "Trimis", "externalIPAddress": "Ext. IP", "externalIPv6Address": "Ext. IPv6", "externalIPv6Prefix": "Ext. IPv6-Prefix" @@ -163,8 +163,8 @@ }, "channelsdvrserver": { "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", + "recordings": "Înregistrări", + "scheduled": "Programate", "passes": "Passes" }, "tautulli": { @@ -176,8 +176,8 @@ }, "omada": { "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", + "activeUser": "Dispozitive active", + "alerts": "Alerte", "connectedGateways": "Connected gateways", "connectedSwitches": "Connected switches" }, @@ -188,7 +188,7 @@ }, "plex": { "streams": "Fluxuri active", - "albums": "Albums", + "albums": "Albume", "movies": "Filme", "tv": "Seriale" }, @@ -217,7 +217,7 @@ "qnap": { "cpuUsage": "CPU Usage", "memUsage": "MEM Usage", - "systemTempC": "System Temp", + "systemTempC": "Temperatură Sistem", "poolUsage": "Pool Usage", "volumeUsage": "Volume Usage", "invalid": "Invalid" @@ -247,7 +247,7 @@ }, "radarr": { "wanted": "Dorite", - "missing": "Missing", + "missing": "Lipsește", "queued": "În coadă", "movies": "Filme", "queue": "Coadă", @@ -256,7 +256,7 @@ "lidarr": { "wanted": "Dorite", "queued": "În coadă", - "artists": "Artists" + "artists": "Artiști" }, "readarr": { "wanted": "Dorite", @@ -279,21 +279,21 @@ }, "overseerr": { "pending": "În așteptare", - "processing": "Processing", + "processing": "Procesare", "approved": "Aprobate", "available": "Disponibile" }, "netalertx": { "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", + "connected": "Conectat", + "new_devices": "Dispozitive Noi", "down_alerts": "Down Alerts" }, "pihole": { "queries": "Cereri", "blocked": "Blocate", "blocked_percent": "Blocked %", - "gravity": "Gravity" + "gravity": "Gravitație" }, "adguard": { "queries": "Cereri", @@ -322,11 +322,11 @@ "nondownloadedunread": "Non-Downloaded & Unread" }, "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", + "address": "Adresă", + "expires": "Expiră", + "never": "Niciodată", "last_seen": "Last Seen", - "now": "Now", + "now": "Acum", "years": "{{number}}y", "weeks": "{{number}}w", "days": "{{number}}d", @@ -340,9 +340,9 @@ "totalNoError": "Success", "totalServerFailure": "Failures", "totalNxDomain": "NX Domains", - "totalRefused": "Refused", + "totalRefused": "Refuzat", "totalAuthoritative": "Authoritative", - "totalRecursive": "Recursive", + "totalRecursive": "Recursiv", "totalCached": "Cached", "totalBlocked": "Blocate", "totalDropped": "Dropped", @@ -352,7 +352,7 @@ "queue": "Coadă", "processed": "Processed", "errored": "Errored", - "saved": "Saved" + "saved": "Salvat" }, "traefik": { "routers": "Routere", @@ -408,8 +408,8 @@ "series": "Serie" }, "minecraft": { - "players": "Players", - "version": "Version", + "players": "Jucători", + "version": "Versiune", "status": "Stare", "up": "Online", "down": "Offline" @@ -434,7 +434,7 @@ "load": "Sarcină", "wait": "Va rugăm așteptați", "temp": "TEMP", - "_temp": "Temp", + "_temp": "Temperatură", "warn": "Warn", "uptime": "UP", "total": "Total", @@ -456,7 +456,7 @@ "custom": "Personalizat", "visit": "Vizită", "url": "URL", - "searchsuggestion": "Suggestion" + "searchsuggestion": "Sugestie" }, "wmo": { "0-day": "Însorit", @@ -481,10 +481,10 @@ "56-night": "Light Freezing Drizzle", "57-day": "Freezing Drizzle", "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", + "61-day": "Ploaie Ușoară", + "61-night": "Ploaie Ușoară", + "63-day": "Ploaie", + "63-night": "Ploaie", "65-day": "Heavy Rain", "65-night": "Heavy Rain", "66-day": "Freezing Rain", @@ -517,10 +517,10 @@ "99-night": "Thunderstorm With Hail" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", + "available_update": "Sistem", + "updates": "Actualizări", + "update_available": "Actualizare Disponibilă", + "up_to_date": "Actualizat", "child_bridges": "Child Bridges", "child_bridges_status": "{{ok}}/{{total}}", "up": "Sus", @@ -528,63 +528,64 @@ "down": "Jos" }, "healthchecks": { - "new": "New", + "new": "Nou", "up": "Sus", "grace": "In Grace Period", "down": "Jos", - "paused": "Paused", + "paused": "Pauză", "status": "Stare", - "last_ping": "Last Ping", + "last_ping": "Ultimul Ping", "never": "No pings yet" }, "watchtower": { "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_updated": "Actualizat", + "containers_failed": "Eșuat" }, "autobrr": { "approvedPushes": "Aprobate", - "rejectedPushes": "Rejected", - "filters": "Filters", + "rejectedPushes": "Respinse", + "filters": "Filtre", "indexers": "Indexatori" }, "tubearchivist": { "downloads": "Coadă", "videos": "Videos", - "channels": "Channels", + "channels": "Canale", "playlists": "Playlists" }, "truenas": { "load": "System Load", "uptime": "Uptime", - "alerts": "Alerts" + "alerts": "Alerte" }, "pyload": { - "speed": "Speed", + "speed": "Viteză", "active": "Activ", "queue": "Coadă", "total": "Total" }, "gluetun": { "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "region": "Regiune", + "country": "Țară", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { - "channels": "Channels", + "channels": "Canale", "hd": "HD", - "tunerCount": "Tuners", - "channelNumber": "Channel", - "channelNetwork": "Network", - "signalStrength": "Strength", - "signalQuality": "Quality", - "symbolQuality": "Quality", + "tunerCount": "Tunere", + "channelNumber": "Canal", + "channelNetwork": "Rețea", + "signalStrength": "Putere", + "signalQuality": "Calitate", + "symbolQuality": "Calitate", "networkRate": "Rata de biți", "clientIP": "Client" }, "scrutiny": { "passed": "Passed", - "failed": "Failed", + "failed": "Eșuat", "unknown": "Necunoscut" }, "paperlessngx": { @@ -592,12 +593,12 @@ "total": "Total" }, "peanut": { - "battery_charge": "Battery Charge", + "battery_charge": "Încărcare Baterie", "ups_load": "UPS Load", "ups_status": "UPS Status", "online": "Online", "on_battery": "On Battery", - "low_battery": "Low Battery" + "low_battery": "Baterie descărcată" }, "nextdns": { "wait": "Please Wait", @@ -605,7 +606,7 @@ }, "mikrotik": { "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", + "memoryUsed": "Memorie Utilizată", "uptime": "Uptime", "numberOfLeases": "Leases" }, @@ -615,22 +616,22 @@ "streams_xepg": "XEPG Channels" }, "opendtu": { - "yieldDay": "Today", - "absolutePower": "Power", - "relativePower": "Power %", - "limit": "Limit" + "yieldDay": "Astăzi", + "absolutePower": "Putere", + "relativePower": "Putere %", + "limit": "Limită" }, "opnsense": { "cpu": "CPU Load", - "memory": "Active Memory", + "memory": "Memorie Activă", "wanUpload": "WAN Upload", "wanDownload": "WAN Download" }, "moonraker": { - "printer_state": "Printer State", + "printer_state": "Starea Imprimantei", "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" + "print_progress": "Progres", + "layers": "Straturi" }, "octoprint": { "printer_state": "Stare", @@ -648,19 +649,19 @@ "wanStatus": "WAN Status", "up": "Sus", "down": "Jos", - "temp": "Temp", - "disk": "Disk Usage", + "temp": "Temperatură", + "disk": "Utilizare Disc", "wanIP": "WAN IP" }, "proxmoxbackupserver": { "datastore_usage": "Datastore", "failed_tasks_24h": "Failed Tasks 24h", "cpu_usage": "Procesor", - "memory_usage": "Memory" + "memory_usage": "Memorie" }, "immich": { "users": "Utilizatori", - "photos": "Photos", + "photos": "Fotografii", "videos": "Videos", "storage": "Storage" }, @@ -673,12 +674,12 @@ }, "atsumeru": { "series": "Serie", - "archives": "Archives", + "archives": "Arhive", "chapters": "Chapters", - "categories": "Categories" + "categories": "Categorii" }, "komga": { - "libraries": "Libraries", + "libraries": "Biblioteci", "series": "Serie", "books": "Cărți" }, @@ -693,20 +694,20 @@ "wanted": "Dorite" }, "photoprism": { - "albums": "Albums", - "photos": "Photos", + "albums": "Albume", + "photos": "Fotografii", "videos": "Videos", - "people": "People" + "people": "Oameni" }, "fileflows": { "queue": "Coadă", - "processing": "Processing", + "processing": "Procesare", "processed": "Processed", - "time": "Time" + "time": "Timp" }, "firefly": { "networth": "Net Worth", - "budget": "Budget" + "budget": "Buget" }, "grafana": { "dashboards": "Dashboards", @@ -716,18 +717,18 @@ }, "nextcloud": { "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "memoryusage": "Memorie Utilizată", + "freespace": "Spațiu Liber", + "activeusers": "Utilizatori Activi", + "numfiles": "Fișiere", + "numshares": "Articole Partajate" }, "kopia": { "status": "Stare", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "size": "Mărime", + "lastrun": "Ultima Rulare", + "nextrun": "Următoarea Rulare", + "failed": "Eșuat" }, "unmanic": { "active_workers": "Muncitori activi", @@ -749,15 +750,15 @@ "uptime": "Uptime" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "Astăzi", + "gross_percent_1y": "Un an", + "gross_percent_max": "Tot timpul" }, "audiobookshelf": { - "podcasts": "Podcasts", + "podcasts": "Podcasturi", "books": "Cărți", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcastsDuration": "Durată", + "booksDuration": "Durată" }, "homeassistant": { "people_home": "People Home", @@ -766,33 +767,33 @@ }, "whatsupdocker": { "monitoring": "Monitoring", - "updates": "Updates" + "updates": "Actualizări" }, "calibreweb": { "books": "Cărți", - "authors": "Authors", - "categories": "Categories", + "authors": "Autori", + "categories": "Categorii", "series": "Serie" }, "jdownloader": { "downloadCount": "Coadă", "downloadBytesRemaining": "Rămas", - "downloadTotalBytes": "Size", - "downloadSpeed": "Speed" + "downloadTotalBytes": "Mărime", + "downloadSpeed": "Viteză" }, "kavita": { "seriesCount": "Serie", - "totalFiles": "Files" + "totalFiles": "Fișiere" }, "azuredevops": { - "result": "Result", + "result": "Rezultat", "status": "Stare", "buildId": "Build ID", "succeeded": "Succeeded", "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress", + "failed": "Eșuat", + "canceled": "Anulat", + "inProgress": "În Progres", "totalPrs": "Total PRs", "myPrs": "My PRs", "approved": "Aprobate" @@ -801,25 +802,25 @@ "status": "Stare", "online": "Online", "offline": "Offline", - "name": "Name", - "map": "Map", + "name": "Nume", + "map": "Hartă", "currentPlayers": "Current players", - "players": "Players", + "players": "Jucători", "maxPlayers": "Max players", - "bots": "Bots", + "bots": "Boți", "ping": "Ping" }, "urbackup": { "ok": "Ok", - "errored": "Errors", + "errored": "Erori", "noRecent": "Out of Date", "totalUsed": "Used Storage" }, "mealie": { "recipes": "Recipes", "users": "Utilizatori", - "categories": "Categories", - "tags": "Tags" + "categories": "Categorii", + "tags": "Etichete" }, "openmediavault": { "downloading": "Downloading", @@ -827,15 +828,15 @@ "running": "Rulează", "stopped": "Oprit", "passed": "Passed", - "failed": "Failed" + "failed": "Eșuat" }, "openwrt": { "uptime": "Uptime", "cpuLoad": "CPU Load Avg (5m)", "up": "Sus", "down": "Jos", - "bytesTx": "Transmitted", - "bytesRx": "Received" + "bytesTx": "Transmis", + "bytesRx": "Primit" }, "uptimerobot": { "status": "Stare", @@ -844,7 +845,7 @@ "downDuration": "Downtime Duration", "sitesUp": "Sites Up", "sitesDown": "Sites Down", - "paused": "Paused", + "paused": "Pauză", "notyetchecked": "Not Yet Checked", "up": "Sus", "seemsdown": "Seems Down", @@ -852,77 +853,78 @@ "unknown": "Necunoscut" }, "calendar": { - "inCinemas": "In cinemas", + "inCinemas": "În cinematografe", "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { - "platforms": "Platforms", - "totalRoms": "Games", - "saves": "Saves", + "platforms": "Platforme", + "totalRoms": "Jocuri", + "saves": "Salvări", "states": "States", "screenshots": "Screenshots", - "totalfilesize": "Total Size" + "totalfilesize": "Mărime Totală" }, "mailcow": { "domains": "Domenii", - "mailboxes": "Mailboxes", + "mailboxes": "Cutii poştale", "mails": "Mails", "storage": "Storage" }, "netdata": { "warnings": "Warnings", - "criticals": "Criticals" + "criticals": "Critice" }, "plantit": { - "events": "Events", - "plants": "Plants", - "photos": "Photos", - "species": "Species" + "events": "Evenimente", + "plants": "Plante", + "photos": "Fotografii", + "species": "Specii" }, "gitea": { - "notifications": "Notifications", + "notifications": "Notificări", "issues": "Issues", "pulls": "Pull Requests", - "repositories": "Repositories" + "repositories": "Repozitorii" }, "stash": { - "scenes": "Scenes", + "scenes": "Scene", "scenesPlayed": "Scenes Played", "playCount": "Total Plays", "playDuration": "Time Watched", "sceneSize": "Scenes Size", "sceneDuration": "Scenes Duration", - "images": "Images", + "images": "Imagini", "imageSize": "Images Size", - "galleries": "Galleries", + "galleries": "Galerii", "performers": "Performers", "studios": "Studios", "movies": "Filme", - "tags": "Tags", + "tags": "Etichete", "oCount": "O Count" }, "tandoor": { "users": "Utilizatori", "recipes": "Recipes", - "keywords": "Keywords" + "keywords": "Cuvinte cheie" }, "homebox": { "items": "Items", - "totalWithWarranty": "With Warranty", - "locations": "Locations", - "labels": "Labels", + "totalWithWarranty": "Cu Garanție", + "locations": "Locaţii", + "labels": "Etichete", "users": "Utilizatori", "totalValue": "Total Value" }, "crowdsec": { - "alerts": "Alerts", + "alerts": "Alerte", "bans": "Bans" }, "wgeasy": { - "connected": "Connected", + "connected": "Conectat", "enabled": "Activat", "disabled": "Dezactivat", "total": "Total" @@ -930,7 +932,7 @@ "swagdashboard": { "proxied": "Proxied", "auth": "With Auth", - "outdated": "Outdated", + "outdated": "Învechit", "banned": "Banned" }, "myspeed": { @@ -939,37 +941,37 @@ "upload": "Încarcă" }, "stocks": { - "stocks": "Stocks", + "stocks": "Acțiuni", "loading": "Loading", "open": "Open - US Market", "closed": "Closed - US Market", "invalidConfiguration": "Invalid Configuration" }, "frigate": { - "cameras": "Cameras", + "cameras": "Camere", "uptime": "Uptime", - "version": "Version" + "version": "Versiune" }, "linkwarden": { "links": "Links", - "collections": "Collections", - "tags": "Tags" + "collections": "Colecții", + "tags": "Etichete" }, "zabbix": { "unclassified": "Not classified", "information": "Informație", - "warning": "Warning", - "average": "Average", - "high": "High", - "disaster": "Disaster" + "warning": "Atenție", + "average": "Medie", + "high": "Înalt", + "disaster": "Dezastru" }, "lubelogger": { - "vehicle": "Vehicle", - "vehicles": "Vehicles", + "vehicle": "Vehicul", + "vehicles": "Vehicule", "serviceRecords": "Service Records", "reminders": "Reminders", "nextReminder": "Next Reminder", - "none": "None" + "none": "Niciunul" }, "vikunja": { "projects": "Active Projects", @@ -978,69 +980,79 @@ "tasksInProgress": "Tasks In Progress" }, "headscale": { - "name": "Name", - "address": "Address", + "name": "Nume", + "address": "Adresă", "last_seen": "Last Seen", "status": "Stare", "online": "Online", "offline": "Offline" }, "beszel": { - "name": "Name", - "systems": "Systems", + "name": "Nume", + "systems": "Sistem", "up": "Sus", "down": "Jos", - "paused": "Paused", + "paused": "Pauză", "pending": "În așteptare", "status": "Stare", - "updated": "Updated", + "updated": "Actualizat", "cpu": "Procesor", "memory": "MEM", "disk": "Disk", "network": "NET" }, "argocd": { - "apps": "Apps", + "apps": "Aplicaţii", "synced": "Synced", "outOfSync": "Out Of Sync", "healthy": "Sănătos", "degraded": "Degraded", "progressing": "Progressing", - "missing": "Missing", - "suspended": "Suspended" + "missing": "Lipsește", + "suspended": "Suspendat" }, "spoolman": { "loading": "Loading" }, "gitlab": { - "groups": "Groups", + "groups": "Grupuri", "issues": "Issues", "merges": "Merge Requests", - "projects": "Projects" + "projects": "Proiecte" }, "apcups": { "status": "Stare", "load": "Sarcină", - "bcharge": "Battery Charge", + "bcharge": "Încărcare Baterie", "timeleft": "Timp rămas" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", + "bookmarks": "Marcaje", + "favorites": "Favorite", + "archived": "Arhivat", "highlights": "Highlights", - "lists": "Lists", - "tags": "Tags" + "lists": "Liste", + "tags": "Etichete" }, "slskd": { - "slskStatus": "Network", - "connected": "Connected", - "disconnected": "Disconnected", + "slskStatus": "Rețea", + "connected": "Conectat", + "disconnected": "Deconectat", "updateStatus": "Update", "update_yes": "Disponibile", - "update_no": "Up to Date", + "update_no": "Actualizat", "downloads": "Downloads", "uploads": "Uploads", - "sharedFiles": "Files" + "sharedFiles": "Fișiere" + }, + "jellystat": { + "songs": "Melodii", + "movies": "Filme", + "episodes": "Episoade", + "other": "Altele" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index d6cabab4a..659030189 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Публичный IP-адрес", "region": "Регион", - "country": "Страна" + "country": "Страна", + "port_forwarded": "Порт переадресован" }, "hdhomerun": { "channels": "Каналы", @@ -856,7 +857,8 @@ "physicalRelease": "Физический релиз", "digitalRelease": "Цифровой релиз", "noEventsToday": "Нет событий на сегодня!", - "noEventsFound": "Событий не найдено" + "noEventsFound": "Событий не найдено", + "errorWhenLoadingData": "Ошибка при загрузке данных календаря" }, "romm": { "platforms": "Платформы", @@ -1042,5 +1044,15 @@ "downloads": "Скачивания", "uploads": "Загрузки", "sharedFiles": "Файлов" + }, + "jellystat": { + "songs": "Песни", + "movies": "Фильмы", + "episodes": "Эпизоды", + "other": "Другой" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index a267ad81d..c7ea748c9 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Verejná IP", "region": "Región", - "country": "Krajina" + "country": "Krajina", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanály", @@ -856,7 +857,8 @@ "physicalRelease": "Fyzické vydanie", "digitalRelease": "Digitálne vydanie", "noEventsToday": "Žiadne udalosti na dnešný deň!", - "noEventsFound": "Žiadne udalosti" + "noEventsFound": "Žiadne udalosti", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platformy", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Súborov" + }, + "jellystat": { + "songs": "Skladby", + "movies": "Filmy", + "episodes": "Epizódy", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index ba6f07b9c..a1af5e88a 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Javni IP", "region": "Regija", - "country": "Država" + "country": "Država", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanali", @@ -856,7 +857,8 @@ "physicalRelease": "Fizična izdaja", "digitalRelease": "Digitalna izdaja", "noEventsToday": "Za danes ni dogodkov!", - "noEventsFound": "Ni dogodkov" + "noEventsFound": "Ni dogodkov", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforme", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Datotek" + }, + "jellystat": { + "songs": "Pesmi", + "movies": "Filmi", + "episodes": "Epizode", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index 5314dc2b5..8cf6938ed 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -14,1033 +14,1045 @@ "date": "{{value, date}}", "relativeDate": "{{value, relativeDate}}", "duration": "{{value, duration}}", - "months": "mo", - "days": "d", - "hours": "h", - "minutes": "m", - "seconds": "s" + "months": "мес", + "days": "д", + "hours": "ч", + "minutes": "м", + "seconds": "с" }, "widget": { - "missing_type": "Missing Widget Type: {{type}}", - "api_error": "API Error", - "information": "Information", - "status": "Status", - "url": "URL", - "raw_error": "Raw Error", - "response_data": "Response Data" + "missing_type": "Недостаје тип виџета: {{type}}", + "api_error": "API Грешка", + "information": "Информација", + "status": "Стање", + "url": "УРЛ адреса", + "raw_error": "Оригинална грешка", + "response_data": "Подаци о одговору" }, "weather": { - "current": "Current Location", - "allow": "Click to allow", - "updating": "Updating", - "wait": "Please wait" + "current": "Тренутна локација", + "allow": "Кликни да дозволиш", + "updating": "Ажурирање", + "wait": "Молим сачекајте" }, "search": { - "placeholder": "Search…" + "placeholder": "Претражи…" }, "resources": { - "cpu": "CPU", - "mem": "MEM", - "total": "Total", - "free": "Free", - "used": "Used", - "load": "Load", - "temp": "TEMP", - "max": "Max", - "uptime": "UP" + "cpu": "Процесор", + "mem": "Меморија", + "total": "Укупно", + "free": "Слободно", + "used": "У употреби", + "load": "Учитавање", + "temp": "Температура", + "max": "Макс", + "uptime": "Активно" }, "unifi": { - "users": "Users", - "uptime": "Uptime", - "days": "Days", + "users": "Корисника", + "uptime": "Време рада", + "days": "Дана", "wan": "WAN", "lan": "LAN", "wlan": "WLAN", - "devices": "Devices", - "lan_devices": "LAN Devices", - "wlan_devices": "WLAN Devices", - "lan_users": "LAN Users", - "wlan_users": "WLAN Users", - "up": "UP", - "down": "DOWN", - "wait": "Please wait", - "empty_data": "Subsystem status unknown" + "devices": "Уређаји", + "lan_devices": "LAN уређаји", + "wlan_devices": "WLAN уређаји", + "lan_users": "LAN корисници", + "wlan_users": "WLAN корисници", + "up": "Активно", + "down": "Прекид", + "wait": "Молим сачекајте", + "empty_data": "Статус подсистема непознат" }, "docker": { "rx": "RX", "tx": "TX", - "mem": "MEM", - "cpu": "CPU", - "running": "Running", - "offline": "Offline", - "error": "Error", - "unknown": "Unknown", - "healthy": "Healthy", - "starting": "Starting", - "unhealthy": "Unhealthy", - "not_found": "Not Found", - "exited": "Exited", - "partial": "Partial" + "mem": "Меморија", + "cpu": "Процесор", + "running": "Покренуто", + "offline": "Није на мрежи", + "error": "Грешка", + "unknown": "Непознато", + "healthy": "Здравих", + "starting": "Покретање", + "unhealthy": "Нездравих", + "not_found": "Није пронађено", + "exited": "Напуштених", + "partial": "Делимично" }, "ping": { - "error": "Error", - "ping": "Ping", - "down": "Down", - "up": "Up", - "not_available": "Not Available" + "error": "Грешка", + "ping": "Пинг", + "down": "Доле", + "up": "Горе", + "not_available": "Није доступно" }, "siteMonitor": { - "http_status": "HTTP status", - "error": "Error", - "response": "Response", - "down": "Down", - "up": "Up", - "not_available": "Not Available" + "http_status": "HTTP Статус", + "error": "Грешка", + "response": "Одговор", + "down": "Доле", + "up": "Горе", + "not_available": "Није доступно" }, "emby": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", - "movies": "Movies", - "series": "Series", - "episodes": "Episodes", - "songs": "Songs" + "playing": "Репродукција", + "transcoding": "Транскодирање", + "bitrate": "Проток", + "no_active": "Нема активних стримова", + "movies": "Филмови", + "series": "Серије", + "episodes": "Епизоде", + "songs": "Песме" }, "esphome": { - "offline": "Offline", - "offline_alt": "Offline", - "online": "Online", - "total": "Total", - "unknown": "Unknown" + "offline": "Није на мрежи", + "offline_alt": "Није на мрежи", + "online": "На мрежи", + "total": "Укупно", + "unknown": "Непознато" }, "evcc": { - "pv_power": "Production", - "battery_soc": "Battery", - "grid_power": "Grid", - "home_power": "Consumption", - "charge_power": "Charger", + "pv_power": "Продукција", + "battery_soc": "Батерија", + "grid_power": "Mreža", + "home_power": "Потрошња", + "charge_power": "Пуњач", "kilowatt": "kW" }, "flood": { - "download": "Download", - "upload": "Upload", + "download": "Преузимање", + "upload": "Слање", "leech": "Leech", "seed": "Seed" }, "freshrss": { - "subscriptions": "Subscriptions", - "unread": "Unread" + "subscriptions": "Претплате", + "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", - "externalIPv6Address": "Ext. IPv6", - "externalIPv6Prefix": "Ext. IPv6-Prefix" + "connectionStatus": "Стање", + "connectionStatusUnconfigured": "Неподешено", + "connectionStatusConnecting": "Повезивање", + "connectionStatusAuthenticating": "Аутентификација", + "connectionStatusPendingDisconnect": "Чекање на прекид везе", + "connectionStatusDisconnecting": "Прекидање", + "connectionStatusDisconnected": "Прекинуто", + "connectionStatusConnected": "Повезано", + "uptime": "Време рада", + "maxDown": "Макс. Преузимање", + "maxUp": "Макс. Слање", + "down": "Доле", + "up": "Горе", + "received": "Примљено", + "sent": "Послато", + "externalIPAddress": "Екст. IP", + "externalIPv6Address": "Екст. IPv6", + "externalIPv6Prefix": "Екст. IPv6-Префикс" }, "caddy": { - "upstreams": "Upstreams", - "requests": "Current requests", - "requests_failed": "Failed requests" + "upstreams": "Узводно", + "requests": "Тренутни захтеви", + "requests_failed": "Неуспешни захтеви" }, "changedetectionio": { - "totalObserved": "Total Observed", - "diffsDetected": "Diffs Detected" + "totalObserved": "Укупно посматрано", + "diffsDetected": "Откривене разлике" }, "channelsdvrserver": { - "shows": "Shows", - "recordings": "Recordings", - "scheduled": "Scheduled", - "passes": "Passes" + "shows": "Емисије", + "recordings": "Сачувано", + "scheduled": "Заказано", + "passes": "Пређено" }, "tautulli": { - "playing": "Playing", - "transcoding": "Transcoding", - "bitrate": "Bitrate", - "no_active": "No Active Streams", - "plex_connection_error": "Check Plex Connection" + "playing": "Репродукција", + "transcoding": "Транскодирање", + "bitrate": "Проток", + "no_active": "Нема активних стримова", + "plex_connection_error": "Провери везу са Plex-ом" }, "omada": { - "connectedAp": "Connected APs", - "activeUser": "Active devices", - "alerts": "Alerts", - "connectedGateways": "Connected gateways", - "connectedSwitches": "Connected switches" + "connectedAp": "Повезани АПи", + "activeUser": "Активни уређаји", + "alerts": "Упозорења", + "connectedGateways": "Повезани мрежни пролази", + "connectedSwitches": "Повезани мрежни прекидачи" }, "nzbget": { - "rate": "Rate", - "remaining": "Remaining", - "downloaded": "Downloaded" + "rate": "Стопа", + "remaining": "Преостало", + "downloaded": "Преузето" }, "plex": { - "streams": "Active Streams", - "albums": "Albums", - "movies": "Movies", - "tv": "TV Shows" + "streams": "Активно", + "albums": "Албуми", + "movies": "Филмови", + "tv": "ТВ емисије" }, "sabnzbd": { - "rate": "Rate", - "queue": "Queue", - "timeleft": "Time Left" + "rate": "Стопа", + "queue": "Ред", + "timeleft": "Преостало време" }, "rutorrent": { - "active": "Active", - "upload": "Upload", - "download": "Download" + "active": "Активно", + "upload": "Слање", + "download": "Преузимање" }, "transmission": { - "download": "Download", - "upload": "Upload", + "download": "Преузимање", + "upload": "Слање", "leech": "Leech", "seed": "Seed" }, "qbittorrent": { - "download": "Download", - "upload": "Upload", + "download": "Преузимање", + "upload": "Слање", "leech": "Leech", "seed": "Seed" }, "qnap": { - "cpuUsage": "CPU Usage", - "memUsage": "MEM Usage", - "systemTempC": "System Temp", - "poolUsage": "Pool Usage", - "volumeUsage": "Volume Usage", - "invalid": "Invalid" + "cpuUsage": "Искоришћеност процесора", + "memUsage": "Заузеће меморије", + "systemTempC": "Температура система", + "poolUsage": "Заузеће Пула", + "volumeUsage": "Употребљена запремина", + "invalid": "Неважеће" }, "deluge": { - "download": "Download", - "upload": "Upload", + "download": "Преузимање", + "upload": "Слање", "leech": "Leech", "seed": "Seed" }, "develancacheui": { - "cachehitbytes": "Cache Hit Bytes", - "cachemissbytes": "Cache Miss Bytes" + "cachehitbytes": "Бајтови погодака кеша", + "cachemissbytes": "Бајтови промашаја кеша" }, "downloadstation": { - "download": "Download", - "upload": "Upload", + "download": "Преузимање", + "upload": "Слање", "leech": "Leech", "seed": "Seed" }, "sonarr": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series", - "queue": "Queue", - "unknown": "Unknown" + "wanted": "Тражено", + "queued": "На чекању", + "series": "Серије", + "queue": "Ред", + "unknown": "Непознато" }, "radarr": { - "wanted": "Wanted", - "missing": "Missing", - "queued": "Queued", - "movies": "Movies", - "queue": "Queue", - "unknown": "Unknown" + "wanted": "Тражено", + "missing": "Недостаје", + "queued": "На чекању", + "movies": "Филмови", + "queue": "Ред", + "unknown": "Непознато" }, "lidarr": { - "wanted": "Wanted", - "queued": "Queued", - "artists": "Artists" + "wanted": "Тражено", + "queued": "На чекању", + "artists": "Извођачи" }, "readarr": { - "wanted": "Wanted", - "queued": "Queued", - "books": "Books" + "wanted": "Тражено", + "queued": "На чекању", + "books": "Књиге" }, "bazarr": { - "missingEpisodes": "Missing Episodes", - "missingMovies": "Missing Movies" + "missingEpisodes": "Недостајеће епизоде", + "missingMovies": "Недостајећи филмови" }, "ombi": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "На чекању", + "approved": "Одобрено", + "available": "Доступно" }, "jellyseerr": { - "pending": "Pending", - "approved": "Approved", - "available": "Available" + "pending": "На чекању", + "approved": "Одобрено", + "available": "Доступно" }, "overseerr": { - "pending": "Pending", - "processing": "Processing", - "approved": "Approved", - "available": "Available" + "pending": "На чекању", + "processing": "Обрада", + "approved": "Одобрено", + "available": "Доступно" }, "netalertx": { - "total": "Total", - "connected": "Connected", - "new_devices": "New Devices", - "down_alerts": "Down Alerts" + "total": "Укупно", + "connected": "Повезано", + "new_devices": "Нови уређаји", + "down_alerts": "Упозорења о паду" }, "pihole": { - "queries": "Queries", - "blocked": "Blocked", - "blocked_percent": "Blocked %", + "queries": "Упити", + "blocked": "Блокирано", + "blocked_percent": "Блокирано %", "gravity": "Gravity" }, "adguard": { - "queries": "Queries", - "blocked": "Blocked", - "filtered": "Filtered", - "latency": "Latency" + "queries": "Упити", + "blocked": "Блокирано", + "filtered": "Филтрирано", + "latency": "Кашњење" }, "speedtest": { - "upload": "Upload", - "download": "Download", - "ping": "Ping" + "upload": "Слање", + "download": "Преузимање", + "ping": "Пинг" }, "portainer": { - "running": "Running", - "stopped": "Stopped", - "total": "Total" + "running": "Покренуто", + "stopped": "Заустављено", + "total": "Укупно" }, "suwayomi": { - "download": "Downloaded", - "nondownload": "Non-Downloaded", - "read": "Read", - "unread": "Unread", - "downloadedread": "Downloaded & Read", - "downloadedunread": "Downloaded & Unread", - "nondownloadedread": "Non-Downloaded & Read", - "nondownloadedunread": "Non-Downloaded & Unread" + "download": "Преузето", + "nondownload": "Непреузето", + "read": "Прочитано", + "unread": "Непрочитано", + "downloadedread": "Преузето и прочитано", + "downloadedunread": "Преузето и непрочитано", + "nondownloadedread": "Непреузето и прочитано", + "nondownloadedunread": "Непреузето и непрочитано" }, "tailscale": { - "address": "Address", - "expires": "Expires", - "never": "Never", - "last_seen": "Last Seen", - "now": "Now", - "years": "{{number}}y", - "weeks": "{{number}}w", - "days": "{{number}}d", - "hours": "{{number}}h", - "minutes": "{{number}}m", - "seconds": "{{number}}s", - "ago": "{{value}} Ago" + "address": "Адреса", + "expires": "Истиче", + "never": "Никада", + "last_seen": "Последње виђен", + "now": "Сада", + "years": "{{number}}г", + "weeks": "{{number}}н", + "days": "{{number}}д", + "hours": "{{number}}ч", + "minutes": "{{number}}м", + "seconds": "{{number}}с", + "ago": "Пре {{value}}" }, "technitium": { - "totalQueries": "Queries", - "totalNoError": "Success", - "totalServerFailure": "Failures", - "totalNxDomain": "NX Domains", - "totalRefused": "Refused", - "totalAuthoritative": "Authoritative", - "totalRecursive": "Recursive", - "totalCached": "Cached", - "totalBlocked": "Blocked", - "totalDropped": "Dropped", - "totalClients": "Clients" + "totalQueries": "Упити", + "totalNoError": "Успешно", + "totalServerFailure": "Неуспешно", + "totalNxDomain": "NX домени", + "totalRefused": "Одбијено", + "totalAuthoritative": "Ауторитативно", + "totalRecursive": "Рекурзивно", + "totalCached": "Кеширано", + "totalBlocked": "Блокирано", + "totalDropped": "Испуштено", + "totalClients": "Клијенти" }, "tdarr": { - "queue": "Queue", - "processed": "Processed", - "errored": "Errored", - "saved": "Saved" + "queue": "Ред", + "processed": "Обрада", + "errored": "Грешке", + "saved": "Сачувано" }, "traefik": { - "routers": "Routers", - "services": "Services", - "middleware": "Middleware" + "routers": "Рутери", + "services": "Сервиси", + "middleware": "Мидлвер" }, "navidrome": { - "nothing_streaming": "No Active Streams", - "please_wait": "Please Wait" + "nothing_streaming": "Нема активних стримова", + "please_wait": "Молим сачекајте" }, "npm": { - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" + "enabled": "Омогућено", + "disabled": "Онемогућено", + "total": "Укупно" }, "coinmarketcap": { - "configure": "Configure one or more crypto currencies to track", - "1hour": "1 Hour", - "1day": "1 Day", - "7days": "7 Days", - "30days": "30 Days" + "configure": "Конфигуришите једну или више криптовалута за праћење", + "1hour": "1 сат", + "1day": "1 дан", + "7days": "7 дана", + "30days": "30 дана" }, "gotify": { - "apps": "Applications", - "clients": "Clients", - "messages": "Messages" + "apps": "Апликација", + "clients": "Клијенти", + "messages": "Поруке" }, "prowlarr": { - "enableIndexers": "Indexers", - "numberOfGrabs": "Grabs", - "numberOfQueries": "Queries", - "numberOfFailGrabs": "Fail Grabs", - "numberOfFailQueries": "Fail Queries" + "enableIndexers": "Индексери", + "numberOfGrabs": "Број грабова", + "numberOfQueries": "Упити", + "numberOfFailGrabs": "Неуспешни грабови", + "numberOfFailQueries": "Неуспешни упити" }, "jackett": { - "configured": "Configured", - "errored": "Errored" + "configured": "Подешено", + "errored": "Грешке" }, "strelaysrv": { - "numActiveSessions": "Sessions", - "numConnections": "Connections", - "dataRelayed": "Relayed", - "transferRate": "Rate" + "numActiveSessions": "Сесије", + "numConnections": "Повезивање", + "dataRelayed": "Пренето", + "transferRate": "Стопа" }, "mastodon": { - "user_count": "Users", - "status_count": "Posts", - "domain_count": "Domains" + "user_count": "Корисника", + "status_count": "Објаве", + "domain_count": "Домени" }, "medusa": { - "wanted": "Wanted", - "queued": "Queued", - "series": "Series" + "wanted": "Тражено", + "queued": "На чекању", + "series": "Серије" }, "minecraft": { - "players": "Players", - "version": "Version", - "status": "Status", - "up": "Online", - "down": "Offline" + "players": "Играчи", + "version": "Верзија", + "status": "Стање", + "up": "На мрежи", + "down": "Није на мрежи" }, "miniflux": { - "read": "Read", - "unread": "Unread" + "read": "Прочитано", + "unread": "Непрочитано" }, "authentik": { - "users": "Users", - "loginsLast24H": "Logins (24h)", - "failedLoginsLast24H": "Failed Logins (24h)" + "users": "Корисника", + "loginsLast24H": "Пријаве (24ч)", + "failedLoginsLast24H": "Неуспешне пријаве (24ч)" }, "proxmox": { - "mem": "MEM", - "cpu": "CPU", + "mem": "Меморија", + "cpu": "Процесор", "lxc": "LXC", "vms": "VMs" }, "glances": { - "cpu": "CPU", - "load": "Load", - "wait": "Please wait", - "temp": "TEMP", - "_temp": "Temp", - "warn": "Warn", - "uptime": "UP", - "total": "Total", - "free": "Free", - "used": "Used", - "days": "d", - "hours": "h", - "crit": "Crit", - "read": "Read", - "write": "Write", - "gpu": "GPU", - "mem": "Mem", + "cpu": "Процесор", + "load": "Учитавање", + "wait": "Молим сачекајте", + "temp": "Температура", + "_temp": "Темп.", + "warn": "Упоз.", + "uptime": "Активно", + "total": "Укупно", + "free": "Слободно", + "used": "У употреби", + "days": "д", + "hours": "ч", + "crit": "Крит.", + "read": "Прочитано", + "write": "Уписа", + "gpu": "Граф.", + "mem": "Мем.", "swap": "Swap" }, "quicklaunch": { - "bookmark": "Bookmark", - "service": "Service", - "search": "Search", - "custom": "Custom", - "visit": "Visit", - "url": "URL", - "searchsuggestion": "Suggestion" + "bookmark": "Обележивачи", + "service": "Услуга", + "search": "Претрага", + "custom": "Прилагођено", + "visit": "Посети", + "url": "УРЛ адреса", + "searchsuggestion": "Предлози" }, "wmo": { - "0-day": "Sunny", - "0-night": "Clear", - "1-day": "Mainly Sunny", - "1-night": "Mainly Clear", - "2-day": "Partly Cloudy", - "2-night": "Partly Cloudy", - "3-day": "Cloudy", - "3-night": "Cloudy", - "45-day": "Foggy", - "45-night": "Foggy", - "48-day": "Foggy", - "48-night": "Foggy", - "51-day": "Light Drizzle", - "51-night": "Light Drizzle", - "53-day": "Drizzle", - "53-night": "Drizzle", - "55-day": "Heavy Drizzle", - "55-night": "Heavy Drizzle", - "56-day": "Light Freezing Drizzle", - "56-night": "Light Freezing Drizzle", - "57-day": "Freezing Drizzle", - "57-night": "Freezing Drizzle", - "61-day": "Light Rain", - "61-night": "Light Rain", - "63-day": "Rain", - "63-night": "Rain", - "65-day": "Heavy Rain", - "65-night": "Heavy Rain", - "66-day": "Freezing Rain", - "66-night": "Freezing Rain", - "67-day": "Freezing Rain", - "67-night": "Freezing Rain", - "71-day": "Light Snow", - "71-night": "Light Snow", - "73-day": "Snow", - "73-night": "Snow", - "75-day": "Heavy Snow", - "75-night": "Heavy Snow", - "77-day": "Snow Grains", - "77-night": "Snow Grains", - "80-day": "Light Showers", - "80-night": "Light Showers", - "81-day": "Showers", - "81-night": "Showers", - "82-day": "Heavy Showers", - "82-night": "Heavy Showers", - "85-day": "Snow Showers", - "85-night": "Snow Showers", - "86-day": "Snow Showers", - "86-night": "Snow Showers", - "95-day": "Thunderstorm", - "95-night": "Thunderstorm", - "96-day": "Thunderstorm With Hail", - "96-night": "Thunderstorm With Hail", - "99-day": "Thunderstorm With Hail", - "99-night": "Thunderstorm With Hail" + "0-day": "Сунчано", + "0-night": "Ведро", + "1-day": "Прережно сунчано", + "1-night": "Претежно ведро", + "2-day": "Делимично облачно", + "2-night": "Делимично облачно", + "3-day": "Облачно", + "3-night": "Облачно", + "45-day": "Магловито", + "45-night": "Магловито", + "48-day": "Магловито", + "48-night": "Магловито", + "51-day": "Слаба киша", + "51-night": "Слаба киша", + "53-day": "Слаба киша", + "53-night": "Слаба киша", + "55-day": "Јака киша", + "55-night": "Јака киша", + "56-day": "Слаба ледена киша", + "56-night": "Слаба ледена киша", + "57-day": "Ледена киша", + "57-night": "Ледена киша", + "61-day": "Слаба киша", + "61-night": "Слаба киша", + "63-day": "Киша", + "63-night": "Киша", + "65-day": "Јака киша", + "65-night": "Јака киша", + "66-day": "Ледена киша", + "66-night": "Ледена киша", + "67-day": "Ледена киша", + "67-night": "Ледена киша", + "71-day": "Слаб снег", + "71-night": "Слаб снег", + "73-day": "Снег", + "73-night": "Снег", + "75-day": "Јак снег", + "75-night": "Јак снег", + "77-day": "Снежна зрна", + "77-night": "Снежна зрна", + "80-day": "Слаби пљускови", + "80-night": "Слаби пљускови", + "81-day": "Пљускови", + "81-night": "Пљускови", + "82-day": "Јаки пљускови", + "82-night": "Јаки пљускови", + "85-day": "Снежне падавине", + "85-night": "Снежне падавине", + "86-day": "Снежне падавине", + "86-night": "Снежне падавине", + "95-day": "Грмљавина", + "95-night": "Грмљавина", + "96-day": "Грмљавина са градом", + "96-night": "Грмљавина са градом", + "99-day": "Грмљавина са градом", + "99-night": "Грмљавина са градом" }, "homebridge": { - "available_update": "System", - "updates": "Updates", - "update_available": "Update Available", - "up_to_date": "Up to Date", - "child_bridges": "Child Bridges", + "available_update": "Систем", + "updates": "Ажурирања", + "update_available": "Доступно ажурирање", + "up_to_date": "Ажурирано", + "child_bridges": "Мостови потомака", "child_bridges_status": "{{ok}}/{{total}}", - "up": "Up", - "pending": "Pending", - "down": "Down" + "up": "Горе", + "pending": "На чекању", + "down": "Доле" }, "healthchecks": { - "new": "New", - "up": "Up", - "grace": "In Grace Period", - "down": "Down", - "paused": "Paused", - "status": "Status", - "last_ping": "Last Ping", - "never": "No pings yet" + "new": "Сада", + "up": "Горе", + "grace": "У грејс периоду", + "down": "Доле", + "paused": "Паузирано", + "status": "Стање", + "last_ping": "Последњи пинг", + "never": "Још без пинга" }, "watchtower": { - "containers_scanned": "Scanned", - "containers_updated": "Updated", - "containers_failed": "Failed" + "containers_scanned": "Скенирано", + "containers_updated": "Ажурирано", + "containers_failed": "Неуспешно" }, "autobrr": { - "approvedPushes": "Approved", - "rejectedPushes": "Rejected", - "filters": "Filters", - "indexers": "Indexers" + "approvedPushes": "Одобрено", + "rejectedPushes": "Одбијено", + "filters": "Филтери", + "indexers": "Индексери" }, "tubearchivist": { - "downloads": "Queue", - "videos": "Videos", - "channels": "Channels", - "playlists": "Playlists" + "downloads": "Ред", + "videos": "Видеи", + "channels": "Канали", + "playlists": "Плејлисте" }, "truenas": { - "load": "System Load", - "uptime": "Uptime", - "alerts": "Alerts" + "load": "Заузеће система", + "uptime": "Време рада", + "alerts": "Упозорења" }, "pyload": { - "speed": "Speed", - "active": "Active", - "queue": "Queue", - "total": "Total" + "speed": "Брзина", + "active": "Активно", + "queue": "Ред", + "total": "Укупно" }, "gluetun": { - "public_ip": "Public IP", - "region": "Region", - "country": "Country" + "public_ip": "Јавна ИП адреса", + "region": "Регион", + "country": "Држава", + "port_forwarded": "Порт прослеђен" }, "hdhomerun": { - "channels": "Channels", + "channels": "Канали", "hd": "HD", - "tunerCount": "Tuners", - "channelNumber": "Channel", - "channelNetwork": "Network", - "signalStrength": "Strength", - "signalQuality": "Quality", - "symbolQuality": "Quality", - "networkRate": "Bitrate", - "clientIP": "Client" + "tunerCount": "Тјунери", + "channelNumber": "Канал", + "channelNetwork": "Мрежа", + "signalStrength": "Јачина", + "signalQuality": "Количина", + "symbolQuality": "Количина", + "networkRate": "Проток", + "clientIP": "Клијент" }, "scrutiny": { - "passed": "Passed", - "failed": "Failed", - "unknown": "Unknown" + "passed": "Пређено", + "failed": "Неуспешно", + "unknown": "Непознато" }, "paperlessngx": { - "inbox": "Inbox", - "total": "Total" + "inbox": "Примљено", + "total": "Укупно" }, "peanut": { - "battery_charge": "Battery Charge", - "ups_load": "UPS Load", - "ups_status": "UPS Status", - "online": "Online", - "on_battery": "On Battery", - "low_battery": "Low Battery" + "battery_charge": "Напуњеност батерије", + "ups_load": "Оптерећење УПС-а", + "ups_status": "Статус УПС-а", + "online": "На мрежи", + "on_battery": "На батерији", + "low_battery": "Низак ниво батерије" }, "nextdns": { - "wait": "Please Wait", - "no_devices": "No Device Data Received" + "wait": "Молим сачекајте", + "no_devices": "Нису примљени подаци са уређаја" }, "mikrotik": { - "cpuLoad": "CPU Load", - "memoryUsed": "Memory Used", - "uptime": "Uptime", - "numberOfLeases": "Leases" + "cpuLoad": "Заузеће процесора", + "memoryUsed": "Заузеће меморије", + "uptime": "Време рада", + "numberOfLeases": "Закупи" }, "xteve": { - "streams_all": "All Streams", - "streams_active": "Active Streams", - "streams_xepg": "XEPG Channels" + "streams_all": "Сви стримови", + "streams_active": "Активно", + "streams_xepg": "XEPG канали" }, "opendtu": { - "yieldDay": "Today", - "absolutePower": "Power", - "relativePower": "Power %", - "limit": "Limit" + "yieldDay": "Данас", + "absolutePower": "Енергија", + "relativePower": "% Енергије", + "limit": "Лимитер" }, "opnsense": { - "cpu": "CPU Load", - "memory": "Active Memory", - "wanUpload": "WAN Upload", - "wanDownload": "WAN Download" + "cpu": "Заузеће процесора", + "memory": "Активна меморија", + "wanUpload": "WAN слање", + "wanDownload": "WAN примање" }, "moonraker": { - "printer_state": "Printer State", - "print_status": "Print Status", - "print_progress": "Progress", - "layers": "Layers" + "printer_state": "Стање штампача", + "print_status": "Статус штампања", + "print_progress": "Напредак", + "layers": "Слојеви" }, "octoprint": { - "printer_state": "Status", - "temp_tool": "Tool temp", - "temp_bed": "Bed temp", - "job_completion": "Completion" + "printer_state": "Стање", + "temp_tool": "Температура алата", + "temp_bed": "Температура постоља", + "job_completion": "Завршетак" }, "cloudflared": { - "origin_ip": "Origin IP", - "status": "Status" + "origin_ip": "Порекло IP адресе", + "status": "Стање" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", + "load": "Просечно оптерећење", + "memory": "Заузеће меморије", + "wanStatus": "WAN статус", + "up": "Горе", + "down": "Доле", + "temp": "Темп.", + "disk": "Коришћење диска", "wanIP": "WAN IP" }, "proxmoxbackupserver": { - "datastore_usage": "Datastore", - "failed_tasks_24h": "Failed Tasks 24h", - "cpu_usage": "CPU", - "memory_usage": "Memory" + "datastore_usage": "Складиште података", + "failed_tasks_24h": "Неуспешни задаци 24ч", + "cpu_usage": "Процесор", + "memory_usage": "Меморија" }, "immich": { - "users": "Users", - "photos": "Photos", - "videos": "Videos", - "storage": "Storage" + "users": "Корисника", + "photos": "Фотографије", + "videos": "Видеи", + "storage": "Складиште" }, "uptimekuma": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime", - "incident": "Incident", - "m": "m" + "up": "Локација активно", + "down": "Локација неактивно", + "uptime": "Време рада", + "incident": "Инцидент", + "m": "м" }, "atsumeru": { - "series": "Series", - "archives": "Archives", - "chapters": "Chapters", - "categories": "Categories" + "series": "Серије", + "archives": "Архиве", + "chapters": "Поглавља", + "categories": "Категорије" }, "komga": { - "libraries": "Libraries", - "series": "Series", - "books": "Books" + "libraries": "Библиотеке", + "series": "Серије", + "books": "Књиге" }, "diskstation": { - "days": "Days", - "uptime": "Uptime", - "volumeAvailable": "Available" + "days": "Дана", + "uptime": "Време рада", + "volumeAvailable": "Доступно" }, "mylar": { - "series": "Series", - "issues": "Issues", - "wanted": "Wanted" + "series": "Серије", + "issues": "Издања", + "wanted": "Тражено" }, "photoprism": { - "albums": "Albums", - "photos": "Photos", - "videos": "Videos", - "people": "People" + "albums": "Албуми", + "photos": "Фотографије", + "videos": "Видеи", + "people": "Особе" }, "fileflows": { - "queue": "Queue", - "processing": "Processing", - "processed": "Processed", - "time": "Time" + "queue": "Ред", + "processing": "Обрада", + "processed": "Обрада", + "time": "Време" }, "firefly": { - "networth": "Net Worth", - "budget": "Budget" + "networth": "Нето вредност", + "budget": "Буџет" }, "grafana": { - "dashboards": "Dashboards", - "datasources": "Data Sources", - "totalalerts": "Total Alerts", - "alertstriggered": "Alerts Triggered" + "dashboards": "Командна табла", + "datasources": "Извори података", + "totalalerts": "Укупно обавешења", + "alertstriggered": "Покренута упозорења" }, "nextcloud": { - "cpuload": "Cpu Load", - "memoryusage": "Memory Usage", - "freespace": "Free Space", - "activeusers": "Active Users", - "numfiles": "Files", - "numshares": "Shared Items" + "cpuload": "Заузеће процесора", + "memoryusage": "Заузеће меморије", + "freespace": "Слободан простор", + "activeusers": "Активни корисници", + "numfiles": "Датотеке", + "numshares": "Ставке подељене" }, "kopia": { - "status": "Status", - "size": "Size", - "lastrun": "Last Run", - "nextrun": "Next Run", - "failed": "Failed" + "status": "Стање", + "size": "Величина", + "lastrun": "Последње покретање", + "nextrun": "Счедеће покретање", + "failed": "Неуспешно" }, "unmanic": { - "active_workers": "Active Workers", - "total_workers": "Total Workers", - "records_total": "Queue Length" + "active_workers": "Активни радници", + "total_workers": "Укупно радника", + "records_total": "Дужина реда" }, "pterodactyl": { - "servers": "Servers", - "nodes": "Nodes" + "servers": "Сервери", + "nodes": "Чворови" }, "prometheus": { - "targets_up": "Targets Up", - "targets_down": "Targets Down", - "targets_total": "Total Targets" + "targets_up": "Циљева активно", + "targets_down": "Циљева неактивно", + "targets_total": "Укупно циљева" }, "gatus": { - "up": "Sites Up", - "down": "Sites Down", - "uptime": "Uptime" + "up": "Локација активно", + "down": "Локација неактивно", + "uptime": "Време рада" }, "ghostfolio": { - "gross_percent_today": "Today", - "gross_percent_1y": "One year", - "gross_percent_max": "All time" + "gross_percent_today": "Данас", + "gross_percent_1y": "Једна година", + "gross_percent_max": "Све време" }, "audiobookshelf": { - "podcasts": "Podcasts", - "books": "Books", - "podcastsDuration": "Duration", - "booksDuration": "Duration" + "podcasts": "Подкасти", + "books": "Књиге", + "podcastsDuration": "Трајање", + "booksDuration": "Трајање" }, "homeassistant": { - "people_home": "People Home", - "lights_on": "Lights On", - "switches_on": "Switches On" + "people_home": "Дом људи", + "lights_on": "Укључена светла", + "switches_on": "Укључени прекидачи" }, "whatsupdocker": { - "monitoring": "Monitoring", - "updates": "Updates" + "monitoring": "Надгледање", + "updates": "Ажурирања" }, "calibreweb": { - "books": "Books", - "authors": "Authors", - "categories": "Categories", - "series": "Series" + "books": "Књиге", + "authors": "Аутори", + "categories": "Категорије", + "series": "Серије" }, "jdownloader": { - "downloadCount": "Queue", - "downloadBytesRemaining": "Remaining", - "downloadTotalBytes": "Size", - "downloadSpeed": "Speed" + "downloadCount": "Ред", + "downloadBytesRemaining": "Преостало", + "downloadTotalBytes": "Величина", + "downloadSpeed": "Брзина" }, "kavita": { - "seriesCount": "Series", - "totalFiles": "Files" + "seriesCount": "Серије", + "totalFiles": "Датотеке" }, "azuredevops": { - "result": "Result", - "status": "Status", - "buildId": "Build ID", - "succeeded": "Succeeded", - "notStarted": "Not Started", - "failed": "Failed", - "canceled": "Canceled", - "inProgress": "In Progress", - "totalPrs": "Total PRs", - "myPrs": "My PRs", - "approved": "Approved" + "result": "Резултат", + "status": "Стање", + "buildId": "ИД верзије", + "succeeded": "Успело", + "notStarted": "Није започето", + "failed": "Неуспешно", + "canceled": "Отказано", + "inProgress": "У току", + "totalPrs": "Укупно ПР", + "myPrs": "Моји ПР", + "approved": "Одобрено" }, "gamedig": { - "status": "Status", - "online": "Online", - "offline": "Offline", - "name": "Name", - "map": "Map", - "currentPlayers": "Current players", - "players": "Players", - "maxPlayers": "Max players", - "bots": "Bots", - "ping": "Ping" + "status": "Стање", + "online": "На мрежи", + "offline": "Није на мрежи", + "name": "Назив", + "map": "Мапа", + "currentPlayers": "Тренутни играчи", + "players": "Играчи", + "maxPlayers": "Максимално играча", + "bots": "Ботови", + "ping": "Пинг" }, "urbackup": { - "ok": "Ok", - "errored": "Errors", - "noRecent": "Out of Date", - "totalUsed": "Used Storage" + "ok": "Ок", + "errored": "Грешке", + "noRecent": "Застарели", + "totalUsed": "Искоришћени простор" }, "mealie": { - "recipes": "Recipes", - "users": "Users", - "categories": "Categories", - "tags": "Tags" + "recipes": "Рецепти", + "users": "Корисника", + "categories": "Категорије", + "tags": "Ознаке" }, "openmediavault": { - "downloading": "Downloading", - "total": "Total", - "running": "Running", - "stopped": "Stopped", - "passed": "Passed", - "failed": "Failed" + "downloading": "Преузимање", + "total": "Укупно", + "running": "Покренуто", + "stopped": "Заустављено", + "passed": "Пређено", + "failed": "Неуспешно" }, "openwrt": { - "uptime": "Uptime", - "cpuLoad": "CPU Load Avg (5m)", - "up": "Up", - "down": "Down", - "bytesTx": "Transmitted", - "bytesRx": "Received" + "uptime": "Време рада", + "cpuLoad": "Просечно оптерећење процесора (5 мин)", + "up": "Горе", + "down": "Доле", + "bytesTx": "Пренесено", + "bytesRx": "Примљено" }, "uptimerobot": { - "status": "Status", - "uptime": "Uptime", - "lastDown": "Last Downtime", - "downDuration": "Downtime Duration", - "sitesUp": "Sites Up", - "sitesDown": "Sites Down", - "paused": "Paused", - "notyetchecked": "Not Yet Checked", - "up": "Up", - "seemsdown": "Seems Down", - "down": "Down", - "unknown": "Unknown" + "status": "Стање", + "uptime": "Време рада", + "lastDown": "Последњи прекид рада", + "downDuration": "Трајање прекида рада", + "sitesUp": "Локација активно", + "sitesDown": "Локација неактивно", + "paused": "Паузирано", + "notyetchecked": "Још није проверено", + "up": "Горе", + "seemsdown": "Делује неактивно", + "down": "Доле", + "unknown": "Непознато" }, "calendar": { - "inCinemas": "In cinemas", - "physicalRelease": "Physical release", - "digitalRelease": "Digital release", - "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "inCinemas": "У биоскопима", + "physicalRelease": "Физичко издање", + "digitalRelease": "Дигитално иѕдање", + "noEventsToday": "Нема догађаја за данас!", + "noEventsFound": "Није пронађен ниједан догађај", + "errorWhenLoadingData": "Грешка при учитавању података календара" }, "romm": { - "platforms": "Platforms", - "totalRoms": "Games", - "saves": "Saves", - "states": "States", - "screenshots": "Screenshots", - "totalfilesize": "Total Size" + "platforms": "Платформе", + "totalRoms": "Игре", + "saves": "Сачувано", + "states": "Стања", + "screenshots": "Снимци екрана", + "totalfilesize": "Укупна величина" }, "mailcow": { - "domains": "Domains", - "mailboxes": "Mailboxes", - "mails": "Mails", - "storage": "Storage" + "domains": "Домени", + "mailboxes": "Сандучићи", + "mails": "Пошта", + "storage": "Складиште" }, "netdata": { - "warnings": "Warnings", - "criticals": "Criticals" + "warnings": "Упозорења", + "criticals": "Критично" }, "plantit": { - "events": "Events", - "plants": "Plants", - "photos": "Photos", - "species": "Species" + "events": "Догађаји", + "plants": "Биљке", + "photos": "Фотографије", + "species": "Врсте" }, "gitea": { - "notifications": "Notifications", - "issues": "Issues", - "pulls": "Pull Requests", - "repositories": "Repositories" + "notifications": "Обавештења", + "issues": "Издања", + "pulls": "Захтеви за спајање", + "repositories": "Ризнице" }, "stash": { - "scenes": "Scenes", - "scenesPlayed": "Scenes Played", - "playCount": "Total Plays", - "playDuration": "Time Watched", - "sceneSize": "Scenes Size", - "sceneDuration": "Scenes Duration", - "images": "Images", - "imageSize": "Images Size", - "galleries": "Galleries", - "performers": "Performers", - "studios": "Studios", - "movies": "Movies", - "tags": "Tags", - "oCount": "O Count" + "scenes": "Сцене", + "scenesPlayed": "Одигране сцене", + "playCount": "Укупан број репродукција", + "playDuration": "Време гледања", + "sceneSize": "Величина сцена", + "sceneDuration": "Трајање сцена", + "images": "Слике", + "imageSize": "Величина слика", + "galleries": "Галерије", + "performers": "Извођачи", + "studios": "Студији", + "movies": "Филмови", + "tags": "Ознаке", + "oCount": "О број" }, "tandoor": { - "users": "Users", - "recipes": "Recipes", - "keywords": "Keywords" + "users": "Корисника", + "recipes": "Рецепти", + "keywords": "Кључне речи" }, "homebox": { - "items": "Items", - "totalWithWarranty": "With Warranty", - "locations": "Locations", - "labels": "Labels", - "users": "Users", - "totalValue": "Total Value" + "items": "Ставке", + "totalWithWarranty": "Са гаранцијом", + "locations": "Локације", + "labels": "Ознаке", + "users": "Корисника", + "totalValue": "Укупна вредност" }, "crowdsec": { - "alerts": "Alerts", - "bans": "Bans" + "alerts": "Упозорења", + "bans": "Забране" }, "wgeasy": { - "connected": "Connected", - "enabled": "Enabled", - "disabled": "Disabled", - "total": "Total" + "connected": "Повезано", + "enabled": "Омогућено", + "disabled": "Онемогућено", + "total": "Укупно" }, "swagdashboard": { - "proxied": "Proxied", - "auth": "With Auth", - "outdated": "Outdated", - "banned": "Banned" + "proxied": "Проксирано", + "auth": "Са ауторизацијом", + "outdated": "Застарело", + "banned": "Бановано" }, "myspeed": { - "ping": "Ping", - "download": "Download", - "upload": "Upload" + "ping": "Пинг", + "download": "Преузимање", + "upload": "Слање" }, "stocks": { - "stocks": "Stocks", - "loading": "Loading", - "open": "Open - US Market", - "closed": "Closed - US Market", - "invalidConfiguration": "Invalid Configuration" + "stocks": "Акције", + "loading": "Учитавање", + "open": "Отворено - Америчко тржиште", + "closed": "Затворено - Америчко тржиште", + "invalidConfiguration": "Неважећа конфигурација" }, "frigate": { - "cameras": "Cameras", - "uptime": "Uptime", - "version": "Version" + "cameras": "Камере", + "uptime": "Време рада", + "version": "Верзија" }, "linkwarden": { - "links": "Links", - "collections": "Collections", - "tags": "Tags" + "links": "Везе", + "collections": "Колекције", + "tags": "Ознаке" }, "zabbix": { - "unclassified": "Not classified", - "information": "Information", - "warning": "Warning", - "average": "Average", - "high": "High", - "disaster": "Disaster" + "unclassified": "Није класификовано", + "information": "Информација", + "warning": "Упозорење", + "average": "Просечно", + "high": "Високо", + "disaster": "Катастрофа" }, "lubelogger": { - "vehicle": "Vehicle", - "vehicles": "Vehicles", - "serviceRecords": "Service Records", - "reminders": "Reminders", - "nextReminder": "Next Reminder", - "none": "None" + "vehicle": "Возило", + "vehicles": "Возила", + "serviceRecords": "Сервисни записи", + "reminders": "Подсетници", + "nextReminder": "Следећи подсетник", + "none": "Без" }, "vikunja": { - "projects": "Active Projects", - "tasks7d": "Tasks Due This Week", - "tasksOverdue": "Overdue Tasks", - "tasksInProgress": "Tasks In Progress" + "projects": "Активни пројекти", + "tasks7d": "Задаци за ову недељу", + "tasksOverdue": "Закаснели задаци", + "tasksInProgress": "Задаци у току" }, "headscale": { - "name": "Name", - "address": "Address", - "last_seen": "Last Seen", - "status": "Status", - "online": "Online", - "offline": "Offline" + "name": "Назив", + "address": "Адреса", + "last_seen": "Последње виђен", + "status": "Стање", + "online": "На мрежи", + "offline": "Није на мрежи" }, "beszel": { - "name": "Name", - "systems": "Systems", - "up": "Up", - "down": "Down", - "paused": "Paused", - "pending": "Pending", - "status": "Status", - "updated": "Updated", - "cpu": "CPU", - "memory": "MEM", - "disk": "Disk", - "network": "NET" + "name": "Назив", + "systems": "Системи", + "up": "Горе", + "down": "Доле", + "paused": "Паузирано", + "pending": "На чекању", + "status": "Стање", + "updated": "Ажурирано", + "cpu": "Процесор", + "memory": "Меморија", + "disk": "Диск", + "network": "Мрежа" }, "argocd": { - "apps": "Apps", - "synced": "Synced", - "outOfSync": "Out Of Sync", - "healthy": "Healthy", - "degraded": "Degraded", - "progressing": "Progressing", - "missing": "Missing", - "suspended": "Suspended" + "apps": "Апликације", + "synced": "Синхронизовано", + "outOfSync": "Ван синхронизације", + "healthy": "Здравих", + "degraded": "Деградирано", + "progressing": "Напредак", + "missing": "Недостаје", + "suspended": "Суспендовано" }, "spoolman": { - "loading": "Loading" + "loading": "Учитавање" }, "gitlab": { - "groups": "Groups", - "issues": "Issues", - "merges": "Merge Requests", - "projects": "Projects" + "groups": "Групе", + "issues": "Издања", + "merges": "Захтеви за спајање", + "projects": "Пројекти" }, "apcups": { - "status": "Status", - "load": "Load", - "bcharge": "Battery Charge", - "timeleft": "Time Left" + "status": "Стање", + "load": "Учитавање", + "bcharge": "Напуњеност батерије", + "timeleft": "Преостало време" }, "karakeep": { - "bookmarks": "Bookmarks", - "favorites": "Favorites", - "archived": "Archived", - "highlights": "Highlights", - "lists": "Lists", - "tags": "Tags" + "bookmarks": "Обележивачи", + "favorites": "Омиљено", + "archived": "Архивирано", + "highlights": "Истакнуто", + "lists": "Листе", + "tags": "Ознаке" }, "slskd": { - "slskStatus": "Network", - "connected": "Connected", - "disconnected": "Disconnected", - "updateStatus": "Update", - "update_yes": "Available", - "update_no": "Up to Date", - "downloads": "Downloads", - "uploads": "Uploads", - "sharedFiles": "Files" + "slskStatus": "Мрежа", + "connected": "Повезано", + "disconnected": "Прекинуто", + "updateStatus": "Ажурирај", + "update_yes": "Доступно", + "update_no": "Ажурирано", + "downloads": "Преузимање", + "uploads": "Слање", + "sharedFiles": "Датотеке" + }, + "jellystat": { + "songs": "Песме", + "movies": "Филмови", + "episodes": "Епизоде", + "other": "Остало" + }, + "checkmk": { + "serviceErrors": "Проблеми са услугом", + "hostErrors": "Проблеми са хостом" } } diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index d389a9372..eea7d0ab7 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Avsnitt", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/te/common.json b/public/locales/te/common.json index e980d4bab..38e37d13f 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/th/common.json b/public/locales/th/common.json index 1d88948b6..fd0bd2d61 100644 --- a/public/locales/th/common.json +++ b/public/locales/th/common.json @@ -21,7 +21,7 @@ "seconds": "s" }, "widget": { - "missing_type": "Missing Widget Type: {{type}}", + "missing_type": "ประเภทวิดเจ็ตหาย: {{type}}", "api_error": "API มีข้อผิดพลาด", "information": "ข้อมูล", "status": "สถานะ", @@ -110,7 +110,7 @@ "esphome": { "offline": "ออฟไลน์", "offline_alt": "ออฟไลน์", - "online": "Online", + "online": "ออนไลน์", "total": "ทั้งหมด", "unknown": "ไม่ทราบ" }, @@ -130,12 +130,12 @@ }, "freshrss": { "subscriptions": "Subscriptions", - "unread": "Unread" + "unread": "ยังไม่ได้อ่าน" }, "fritzbox": { "connectionStatus": "สถานะ", - "connectionStatusUnconfigured": "Unconfigured", - "connectionStatusConnecting": "Connecting", + "connectionStatusUnconfigured": "ยังไม่ได้กำหนดค่า", + "connectionStatusConnecting": "กำลังเชื่อมต่อ", "connectionStatusAuthenticating": "Authenticating", "connectionStatusPendingDisconnect": "Pending Disconnect", "connectionStatusDisconnecting": "Disconnecting", @@ -247,7 +247,7 @@ }, "radarr": { "wanted": "Wanted", - "missing": "Missing", + "missing": "หายไป", "queued": "Queued", "movies": "Movies", "queue": "Queue", @@ -315,7 +315,7 @@ "download": "Downloaded", "nondownload": "Non-Downloaded", "read": "Read", - "unread": "Unread", + "unread": "ยังไม่ได้อ่าน", "downloadedread": "Downloaded & Read", "downloadedunread": "Downloaded & Unread", "nondownloadedread": "Non-Downloaded & Read", @@ -364,8 +364,8 @@ "please_wait": "Please Wait" }, "npm": { - "enabled": "Enabled", - "disabled": "Disabled", + "enabled": "เปิด", + "disabled": "ปิด", "total": "ทั้งหมด" }, "coinmarketcap": { @@ -409,14 +409,14 @@ }, "minecraft": { "players": "Players", - "version": "Version", + "version": "เวอร์ชั่น", "status": "สถานะ", - "up": "Online", + "up": "ออนไลน์", "down": "ออฟไลน์" }, "miniflux": { "read": "Read", - "unread": "Unread" + "unread": "ยังไม่ได้อ่าน" }, "authentik": { "users": "ผู้ใช้", @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -595,7 +596,7 @@ "battery_charge": "Battery Charge", "ups_load": "UPS Load", "ups_status": "UPS Status", - "online": "Online", + "online": "ออนไลน์", "on_battery": "On Battery", "low_battery": "Low Battery" }, @@ -799,7 +800,7 @@ }, "gamedig": { "status": "สถานะ", - "online": "Online", + "online": "ออนไลน์", "offline": "ออฟไลน์", "name": "Name", "map": "Map", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -923,8 +925,8 @@ }, "wgeasy": { "connected": "Connected", - "enabled": "Enabled", - "disabled": "Disabled", + "enabled": "เปิด", + "disabled": "ปิด", "total": "ทั้งหมด" }, "swagdashboard": { @@ -948,7 +950,7 @@ "frigate": { "cameras": "Cameras", "uptime": "Uptime", - "version": "Version" + "version": "เวอร์ชั่น" }, "linkwarden": { "links": "Links", @@ -982,7 +984,7 @@ "address": "Address", "last_seen": "Last Seen", "status": "สถานะ", - "online": "Online", + "online": "ออนไลน์", "offline": "ออฟไลน์" }, "beszel": { @@ -1006,7 +1008,7 @@ "healthy": "Healthy", "degraded": "Degraded", "progressing": "Progressing", - "missing": "Missing", + "missing": "หายไป", "suspended": "Suspended" }, "spoolman": { @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 19bd4540b..d1eaa5290 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Açık IP", "region": "Bölge", - "country": "Ülke" + "country": "Ülke", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Kanallar", @@ -856,7 +857,8 @@ "physicalRelease": "Fiziksel Yayınlanan", "digitalRelease": "Dijitalde Yayınlandı", "noEventsToday": "Bugün için etkinlik yok!", - "noEventsFound": "Etkinlik bulunamadı" + "noEventsFound": "Etkinlik bulunamadı", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platformlar", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Dosyalar" + }, + "jellystat": { + "songs": "Şarkılar", + "movies": "Filmler", + "episodes": "Bölümler", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index 419d77c03..9232358fc 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Публічний IP", "region": "Регіон", - "country": "Країна" + "country": "Країна", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Канали", @@ -856,7 +857,8 @@ "physicalRelease": "Фізичний реліз", "digitalRelease": "Цифровий реліз", "noEventsToday": "Події на сьогодні відсутні!", - "noEventsFound": "Події не знайдено" + "noEventsFound": "Події не знайдено", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Платформи", @@ -1042,5 +1044,15 @@ "downloads": "Завантаження", "uploads": "Вивантаження", "sharedFiles": "Файли" + }, + "jellystat": { + "songs": "Пісні", + "movies": "Фільми", + "episodes": "Епізоди", + "other": "Інше" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index efe0c9ab3..03c16dcc3 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "Public IP", "region": "Region", - "country": "Country" + "country": "Country", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "Channels", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "No events for today!", - "noEventsFound": "No events found" + "noEventsFound": "No events found", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "Platforms", @@ -1042,5 +1044,15 @@ "downloads": "Downloads", "uploads": "Uploads", "sharedFiles": "Files" + }, + "jellystat": { + "songs": "Songs", + "movies": "Movies", + "episodes": "Episodes", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index 9dd81cfd7..f7a118e6b 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "公用IP", "region": "地區", - "country": "國家" + "country": "國家", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "頻道", @@ -856,7 +857,8 @@ "physicalRelease": "實體發行", "digitalRelease": "數位發行", "noEventsToday": "今日無事件", - "noEventsFound": "未找到事件" + "noEventsFound": "未找到事件", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "平台", @@ -1042,5 +1044,15 @@ "downloads": "下載", "uploads": "上傳", "sharedFiles": "檔案" + }, + "jellystat": { + "songs": "曲目", + "movies": "電影", + "episodes": "集", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/zh-Hans/common.json b/public/locales/zh-Hans/common.json index be53b16b0..60e9dcd3a 100644 --- a/public/locales/zh-Hans/common.json +++ b/public/locales/zh-Hans/common.json @@ -149,7 +149,7 @@ "received": "已接收", "sent": "已发送", "externalIPAddress": "外部IP", - "externalIPv6Address": "Ext. IPv6", + "externalIPv6Address": "", "externalIPv6Prefix": "Ext. IPv6-Prefix" }, "caddy": { @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "公网 IP", "region": "区域", - "country": "国家" + "country": "国家", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "频道", @@ -719,7 +720,7 @@ "memoryusage": "内存", "freespace": "剩余空间", "activeusers": "活跃用户", - "numfiles": "Files", + "numfiles": "文件", "numshares": "共享项目" }, "kopia": { @@ -760,7 +761,7 @@ "booksDuration": "持续时间" }, "homeassistant": { - "people_home": "房间", + "people_home": "在家人数", "lights_on": "照明开", "switches_on": "开关开" }, @@ -782,7 +783,7 @@ }, "kavita": { "seriesCount": "系列", - "totalFiles": "Files" + "totalFiles": "文件" }, "azuredevops": { "result": "Result", @@ -856,7 +857,8 @@ "physicalRelease": "Physical release", "digitalRelease": "Digital release", "noEventsToday": "今天没有活动!", - "noEventsFound": "未找到事件" + "noEventsFound": "未找到事件", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "平台", @@ -886,7 +888,7 @@ "notifications": "通知", "issues": "问题", "pulls": "PR", - "repositories": "Repositories" + "repositories": "代码仓库" }, "stash": { "scenes": "场景", @@ -1041,6 +1043,16 @@ "update_no": "Up to Date", "downloads": "Downloads", "uploads": "Uploads", - "sharedFiles": "Files" + "sharedFiles": "文件" + }, + "jellystat": { + "songs": "歌曲", + "movies": "电影", + "episodes": "剧集", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index 7abcd3a25..3341d7d9d 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -568,7 +568,8 @@ "gluetun": { "public_ip": "公用IP", "region": "地區", - "country": "國家" + "country": "國家", + "port_forwarded": "Port Forwarded" }, "hdhomerun": { "channels": "頻道", @@ -856,7 +857,8 @@ "physicalRelease": "實體發行", "digitalRelease": "數位發行", "noEventsToday": "今日無事件", - "noEventsFound": "未找到事件" + "noEventsFound": "未找到事件", + "errorWhenLoadingData": "Error when loading calendar data" }, "romm": { "platforms": "平台", @@ -1042,5 +1044,15 @@ "downloads": "下載", "uploads": "上傳", "sharedFiles": "檔案" + }, + "jellystat": { + "songs": "曲目", + "movies": "電影", + "episodes": "集", + "other": "Other" + }, + "checkmk": { + "serviceErrors": "Service issues", + "hostErrors": "Host issues" } } diff --git a/src/components/widgets/search/search.jsx b/src/components/widgets/search/search.jsx index 6699a374f..7ce06067d 100644 --- a/src/components/widgets/search/search.jsx +++ b/src/components/widgets/search/search.jsx @@ -49,7 +49,7 @@ export const searchProviders = { function getAvailableProviderIds(options) { if (options.provider && Array.isArray(options.provider)) { - return Object.keys(searchProviders).filter((value) => options.provider.includes(value)); + return options.provider.filter((value) => searchProviders.hasOwnProperty(value)); } if (options.provider && searchProviders[options.provider]) { return [options.provider]; diff --git a/src/utils/config/api-response.js b/src/utils/config/api-response.js index 4691f9bcd..b7b670cd0 100644 --- a/src/utils/config/api-response.js +++ b/src/utils/config/api-response.js @@ -135,6 +135,28 @@ function pruneEmptyGroups(groups) { }); } +function mergeLayoutGroupsIntoConfigured(configuredGroups, layoutGroups) { + for (const layoutGroup of layoutGroups) { + const existing = findGroupByName(configuredGroups, layoutGroup.name); + if (existing) { + if (layoutGroup.groups?.length) { + existing.groups ??= []; + for (const sub of layoutGroup.groups) { + const existingSub = findGroupByName(existing.groups, sub.name); + if (!existingSub) { + existing.groups.push(sub); + } else { + // recursive merge if needed + mergeLayoutGroupsIntoConfigured([existingSub], [sub]); + } + } + } + } else { + configuredGroups.push(layoutGroup); + } + } +} + export async function servicesResponse() { let discoveredDockerServices; let discoveredKubernetesServices; @@ -191,14 +213,10 @@ export async function servicesResponse() { const definedLayouts = initialSettings.layout ? Object.keys(initialSettings.layout) : null; if (definedLayouts) { // this handles cases where groups are only defined in the settings.yaml layout and not in the services.yaml - const layoutConfiguredGroups = Object.entries(initialSettings.layout).map(([key, value]) => + const layoutGroups = Object.entries(initialSettings.layout).map(([key, value]) => convertLayoutGroupToGroup(key, value), ); - layoutConfiguredGroups.forEach((group) => { - if (!configuredServices.find((serviceGroup) => serviceGroup.name === group.name)) { - configuredServices.push(group); - } - }); + mergeLayoutGroupsIntoConfigured(configuredServices, layoutGroups); } mergedGroupsNames.forEach((groupName) => { diff --git a/src/utils/config/config.js b/src/utils/config/config.js index 3f6888420..60ac087aa 100644 --- a/src/utils/config/config.js +++ b/src/utils/config/config.js @@ -14,19 +14,29 @@ export const CONF_DIR = process.env.HOMEPAGE_CONFIG_DIR : join(process.cwd(), "config"); export default function checkAndCopyConfig(config) { + // Ensure config directory exists if (!existsSync(CONF_DIR)) { - mkdirSync(CONF_DIR, { recursive: true }); + try { + mkdirSync(CONF_DIR, { recursive: true }); + } catch (e) { + console.warn(`Could not create config directory ${CONF_DIR}: ${e.message}`); + return false; + } } const configYaml = join(CONF_DIR, config); + + // If the config file doesn't exist, try to copy the skeleton if (!existsSync(configYaml)) { const configSkeleton = join(process.cwd(), "src", "skeleton", config); try { copyFileSync(configSkeleton, configYaml); console.info("%s was copied to the config folder", config); } catch (err) { - console.error("error copying config", err); - throw err; + console.error("❌ Failed to initialize required config: %s", configYaml); + console.error("Reason: %s", err.message); + console.error("Hint: Make /app/config writable or manually place the config file."); + process.exit(1); } return true; diff --git a/src/utils/config/docker.js b/src/utils/config/docker.js index ed1d33470..4e2277f5d 100644 --- a/src/utils/config/docker.js +++ b/src/utils/config/docker.js @@ -40,6 +40,15 @@ export default function getDockerArguments(server) { res.conn.ca = readFileSync(path.join(CONF_DIR, servers[server].tls.caFile)); res.conn.cert = readFileSync(path.join(CONF_DIR, servers[server].tls.certFile)); res.conn.key = readFileSync(path.join(CONF_DIR, servers[server].tls.keyFile)); + res.conn.protocol = "https"; + } + + if (servers[server].protocol) { + res.conn.protocol = servers[server].protocol; + } + + if (servers[server].headers) { + res.conn.headers = servers[server].headers; } return res; diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 297e55a70..17703bbc6 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -304,6 +304,9 @@ export function cleanServiceGroups(groups) { // frigate enableRecentEvents, + // gamedig + gameToken, + // beszel, glances, immich, komga, mealie, pihole, pfsense, speedtest version, @@ -331,6 +334,9 @@ export function cleanServiceGroups(groups) { referrerPolicy, src, + // jellystat + days, + // kopia snapshotHost, snapshotPath, @@ -484,6 +490,9 @@ export function cleanServiceGroups(groups) { if (["diskstation", "qnap"].includes(type)) { if (volume) widget.volume = volume; } + if (type === "gamedig") { + if (gameToken) widget.gameToken = gameToken; + } if (type === "kopia") { if (snapshotHost) widget.snapshotHost = snapshotHost; if (snapshotPath) widget.snapshotPath = snapshotPath; @@ -563,6 +572,9 @@ export function cleanServiceGroups(groups) { if (type === "spoolman") { if (spoolIds !== undefined) widget.spoolIds = spoolIds; } + if (type === "jellystat") { + if (days !== undefined) widget.days = parseInt(days, 10); + } return widget; }); return cleanedService; diff --git a/src/utils/proxy/handlers/credentialed.js b/src/utils/proxy/handlers/credentialed.js index 017d44c93..da92de29f 100644 --- a/src/utils/proxy/handlers/credentialed.js +++ b/src/utils/proxy/handlers/credentialed.js @@ -34,6 +34,9 @@ export default async function credentialedProxyHandler(req, res, map) { headers["X-CMC_PRO_API_KEY"] = `${widget.key}`; } else if (widget.type === "gotify") { headers["X-gotify-Key"] = `${widget.key}`; + } else if (widget.type === "checkmk") { + headers["Accept"] = `application/json`; + headers.Authorization = `Bearer ${widget.username} ${widget.password}`; } else if ( [ "argocd", @@ -65,7 +68,7 @@ export default async function credentialedProxyHandler(req, res, map) { } else if (widget.type === "proxmoxbackupserver") { delete headers["Content-Type"]; headers.Authorization = `PBSAPIToken=${widget.username}:${widget.password}`; - } else if (widget.type === "autobrr") { + } else if (["autobrr", "jellystat"].includes(widget.type)) { headers["X-API-Token"] = `${widget.key}`; } else if (widget.type === "tubearchivist") { headers.Authorization = `Token ${widget.key}`; diff --git a/src/widgets/beszel/proxy.js b/src/widgets/beszel/proxy.js index 96dfc913b..93a2385c6 100644 --- a/src/widgets/beszel/proxy.js +++ b/src/widgets/beszel/proxy.js @@ -72,8 +72,23 @@ export default async function beszelProxyHandler(req, res) { }, }); - if ([400, 403].includes(status)) { - logger.debug(`HTTP ${status} retrieving data from Beszel, logging in and trying again.`); + const badRequest = [400, 403].includes(status); + const text = data.toString("utf-8"); + let isEmpty = false; + + try { + const json = JSON.parse(text); + isEmpty = Array.isArray(json.items) && json.items.length === 0; + } catch (err) { + logger.debug("Failed to parse Beszel response JSON:", err); + } + + if (badRequest || isEmpty) { + if (badRequest) { + logger.debug(`HTTP ${status} retrieving data from Beszel, logging in and trying again.`); + } else { + logger.debug(`Received empty list from Beszel, logging in and trying again.`); + } cache.del(`${tokenCacheKey}.${service}`); [status, token] = await login(loginUrl, widget.username, widget.password, service); diff --git a/src/widgets/calendar/integrations/ical.jsx b/src/widgets/calendar/integrations/ical.jsx index 462179776..3a3309e6c 100644 --- a/src/widgets/calendar/integrations/ical.jsx +++ b/src/widgets/calendar/integrations/ical.jsx @@ -1,21 +1,20 @@ -import { parseString } from "cal-parser"; +import ICAL from "ical.js"; import { DateTime } from "luxon"; import { useTranslation } from "next-i18next"; import { useEffect } from "react"; -import { RRule } from "rrule"; import Error from "../../../components/services/widget/error"; import useWidgetAPI from "../../../utils/proxy/use-widget-api"; -// https://gist.github.com/jlevy/c246006675becc446360a798e2b2d781 function simpleHash(str) { - /* eslint-disable no-plusplus, no-bitwise */ let hash = 0; + const prime = 31; + for (let i = 0; i < str.length; i++) { - hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0; + hash = (hash * prime + str.charCodeAt(i)) % 2_147_483_647; } - return (hash >>> 0).toString(36); - /* eslint-disable no-plusplus, no-bitwise */ + + return Math.abs(hash).toString(36); } export default function Integration({ config, params, setEvents, hideErrors, timezone }) { @@ -25,11 +24,49 @@ export default function Integration({ config, params, setEvents, hideErrors, tim }); useEffect(() => { - let parsedIcal; + const { showName = false } = config?.params || {}; + let events = []; if (!icalError && icalData && !icalData.error) { - parsedIcal = parseString(icalData.data); - if (parsedIcal.events.length === 0) { + if (!icalData.data) { + icalData.error = { message: `'${config.name}': ${t("calendar.errorWhenLoadingData")}` }; + return; + } + + const jCal = ICAL.parse(icalData.data); + const vCalendar = new ICAL.Component(jCal); + + const buildEvent = (event, type) => { + return { + id: event.getFirstPropertyValue("uid"), + type, + title: event.getFirstPropertyValue("summary"), + rrule: event.getFirstPropertyValue("rrule"), + dtstart: + event.getFirstPropertyValue("dtstart") || + event.getFirstPropertyValue("due") || + event.getFirstPropertyValue("completed") || + ICAL.Time.now(), // handles events without a date + dtend: + event.getFirstPropertyValue("dtend") || + event.getFirstPropertyValue("due") || + event.getFirstPropertyValue("completed") || + ICAL.Time.now(), // handles events without a date + location: event.getFirstPropertyValue("location"), + status: event.getFirstPropertyValue("status"), + }; + }; + + const getEvents = () => { + const vEvents = vCalendar.getAllSubcomponents("vevent").map((event) => buildEvent(event, "vevent")); + + const vTodos = vCalendar.getAllSubcomponents("vtodo").map((todo) => buildEvent(todo, "vtodo")); + + return [...vEvents, ...vTodos]; + }; + + events = getEvents(); + if (events.length === 0) { icalData.error = { message: `'${config.name}': ${t("calendar.noEventsFound")}` }; } } @@ -37,72 +74,67 @@ export default function Integration({ config, params, setEvents, hideErrors, tim const startDate = DateTime.fromISO(params.start); const endDate = DateTime.fromISO(params.end); - if (icalError || !parsedIcal || !startDate.isValid || !endDate.isValid) { + if (icalError || events.length === 0 || !startDate.isValid || !endDate.isValid) { return; } - const eventsToAdd = {}; - const events = parsedIcal?.getEventsBetweenDates(startDate.toJSDate(), endDate.toJSDate()); - const now = timezone ? DateTime.now().setZone(timezone) : DateTime.now(); + const rangeStart = ICAL.Time.fromJSDate(startDate.toJSDate()); + const rangeEnd = ICAL.Time.fromJSDate(endDate.toJSDate()); - events?.forEach((event) => { - let title = `${event?.summary?.value}`; - if (config?.params?.showName) { - title = `${config.name}: ${title}`; - } - - // 'dtend' is null for all-day events - const { dtstart, dtend = { value: 0 } } = event; - - const eventToAdd = (date, i, type) => { - const days = dtend.value === 0 ? 1 : (dtend.value - dtstart.value) / (1000 * 60 * 60 * 24); - const eventDate = timezone ? DateTime.fromJSDate(date, { zone: timezone }) : DateTime.fromJSDate(date); - - for (let j = 0; j < days; j += 1) { - // See https://github.com/gethomepage/homepage/issues/2753 uid is not stable - // assumption is that the event is the same if the start, end and title are all the same - const hash = simpleHash(`${dtstart?.value}${dtend?.value}${title}${i}${j}${type}}`); - eventsToAdd[hash] = { - title, - date: eventDate.plus({ days: j }), - color: config?.color ?? "zinc", - isCompleted: eventDate < now, - additional: event.location?.value, - type: "ical", - }; + const getOcurrencesFromRange = (event) => { + if (!event.rrule) { + if (event.dtstart.compare(rangeStart) >= 0 && event.dtend.compare(rangeEnd) <= 0) { + return [event.dtstart]; } - }; - let recurrenceOptions = event?.recurrenceRule?.origOptions; - // RRuleSet does not have dtstart, add it manually - if (event?.recurrenceRule && event.recurrenceRule.rrules && event.recurrenceRule.rrules()?.[0]?.origOptions) { - recurrenceOptions = event.recurrenceRule.rrules()[0].origOptions; - recurrenceOptions.dtstart = dtstart.value; + return []; } - if (recurrenceOptions && Object.keys(recurrenceOptions).length !== 0) { - try { - const rule = new RRule(recurrenceOptions); - const recurringEvents = rule.between(startDate.toJSDate(), endDate.toJSDate()); + const iterator = event.rrule.iterator(event.dtstart); - recurringEvents.forEach((date, i) => { - let eventDate = date; - if (event.dtstart?.params?.tzid) { - // date is in UTC but parsed as if it is in current timezone, so we need to adjust it - const dateInUTC = DateTime.fromJSDate(date).setZone("UTC"); - const offset = dateInUTC.offset - DateTime.fromJSDate(date, { zone: event.dtstart.params.tzid }).offset; - eventDate = dateInUTC.plus({ minutes: offset }).toJSDate(); - } - eventToAdd(eventDate, i, "recurring"); - }); - return; - } catch (e) { - // eslint-disable-next-line no-console - console.error("Unable to parse recurring events from iCal: %s", e); + const occurrences = []; + for (let next = iterator.next(); next && next.compare(rangeEnd) < 0; next = iterator.next()) { + if (next.compare(rangeStart) < 0) { + continue; } + + occurrences.push(next.clone()); } - event.matchingDates.forEach((date, i) => eventToAdd(date, i, "single")); + return occurrences; + }; + + const eventsToAdd = []; + events.forEach((event, index) => { + const occurrences = getOcurrencesFromRange(event); + + occurrences.forEach((icalDate) => { + const date = icalDate.toJSDate(); + + const hash = simpleHash(`${event.id}-${event.title}-${index}-${date.toString()}`); + + let title = event.title; + if (showName) { + title = `${config.name}: ${title}`; + } + + const getIsCompleted = () => { + if (event.type === "vtodo") { + return event.status === "COMPLETED"; + } + + return DateTime.fromJSDate(date) < DateTime.now(); + }; + + eventsToAdd[hash] = { + title, + date: DateTime.fromJSDate(date), + color: config?.color ?? "zinc", + isCompleted: getIsCompleted(), + additional: event.location, + type: "ical", + }; + }); }); setEvents((prevEvents) => ({ ...prevEvents, ...eventsToAdd })); diff --git a/src/widgets/checkmk/component.jsx b/src/widgets/checkmk/component.jsx new file mode 100644 index 000000000..a156f4341 --- /dev/null +++ b/src/widgets/checkmk/component.jsx @@ -0,0 +1,40 @@ +import Block from "components/services/widget/block"; +import Container from "components/services/widget/container"; +import { useTranslation } from "next-i18next"; + +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + + const { data: servicesData, error: servicesError } = useWidgetAPI(widget, "services_info", { + columns: "state", + query: '{"op": "!=", "left": "state", "right": "0"}', + }); + const { data: hostsData, error: hostsError } = useWidgetAPI(widget, "hosts_info", { + columns: "state", + query: '{"op": "!=", "left": "state", "right": "0"}', + }); + + if (servicesError || hostsError) { + return ; + } + + if (!servicesData || !hostsData) { + return ( + + + + + ); + } + + return ( + + + + + ); +} diff --git a/src/widgets/checkmk/widget.js b/src/widgets/checkmk/widget.js new file mode 100644 index 000000000..b43ab46a7 --- /dev/null +++ b/src/widgets/checkmk/widget.js @@ -0,0 +1,19 @@ +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; + +const widget = { + api: "{url}/{site}/check_mk/api/1.0/{endpoint}", + proxyHandler: credentialedProxyHandler, + + mappings: { + services_info: { + endpoint: "domain-types/service/collections/all", + params: ["columns", "query"], + }, + hosts_info: { + endpoint: "domain-types/host/collections/all", + params: ["columns", "query"], + }, + }, +}; + +export default widget; diff --git a/src/widgets/components.js b/src/widgets/components.js index 880c8222e..71c7f095a 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -16,6 +16,7 @@ const components = { calibreweb: dynamic(() => import("./calibreweb/component")), changedetectionio: dynamic(() => import("./changedetectionio/component")), channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")), + checkmk: dynamic(() => import("./checkmk/component")), cloudflared: dynamic(() => import("./cloudflared/component")), coinmarketcap: dynamic(() => import("./coinmarketcap/component")), crowdsec: dynamic(() => import("./crowdsec/component")), @@ -59,6 +60,7 @@ const components = { jdownloader: dynamic(() => import("./jdownloader/component")), jellyfin: dynamic(() => import("./emby/component")), jellyseerr: dynamic(() => import("./jellyseerr/component")), + jellystat: dynamic(() => import("./jellystat/component")), kavita: dynamic(() => import("./kavita/component")), komga: dynamic(() => import("./komga/component")), kopia: dynamic(() => import("./kopia/component")), diff --git a/src/widgets/gamedig/proxy.js b/src/widgets/gamedig/proxy.js index 79d7fa02b..b9056b6d6 100644 --- a/src/widgets/gamedig/proxy.js +++ b/src/widgets/gamedig/proxy.js @@ -12,13 +12,19 @@ export default async function gamedigProxyHandler(req, res) { const url = new URL(serviceWidget.url); try { - const serverData = await GameDig.query({ + const gamedigOptions = { type: serviceWidget.serverType, host: url.hostname, port: url.port, givenPortOnly: true, checkOldIDs: true, - }); + }; + + if (serviceWidget.gameToken) { + gamedigOptions.token = serviceWidget.gameToken; + } + + const serverData = await GameDig.query(gamedigOptions); res.status(200).send({ online: true, diff --git a/src/widgets/glances/metrics/info.jsx b/src/widgets/glances/metrics/info.jsx index 3c0ef4297..85a7de5b5 100644 --- a/src/widgets/glances/metrics/info.jsx +++ b/src/widgets/glances/metrics/info.jsx @@ -112,7 +112,7 @@ export default function Component({ service }) {
)} - + {quicklookData && quicklookData.cpu_name && chart && (
{quicklookData.cpu_name}
)} diff --git a/src/widgets/gluetun/component.jsx b/src/widgets/gluetun/component.jsx index f71282371..640d225df 100644 --- a/src/widgets/gluetun/component.jsx +++ b/src/widgets/gluetun/component.jsx @@ -7,17 +7,19 @@ export default function Component({ service }) { const { widget } = service; const { data: gluetunData, error: gluetunError } = useWidgetAPI(widget, "ip"); + const { data: portForwardedData, error: portForwardedError } = useWidgetAPI(widget, "port_forwarded"); - if (gluetunError) { - return ; + if (gluetunError || portForwardedError) { + return ; } - if (!gluetunData) { + if (!gluetunData || !portForwardedData) { return ( + ); } @@ -27,6 +29,7 @@ export default function Component({ service }) { + ); } diff --git a/src/widgets/gluetun/widget.js b/src/widgets/gluetun/widget.js index 2733cec65..465307306 100644 --- a/src/widgets/gluetun/widget.js +++ b/src/widgets/gluetun/widget.js @@ -9,6 +9,10 @@ const widget = { endpoint: "publicip/ip", validate: ["public_ip", "country"], }, + port_forwarded: { + endpoint: "openvpn/portforwarded", + validate: ["port"], + }, }, }; diff --git a/src/widgets/jellystat/component.jsx b/src/widgets/jellystat/component.jsx new file mode 100644 index 000000000..d62e643cd --- /dev/null +++ b/src/widgets/jellystat/component.jsx @@ -0,0 +1,38 @@ +import Block from "components/services/widget/block"; +import Container from "components/services/widget/container"; + +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { widget } = service; + + // Days validation + if (!(Number.isInteger(widget.days) && 0 < widget.days)) widget.days = 30; + + const { data: viewsData, error: viewsError } = useWidgetAPI(widget, "getViewsByLibraryType", { days: widget.days }); + + const error = viewsError || viewsData?.message; + if (error) { + return ; + } + + if (!viewsData) { + return ( + + + + + + + ); + } + + return ( + + + + + + + ); +} diff --git a/src/widgets/jellystat/widget.js b/src/widgets/jellystat/widget.js new file mode 100644 index 000000000..116826fb5 --- /dev/null +++ b/src/widgets/jellystat/widget.js @@ -0,0 +1,15 @@ +import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; + +const widget = { + api: "{url}/{endpoint}", + proxyHandler: credentialedProxyHandler, + + mappings: { + getViewsByLibraryType: { + endpoint: "stats/getViewsByLibraryType", + params: ["days"], + }, + }, +}; + +export default widget; diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index e183a9c6f..b36ee5025 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -13,6 +13,7 @@ import calendar from "./calendar/widget"; import calibreweb from "./calibreweb/widget"; import changedetectionio from "./changedetectionio/widget"; import channelsdvrserver from "./channelsdvrserver/widget"; +import checkmk from "./checkmk/widget"; import cloudflared from "./cloudflared/widget"; import coinmarketcap from "./coinmarketcap/widget"; import crowdsec from "./crowdsec/widget"; @@ -49,6 +50,7 @@ import immich from "./immich/widget"; import jackett from "./jackett/widget"; import jdownloader from "./jdownloader/widget"; import jellyseerr from "./jellyseerr/widget"; +import jellystat from "./jellystat/widget"; import karakeep from "./karakeep/widget"; import kavita from "./kavita/widget"; import komga from "./komga/widget"; @@ -150,6 +152,7 @@ const widgets = { calibreweb, changedetectionio, channelsdvrserver, + checkmk, cloudflared, coinmarketcap, crowdsec, @@ -190,6 +193,7 @@ const widgets = { jdownloader, jellyfin: emby, jellyseerr, + jellystat, kavita, komga, kopia,